Summary: minor, rewrite linker checks to use the compiler front-end and XFLAG
[sxemacs] / configure.ac
1 dnl SXEmacs config script for autoconf >=2.60
2 dnl -------------------------------------------------------------------------
3 dnl Overrides of standard autoconf macros.
4
5 m4_include([sxemacs_version.m4])
6
7 dnl -------------------------------------------------------------------------
8 dnl Autoconf startup.
9 dnl -------------------------------------------------------------------------
10
11 AC_PREREQ([2.62])
12 AC_INIT([SXEmacs], [SXEM4CS_VERSION], [http://issues.sxemacs.org/])
13 AC_CONFIG_HEADER([src/config.h])
14 AC_CONFIG_SRCDIR([src/lisp.h])
15 AC_CONFIG_AUX_DIR([.])
16 AC_CONFIG_MACRO_DIR([m4])
17
18 dnl -------------------------------------------------------------------------
19 dnl Local copyright notices.
20 dnl -------------------------------------------------------------------------
21
22 AC_COPYRIGHT(
23 [#### Configuration script for SXEmacs.  Largely divergent from FSF.
24 #### Guess values for system-dependent variables and create Makefiles.
25 #### Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
26 #### Copyright (C) 1993-1995 Board of Trustees, University of Illinois.
27 #### Copyright (C) 1996, 1997 Sun Microsystems, Inc.
28 #### Copyright (C) 1995, 1996, 2002, 2003, 2004 Ben Wing.
29 #### Copyright (C) 2000, 2001 Martin Buchholz.
30 #### Copyright (C) 1998, 1999 J. Kean Johnston.
31 #### Copyright (C) 2005 Malcolm Purvis.
32 #### Copyright (C) 2005, 2006, 2007 Steve Youngs.
33 #### Copyright (C) 2006, 2007, 2008 Sebastian Freundt.
34 #### Copyright (C) 2007, 2010, 2011 Nelson Ferreira
35
36 ### Don't edit this script!
37 ### This script was automatically generated by the `autoconf' program
38 ### from the file `./configure.ac'.
39 ### To rebuild it, execute the command
40 ###     autoconf
41 ### in the this directory.
42
43 ### This file is part of SXEmacs.
44
45 ### SXEmacs is free software: you can redistribute it and/or modify
46 ### it under the terms of the GNU General Public License as published by
47 ### the Free Software Foundation, either version 3 of the License, or
48 ### (at your option) any later version.
49
50 ### SXEmacs is distributed in the hope that it will be useful,
51 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
52 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
53 ### GNU General Public License for more details.
54
55 ### You should have received a copy of the GNU General Public License
56 ### along with this program.  If not, see <http://www.gnu.org/licenses/>.
57
58 ### Parts of SXEmacs are also distributed under a BSD-like licence.
59 ### Check file headers for more information.
60
61 ### For usage, run `./configure --help'
62 ### For more detailed information on building and installing SXEmacs,
63 ### read the file `INSTALL'.
64 ###
65 ### If configure succeeds, it leaves its status in config.status.
66 ### A log of configuration tests can be found in config.log.
67 ### If configure fails after disturbing the status quo,
68 ###     config.status is removed.
69 ])
70
71 AC_REVISION([SXEM4CS_GIT_VERSION])
72
73
74 dnl Build Options
75 dnl =============
76 OG_OPTION_GROUP(Build Options)
77
78 OG_ARG_WITH([prefix],
79         AS_HELP_STRING([--with-prefix@<:@=ARG@:>@],
80                 [Whether to compile the value of --prefix into the executable.]),
81         [yes], [YES (DO compile prefix into the executable)])
82
83 OG_ARG_WITH([sitemoduledir],
84         AS_HELP_STRING([--with-sitemoduledir=DIR],
85                 [Directory for loadable modules that are not part of
86                 the SXEmacs core distribution (3rd party emodules).]),
87         [none], [$prefix/lib/sxemacs/$build/site-modules], [og_any],
88         [AC_DEFINE([SITEMODULEDIR_USER_DEFINED], [1],
89                 [sitemoduledir has been specified on the configure line.])],
90         [with_sitemoduledir='${libdir}/${PROGNAME}/${configuration}/site-modules'])
91
92 OG_ARG_WITH([site-includes],
93         AS_HELP_STRING([--with-site-includes=PATH],
94                 [Colon separated list of _extra_ include directories
95                 to search for headers.]),
96         [none], [None], [og_any])
97
98 OG_ARG_WITH([site-libraries],
99         AS_HELP_STRING([--with-site-libraries=PATH],
100                 [Colon separated list of extra lib directories to
101                 search for libraries. (Default: None)]),
102         [none], [None], [og_any])
103
104 OG_ARG_WITH([site-prefixes],
105         AS_HELP_STRING([--with-site-prefixes=PATH],
106                 [Colon separated list of extra prefix directories to
107                 search for headers and libraries.  Sometimes this can
108                 be used instead of specifying both
109                 --with-site-includes and
110                 --with-site-libraries.]),
111         [none], [None], [og_any])
112
113 OG_ARG_WITH([lispdir],
114         AS_HELP_STRING([--with-lispdir=DIR],
115                 [Where to install core lisp files.]),
116         [none], [$prefix/lib/sxemacs-$version/lisp], [og_any],
117         [AC_DEFINE([LISPDIR_USER_DEFINED], [1],
118                 [lispdir has been specified on the configure line.])],
119         [with_lispdir='${datadir}/${instvardir}/lisp'])
120
121 OG_ARG_WITH([archlibdir],
122         AS_HELP_STRING([--with-archlibdir=DIR],
123                 [Directory for arch-dependent files.]),
124         [none], [$prefix/lib/sxemacs-$version/$build], [og_any],
125         [AC_DEFINE([ARCHLIBDIR_USER_DEFINED], [1],
126                 [archlibdir has been specified on the configure line.])],
127         [with_archlibdir='${libdir}/${instvardir}/${configuration}'])
128
129 OG_ARG_WITH([moduledir],
130         AS_HELP_STRING([--with-moduledir=DIR],
131                 [Directory for loadable modules.]),
132         [none], [$prefix/lib/sxemacs-$version/$build/modules], [og_any],
133         [AC_DEFINE([MODULEDIR_USER_DEFINED], [1],
134                 [moduledir has been specified on the configure line.])],
135         [with_moduledir='${libdir}/${instvardir}/${configuration}/modules'])
136
137 OG_ARG_WITH([etcdir],
138         AS_HELP_STRING([--with-etcdir=DIR],
139                 []),
140         [none], [$prefix/lib/sxemacs-$version/etc], [og_any],
141         [AC_DEFINE([ETCDIR_USER_DEFINED], [1],
142                 [etcdir has been specified on the configure line.])],
143         [with_etcdir='${datadir}/${instvardir}/etc'])
144
145 OG_ARG_WITH([infopath],
146         AS_HELP_STRING([--with-infopath=PATH],
147                 [Colon separated list of directories to use as
148                 the info search path. This is not normally needed.]),
149         [none], [None], [og_any],
150         [AC_DEFINE([INFOPATH_USER_DEFINED], [1],
151                 [inforpath has been specified on the configure line.])], [])
152
153 OG_ARG_WITH([docdir],
154         AS_HELP_STRING([--with-docdir=DIR],
155                 [Where it store certain doc files (not info or man).]),
156         [none], [$prefix/lib/sxemacs-$version/$build], [og_any],
157         [AC_DEFINE([DOCDIR_USER_DEFINED], [1],
158                 [docdir has been specified on the configure line.])],
159         [with_docdir='${archlibdir}'])
160
161 OG_ARG_WITH([site-runtime-libraries],
162         AS_HELP_STRING([--with-site-runtime-libraries=PATH],
163                 [Colon separated list of directories to search for
164                 libraries at run time.  This isn't normally needed.]),
165         [none], [None], [og_any])
166
167 OG_ARG_WITH([module-path],
168         AS_HELP_STRING([--with-module-path=PATH],
169                 [Search path to the emodules directories.
170                 A colon separated list of directories. Normally, there is
171                 no need to set this.]),
172         [none], [None], [og_any],
173         [AC_DEFINE([MODULE_PATH_USER_DEFINED], [1],
174                 [module-path has been specified on the configure line.])],
175         [])
176
177 OG_ARG_WITH([package-prefix],
178         AS_HELP_STRING([--with-package-prefix=PATH],
179                 [What to use as a prefix to the system-wide package
180                 directories.  It doesn't affect the package directories
181                 under ~/.sxemacs, and is totally ignored if
182                 --with-package-path is set.
183                 Normally, you would not need to set this.]),
184         [none], [None], [og_any],
185         [AC_DEFINE([PACKAGE_PREFIX_USER_DEFINED], [1],
186                 [package-prefix has been specified on the configure line.])],
187         [])
188
189 OG_ARG_WITH([package-path],
190         AS_HELP_STRING([--with-package-path=PATH],
191                 [Search path to the package directories.
192                 This path is made up of 3 separate "path elements",
193                 each element is a colon separated list of directories,
194                 with the boundary between elements being a double
195                 colon.  The 3 path elements are for "early", "late",
196                 and "last" package directories.  If only a single
197                 element is specified it is "late".  Example:
198                 early1:early2::late1:late2::last1:last2.  Setting this
199                 overrides --with-package-prefix.  Normally, there is
200                 no need to set this.]),
201         [none], [None], [og_any],
202         [AC_DEFINE([PACKAGE_PATH_USER_DEFINED], [1],
203                 [package-path has been specified on the configure line.])],
204         [])
205
206 dnl stupid option, innit?
207 OG_ARG_WITH([quick-build],
208         AS_HELP_STRING([--with-quick-build],
209                 [Speed up the build cycle by leaving out steps where
210                 SXEmacs will still work (more or less) without them.
211                 Potentially dangerous if you don't know what you're
212                 doing. This (1) doesn't garbage-collect after loading
213                 each file during dumping, (2) doesn't automatically
214                 rebuild the DOC file (remove it by hand to get it
215                 rebuilt), (3) Removes config.h lisp.h and associated
216                 files from the dependency lists so changes to these
217                 files don't automatically cause all .c files
218                 to be rebuilt.]),
219         [no], [No], [])
220
221 OG_ARG_WITH([compiler],
222         AS_HELP_STRING([--with-compiler=COMPILER],
223                 [Do not use me! Use CC=<your-compiler> instead!
224                 C compiler to use.
225                 Note: SXEmacs _CANNOT_ be built with a C++ compiler.]),
226         [none], [None], [og_any], [
227                 OG_WARN_OBSOLETE_OPTION([--with-compiler], [CC=<your-cc>])])
228
229 OG_ARG_WITH([cflags],
230         AS_HELP_STRING([--with-cflags],
231                 [Do not use me! Use CFLAGS=<your flags> instead!
232                 Compiler flags (such as -O); setting this overrides
233                 all default compiler flags except those that control
234                 warnings. Most people wouldn't need to set
235                 this.]),
236         [none], [None], [og_any], [
237                 OG_WARN_OBSOLETE_OPTION([--with-cflags], [CFLAGS=<your flags>])])
238
239 OG_ARG_WITH([cflags-warning],
240         AS_HELP_STRING([--with-cflags-warning],
241                 [Do not use me! I will disappear soon!]),
242         [none], [None], [og_any])
243
244 OG_ARG_WITH([cpp],
245         AS_HELP_STRING([--with-cpp],
246                 [Do not use me! Use CPP=<your-cpp> instead!]),
247         [none], [None], [og_any], [
248                 OG_WARN_OBSOLETE_OPTION([--with-cpp], [CPP=<your-cpp>])
249                 CPP="$with_cpp"])
250
251 OG_ARG_WITH([cppflags],
252         AS_HELP_STRING([--with-cppflags],
253                 [Do not use me! Use CPPFLAGS=<your flags> instead!]),
254         [none], [None], [og_any], [
255                 OG_WARN_OBSOLETE_OPTION([--with-cppflags], [CPPFLAGS=<your flags>])
256                 CPPFLAGS="$with_cppflags"])
257
258 OG_ARG_WITH([libs],
259         AS_HELP_STRING([--with-libs],
260                 [Do not use me! Use LIBS=<your libs> instead!]),
261         [none], [None], [og_any], [
262                 OG_WARN_OBSOLETE_OPTION([--with-libs], [LIBS=<your libs>])
263                 LIBS="$with_libs"])
264
265 OG_ARG_WITH([ldflags],
266         AS_HELP_STRING([--with-ldflags],
267                 [Do not use me! Use LDFLAGS=<your flags> instead!]),
268         [none], [None], [og_any], [
269                 OG_WARN_OBSOLETE_OPTION([--with-ldflags], [LDFLAGS=<your flags>])
270                 LDFLAGS="$with_ldflags"])
271
272 OG_ARG_WITH([ridiculously-aggressive-optimisations],
273         AS_HELP_STRING([--with-ridiculously-aggressive-optimisations],
274                 [Whether to try all possible optimisations]),
275         [no], [No])
276
277 OG_ARG_WITH([maximum-warning-output],
278         AS_HELP_STRING([--with-maximum-warning-output],
279                 [Whether to output as many warnings as possible]),
280         [no], [No])
281
282
283 dnl Internal Options
284 dnl ================
285 OG_OPTION_GROUP(Internal Options)
286
287 OG_ARG_WITH([dynamic],
288         AS_HELP_STRING([--with-dynamic],
289                 [Link dynamically if supported by system.
290                 'NO' forces static linking.]),
291         [auto], [Autodetect])
292
293 OG_ARG_WITH([rel-alloc],
294         AS_HELP_STRING([--with-rel-alloc],
295                 [Relocating allocator for buffers.]),
296         [default], [Autodetect])
297
298 OG_ARG_WITH([dlmalloc],
299         AS_HELP_STRING([--with-dlmalloc],
300                 [Use Doug Lea's malloc.]),
301         [default], [Autodetect])
302
303 OG_ARG_WITH([debug-malloc],
304         AS_HELP_STRING([--with-debug-malloc],
305                 [Use a debugging malloc.]),
306         [no], [NO])
307
308 OG_ARG_WITH([system-malloc],
309         AS_HELP_STRING([--with-system-malloc],
310                 [Use a system malloc instead of GNU.]),
311         [default], [YES if using quantify or purify; NO otherwise])
312
313 OG_ARG_WITH([regex-malloc],
314         AS_HELP_STRING([--with-regex-malloc],
315                 [Use malloc for regex failure stack.]),
316         [yes], [YES])
317
318 OG_ARG_WITH([ffi],
319         AS_HELP_STRING([--with-ffi],
320                 [Compile in experimental support for 
321                 Foreign Function Interface.]),
322         [yes], [YES])
323
324 OG_ARG_WITH([module-support],
325         AS_HELP_STRING([--with-module-support],
326                 [Compile in experimental support for dynamically
327                 loaded libraries (Dynamic Shared Objects).]),
328         [yes], [YES if shared libraries are supported])
329
330 OG_MULTIARG_WITH([modules], [dnl
331         AS_HELP_STRING([--with-modules], [
332                 Which modules to compile and install.])],
333         [all], [all], [dnl
334         OG_MULTIARG_ITEM([ase], [ase], [algebraic structures])
335         OG_MULTIARG_ITEM([cl], [cl], [fast Common Lisp implementation])
336 ])
337
338 OG_MULTIARG_WITH([static-modules], [dnl
339         AS_HELP_STRING([--with-static-modules], [
340                 Which modules to compile as archives to link their
341                 functionality statically into the SXEmacs binary.])
342         AS_HELP_STRING([], [
343                 You should regard this as a proof of concept.])],
344         [none], [NONE], [dnl
345         OG_MULTIARG_ITEM([ase], [ase], [algebraic structures])
346         OG_MULTIARG_ITEM([cl], [cl], [fast Common Lisp implementation])
347 ])
348
349 dnl _OG_MULTIARG_ITEM([ent], [int], [int], [native integer arithmetics])
350 dnl _OG_MULTIARG_ITEM([ent], [fpfloat], [fpfloat], [native fixed precision floats])
351 dnl _OG_MULTIARG_ITEM([ent], [indef], [indef], [abstract indefinites])
352 OG_MULTIARG_WITH([ent], [dnl
353         AS_HELP_STRING([--with-ent], [
354                 Compile in support for enhanced number types,
355                 using internal and external libraries.])],
356         [none int fpfloat indef gmp], [int fpfloat indef gmp], [dnl
357         OG_MULTIARG_ITEM([int], [int], [native integer arithmetics])
358         OG_MULTIARG_ITEM([fpfloat], [fpfloat], [native fixed precision floats])
359         OG_MULTIARG_ITEM([indef], [indef], [native abstract indefinites])
360         OG_MULTIARG_ITEM([gmp], [GMP], [GNU multiprecision library])
361         OG_MULTIARG_ITEM([mpfr], [MPFR], [Multiprecision Floats with correct Rounding])
362         OG_MULTIARG_ITEM([mpc], [MPC], [Multiprecision Complex numbers (C/R)])
363         OG_MULTIARG_ITEM([pseug], [pseudoG], [native Gaussian Numbers (Z+Z)])
364         OG_MULTIARG_ITEM([pseuc], [pseudoC], [native Complex Numbers (C/R)])
365         OG_MULTIARG_ITEM([quatern], [Quaternions], [native Quaternions (Z+Z+Z+Z)])
366         OG_MULTIARG_ITEM([ecm], [ECM], [factorisations per Elliptic Curve Method])
367         OG_MULTIARG_MUTEX([mpz], [Arbitrary precision integers], [gmp mp])
368         OG_MULTIARG_MUTEX([complex], [Complex numbers as in C/R], [mpc pseuc])
369 ])
370
371 OG_MULTIARG_WITH([ase], [dnl
372         AS_HELP_STRING([--with-ase], [
373                 Compile in support for algebraic structures based on ENT,
374                 using internal and external libraries.])],
375         [none], [none], [dnl
376         OG_MULTIARG_ITEM([cart], [cartesian], [Cartesian Products of ENT and ASE objects])
377         OG_MULTIARG_ITEM([dig], [digraph], [Directed 2-ary Graphs with Colours])
378         OG_MULTIARG_ITEM([intv], [interval], [Intervals of comparable or normed ENT and ASE objects])
379         OG_MULTIARG_ITEM([metric], [metric], [Metric Spaces])
380         OG_MULTIARG_ITEM([nbhood], [neighbourhood], [Neighbourhoods of comparable or normed ENT and ASE objects])
381         OG_MULTIARG_ITEM([perm], [permutation], [Permutations])
382         OG_MULTIARG_ITEM([resclass], [resclass], [Residue Class Rings and Classes])
383 ])
384
385 OG_MULTIARG_WITH([experimental-features], [dnl
386         AS_HELP_STRING([--with-experimental-features], [
387                 Activate experimental code, that is code which is
388                 considered useful but whose effects in conjunction with
389                 the variety of elisp projects cannot be foreseen.])
390         AS_HELP_STRING([], [
391                 During the beta phase of SXEmacs all experimental code
392                 will be unconditionally enabled.  However, if you plan
393                 to use this SXEmacs in a production environment you
394                 can switch off some portions.])],
395         [all nobdwgc], [ALL but bdwgc], [dnl
396         OG_MULTIARG_ITEM([bdwgc], [bdwgc], [the Boehm-Demers-Weiser collector])
397         OG_MULTIARG_ITEM([compre], [compre], [exhaustive caching of compiled regexps])
398         OG_MULTIARG_ITEM([asyneq], [asyneq], [asynchronous event queues])
399 ])
400         dnl stop that pom stuff
401         dnl OG_MULTIARG_ITEM([pom], [pom], [thread-safe objects])
402
403 OG_ARG_WITH([event-driver],
404         AS_HELP_STRING([--with-event-driver], [
405                 Which event routines to use.
406                 Events control the way how external `sources' are
407                 incorporated into SXEmacs.  Sources hereby are user inputs,
408                 such as key strokes, mouse moves, pedalling, slapping the
409                 monitor, etc.; but there are manifold further sources, such as
410                 process signals, data on a socket, focussing an X window,
411                 lapsing a timeout, and so forth.])
412 AS_HELP_STRING([], [
413                 An event driver can cope with all (or most) of these in a
414                 uniform and abstract way.  SXEmacs can either be driven
415                 using its built-in event handlers, or using one of the
416                 external systems.]),
417         [auto], [Autodetect], [auto built-in libevent liboop glib])
418
419
420 dnl Debugging Options
421 dnl ================
422 OG_OPTION_GROUP(Debugging Options)
423
424 OG_ARG_WITH([debug],
425         AS_HELP_STRING([--with-debug],
426                 [Compile with extra debugging code.
427                 This will turn on: --with-assertions
428                 and --with-memory-usage-stats.]),
429         [yes], [YES for beta; NO for release])
430
431 OG_ARG_WITH([memory-usage-stats],
432         AS_HELP_STRING([--with-memory-usage-stats],
433                 [Compile with support for statistics about memory usage at runtime.]),
434         [yes], [YES for beta])
435
436 OG_MULTIARG_WITH([error-checking], [dnl
437         AS_HELP_STRING([--with-error-checking=TYPE], [
438                 Compile with internal error-checking added.])
439         AS_HELP_STRING([], [
440                 WARNING: Causes noticeable loss of speed!])],
441         [all], [ALL for beta; NONE otherwise], [dnl
442         OG_MULTIARG_ITEM([extents], [extents], [checks on extents])
443         OG_MULTIARG_ITEM([types], [types], [checks on types])
444         OG_MULTIARG_ITEM([gc], [gc], [checks on garbage collection])
445         OG_MULTIARG_ITEM([malloc], [malloc], [checks on memory allocation])
446         OG_MULTIARG_ITEM([byte_code], [byte_code], [checks on byte compiled code])
447         OG_MULTIARG_ITEM([bufpos], [bufpos], [checks on buffer position])
448         OG_MULTIARG_ITEM([glyphs], [glyphs], [checks on glyph data])
449 ])
450
451 OG_ARG_WITH([purify],
452         AS_HELP_STRING([--with-purify],
453                 [Add support for memory debugging using Purify.]),
454         [no], [NO])
455
456 OG_ARG_WITH([quantify],
457         AS_HELP_STRING([--with-quantify],
458                 [Add support for performance debugging using Quantify.]),
459         [no], [NO])
460
461
462 dnl Window System Features
463 dnl ======================
464 OG_OPTION_GROUP(Window System Features)
465
466 OG_ARG_WITH([toolbars],
467         AS_HELP_STRING([--with-toolbars],
468                 [Compile in toolbar support.]),
469         [yes], [YES])
470
471 OG_ARG_WITH([external-widget],
472         AS_HELP_STRING([--with-external-widget],
473                 [Enable the "external widget" interface,
474                 which allows a SXEmacs frame to appear as a widget in
475                 another application.
476                 To date, we haven't heard of anyone who has actually done this.
477                 Consider this EXPERIMENTAL.]),
478         [no], [NO])
479
480 OG_ARG_WITH([menubars],
481         AS_HELP_STRING([--with-menubars=TYPE],
482                 [Type of menubars to use.  The Lucid menubars emulate
483                 Motif (mostly) but are faster.
484                 *WARNING*  The gtk menubar is gtk-1.2 only and unmaintained.]),
485         [lucid], [Lucid], [lucid gtk no])
486
487 OG_ARG_WITH([scrollbars],
488         AS_HELP_STRING([--with-scrollbars=TYPE],
489                 [Type of scrollbars to use.
490                 *WARNING*  The Motif scrollbars are currently broken.
491                 *WARNING*  The gtk scrollbars are gtk-1.2 only and unmaintained.]),
492         [lucid], [Lucid], [lucid motif athena gtk no])
493
494 OG_ARG_WITH([dialogs],
495         AS_HELP_STRING([--with-dialogs=TYPE],
496                 [Type of dialog boxes to use.  Athena dialogs will
497                  be used if Athena can be found.
498                  *WARNING*  The gtk dialogs are gtk-1.2 only and unmaintained.]),
499         [athena], [], [athena motif gtk no])
500
501 OG_ARG_WITH([widgets],
502         AS_HELP_STRING([--with-widgets=TYPE],
503                 [Type of native widgets to use.  Athena widgets will
504                 be used if Athena can be found.
505                 *WARNING*  The gtk widgets are gtk-1.2 only and unmaintained.]),
506         [athena], [], [athena motif gtk no])
507
508 OG_ARG_WITH([athena],
509         AS_HELP_STRING([--with-athena=TYPE],
510                 [Type of Athena widgets to use.]),
511         [auto], [Autodetect], [auto xaw 3d next 95 xpm no])
512
513 OG_ARG_WITH([xim],
514         AS_HELP_STRING([--with-xim],
515                 [Type of Mule input method to use.]),
516         [auto], [Autodetect], [yes no xlib motif])
517
518 OG_ARG_WITH([gtk],
519         AS_HELP_STRING([--with-gtk],
520                 [Support GTK (version 1.x) on the X Window System.
521                 (EXPERIMENTAL)]),
522         [no], [NO])
523
524 OG_ARG_WITH([gnome],
525         AS_HELP_STRING([--with-gnome],
526                 [Support GNOME (version 1.x) on the X Window System.
527                 (EXPERIMENTAL)]),
528         [no], [NO])
529
530 OG_ARG_WITH([wmcommand],
531         AS_HELP_STRING([--with-wmcommand],
532                 [Compile with realized leader window which will
533                 keep the WM_COMMAND property.]),
534         [yes], [YES])
535
536 OG_ARG_WITH([xmu],
537         AS_HELP_STRING([--with-xmu],
538                 [For those unfortunates whose vendors don't ship Xmu.]),
539         [auto], [Autodetect])
540
541 OG_ARG_WITH([xfs],
542         AS_HELP_STRING([--with-xfs],
543                 [Compile with XFontSet support for internationalized
544                 menubar.  Incompatible with `--with-xim=motif'.
545                 `--with-menubars=lucid' (the default) is desirable.]),
546         [no], [NO])
547
548 dnl TTY Options
549 dnl ================
550 OG_OPTION_GROUP(TTY options)
551
552 OG_ARG_WITH([tty],
553         AS_HELP_STRING([--with-tty],
554                 [Add support for ttys.]),
555         [auto], [Autodetect])
556
557 OG_ARG_WITH([ncurses],
558         AS_HELP_STRING([--with-ncurses],
559                 [Use the ncurses library for tty support.]),
560         [auto], [Autodetect])
561
562 OG_ARG_WITH([gpm],
563         AS_HELP_STRING([--with-gpm],
564                 [Compile in GPM mouse support for ttys.]),
565         [auto], [Autodetect])
566
567
568 dnl Database Options
569 dnl ================
570 OG_OPTION_GROUP(Database options)
571
572 OG_MULTIARG_WITH([database], [dnl
573         AS_HELP_STRING([--with-database=TYPE],
574                 [Compile with database support.])],
575         [auto], [Autodetect], [dnl
576         OG_MULTIARG_ITEM([berkdb], [berkdb], [Berkeley DB support])
577         OG_MULTIARG_ITEM([dbm], [dbm], [DBM database support])
578         OG_MULTIARG_ITEM([gdbm], [gdbm], [GNU DBM support])
579 ])
580
581 OG_ARG_WITH([ldap],
582         AS_HELP_STRING([--with-ldap],
583                 [Compile with support for the LDAP protocol.]),
584         [no], [NO])
585
586 OG_ARG_WITH([postgresql],
587         AS_HELP_STRING([--with-postgresql],
588                 [Compile with support for the PostgreSQL RDBMS.]),
589         [yes], [Autodetect])
590
591
592 dnl Multimedia Options
593 dnl ==================
594 OG_OPTION_GROUP(Multimedia options)
595
596 OG_MULTIARG_WITH([image], [dnl
597         AS_HELP_STRING([--with-image=TYPE],
598                 [Compile with image support.])],
599         [auto], [Autodetect all image support], [dnl
600         OG_MULTIARG_ITEM([gif], [GIF], [GIF image format])
601         OG_MULTIARG_ITEM([xpm], [XPM], [X PixMap image format])
602         OG_MULTIARG_ITEM([png], [PNG], [Portable Network Graphic format])
603         OG_MULTIARG_ITEM([jpeg], [JPEG], [jpeg image format])
604         OG_MULTIARG_ITEM([tiff], [TIFF], [TIFF image format])
605         OG_MULTIARG_ITEM([xface], [xface], [base64 encoded xbm])
606 ])
607
608 OG_MULTIARG_WITH([sound], [dnl
609         AS_HELP_STRING([--with-sound=TYPE],
610                 [Compile with sound support.])],
611         [auto], [Autodetect all sound support (except Pulse)], [dnl
612         OG_MULTIARG_ITEM([alsa], [ALSA], [kernel-based linux sound standard])
613         OG_MULTIARG_ITEM([ao], [ao], [generic audio output layer])
614         OG_MULTIARG_ITEM([arts], [aRts], [discontinued realtime synthesizer])
615         OG_MULTIARG_ITEM([esd], [ESD], [Enlightenment Sound Daemon])
616         OG_MULTIARG_ITEM([jack], [Jack], [a low-latency audio server])
617         OG_MULTIARG_ITEM([nas], [NAS], [Network Audio System])
618         OG_MULTIARG_ITEM([oss], [OSS], [Open Sound System])
619 ])
620
621 OG_ARG_WITH([pulseaudio],
622         AS_HELP_STRING([--with-pulseaudio],
623                 [Compile with support for the PulseAudio audio server.
624                 This has been turned off by default because of too many
625                 bugs in recent versions of PA.  Use at your own risk,
626                 YMMV, and all that.]),
627         [no], [NO])
628
629 OG_MULTIARG_WITH([media], [dnl
630         AS_HELP_STRING([--with-media=TYPE],
631                 [Compile with media stream support.])],
632         [auto], [Autodetect all media stream support libraries], [dnl
633         OG_MULTIARG_ITEM([ffmpeg], [FFmpeg], [media streams handled by ffmpeg])
634         OG_MULTIARG_ITEM([internal], [internal], [media streams handled internally])
635         OG_MULTIARG_ITEM([mad], [Mad], [media streams handled by mad])
636         OG_MULTIARG_ITEM([sndfile], [sndfile], [media streams handled by sndfile])
637         OG_MULTIARG_ITEM([sox], [SoX], [media streams handled by sox])
638         OG_MULTIARG_ITEM([magic], [magic], [file/libmagic support])
639 ])
640
641
642 dnl Cryptography Options
643 dnl ====================
644 OG_OPTION_GROUP(Cryptography options)
645
646 OG_ARG_WITH([openssl],
647         AS_HELP_STRING([--with-openssl],
648                 [Compile in experimental support for 
649                 OpenSSL libcrypto and libssl.]),
650         [yes], [YES])
651
652 OG_ARG_WITH([gnutls],
653         AS_HELP_STRING([--with-gnutls],
654                 [Compile in experimental support for 
655                 GnuTLS transport security.]),
656         [no], [NO])
657
658
659 dnl Networking Options
660 dnl ==================
661 OG_OPTION_GROUP(Networking options)
662
663 OG_ARG_WITH([dnet],
664         AS_HELP_STRING([--with-dnet],
665                 [Compile with support for DECnet.]),
666         [no], [NO])
667
668 OG_ARG_WITH([socks],
669         AS_HELP_STRING([--with-socks],
670                 [Compile with support for SOCKS (an Internet proxy).]),
671         [auto], [Autodetect])
672
673 OG_ARG_WITH([ipv6-cname],
674         AS_HELP_STRING([--with-ipv6-cname],
675                 [Try IPv6 information first when canonicalizing host names.
676                 This option has no effect unless system supports
677                 getaddrinfo(3) and getnameinfo(3).]),
678         [no], [NO])
679
680 OG_ARG_WITH([pop],
681         AS_HELP_STRING([--with-pop],
682                 [Support POP for mail retrieval.]),
683         [no], [NO])
684
685 OG_ARG_WITH([kerberos],
686         AS_HELP_STRING([--with-kerberos],
687                 [Support Kerberos-authenticated POP.]),
688         [no], [NO])
689
690 OG_ARG_WITH([hesiod],
691         AS_HELP_STRING([--with-hesiod],
692                 [Support Hesiod to get the POP server host.]),
693         [no], [NO])
694
695
696 dnl File-related Options
697 dnl ====================
698 OG_OPTION_GROUP(File-related options)
699
700 OG_ARG_WITH([clash-detection],
701         AS_HELP_STRING([--with-clash-detection],
702                 [Use lock files to detect multiple edits
703                 of the same file.]),
704         [no], [NO])
705
706 OG_ARG_WITH([mail-locking],
707         AS_HELP_STRING([--with-mail-locking=TYPE],
708                 [Specify the locking to be used by movemail to prevent
709                 concurrent updates of mail spool files. Valid types
710                 are `lockf'  `flock'  `file'  `locking'  `pop' or `mmdf'.]),
711         [auto], [Autodetect], [lockf flock file locking mmdf pop no])
712
713
714 dnl Internationalisation Options
715 dnl ============================
716 OG_OPTION_GROUP(Internationalisation options)
717
718 OG_ARG_WITH([mule],
719         AS_HELP_STRING([--with-mule],
720                 [Compile with Mule (MUlti-Lingual Emacs) support
721                 needed to support non-Latin-1 (including Asian)
722                 languages.]),
723         [yes], [YES])
724
725 OG_ARG_WITH([canna],
726         AS_HELP_STRING([--with-canna],
727                 [Compile with support for Canna (a Japanese input method
728                 used in conjunction with Mule support).]),
729         [auto], [Autodetect when Mule is enabled])
730
731 OG_ARG_WITH([wnn],
732         AS_HELP_STRING([--with-wnn],
733                 [Compile with support for Wnn (a multi-language input
734                 method used in conjunction with Mule support).]),
735         [auto], [Autodetect when Mule is enabled])
736
737 OG_ARG_WITH([wnn6],
738         AS_HELP_STRING([--with-wnn6],
739                 [Compile with support for the commercial package Wnn6.]),
740         [auto], [Autodetect when Mule is enabled])
741
742
743
744 dnl dnl Other Options
745 dnl dnl =============
746 dnl OG_OPTION_GROUP(Other options)
747 dnl 
748
749 ## -------------------------------------------------------------------------
750 ## Check for users who regularly forget about running autoconf
751 ## -------------------------------------------------------------------------
752 if test -f $0.ac -a $0.ac -nt $0; then
753         AC_MSG_ERROR([What are you doing? RUN autoreconf NOW!!!])
754 fi
755
756 #
757 # Turn off core generation. We are already verifying the program fails, no need 
758 # poluting the workspace. Of course if you are a SXEmacs developer you may want
759 # to comemnt this on occasion :-)
760 ulimit -c 0
761
762 ## initialise our nestable msg funs
763 SXE_INIT_MSG_LEVEL
764
765 dnl Small snippet to make echo -n work on solaris
766 ECHO_N= ECHO_C=
767 case `echo -n x` in
768 -n*)
769         case `echo 'x\c'` in
770         *c*)
771                 ;;
772         *)
773                 ECHO_C='\c'
774                 ;;
775         esac
776         ;;
777 *)
778         ECHO_N='-n'
779         ;;
780 esac
781
782
783 echo
784 echo "Preparing the build chain"
785 echo "========================="
786
787 ## We should brag about ourselves, no?
788 AC_DEFINE([XEMACS], [1], [Pretend to be an XEmacs])
789 AC_DEFINE([SXEMACS], [1], [Why not? It's the truth!])
790
791 dnl -------------------------------------------------------------------------
792 dnl Command line argument processing.
793 dnl -------------------------------------------------------------------------
794 dnl Check for bogus options
795 dnl -------------------------------------------------------------------------
796 SXE_CHECK_COMMAND_LINE
797
798 AM_INIT_AUTOMAKE([foreign -Wall])
799 SXE_CHECK_BUILDCHAIN
800 AC_SUBST(EGREP)
801
802 progname=$0
803 progbasename=$(basename $progname)
804 progdirname=$(dirname $progname)
805
806 ## Build Options
807 ## =============
808
809 echo
810 echo "Build and System Specific Options"
811 echo "================================="
812
813 SXE_EXPLORE_BUILD_ENVIRONMENT
814
815 dnl ----------------------------------------
816 dnl Find out which version of SXEmacs this is
817 dnl ----------------------------------------
818 AC_CHECK_PROG([have_git], [git], [yes], [no])
819 AC_MSG_CHECKING([for SXEmacs version])
820 AC_MSG_RESULT([SXEmacs SXEM4CS_VERSION])
821 dnl Must do the following first to determine verbosity for AC_DEFINE
822 if test -n "[]SXEM4CS_BETA_P[]"; then
823         beta=yes
824 else
825         beta=no
826 fi
827 : "${extra_verbose=$beta}"
828
829 AC_MSG_CHECKING([for SXEmacs patchlevel])
830 CURDIR=$(pwd)
831 cd "$sxe_srcdir"
832 if test "$have_git" = "yes"; then
833         sxemacs_git_version="$(git describe)"
834 fi
835 if test -z "$sxemacs_git_version" ; then
836         sxemacs_git_version="[]SXEM4CS_GIT_VERSION[]"
837 fi
838 AC_MSG_RESULT([$sxemacs_git_version])
839 version="$sxemacs_git_version"
840 cd "$CURDIR"
841 main_version="$sxemacs_git_version"
842 AC_DEFINE_UNQUOTED([EMACS_MAJOR_VERSION], [SXEM4CS_MAJOR_VERSION], [Description here!])
843 AC_DEFINE_UNQUOTED([EMACS_MINOR_VERSION], [SXEM4CS_MINOR_VERSION], [Description here!])
844 old_version=[]SXEM4CS_VERSION[]
845 if test -n "[]SXEM4CS_BETA_VERSION[]"; then
846         AC_MSG_CHECKING([if we are a beta version])
847         if test "$beta" = "yes"; then
848                 AC_MSG_RESULT([yes])
849                 AC_DEFINE_UNQUOTED([EMACS_BETA_VERSION], [SXEM4CS_BETA_VERSION],
850                         [Description here!])
851         else
852                 AC_MSG_RESULT([no])
853                 AC_DEFINE_UNQUOTED([EMACS_PATCH_LEVEL], [SXEM4CS_BETA_VERSION],
854                         [Description here!])
855         fi
856 fi
857 AC_DEFINE_UNQUOTED([SXEMACS_CODENAME], ["[]SXEM4CS_CODENAME[]"], [Description here!])
858 AC_DEFINE_UNQUOTED([EMACS_VERSION], ["$version"], [Description here!])
859 AC_DEFINE_UNQUOTED([SXEMACS_GIT_VERSION], ["$sxemacs_git_version"],
860         [Description here!])
861
862 PROGNAME=sxemacs
863
864 AC_DEFINE_UNQUOTED([EMACS_PROGNAME], ["$PROGNAME"], [Description here!])
865
866 ## build stuff in lib-src unconditionally
867 SXE_APPEND([lib-src], [MAKE_SUBDIR])
868 SXE_APPEND([lib-src], [INSTALL_ARCH_DEP_SUBDIR])
869
870 ## C compiler build chain
871 AC_USE_SYSTEM_EXTENSIONS
872 AC_LANG([C])
873 AS_MESSAGE([Let's look for the entire C build chain])
874 SXE_CHECK_CC
875 SXE_CHECK_CFLAGS
876
877 m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
878
879 ## check machine chars
880 AS_MESSAGE([Let's have a detailed glance at your machine])
881 SXE_PROC_CPUID
882 SXE_PROC_VENDORID
883 SXE_NPROCESSORS
884 SXE_CHECK_PROC_GOODNESS
885
886
887 ## Debugging Options
888 ## =================
889 ## echo
890 ## echo "Debugging Options"
891 ## echo "================="
892
893 dnl ----------------------------------
894 dnl Error checking and debugging flags
895 dnl ----------------------------------
896 dnl Error checking default to "yes" in beta versions, to "no" in releases.
897 dnl Same goes for --enable-debug and --extra-verbosity.
898 if test "$with_error_checking_extents" = yes; then
899         have_error_checking_extents="yes"
900         AC_DEFINE([ERROR_CHECK_EXTENTS], [1], [Description here!])
901         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
902 fi
903 if test "$with_error_checking_types" = yes; then
904         have_error_checking_types="yes"
905         AC_DEFINE([ERROR_CHECK_TYPECHECK], [1], [Description here!])
906         AC_DEFINE_UNQUOTED([type_checking_assert(assertion)],
907                 [assert (assertion)], [
908                 Make sure that all X... macros are dereferencing the correct type,
909                 and that all XSET... macros (as much as possible) are setting the
910                 correct type of structure.  Highly recommended for all
911                 development work.])
912         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
913 else
914         AC_DEFINE_UNQUOTED([type_checking_assert(assertion)], [], [])
915 fi
916 if test "$with_error_checking_bufpos" = yes; then
917         have_error_checking_bufpos="yes"
918         AC_DEFINE([ERROR_CHECK_BUFPOS], [1], [Description here!])
919         AC_DEFINE_UNQUOTED([bufpos_checking_assert(assertion)],
920                 [assert (assertion)], [dnl
921                 Make sure valid buffer positions are passed to BUF_* macros])
922         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
923 else
924         AC_DEFINE_UNQUOTED([bufpos_checking_assert(assertion)], [], [])
925 fi
926 if test "$with_error_checking_gc" = yes; then
927         have_error_checking_gc="yes"
928         AC_DEFINE([ERROR_CHECK_GC], [1], [Description here!])
929         AC_DEFINE_UNQUOTED([gc_checking_assert(assertion)],
930                 [assert (assertion)], [dnl
931                 Attempt to catch bugs related to garbage collection
932                 (e.g. not GCPRO'ing)])
933         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
934 else
935         AC_DEFINE_UNQUOTED([gc_checking_assert(assertion)], [], [])
936 fi
937 if test "$with_error_checking_malloc" = yes; then
938         have_error_checking_malloc="yes"
939         AC_DEFINE([ERROR_CHECK_MALLOC], [1], [Description here!])
940         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
941 fi
942 if test "$with_error_checking_byte_code"  = yes; then
943         have_error_checking_byte_code="yes"
944         AC_DEFINE([ERROR_CHECK_BYTE_CODE], [1], [Description here!])
945         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
946 fi
947 if test "$with_error_checking_glyphs" = yes; then
948         have_error_checking_glyphs="yes"
949         AC_DEFINE([ERROR_CHECK_GLYPHS], [1], [Description here!])
950         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
951 fi
952
953 dnl enable_debug=yes must be set when error checking is present.  This should be
954 dnl fixed up.
955 dnl with_debug implies other options
956 if test "${with_debug:=$beta}" = "yes"; then
957         with_memory_usage_stats=yes
958         SXE_ADD_CRUFT_OBJS([debug.o])
959         SXE_ADD_CRUFT_OBJS([tests.o])
960         AC_DEFINE([DEBUG_SXEMACS], [1], [Description here!])
961 fi
962 if test "$with_memory_usage_stats" = "yes"; then
963         AC_DEFINE([MEMORY_USAGE_STATS], [1], [Description here!])
964 fi
965
966
967
968 dnl --------------------------------------------------------------
969 dnl $opsys detection complete; defaults depending on $opsys follow
970 dnl --------------------------------------------------------------
971
972
973 dnl --------------------------------------------------------------
974 dnl WooHoo! pdump is ON always and everywhere! --SY.
975 dnl --------------------------------------------------------------
976 with_pdump=yes
977
978 if test "$with_dynamic" != "no"; then
979         case "$opsys" in
980         hpux* | sunos4* )
981                 with_dynamic=no
982                 ;;
983         *)
984                 with_dynamic=yes
985                 ;;
986         esac
987 fi
988 if test "$with_dynamic" = "yes"; then
989         case "$opsys" in
990         hpux* | sunos4* | sco5 )
991                 opsys="${opsys}-shr"
992                 ;;
993         decosf* )
994                 ld_call_shared="-call_shared"
995                 ;;
996         darwin* )
997                 AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], [1], [Description here!])
998                 if test "x$have_ld_no_pie" != "x"; then
999                         SXE_PREPEND_LINKER_FLAG([-no_pie], [ld_switch_site])
1000                 fi
1001                 ;;
1002         esac
1003 else dnl "$with_dynamic" = "no"
1004         case "$opsys" in
1005         sol2 )
1006                 echo "Static linking is not supported on Solaris 2."
1007                 echo "Rerun configure without specifying --without-dynamic."
1008                 exit 1
1009                 ;;
1010         linux )
1011                 ld_call_shared="-Bstatic"
1012                 ;;
1013         decosf* )
1014                 ld_call_shared="-non_shared"
1015                 ;;
1016         darwin* )
1017                 AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], [1], [Description here!])
1018                 if test "x$have_ld_no_pie" != "x"; then
1019                         SXE_PREPEND_LINKER_FLAG([-no_pie], [ld_switch_site])
1020                 fi
1021                 ;;
1022         esac
1023 fi
1024
1025 dnl Tools configuration
1026 case "$opsys" in
1027 aix* )
1028         NON_GNU_CC=xlc
1029         ;;      dnl Use xlc by default on AIX
1030 darwin )
1031         RANLIB="ranlib -c"
1032         ;;  dnl Avoid link error in lwlib-config.c
1033         ## this needs rework I think because RANLIB is provided by LT_INIT anyway
1034 esac
1035
1036 stack_trace_eye_catcher=\
1037 `echo ${PROGNAME}_${version}_${ac_cv_build} | sed 'y!@/.-!____!'`
1038 AC_DEFINE_UNQUOTED([STACK_TRACE_EYE_CATCHER], [$stack_trace_eye_catcher],
1039         [Just a very looong string to make traces more readable.])
1040
1041 dnl --------------------------------------------------
1042 dnl Determine the compiler, set up for feature testing
1043 dnl --------------------------------------------------
1044
1045 if test "$with_clash_detection" != "no"; then
1046         AC_DEFINE([CLASH_DETECTION], [1], [Description here!])
1047         SXE_ADD_CRUFT_OBJS([filelock.o])
1048 fi
1049
1050
1051 dnl what exactly do we determine here? and where is it used?
1052 dnl dnl Determine GCC version.
1053 dnl if test "$GCC" = "yes"; then
1054 dnl     AC_RUN_IFELSE([AC_LANG_SOURCE([[
1055 dnl int main ()
1056 dnl {
1057 dnl #if __GNUC__ >= 3
1058 dnl     return 11;
1059 dnl #else
1060 dnl     return 0;
1061 dnl #endif
1062 dnl }]])], [:], [dnl
1063 dnl case "$?" in
1064 dnl 11)
1065 dnl     echo "You appear to be using GCC version 3 or above."
1066 dnl     __GCC3=yes
1067 dnl     ;;
1068 dnl esac], [__GCC3=no])
1069 dnl fi
1070
1071 dnl We don't do AC_PROG_CC for SXEMACS_CC; if we can't trust these people....
1072 : ${SXEMACS_CC:="$CC"}
1073
1074 dnl Figure out what C preprocessor to use.
1075
1076 dnl On Sun systems, people sometimes set up the variable CPP
1077 dnl with a value that is a directory, not an executable at all.
1078 dnl Detect that case, and ignore that value.
1079 test -n "$CPP" -a -d "$CPP" && CPP=
1080
1081 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
1082
1083 dnl --------------------------------------------------------------------
1084 dnl Compiler feature macros
1085 dnl --------------------------------------------------------------------
1086
1087
1088 dnl --------------------------------------------------------------------
1089 dnl Extract some information from the operating system and machine files
1090 dnl --------------------------------------------------------------------
1091
1092 echo "Extracting information from the machine- and system-dependent headers..."
1093
1094 SXE_CHECK_MACHARCH
1095 SXE_EXTRACT_MACHARCH_INFO
1096
1097 dnl s&m files shouldn't be required to define anything, or even to exist.
1098 dnl So we default SYSTEM_TYPE to the obvious documented standard, `uname -s`,
1099 dnl appropriately emacsulated.
1100 if test -z "$system_type"; then
1101         AC_DEFINE_UNQUOTED([SYSTEM_TYPE],
1102                 ["`uname -s | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"],
1103                 [Description here!])
1104 fi
1105
1106 dnl If the s&m files don't define a system-specific dumper, simply use pdump.
1107 dnl Sometime in the future, we'll remove all definitions of UNEXEC
1108 dnl from all the s&m files.
1109 test -z "$unexec" && with_pdump=yes
1110
1111 if test "$with_pdump" = "yes"; then
1112         ordinary_link="yes"
1113         ld="${ordinary_ld}"
1114         start_files=
1115         libs_standard=
1116         unexec=
1117         lib_gcc=
1118 fi
1119
1120 dnl dnl For debugging...
1121 dnl SXE_PRINT_VAR([libs_machine libs_system libs_termcap libs_standard
1122 dnl     objects_machine objects_system c_switch_machine c_switch_system
1123 dnl     ld_switch_machine ld_switch_system unexec ld_switch_shared
1124 dnl     ld lib_gcc ld_text_start_addr start_files ordinary_link
1125 dnl     have_terminfo mail_use_flock mail_use_lockf]) && echo ""
1126
1127 dnl bitch at build attempt on win32 machines
1128 case "$opsys" in mingw* | cygwin*)
1129         SXE_DIE("Invalid operation system. Cannot build on win32 machines.")
1130 esac
1131
1132 dnl Non-ordinary link usually requires -lc
1133 test "$ordinary_link" = "no" -a -z "$libs_standard" && libs_standard="-lc"
1134
1135 ## perform compiler specific things
1136 SXE_DO_CC_HACKS
1137 ## machine specific extensions
1138 SXE_CHECK_SIMD_EXTENSIONS
1139
1140 ## some linker flags that might come in handy
1141 SXE_CHECK_LDFLAGS
1142
1143 ## suffices to be defined late, for instance here
1144 SXE_CHECK_PARSER_LEXER
1145
1146 if test "$with_pdump" != "yes"; then
1147         ## GNU ld now defaults to combreloc, which screws up unexec,
1148         ## but not pdump.
1149         ## Note that it's OK if the GNU style long option causes
1150         ## non-GNU ld to barf a usage message, that's often good
1151         ## enough.  Please report it, though.
1152         ## #### Should make this Solaris-friendly.
1153         ## Link with -z nocombreloc for now.
1154         SXE_CHECK_LD_ZFLAG([nocombreloc])
1155         if test "$sxe_cv_ld__z_nocombreloc" = "yes"; then
1156                 SXE_PREPEND_LINKER_FLAG([-z nocombreloc], [ld_switch_site])
1157         fi
1158 fi
1159
1160 dnl Inform compiler that certain flags are meant for the linker
1161 SXE_PROTECT_LINKER_FLAGS(ld_switch_system)
1162 SXE_PROTECT_LINKER_FLAGS(ld_switch_machine)
1163 SXE_PROTECT_LINKER_FLAGS(ld_switch_site)
1164 SXE_PROTECT_LINKER_FLAGS(LDFLAGS)
1165 SXE_PROTECT_LINKER_FLAGS(ld_call_shared)
1166
1167 dnl Add s&m-determined objects to link line
1168 test -n "$objects_machine" && SXE_ADD_CORE_OBJS($objects_machine)
1169 test -n "$objects_system"  && SXE_ADD_CORE_OBJS($objects_system)
1170 test "$with_pdump" = "yes" && SXE_ADD_CORE_OBJS(dumper.o)
1171
1172
1173 dnl Feed s&m crud to src/Makefile
1174
1175 dnl Linux/powerpc needs the following magic for some reason
1176 dnl [Not needed with YellowDog 2.3 and causes link problems with YellowDog 3.0,
1177 dnl the two most popular PowerPC distributions.]
1178 dnl test "$machine$opsys" = "powerpclinux" && start_flags="-T $sxe_srcdir/src/ppc.ldscript"
1179
1180 AC_LANG(C)
1181 if test "$unexec" = "unexaix.o"; then
1182 dnl AIX needs various hacks to make static linking work.
1183   if   test "$with_dynamic" = "no"; then
1184   start_flags="-Wl,-bnso,-bnodelcsect"
1185   test "$GCC" = "yes" && start_flags="-B/bin/ ${start_flags}"
1186   for f in "/lib/syscalls.exp" "/lib/threads.exp"; do
1187     if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; fi
1188   done
1189   for f in "/usr/lpp/X11/bin/smt.exp" "/usr/bin/X11/smt.exp"; do
1190     if test -r "$f"; then start_flags="${start_flags},-bI:${f}"; break; fi
1191   done
1192   AC_CHECK_LIB([c], [terminateAndUnload], [SXE_APPEND(-lC, libs_system)])
1193   fi
1194 elif test -n "$ld_text_start_addr"; then
1195   start_flags="-T $ld_text_start_addr -e __start"
1196 fi
1197 AC_SUBST(start_flags)
1198
1199 AC_SUBST(ld_switch_shared)
1200 AC_SUBST(start_files)
1201 if test "$ordinary_link" = "no" -a "$GCC" = "yes"; then
1202         if test -z "$linker"; then
1203                 linker='$(CC) -nostdlib'
1204                 SXE_APPEND([-nostdlib], [start_flags])
1205         fi
1206         test -z "$lib_gcc" && lib_gcc='`$(CC) -print-libgcc-file-name`'
1207 fi
1208 test "$GCC" != "yes" && lib_gcc=
1209 AC_SUBST(ld)
1210 AC_SUBST(lib_gcc)
1211
1212
1213
1214 ## ---------------------------------------------------------------
1215 ## Add site and system specific flags to compile and link commands
1216 ## ---------------------------------------------------------------
1217
1218 ## compute those site prefixes
1219 SXE_COMPUTE_SITE_PREFIXES
1220 ## compute a LD_RUN_PATH
1221 SXE_COMPUTE_LD_RUN_PATH
1222
1223
1224 ## some header checks
1225 SXE_CHECK_BASIC_HEADERS
1226 ## the very basic c types
1227 SXE_CHECK_BASIC_TYPES
1228
1229 ## for signalling
1230 SXE_CHECK_SIGNALS
1231
1232 AC_CHECK_MEMBERS([struct stat.st_rdev])
1233 AC_CHECK_TYPES([ptrdiff_t])
1234
1235 ## check whether intptr_t is definied in sys/types.h
1236 SXE_CHECK_INTPTR_T
1237
1238 dnl -lm is required for floating point support, among other things
1239 AC_CHECK_FUNC([sin], [], [AC_CHECK_LIB([m], [sin])])
1240
1241
1242 dnl check for Make feature
1243 AC_PROG_MAKE_SET
1244
1245
1246 dnl check for long file names
1247 AC_SYS_LONG_FILE_NAMES
1248 AC_SYS_LARGEFILE
1249 AC_SYS_INTERPRETER
1250 AC_SYS_POSIX_TERMIOS
1251
1252 AC_FUNC_MALLOC
1253 AC_FUNC_MKTIME
1254
1255 dnl See if mkstemp is available
1256 AC_CHECK_FUNCS([mkstemp])
1257
1258 SXE_CHECK_FILE_LOCK
1259
1260 case "$opsys" in decosf*)
1261         AC_CHECK_LIB([pthreads], [cma_open])
1262         if test "$ac_cv_lib_pthreads_cma_open" = "yes"; then
1263                 c_switch_site="$c_switch_site -threads"
1264         fi
1265         ;;
1266 esac
1267
1268
1269 dnl ----------------------------------------------------------------
1270 dnl Miscellaneous flags
1271 dnl ----------------------------------------------------------------
1272
1273 AC_MSG_CHECKING(whether the -xildoff compiler flag is required)
1274 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
1275   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
1276     then AC_MSG_RESULT(no);
1277     else AC_MSG_RESULT(yes); SXE_APPEND_UNDUP(-xildoff, ld_switch_site)
1278   fi
1279   else AC_MSG_RESULT(no)
1280 fi
1281
1282 dnl Link with "-z ignore" on Solaris if supported
1283 if test "$opsys" = "sol2"; then
1284   if test "$os_release" -ge 506; then
1285     AC_MSG_CHECKING(for "-z ignore" linker flag)
1286     case "`ld -h 2>&1`" in
1287       *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
1288         SXE_PREPEND_UNDUP(-z ignore, ld_switch_site) ;;
1289       *) AC_MSG_RESULT(no) ;;
1290     esac
1291   fi
1292 fi
1293
1294 dnl ----------------------------------------------------------------
1295 dnl Check for Unixoid pty/process support.
1296 dnl ----------------------------------------------------------------
1297
1298 dnl There is no "standard" pty allocation method.  Every system is different.
1299 dnl  getpt()  is the preferred pty allocation method on glibc systems.
1300 dnl _getpty() is the preferred pty allocation method on SGI systems.
1301 dnl grantpt(), unlockpt(), ptsname() are defined by Unix98.
1302 AC_CHECK_FUNCS([getpt _getpty grantpt unlockpt ptsname killpg tcgetpgrp])
1303
1304 dnl openpty() is the preferred pty allocation method on BSD and Tru64 systems.
1305 dnl openpty() might be declared in:
1306 dnl - pty.h (Tru64 or Linux)
1307 dnl - libutil.h (FreeBSD)
1308 dnl - util.h (NetBSD)
1309 AC_CHECK_FUNC(openpty, have_openpty=yes, [
1310   AC_CHECK_LIB(util, openpty, have_openpty=yes need_libutil=yes)])
1311 if test "$have_openpty" = "yes"; then
1312   AC_DEFINE([HAVE_OPENPTY], [1], [Description here!])
1313   AC_CHECK_HEADERS(libutil.h util.h, break)
1314   test "$need_libutil" = "yes" && SXE_APPEND(-lutil, libs_system)
1315 fi
1316
1317 dnl Check for system-specific pty header files
1318 dnl Often the TIOCSIG* symbols are hiding there.
1319 case "$opsys" in
1320   dnl HPUX pty.h #defines TRUE and FALSE, so just use ptyio.h there.
1321   hpux*) AC_CHECK_HEADERS(sys/ptyio.h) ;;
1322   *) AC_CHECK_HEADERS(pty.h)
1323      test "$ac_cv_header_pty_h" = "no" && AC_CHECK_HEADERS(sys/pty.h)
1324      ;;
1325 esac
1326
1327 dnl Check for STREAM support functions.
1328 dnl Confusingly, "str" means both "string" and "SysV Streams".
1329 AC_CHECK_HEADERS(stropts.h)
1330 if test "$ac_cv_header_stropts_h" = "yes"; then
1331   AC_CHECK_FUNCS(isastream)
1332   AC_CHECK_HEADERS(strtio.h) dnl TIOCSIGNAL
1333 fi
1334
1335 dnl Check whether the system provides getloadavg().
1336 AC_CHECK_FUNCS(getloadavg)
1337
1338 if test "$ac_cv_func_getloadavg" = "yes"; then
1339   dnl Solaris 8 declares getloadavg() in <sys/loadavg.h>.
1340   dnl glibc 2.2 declares getloadavg() in <stdlib.h>...
1341   dnl   ...if we #define _GNU_SOURCE, which we do.
1342   AC_CHECK_HEADERS(sys/loadavg.h)
1343 else
1344   dnl We define our own getloadavg() using lower level functions.
1345   SXE_ADD_CRUFT_OBJS([getloadavg.o])
1346
1347   dnl Used by getloadavg() - does not require root priveleges
1348   AC_CHECK_LIB(kstat, kstat_open)
1349   AC_CHECK_HEADERS(kstat.h)
1350
1351   dnl Another way to get the load average
1352   AC_CHECK_LIB(kvm, kvm_read)
1353 fi
1354
1355 dnl If netdb.h does not declare h_errno, we must declare it by hand.
1356 AC_MSG_CHECKING(whether netdb declares h_errno)
1357 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <netdb.h>]],
1358   [[return h_errno;]])],
1359   [AC_MSG_RESULT(yes)
1360    AC_DEFINE([HAVE_H_ERRNO], [1], [Description here!])],
1361   [AC_MSG_RESULT(no)])
1362
1363 AC_MSG_CHECKING([for sigsetjmp])
1364 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1365 #include <setjmp.h>
1366         ]], [[
1367 sigjmp_buf bar;
1368 sigsetjmp (bar, 0);
1369         ]])],
1370         [sxe_cv_c_func_sigsetjmp="yes"],
1371         [sxe_cv_c_func_sigsetjmp="no"])
1372 AC_MSG_RESULT([$sxe_cv_c_func_sigsetjmp])
1373 if test "$sxe_cv_c_func_sigsetjmp" = "yes"; then
1374         AC_DEFINE([HAVE_SIGSETJMP], [1], [Description here!])
1375         AC_DEFINE_UNQUOTED([SETJMP(x)], [sigsetjmp (x, 0)], [dnl
1376                 We want to avoid saving the signal mask if possible, because
1377                 that necessitates a system call.])
1378         AC_DEFINE_UNQUOTED([LONGJMP(x, y)], [siglongjmp(x, y)], [dnl
1379                 Description here!])
1380         AC_DEFINE_UNQUOTED([JMP_BUF], [sigjmp_buf], [dnl
1381                 Description here!])
1382 else
1383         AC_DEFINE_UNQUOTED([SETJMP(x)], [setjmp(x)], [dnl
1384                 We want to avoid saving the signal mask if possible, because
1385                 that necessitates a system call.])
1386         AC_DEFINE_UNQUOTED([LONGJMP(x, y)], [longjmp(x, y)], [Description here!])
1387         AC_DEFINE_UNQUOTED([JMP_BUF], [jmp_buf], [Description here!])
1388 fi
1389
1390
1391 AC_MSG_CHECKING(whether localtime caches TZ)
1392 AC_CACHE_VAL(emacs_cv_localtime_cache,
1393 [if test "$ac_cv_func_tzset" = "yes"; then
1394 AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <time.h>
1395 #if STDC_HEADERS
1396 # include <stdlib.h>
1397 #endif
1398 extern char **environ;
1399 unset_TZ ()
1400 {
1401   char **from, **to;
1402   for (to = from = environ; (*to = *from); from++)
1403     if (! (to[[0]][[0]] == 'T' && to[[0]][[1]] == 'Z' && to[[0]][[2]] == '='))
1404       to++;
1405 }
1406 char TZ_GMT0[[]] = "TZ=GMT0";
1407 char TZ_PST8[[]] = "TZ=PST8";
1408 main()
1409 {
1410   time_t now = time ((time_t *) 0);
1411   int hour_GMT0, hour_unset;
1412   if (putenv (TZ_GMT0) != 0)
1413     exit (1);
1414   hour_GMT0 = localtime (&now)->tm_hour;
1415   unset_TZ ();
1416   hour_unset = localtime (&now)->tm_hour;
1417   if (putenv (TZ_PST8) != 0)
1418     exit (1);
1419   if (localtime (&now)->tm_hour == hour_GMT0)
1420     exit (1);
1421   unset_TZ ();
1422   if (localtime (&now)->tm_hour != hour_unset)
1423     exit (1);
1424   exit (0);
1425 }]])], emacs_cv_localtime_cache=no, emacs_cv_localtime_cache=yes,
1426 [# If we have tzset, assume the worst when cross-compiling.
1427 emacs_cv_localtime_cache=yes])
1428 else
1429         # If we lack tzset, report that localtime does not cache TZ,
1430         # since we can't invalidate the cache if we don't have tzset.
1431         emacs_cv_localtime_cache=no
1432 fi],[:])dnl
1433 AC_MSG_RESULT($emacs_cv_localtime_cache)
1434 if test $emacs_cv_localtime_cache = yes; then
1435   AC_DEFINE([LOCALTIME_CACHE], [1], [Description here!])
1436 fi
1437
1438
1439 need_alloca_c=no
1440 dnl HP-UX has a working alloca in libPW.
1441 dnl case "${GCC}${opsys}" in hpux* )
1442 dnl  AC_CHECK_FUNC(alloca, [:], [AC_CHECK_LIB(PW, alloca)])
1443 dnl esac
1444
1445 dnl AC_FUNC_ALLOCA doesn't know about DEC C's #pragma intrinsic(alloca)
1446 if test "$__DECC" != "yes"; then
1447         AC_FUNC_ALLOCA
1448         if test -n "$ALLOCA"; then
1449                 SXE_ADD_CRUFT_OBJS([$ALLOCA])
1450                 need_alloca_c=yes
1451         fi
1452 fi
1453
1454 AC_MSG_CHECKING(for working alloca in function calls)
1455 AC_RUN_IFELSE([AC_LANG_SOURCE([[
1456 #if defined (__GNUC__)
1457 #define alloca __builtin_alloca
1458 #elif defined (__DECC)
1459 #include <alloca.h>
1460 #pragma intrinsic(alloca)
1461 #elif defined (HAVE_ALLOCA_H)
1462 #include <alloca.h>
1463 #elif defined (_AIX)
1464 #pragma alloca
1465 #elif ! defined (alloca)
1466 #ifdef C_ALLOCA
1467 #define alloca xemacs_c_alloca
1468 #else
1469 void *alloca ();
1470 #endif /* C_ALLOCA */
1471 #endif /* !defined (alloca) */
1472
1473 void
1474 f1 (double a, void *ptr, int b)
1475 {
1476   unsigned char *ptr2 = (unsigned char *) ptr;
1477   if (ptr2[[0]] != 0xBF || ptr2[[1]] != 0xBF || ptr2[[3000]] != 0xBF)
1478     exit (1);
1479   if (a != 3.1415 || b != -5490)
1480     exit (1);
1481 }
1482
1483 int
1484 f2 (short c, void *ptr, long e)
1485 {
1486   unsigned char *ptr2 = (unsigned char *) ptr;
1487   if (ptr2[[0]] != 0xFB || ptr2[[1]] != 0xFB || ptr2[[1000]] != 0xFB)
1488     exit (1);
1489   if (c != 665 || e != 776776776)
1490     exit (1);
1491   f1 (3.1415, memset (alloca (3001), 0xBF, 3001), -5490);
1492   return 42;
1493 }
1494
1495 int
1496 main (int argc, char *argv[])
1497 {
1498   if (f2 (665, memset (alloca (1001), 0xFB, 1001), 776776776) != 42)
1499     return 1;
1500   return 0;
1501 }
1502 ]])], working_alloca_in_function_calls=yes, working_alloca_in_function_calls=no,
1503 working_alloca_in_function_calls=no)
1504 AC_MSG_RESULT($working_alloca_in_function_calls)
1505 test "$working_alloca_in_function_calls" != "yes" && \
1506   AC_DEFINE([BROKEN_ALLOCA_IN_FUNCTION_CALLS], [1], [Description here!])
1507
1508 AM_CONDITIONAL([NEED_ALLOCA_C], [
1509         test "$working_alloca_in_function_calls" = "yes" && \
1510         test "$need_alloca_c" = "yes"])
1511
1512 dnl Check whether strcoll exists and works correctly. (This does more
1513 dnl than just check for its existence.) If so, it defines HAVE_STRCOLL.
1514 AC_FUNC_STRCOLL
1515
1516 dnl If `getpgrp' takes no argument (the POSIX.1 version), define
1517 dnl `GETPGRP_VOID'.  Otherwise, it is the BSD version, which takes a
1518 dnl process ID as an argument.
1519 AC_CHECK_FUNCS(getpgrp)
1520 AC_FUNC_GETPGRP
1521
1522 dnl We used to call AC_FUNC_MMAP here
1523 dnl Instead we now use following, suggested by Neal Becker
1524 AC_MSG_CHECKING(for working mmap)
1525 case "$opsys" in ultrix* ) have_mmap=no ;; *)
1526 AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
1527 #include <unistd.h>
1528 #include <fcntl.h>
1529 #include <sys/mman.h>
1530
1531 #ifndef MAP_VARIABLE
1532 #define MAP_VARIABLE 0
1533 #endif
1534
1535 #ifndef MAP_FAILED
1536 #define MAP_FAILED -1
1537 #endif
1538
1539 int main (int argc, char *argv[])
1540 {
1541   int fd = -1;
1542   caddr_t p;
1543 #ifndef MAP_ANONYMOUS
1544   fd = open ("/dev/zero", O_RDWR);
1545   if (fd < 0)
1546     return 1;
1547 #define MAP_ANONYMOUS 0
1548 #endif
1549   if (mmap(0, 1024, PROT_READ | PROT_WRITE,
1550            MAP_PRIVATE | MAP_VARIABLE | MAP_ANONYMOUS,
1551            fd, 0) != (void *) MAP_FAILED)
1552     return 0;
1553   perror ("conftest: mmap failed");
1554   return 1;
1555 }]])], have_mmap=yes, have_mmap=no, have_mmap=no) ;;
1556 esac
1557 AC_MSG_RESULT($have_mmap)
1558 test "$have_mmap" = "yes" && AC_DEFINE([HAVE_MMAP], [1], [Description here!])
1559
1560 dnl rel_alloc requires either GNU malloc or system malloc with mmap
1561 dnl We only turn rel_alloc on by default if mmap is available.
1562 test "$GNU_MALLOC" != "yes" -a "$have_mmap" != "yes" && with_rel_alloc=no
1563 if test "$with_rel_alloc $have_mmap" = "default yes"; then
1564         if test "$doug_lea_malloc" = "yes"; then
1565                 dnl Check if malloc() calls mmap(), making rel_alloc pointless.
1566                 AC_MSG_CHECKING(for M_MMAP_THRESHOLD)
1567                 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]],[[
1568 #ifndef M_MMAP_THRESHOLD
1569 #error No M_MMAP_THRESHOLD :-(
1570 !@+$%^&*_)(_ - unlikely to compile...
1571 #endif
1572                         ]])], [
1573                         with_rel_alloc=no
1574                         AC_MSG_RESULT(yes)], [
1575                         with_rel_alloc=yes
1576                         AC_MSG_RESULT(no)])
1577         else
1578                 with_rel_alloc=yes
1579         fi
1580 fi
1581 if test "$with_rel_alloc" = "yes"; then
1582         AC_DEFINE([REL_ALLOC], [1], [Description here!])
1583         SXE_ADD_MEMALLOC_OBJS(ralloc.o)
1584 fi
1585
1586 dnl Check for tests/rminal I/O variants
1587 dnl TERMIOS systems may have termio.h, but not vice-versa, I think.
1588 AC_CHECK_HEADER(termios.h,
1589   AC_DEFINE([HAVE_TERMIOS], [1], [Description here!])
1590   AC_DEFINE([SIGNALS_VIA_CHARACTERS], [1], [Description here!])
1591   AC_DEFINE([NO_TERMIO], [1], [Description here!]),
1592   [AC_CHECK_HEADER(termio.h, [AC_DEFINE([HAVE_TERMIO], [1], [Description here!])])])
1593
1594
1595 dnl Check for directory variants
1596 AC_CHECK_HEADER(dirent.h, [AC_DEFINE([SYSV_SYSTEM_DIR], [1], [Description here!])],
1597   [AC_CHECK_HEADER(sys/dir.h, , [AC_DEFINE([NONSYSTEM_DIR_LIBRARY], [1], [Description here!])])])
1598
1599 dnl check for readdir64_r (the reentrant version of readdir64)
1600 AC_CHECK_FUNC(readdir64_r, [AC_DEFINE([HAVE_LARGEFILE], [1], [Description here!])])
1601
1602 dnl Check for nlist.h
1603 AC_CHECK_HEADER([nlist.h], [AC_DEFINE([NLIST_STRUCT], [1], [Description here!])], [])
1604
1605 dnl firstly check for pthread support so that we can use the 
1606 dnl asynchronous playing routines
1607
1608 dnl special pthread handling 
1609 dnl AIX uses pthreads instead of pthread, and HP/UX uses cma
1610 dnl FreeBSD uses -pthread
1611 AC_CHECK_LIB(pthread, pthread_create)
1612 if test "${ac_cv_lib_pthread_pthread_create}" = "yes"; then
1613         have_threads=yes
1614
1615         SXE_CHECK_COMPILER_FLAGS([-pthreads])
1616         SXE_CHECK_COMPILER_FLAGS([-pthread])
1617         if test "${sxe_cv_c_flags__pthreads}" = "yes"; then
1618                 SXE_PREPEND_UNDUP([-pthreads], [c_switch_site])
1619         fi
1620         if test "${sxe_cv_c_flags__pthread}" = "yes"; then
1621                 SXE_PREPEND_UNDUP([-pthread], [c_switch_site])
1622         fi
1623         SXE_PREPEND([-lpthread], [MM_LIBS])
1624 fi
1625
1626 dnl test for AIX pthreads
1627 AC_CHECK_LIB(pthreads, pthread_create)
1628 if test $ac_cv_lib_pthreads_pthread_create = yes; then
1629   have_threads=yes
1630   SXE_PREPEND(-lpthreads, MM_LIBS)
1631 fi
1632
1633 dnl test for HPUX cma threads. 
1634 AC_CHECK_LIB(cma, pthread_create)
1635 if test $ac_cv_lib_cma_pthread_create = yes; then
1636   have_threads=yes
1637   SXE_PREPEND(-lcma, MM_LIBS)
1638 fi
1639
1640 dnl FreeBSD -pthread check
1641 AC_DEFUN([AC_PTHREAD_FREEBSD],
1642 [AC_MSG_CHECKING([if we need -pthread for threads])
1643 AC_CACHE_VAL(ac_cv_ldflag_pthread,
1644         [ac_save_ld_switch_site="$ld_switch_site"
1645         ld_switch_site="-pthread $ld_switch_site"
1646         AC_LINK_IFELSE([AC_LANG_PROGRAM([[char pthread_create();]],
1647         [[char pthread_create();]])],
1648         eval "ac_cv_ldflag_pthread=yes",
1649         eval "ac_cv_ldflag_pthread=no"),
1650         ld_switch_site="$ac_save_ld_switch_site"
1651 ])
1652 if eval "test \"`echo $ac_cv_ldflag_pthread`\" = yes"; then
1653         AC_MSG_RESULT(yes)
1654         have_threads=yes
1655         SXE_PREPEND_UNDUP("-pthread", ld_switch_site)
1656         SXE_PREPEND_UNDUP("-D_THREAD_SAFE", c_switch_site)
1657 else
1658         AC_MSG_RESULT(no)
1659 fi])
1660
1661 dnl If all other thread tests fail, try BSD's -pthread
1662 if test "$have_threads" != yes; then
1663   AC_PTHREAD_FREEBSD
1664 fi
1665
1666 if test "$have_threads" = yes; then
1667   AC_DEFINE([HAVE_THREADS], [1], [Description here!])
1668 fi
1669
1670
1671 ## Internal Options
1672 ## ================
1673
1674 echo
1675 echo "Internal Options"
1676 echo "================"
1677
1678 SXE_CHECK_LIBTOOL
1679 SXE_CHECK_LIBLTDL
1680
1681 dnl ----------------------------------------------------------------
1682 dnl Check for POSIX functions.
1683 dnl ----------------------------------------------------------------
1684
1685 SXE_CHECK_BASIC_FUNS
1686 AC_CHECK_FUNCS([alarm cbrt closedir dup2 eaccess endpwent floor fmod fpathconf frexp fsync ftime ftruncate getaddrinfo getcwd gethostbyname gethostname getnameinfo getpagesize getrlimit gettimeofday getwd isascii link logb lrand48 matherr memchr memmove memset mkdir mktime munmap perror poll pow putenv random re_comp readlink regcomp rename res_init rint rmdir select setitimer setlocale setpgid setsid sigblock sighold sigprocmask snprintf socket sqrt stpcpy strcasecmp strchr strdup strerror strlwr strrchr strspn strtol strupr symlink tzset ulimit umask uname usleep utime vlimit vsnprintf waitpid wcscmp wcslen])
1687
1688
1689 ## combines all these time structures and funs
1690 SXE_CHECK_METRONOME
1691 SXE_CHECK_SUFFICIENCY([metronome], [metronome])
1692
1693 ## check for a sane dirname/realpath
1694 SXE_CHECK_DIRNAME
1695 SXE_CHECK_REALPATH
1696
1697 dnl -----------------------------------
1698 dnl Do some misc autoconf-special tests
1699 dnl -----------------------------------
1700
1701 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
1702 dnl Assume not, until told otherwise.
1703 GNU_MALLOC=yes
1704 if test "$with_dlmalloc" != "no"; then
1705         doug_lea_malloc=yes
1706 else
1707         doug_lea_malloc=no
1708 fi
1709 after_morecore_hook_exists=yes
1710 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1711 AC_MSG_CHECKING(whether __after_morecore_hook exists)
1712 AC_LINK_IFELSE([AC_LANG_SOURCE([[extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0]])],
1713   [AC_MSG_RESULT(yes)],
1714   [AC_MSG_RESULT(no)
1715    after_morecore_hook_exists=no])
1716 if test "$system_malloc" = "yes" ; then
1717   GNU_MALLOC=no
1718   GNU_MALLOC_reason="
1719     - The GNU allocators don't work with this system configuration."
1720 elif test "$with_system_malloc" = "yes" ; then
1721   GNU_MALLOC=no
1722   GNU_MALLOC_reason="
1723     - User chose not to use GNU allocators."
1724 elif test "$with_debug_malloc" = "yes" ; then
1725   GNU_MALLOC=no
1726   GNU_MALLOC_reason="
1727     - User chose to use Debugging Malloc."
1728 fi
1729
1730 if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then
1731         GNU_MALLOC_reason="
1732     - Using Doug Lea's new malloc from the GNU C Library."
1733         AC_DEFINE([DOUG_LEA_MALLOC], [1], [Description here!])
1734         if test "$after_morecore_hook_exists" = "no" ; then
1735                 GNU_MALLOC_reason="
1736     - Using Doug Lea's new malloc from the Linux C Library."
1737         AC_DEFINE([_NO_MALLOC_WARNING_], [1], [Description here!])
1738         fi
1739 fi
1740 AM_CONDITIONAL([USE_MEMALLOC], [test -n "${libmemalloc_objs}"])
1741
1742 dnl #### mcheck is broken in all versions of Linux libc and glibc.
1743 dnl Try this again when 2.1 hits the streets.
1744 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
1745 have_libmcheck=no
1746 if test "$with_error_checking_malloc" = "yes" -a \
1747    "$have_glibc" = "yes" -a \
1748    "$doug_lea_malloc" = "yes"; then
1749         AC_CHECK_HEADERS(mcheck.h)
1750         AC_CHECK_LIB(mcheck, mcheck, [have_libmcheck=yes], [have_libmcheck=no])
1751 fi
1752
1753 if test "$with_module_support" != "no"; then
1754         AS_MESSAGE([checking for module support])
1755         if test "$sxe_cv_feat_libltdl" = "yes"; then
1756                 have_module_support="yes"
1757                 with_module_support="yes"
1758                 SXE_ADD_CRUFT_OBJS([emodules-ng.o])
1759                 AC_DEFINE([HAVE_EMODULES], [1], [Whether emods would be available])
1760                 AC_DEFINE([WITH_EMODULES], [1], [Whether emods shall be available])
1761         else
1762                 have_module_support="no"
1763                 AC_DEFINE([WITH_EMODULES], [1], [Whether emods shall be available])
1764         fi
1765 fi
1766
1767 AM_CONDITIONAL([DESCEND_MODULES],
1768         [test "$with_module_support $have_module_support" = "yes yes"])
1769 if test "$with_module_support $have_module_support" = "yes"; then
1770         SXE_APPEND([src], [MAKE_SUBDIR])
1771         SXE_APPEND([src], [INSTALL_ARCH_DEP_SUBDIR])
1772         SXE_APPEND([modules], [MAKE_AM_SUBDIR])
1773         SXE_APPEND([modules], [SRC_SUBDIR_DEPS])
1774 dnl else
1775 dnl     MOD_CC="$SXEMACS_CC"
1776 dnl     MODCFLAGS="\$(SXE_CFLAGS) -I../../src -I\$(sxe_srcdir)/../../src"
1777 dnl     INSTALLPATH=""
1778 dnl     MOD_INSTALL_PROGRAM="true"
1779 dnl     OBJECT_TO_BUILD="\$(MODNAME).o"
1780 fi
1781
1782 if test "$opsys" != "darwin"; then
1783
1784         if test "$with_modules_ase" = "yes"; then
1785                 have_modules_ase=yes
1786         fi
1787         if test "$with_static_modules_ase" = "yes"; then
1788                 have_static_modules_ase=yes
1789         fi
1790 fi
1791 SXE_EMOD_STATMOD([ase])
1792 if test "$opsys" != "darwin"; then
1793         have_ase_cart="yes"
1794         have_ase_dig="yes"
1795         have_ase_intv="yes"
1796         have_ase_metric="yes"
1797         have_ase_nbhood="yes"
1798         have_ase_perm="yes"
1799         have_ase_resclass="yes"
1800 fi
1801 if test "$have_bison" = "yes"; then
1802         if test "$with_modules_cl" = "yes" ; then
1803                 have_modules_cl="yes"
1804         fi
1805         if test "$with_static_modules_cl" = "yes"; then
1806                 have_static_modules_cl="yes"
1807         fi
1808 else
1809         if test "$with_modules_cl" = "yes" -o "$with_static_modules_cl" = "yes"; then
1810                 AC_MSG_WARN([Sorry no bison means no cl module for you.])
1811         fi
1812 fi
1813 SXE_EMOD_STATMOD([cl])
1814
1815 AM_CONDITIONAL([AUTARKIC], [test "0" = "1"])
1816 MODARCHDIR=
1817 MAKE_DOCFILE="$sxe_blddir/lib-src/make-docfile"
1818 ELLMAKEDOC=$MAKE_DOCFILE
1819 ELLCC=$MOD_CC
1820 AC_SUBST(ELLCC)
1821 AC_SUBST(ELLMAKEDOC)
1822 AC_SUBST(with_modules, $with_modules)
1823 AC_SUBST(MOD_CC)
1824 AC_SUBST(MODARCHDIR)
1825 AC_SUBST(MAKE_DOCFILE)
1826 AC_SUBST(MODCFLAGS)
1827 AC_SUBST(INSTALLPATH)
1828 AC_SUBST(MOD_INSTALL_PROGRAM)
1829 AC_SUBST(OBJECT_TO_BUILD)
1830 SXE_SUBST_STATMOD_A
1831
1832 ## FFI support
1833 SXE_CHECK_FFI
1834 SXE_CHECK_SUFFICIENCY([ffi], [FFI support], [
1835         ## additional actions
1836         AC_DEFINE([HAVE_LIBFFI], [1], [Description here!])
1837         HAVE_LIBFFI=yes
1838         FFI_LIBS="-lffi"
1839         SXE_ADD_CRUFT_OBJS([effi.o])
1840 ])
1841
1842 ## ENT support
1843 SXE_CHECK_ENT
1844
1845 ## check for pseudo gaussian numbers
1846 AC_MSG_CHECKING([for pseug (gaussian numbers)])
1847 if test "$sxe_cv_feat_gmp" = "yes"; then
1848         ## the good case
1849         AC_DEFINE([HAVE_PSEUG], [1], [Whether we COULD do gaussian numbers!])
1850         sxe_cv_feat_pseug="yes"
1851 else
1852         sxe_cv_feat_pseug="no"
1853 fi
1854 AC_MSG_RESULT([$sxe_cv_feat_pseug])
1855
1856 ## check for pseudo complex numbers
1857 AC_MSG_CHECKING([for pseuc (pseudo complex numbers)])
1858 if test "$sxe_cv_feat_mpfr" = "yes"; then
1859         ## the good case
1860         AC_DEFINE([HAVE_PSEUC], [1], [Whether we COULD do complex numbers!])
1861         sxe_cv_feat_pseuc="yes"
1862 else
1863         sxe_cv_feat_pseuc="no"
1864 fi
1865 AC_MSG_RESULT([$sxe_cv_feat_pseuc])
1866
1867 ## check for pseudo quaternions
1868 AC_MSG_CHECKING([for quatern (quaternion numbers)])
1869 if test "$sxe_cv_feat_gmp" = "yes"; then
1870         ## the good case
1871         AC_DEFINE([HAVE_QUATERN], [1], [Whether we COULD do quaternions!])
1872         sxe_cv_feat_quatern="yes"
1873 else
1874         sxe_cv_feat_quatern="no"
1875 fi
1876 AC_MSG_RESULT([$sxe_cv_feat_quatern])
1877
1878
1879 ## go through what the PH^Wuser has specified
1880 ## it's a wee bit more complex, so let's go for it
1881 ## we use a dijkstra-if
1882 ent_dijkstra="$with_ent_gmp $sxe_cv_feat_gmp"
1883 if test "$ent_dijkstra" = "yes yes"; then
1884         AC_DEFINE([WITH_GMP], [1], [Whether GMP support was desired!])
1885         SXE_PREPEND([$GMP_LIBS], [ENT_LIBS])
1886         SXE_ADD_ENT_OBJS([ent-gmp.o])
1887         have_ent_gmp="yes"
1888 elif test "$ent_dijkstra" = "yes no"; then
1889         ## pity, we wanted GMP but we dont have it
1890         AC_DEFINE([WITH_GMP], [1], [Whether GMP support was desired!])
1891         have_ent_gmp="no"
1892 elif test "$ent_dijkstra" = "no yes"; then
1893         ## we didn't want GMP but we have it
1894         ## do nothing in that case
1895         have_ent_gmp="no"
1896 elif test "$ent_dijkstra" = "no no"; then
1897         ## great, we didnt opt for GMP and we're lucky, it's not there either
1898         have_ent_gmp="no"
1899 fi
1900
1901 ## evaluate mpfr results
1902 ent_dijkstra="$with_ent_mpfr $sxe_cv_feat_mpfr"
1903 if test "$ent_dijkstra" = "yes yes"; then
1904         ## the good case
1905         AC_DEFINE([WITH_MPFR], [1], [Description here!])
1906         SXE_PREPEND([$MPFR_LIBS], [ENT_LIBS])
1907         SXE_ADD_ENT_OBJS([ent-mpfr.o])
1908         have_ent_mpfr="yes"
1909 elif test "$ent_dijkstra" = "yes no"; then
1910         ## we want but can't have
1911         AC_DEFINE([WITH_MPFR], [1], [Description here!])
1912         have_ent_mpfr="no"
1913 elif test "$ent_dijkstra" = "no yes"; then
1914         have_ent_mpfr="no"
1915 elif test "$ent_dijkstra" = "no no"; then
1916         have_ent_mpfr="no"
1917 fi
1918
1919
1920 ## whether to enable gaussian numbers
1921 ent_dijkstra="$with_ent_pseug $sxe_cv_feat_pseug"
1922 if test "$ent_dijkstra" = "yes yes"; then
1923         ## perfick
1924         AC_DEFINE([WITH_PSEUG], [1], [Description here!])
1925         SXE_PREPEND([$GMP_LIBS], [ENT_LIBS])
1926         SXE_ADD_ENT_OBJS([ent-gaussian.o])
1927         have_ent_pseug="yes"
1928 elif test "$ent_dijkstra" = "yes no"; then
1929         ## grrrr
1930         AC_DEFINE([WITH_PSEUG], [1], [Description here!])
1931         have_ent_pseug="no"
1932 elif test "$ent_dijkstra" = "no yes"; then
1933         have_ent_pseug="no"
1934 elif test "$ent_dijkstra" = "no no"; then
1935         have_ent_pseug="no"
1936 fi
1937
1938 ## whether to enable emulated complex numbers
1939 ent_dijkstra="$with_ent_pseuc $sxe_cv_feat_pseuc $with_ent_mpc $sxe_cv_feat_mpc"
1940 if test "$ent_dijkstra" = "yes yes yes yes"; then
1941         ## skip pseuc usage
1942         have_ent_pseuc="veto"
1943         AC_DEFINE([WITH_PSEUC], [1], [Description here!])
1944         AS_MESSAGE([ENT: Built-in support for complex numbers available, dnl
1945 but omitted in favour of MPC.])
1946         omit_ent_pseuc_in_favour_of="mpc"
1947         ## set up to use plain mpc
1948         AC_DEFINE([WITH_MPC], [1], [Description here!])
1949         SXE_PREPEND([$MPC_LIBS], [ENT_LIBS])
1950         SXE_ADD_ENT_OBJS([ent-mpc.o])
1951         have_ent_mpc="yes"
1952 elif test "$ent_dijkstra" = "yes yes yes no"; then
1953         ## user planned to use mpc, hasnt got it though
1954         ## now he's cursed with pseudo complex numbers :)
1955         AC_DEFINE([WITH_PSEUC], [1], [Description here!])
1956         have_ent_pseuc="yes"
1957         SXE_PREPEND([$MPFR_LIBS], [ENT_LIBS])
1958         SXE_ADD_ENT_OBJS([ent-pseumpc.o])
1959         ## we want mpc but can't have, set up that
1960         AC_DEFINE([WITH_MPC], [1], [Description here!])
1961         have_ent_mpc="no"
1962 elif test "$ent_dijkstra" = "yes yes no yes"; then
1963         ## user coulda used mpc but disabled it for whatever reasons ... Wait!
1964         ## Horst, is that you?!
1965         AC_DEFINE([WITH_PSEUC], [1], [Description here!])
1966         AS_MESSAGE([ENT: dnl
1967 MPC support for complex numbers IS possible, however YOU think you want dnl
1968 the built-in emulated stuff?  Seriously?  Good, so be it!])
1969         SXE_PREPEND([$MPFR_LIBS], [ENT_LIBS])
1970         SXE_ADD_ENT_OBJS([ent-pseumpc.o])
1971         have_ent_pseuc="yes"
1972         omit_ent_mpc_in_favour_of="pseuc"
1973         ## however brag that we have mpc
1974         have_ent_mpc="yes"
1975 elif test "$ent_dijkstra" = "yes yes no no"; then
1976         AC_DEFINE([WITH_PSEUC], [1], [Description here!])
1977         have_ent_pseuc="yes"
1978         SXE_PREPEND([$MPFR_LIBS], [ENT_LIBS])
1979         SXE_ADD_ENT_OBJS([ent-pseumpc.o])
1980         have_ent_mpc="no"
1981 elif test "$with_ent_pseuc $sxe_cv_feat_pseuc" = "yes no"; then
1982         AC_DEFINE([WITH_PSEUC], [1], [Description here!])
1983         have_ent_pseuc="no"
1984 elif test "$with_ent_pseuc $sxe_cv_feat_pseuc" = "no yes"; then
1985         have_ent_pseuc="no"
1986 elif test "$with_ent_pseuc $sxe_cv_feat_pseuc" = "no no"; then
1987         have_ent_pseuc="no"
1988 fi
1989
1990 ## whether to enable gaussian numbers
1991 ent_dijkstra="$with_ent_quatern $sxe_cv_feat_quatern"
1992 if test "$ent_dijkstra" = "yes yes"; then
1993         ## perfick
1994         AC_DEFINE([WITH_QUATERN], [1], [Description here!])
1995         SXE_PREPEND([$GMP_LIBS], [ENT_LIBS])
1996         SXE_ADD_ENT_OBJS([ent-quatern.o])
1997         have_ent_quatern="yes"
1998 elif test "$ent_dijkstra" = "yes no"; then
1999         ## grrrr
2000         AC_DEFINE([WITH_QUATERN], [1], [Description here!])
2001         have_ent_quatern="no"
2002 elif test "$ent_dijkstra" = "no yes"; then
2003         have_ent_quatern="no"
2004 elif test "$ent_dijkstra" = "no no"; then
2005         have_ent_quatern="no"
2006 fi
2007
2008 ## elliptic curve support
2009 ent_dijkstra="$with_ent_ecm $sxe_cv_feat_ecm"
2010 if test "$ent_dijkstra" = "yes yes"; then
2011         ## perfick case
2012         AC_DEFINE([WITH_ECM], [1], [Description here!])
2013         SXE_PREPEND([$ECM_LIBS], [ENT_LIBS])
2014         SXE_ADD_ENT_OBJS([ent-ecm.o])
2015         have_ent_ecm="yes"
2016 elif test "$ent_dijkstra" = "no yes"; then
2017         have_ent_ecm="no"
2018 elif test "$ent_dijkstra" = "yes no"; then
2019         AC_DEFINE([WITH_ECM], [1], [Description here!])
2020         have_ent_ecm="no"
2021 elif test "$ent_dijkstra" = "no no"; then
2022         have_ent_ecm="no"
2023 fi
2024
2025
2026 ## Floating operation support is now unconditional
2027 SXE_CHECK_MATHS_VALUES
2028 if test "$ac_cv_sizeof_long_double" != 0; then
2029         ##AC_DEFINE_UNQUOTED([fpfloat], [long double], [Description here!])
2030         ##AC_DEFINE([fpfloat_long_double_p], [1], [Description here!])
2031         fpfloat="long double"
2032         fpfloat_long_double_p=1
2033         have_fpfloat=yes
2034 elif test "$ac_cv_sizeof_double" != 0; then
2035         ##AC_DEFINE_UNQUOTED([fpfloat], [double], [Description here!])
2036         ##AC_DEFINE([fpfloat_double_p], [1], [Description here!])
2037         fpfloat="double"
2038         fpfloat_double_p=1
2039         have_fpfloat=yes
2040 else
2041         AS_MESSAGE([Uh oh, no float type is bad news.])
2042         have_fpfloat=no
2043 fi
2044
2045 AC_MSG_CHECKING([if need to add -lm])
2046 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2047 #include <math.h>
2048 ]],[[
2049 return sin(0.0);
2050 ]])], [AC_MSG_RESULT([no])], [
2051         AC_MSG_RESULT([maybe])
2052         save_LIBS=$LIBS
2053         SXE_APPEND([-lm], [LIBS])
2054         AC_MSG_CHECKING([if can add -lm])
2055         AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2056 #include <math.h>
2057 ]],[[
2058 return sin(0.0);
2059 ]])], [AC_MSG_RESULT([yes])], [
2060         AC_MSG_RESULT([no])
2061         AC_MSG_WARN([No way to use math functions found. Reverting option append.])
2062         LIBS=$save_LIBS])])
2063
2064
2065
2066 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
2067 #include <math.h>
2068 ]],[[
2069 return atanh(1.0) + asinh(1.0) + acosh(1.0);
2070 ]])], [AC_DEFINE([HAVE_INVERSE_HYPERBOLIC], [1], [Description here!])])
2071
2072 if test "$have_fpfloat" = "yes"; then
2073         AC_DEFINE([HAVE_FPFLOAT], [1], [Description here!])
2074
2075         SXE_CHECK_CLEAN_FLOATOPS(
2076                 [have_clean_floatops="yes"], [have_clean_floatops="no"])
2077
2078         ## it would seem odd to define the destiny of our float arithmetic here
2079         if test "$have_clean_floatops" = "yes"; then
2080                 AC_DEFINE_UNQUOTED([fpfloat], [$fpfloat], [Description here!])
2081                 AC_DEFINE_UNQUOTED([fpfloat_long_double_p],
2082                         [${fpfloat_long_double_p:-0}], [Description here!])
2083                 AC_DEFINE_UNQUOTED([fpfloat_double_p],
2084                         [${fpfloat_double_p:-0}], [Description here!])
2085         else
2086                 AS_MESSAGE([downgrading to `double' floats])
2087                 AC_DEFINE_UNQUOTED([fpfloat], [double], [Description here!])
2088                 AC_DEFINE_UNQUOTED([fpfloat_long_double_p],
2089                         [0], [Description here!])
2090                 AC_DEFINE([fpfloat_double_p],
2091                         [1], [Description here!])
2092         fi
2093 fi
2094
2095 ## trivial checks, you cannot (yet) turn off internal arithmetic entirely
2096 ## so we always `have' it
2097 dnl with_ent_int=yes
2098 have_ent_int=yes
2099 dnl with_ent_indef=yes
2100 have_ent_indef=yes
2101 dnl with_ent_fpfloat=yes
2102 have_ent_fpfloat=yes
2103 dnl we attempt to always use ent.o
2104 AC_DEFINE([WITH_NUMBER_TYPES], [1], [Description here!])
2105 SXE_SUBST_ENT_OBJS
2106
2107 dnl experimental code support
2108 if test "$with_experimental_features_compre" = "yes"; then
2109         AC_MSG_CHECKING([if compre prerequisites are met])
2110         AC_MSG_RESULT([yes])
2111         AC_DEFINE([EF_USE_COMPRE], [1],
2112                 [Whether to provide compiled regular expression!])
2113         have_experimental_features_compre=yes
2114 fi
2115 if test "$with_experimental_features_pom" = "yes"; then
2116         AC_MSG_CHECKING([if pom prerequisites are met])
2117         if test "$have_threads" = "yes"; then
2118                 AC_MSG_RESULT([yes])
2119                 AC_DEFINE([EF_USE_POM], [1],
2120                         [Whether to protect all lisp objects with mutexes!])
2121                 have_experimental_features_pom=yes
2122         else
2123                 AC_MSG_RESULT([no])
2124         fi
2125 fi
2126 if test "$with_experimental_features_asyneq" = "yes"; then
2127         AC_MSG_CHECKING([if asyneq prerequisites are met])
2128         if test "$have_threads" = "yes"; then
2129                 AC_MSG_RESULT([yes])
2130                 AC_DEFINE([EF_USE_ASYNEQ], [1],
2131                         [Whether to setup asynchronous event queues!])
2132                 have_experimental_features_asyneq=yes
2133                 SXE_ADD_EVENTS_OBJS([event-queue.o workers.o worker-asyneq.o])
2134         else
2135                 AC_MSG_RESULT([no])
2136         fi
2137 fi
2138 SXE_SUBST_EVENTS_OBJS
2139
2140 SXE_CHECK_EVENTS
2141 SXE_CHECK_SUFFICIENCY([events], [event system])
2142
2143 ## check asm helpers
2144 SXE_CHECK_ASM_HELPERS
2145
2146 ## compression titbits
2147 SXE_CHECK_ZLIB
2148 SXE_CHECK_BZLIB
2149 SXE_CHECK_LZMA
2150
2151
2152 ## Cryptography Options
2153 ## ====================
2154 echo
2155 echo "Cryptography Options"
2156 echo "===================="
2157
2158 ## in case someone else (ldap, pgsql, etc.) needs it
2159 SXE_CHECK_OPENSSL
2160 SXE_CHECK_SUFFICIENCY([openssl], [OpenSSL support])
2161
2162 dnl OpenSSL
2163 if test "$with_openssl" != "no" -a "$have_openssl" = "yes"; then
2164         SXE_ADD_CRUFT_OBJS([openssl.o])
2165 elif test "$with_openssl" != "no"; then
2166         AC_MSG_WARN([Required OpenSSL support cannot be provided.])
2167         AC_MSG_WARN([Check --with-site-prefixes.])
2168 fi
2169 if test "$have_openssl" = "no" -o "$with_openssl" = "no"; then
2170         OPENSSL_CPPFLAGS=""
2171         OPENSSL_LDFLAGS=""
2172         OPENSSL_LIBS=""
2173 fi
2174 AC_SUBST([OPENSSL_CPPFLAGS])
2175 AC_SUBST([OPENSSL_LDFLAGS])
2176 AC_SUBST([OPENSSL_LIBS])
2177
2178 SXE_CHECK_KERBEROS
2179 SXE_CHECK_KERBEROS5
2180 if test "$with_kerberos" = "yes"; then
2181         AC_DEFINE([WITH_KERBEROS], [1], [Whether kerberos support was requested])
2182         if test "$sxe_cv_feat_kerberos" = "yes"; then
2183                 SXE_PREPEND([$KERBEROS_LIBS], [ld_libs_general])
2184         fi
2185 fi
2186
2187
2188 ## Networking Options
2189 ## ==================
2190 echo
2191 echo "Networking Options"
2192 echo "=================="
2193
2194 SXE_CHECK_SOCKETS
2195 SXE_CHECK_SUFFICIENCY([unix], [unix domain sockets])
2196 SXE_CHECK_SUFFICIENCY([sysvipc], [SysV IPC message])
2197 SXE_CHECK_SUFFICIENCY([sockets], [tcp/udp sockets])
2198 SXE_CHECK_SUFFICIENCY([tcpudp], [tcp/udp sockets])
2199 SXE_CHECK_SUFFICIENCY([multicast], [multicast])
2200
2201 dnl Decnet
2202 if test "$with_dnet" = "yes"; then
2203   AC_CHECK_LIB(dnet, main, 
2204     [AC_DEFINE([HAVE_LIBDNET], [1], [Description here!])],
2205     [SXE_DIE("DECnet requested but can't find libdnet")])
2206 fi
2207
2208 dnl Socks support
2209 if test "$with_socks" = "yes"; then
2210   AC_CHECK_LIB(socks, SOCKSinit)
2211   test -n "$ac_cv_lib_socks_SOCKSinit" && AC_DEFINE([HAVE_SOCKS], [1], [Description here!])
2212 fi
2213
2214
2215 ## Window System Features
2216 ## ======================
2217 echo
2218 echo "Window System Features"
2219 echo "======================"
2220
2221 dnl ----------------------
2222 dnl Choose a window system
2223 dnl ----------------------
2224
2225 AS_MESSAGE([checking for specified window system])
2226
2227 dnl Autodetection of Gdk libraries and includes
2228 dnl -------------------------------------------
2229 dnl On some systems (FreeBSD springs to mind), they use
2230 dnl versions on the utility routines, so instead of gtk-config
2231 dnl you must use gtk12-config, etc, etc.
2232
2233 GNOME_CONFIG=no
2234 GTK_CONFIG=no
2235
2236 if test "$with_gnome" != "no"; then
2237    AC_MSG_CHECKING(for GNOME configuration script)
2238    for possible in gnome-config
2239    do
2240       possible_version=`${possible} --version 2> /dev/null`
2241       if test "x${possible_version}" != "x"; then
2242               GNOME_CONFIG="${possible}"
2243               with_gnome=yes
2244               with_gtk=yes
2245               break
2246       fi
2247    done
2248    AC_MSG_RESULT([${GNOME_CONFIG}])
2249 fi
2250
2251 if test "${GNOME_CONFIG}" != "no"; then
2252       GNOME_LIBS=`${GNOME_CONFIG} --libs gnomeui`
2253       GNOME_CFLAGS=`${GNOME_CONFIG} --cflags gnomeui`
2254       AC_DEFINE([HAVE_GNOME], [1], [Description here!])
2255       SXE_APPEND(${GNOME_LIBS}, libs_gtk)
2256       SXE_APPEND_UNDUP(${GNOME_CFLAGS}, c_switch_gtk)
2257 fi
2258
2259 if test "$with_gtk" != "no";then
2260    AC_MSG_CHECKING(for GTK configuration script)
2261    for possible in gtk12-config gtk14-config gtk-config
2262    do
2263       possible_version=`${possible} --version 2> /dev/null`
2264       if test "x${possible_version}" != "x"; then
2265               GTK_CONFIG="${possible}"
2266               case "${possible_version}" in
2267                 1.0.*) AC_MSG_WARN([GTK 1.2 is required, please upgrade your version of GTK.]); with_gtk=no;;
2268                 1.3.*) AC_MSG_WARN([GTK 1.3 is not supported right now]); with_gtk=no;;
2269                 1.2.*)
2270                         with_gtk=yes
2271                         break
2272                         ;;
2273                 *)     AC_MSG_WARN([Found unsupported version of GTK: $possible_version]);;
2274               esac
2275       fi
2276    done
2277    AC_MSG_RESULT([${GTK_CONFIG}])
2278 fi
2279
2280 if test "${GTK_CONFIG}" != "no"; then
2281       AC_MSG_CHECKING(gtk version)
2282       GTK_VERSION=`${GTK_CONFIG} --version`
2283       AC_MSG_RESULT(${GTK_VERSION})
2284
2285       AC_MSG_CHECKING(gtk libs)
2286       GTK_LIBS=`${GTK_CONFIG} --libs`
2287       SXE_APPEND(${GTK_LIBS}, libs_gtk)
2288       AC_MSG_RESULT(${GTK_LIBS})
2289
2290       AC_MSG_CHECKING(gtk cflags)
2291       GTK_CFLAGS=`${GTK_CONFIG} --cflags`
2292       if test "$GCC" = "yes"; then
2293         GTK_CFLAGS="${GTK_CFLAGS} -Wno-shadow"
2294       fi
2295       SXE_APPEND_UNDUP(${GTK_CFLAGS}, c_switch_gtk)
2296       AC_MSG_RESULT(${GTK_CFLAGS})
2297
2298       AC_CHECK_LIB(gdk_imlib, main, SXE_PREPEND(-lgdk_imlib, libs_gtk))
2299       AC_CHECK_LIB(Imlib, Imlib_init, SXE_APPEND(-lImlib, libs_gtk))
2300       AC_CHECK_FUNCS(gdk_imlib_init)
2301
2302       AC_DEFINE([HAVE_XPM], [1], [Description here!])
2303       AC_DEFINE([HAVE_GTK], [1], [Description here!])
2304       AC_SUBST(GTK_CONFIG)
2305
2306       window_system=gtk
2307       with_gtk=yes
2308       if test "$with_x11" != "no"; then
2309         AC_MSG_WARN([Configuring Gtk, this means:
2310 *** --with-athena  will have no effect
2311 *** --with-scrollbars  has been turned into a boolean option
2312 *** --with-menubars  has been turned into a boolean option
2313 *** --with-dialogs  has been turned into a boolean option
2314 *** --with-widgets  has been turned into a boolean option.])
2315         with_x11=no
2316       fi
2317
2318       test "${with_scrollbars}" != "no" && with_scrollbars=gtk
2319       test "${with_toolbars}" != "no" && with_toolbars=gtk
2320       test "${with_menubars}" != "no" && with_menubars=gtk
2321       test "${with_dialogs}" != "no" && with_dialogs=gtk
2322       test "${with_widgets}" != "no" && with_widgets=gtk
2323
2324       SXE_ADD_SXEUIGTK_OBJS(console-gtk.o device-gtk.o event-gtk.o frame-gtk.o)
2325       SXE_ADD_SXEUIGTK_OBJS(objects-gtk.o redisplay-gtk.o glyphs-gtk.o)
2326       SXE_ADD_SXEUIGTK_OBJS(select-gtk.o gccache-gtk.o)
2327       SXE_ADD_SXEUIGTK_OBJS(gtk-xemacs.o ui-gtk.o)
2328
2329       dnl Check for libglade support (it rocks)
2330       OLD_CFLAGS="${CFLAGS}"
2331       OLD_CPPFLAGS="${CPPFLAGS}"
2332       OLD_LDFLAGS="${LDFLAGS}"
2333       CFLAGS="${GTK_CFLAGS} ${CFLAGS}"
2334       CPPFLAGS="${GTK_CFLAGS} ${CFLAGS}"
2335       LDFLAGS="${LDFLAGS} ${GTK_LIBS}"
2336       AC_CHECK_HEADERS(glade/glade.h glade.h)
2337       AC_CHECK_LIB(xml, main, SXE_PREPEND(-lxml, libs_gtk))
2338       AC_CHECK_LIB(glade, main, SXE_PREPEND(-lglade, libs_gtk))
2339       AC_CHECK_LIB(glade-gnome, main, SXE_PREPEND(-lglade-gnome, libs_gtk))
2340       AC_EGREP_HEADER([char \*txtdomain;], [glade/glade-xml.h],
2341                       [AC_MSG_RESULT(yes)
2342                        AC_DEFINE([LIBGLADE_XML_TXTDOMAIN], [1], [Description here!])],
2343                       [AC_MSG_RESULT(no)])
2344       CFLAGS="${OLD_CFLAGS}"
2345       CPPFLAGS="${OLD_CPPFLAGS}"
2346       LDFLAGS="${OLD_LDFLAGS}"
2347 fi
2348
2349 dnl We may eventually prefer gtk/gdk over vanilla X11...
2350 dnl Are we mad? We need stuff from the X11 even _with_ gtk!!!
2351
2352 if test "$with_x" != "no"; then
2353         if test "$with_x11" != "no"; then
2354                 dnl User-specified --x-includes or --x-libraries implies --with-x11.
2355                 test "$x_includes $x_libraries" != "NONE NONE" && \
2356                         window_system=x11
2357                         with_x11=yes
2358         fi
2359
2360         dnl Autodetection of X11 libraries and includes
2361         dnl -------------------------------------------
2362         dnl AC_PATH_XTRA thinks it can find our X headers and includes, but
2363         dnl it often gets it wrong, so we only use it as a last resort.
2364         
2365         dnl $OPENWINHOME implies --x-includes and --x-libraries
2366         dnl Not (yet) handled by autoconf2
2367         if test "$x_includes $x_libraries" = "NONE NONE" \
2368                 -a -n "$OPENWINHOME" \
2369                 -a "$OPENWINHOME" != "/usr/openwin" \
2370                 -a -d "$OPENWINHOME"; then
2371                 test -d "$OPENWINHOME/lib"           && \
2372                         x_libraries="$OPENWINHOME/lib"
2373                 test -d "$OPENWINHOME/include"       && \
2374                         x_includes="$OPENWINHOME/include"
2375                 test -d "$OPENWINHOME/share/include" && \
2376                         x_includes="$OPENWINHOME/share/include"
2377         fi
2378
2379         if test -z "$x_includes" -o \
2380            "$x_includes" = "NONE" -o \
2381            ! -d "$x_includes"; then
2382                 dnl AC_PATH_XTRA often guesses /usr/include, when some other
2383                 dnl include directory is a MUCH better guess (Linux, HP-UX 10.20).
2384                 dnl This is a workaround for idiot (esp. HP) system vendors, who
2385                 dnl provide a /usr/include/X11, but DON'T FULLY POPULATE IT.
2386                 for dir in "/usr/X11" "/usr/X11R7" "/usr/X11R6" \
2387                         "/usr/local" "/usr"; do
2388                         if test -d "$dir/include/X11"; then
2389                                 x_includes="$dir/include"
2390                                 break
2391                         fi
2392                 done
2393         fi
2394
2395         if test -z "$x_libraries" -o \
2396            "$x_libraries" = "NONE" -o \
2397            ! -d "$x_libraries"; then
2398                 for dir in \
2399                         "/usr/X11/lib" \
2400                         "/usr/X11R7/lib" "/usr/lib/X11R7" \
2401                         "/usr/X11R6/lib" "/usr/lib/X11R6" \
2402                         "/usr/local/lib" "/usr/local/lib/X11" \
2403                         "/usr/lib" "/usr/lib/X11"; do
2404                         if test -r "$dir/libX11.a"; then
2405                                 x_libraries="$dir"
2406                                 break
2407                         fi
2408                 done
2409         fi
2410
2411         AC_PATH_XTRA
2412         ## Autoconf claims to find X library and include dirs for us.
2413         ## dnl encapsulate that, such that Xaw and motif is not used when gtk is
2414         ## in effect
2415         if test "$with_x11" != "no"; then
2416                 if test "$no_x" = "yes"; then
2417                         with_x11=no
2418                         window_system=none
2419                         HAVE_X_WINDOWS=no
2420                 else
2421                         with_x11=yes
2422                         window_system=x11
2423                         HAVE_X_WINDOWS=yes
2424                 fi
2425         fi
2426 fi
2427
2428 dnl #### wmperry:: !x11 != NONE
2429 dnl case "$with_x11" in
2430 dnl  yes ) window_system=x11  HAVE_X_WINDOWS=yes ;;
2431 dnl  no  ) window_system=none HAVE_X_WINDOWS=no  ;;
2432 dnl esac
2433
2434 AM_CONDITIONAL([DESCEND_LWLIB], [test "$with_x11" = "yes"])
2435 if test "$with_x11" = "yes"; then
2436         AC_DEFINE([HAVE_X_WINDOWS], [1], [Description here!])
2437         AC_DEFINE([NeedFunctionPrototypes], [1], [Description here!])
2438         AC_DEFINE([FUNCPROTO], [15], [Whatever this is.])
2439         AC_DEFINE([HAVE_UNIXOID_EVENT_LOOP], [1], [Description here!])
2440         SXE_APPEND([lwlib], [MAKE_SUBDIR])
2441         SXE_APPEND([lwlib], [SRC_SUBDIR_DEPS])
2442
2443         SXE_ADD_SXEUIX11_OBJS([console-x.o device-x.o event-Xt.o frame-x.o])
2444         SXE_ADD_SXEUIX11_OBJS([glyphs-x.o objects-x.o redisplay-x.o select-x.o])
2445         SXE_ADD_SXEUIX11_OBJS([xgccache.o])
2446
2447         SXE_DUMP_LIBS
2448         ## some debian systems are trying to fool us ... now fool them back!
2449         if test -d "$x_includes"; then
2450                 CPPFLAGS="$CPPFLAGS -I$x_includes"
2451         fi
2452         if test -d "$x_libraries"; then
2453                 LDFLAGS="$LDFLAGS -L$x_libraries"
2454         fi
2455
2456         dnl Look for Motif, but only if not found in $x_includes and $x_libraries
2457         AC_CHECK_HEADERS([Xm/Xm.h])
2458         if test "$ac_cv_header_Xm_Xm_h" = "yes"; then
2459                 AC_CHECK_LIB([Xm], [XmStringFree], [got_motif=yes])
2460         fi
2461         
2462         if test "$got_motif" != "yes"; then
2463                 dnl Try to find Motif dirs
2464                 dnl These take precedence over other X libs/includes, so PRE-pend
2465                 for lib_dir in \
2466                         "/usr/dt/lib" "/usr/lib/Motif2.1" \
2467                         "/usr/lib/Motif1.2" "/usr/lib/Motif1.1"; do
2468                         inc_dir=`echo $lib_dir | sed -e 's/lib/include/'`
2469                         if test -d "$lib_dir" -a -d "$inc_dir"; then
2470                                 case "$x_libraries" in
2471                                 *"$lib_dir"* )
2472                                         ;;
2473                                 *)
2474                                         x_libraries="$lib_dir $x_libraries"
2475                                         SXE_PREPEND(["-L${lib_dir}"], [X_LIBS])
2476                                         ;;
2477                                 esac
2478                                 case "$x_includes" in
2479                                 "$inc_dir"* )
2480                                         ;;
2481                                 *)
2482                                         x_includes="$inc_dir $x_includes"
2483                                         SXE_PREPEND_UNDUP(["-I${inc_dir}"], [X_CFLAGS])
2484                                         ;;
2485                                 esac
2486                                 break; dnl only need ONE Motif implementation!
2487                         fi
2488                 done
2489         fi
2490
2491         dnl Contrib X libs/includes do NOT take precedence, so AP-pend
2492         for rel in "X11R7" "X11R6" "X11R5" "X11R4"; do
2493                 lib_dir="/usr/contrib/$rel/lib" inc_dir="/usr/contrib/$rel/include"
2494                 if test -d "$lib_dir" -a -d "$inc_dir"; then
2495                         case "$x_libraries" in
2496                         *"$lib_dir"* )
2497                                 ;;
2498                         *)
2499                                 x_libraries="$x_libraries $lib_dir"
2500                                 SXE_APPEND(["-L${lib_dir}"], [X_LIBS])
2501                                 ;;
2502                         esac
2503                         case "$x_includes" in
2504                         "$inc_dir"* )
2505                                 ;;
2506                         *)
2507                                 x_includes="$x_includes $inc_dir"
2508                                 SXE_APPEND_UNDUP(["-I${inc_dir}"], [X_CFLAGS])
2509                                 ;;
2510                         esac
2511                         break; dnl Only need ONE X11 implementation !
2512                 fi
2513         done
2514
2515         dnl Avoid version mismatch for shared library libXm.so on osf4
2516         case "$opsys" in
2517         decosf*)
2518                 if test "$GCC" = yes -a -d "/usr/shlib"; then
2519                         SXE_APPEND([-L/usr/shlib], [X_LIBS]);
2520                 fi
2521                 ;;
2522         esac
2523         
2524         LDFLAGS="$LDFLAGS $X_LIBS"
2525         
2526         if test "$extra_verbose" = "yes"; then
2527                 echo
2528                 echo "X11 compilation variables:"
2529                 SXE_PRINT_VAR(x_libraries x_includes
2530                         X_CFLAGS X_LIBS X_PRE_LIBS X_EXTRA_LIBS)
2531                 echo
2532         fi
2533
2534         dnl Set up bitmaps search path.
2535         dnl The original suggestion was to unconditionally to append X11/bitmaps
2536         dnl to each element of $x_includes, I'm pretty sure this is the wrong
2537         dnl thing to do.  We test for bitmaps and X11/bitmaps directories on each
2538         dnl element and add them to BITMAPDIR if they exist.
2539         bitmapdirs=
2540         if test "$x_includes" != NONE; then
2541                 for i in $x_includes; do
2542                         if test -d "$i/bitmaps"; then
2543                                 bitmapdirs="$i/bitmaps:$bitmapdirs"
2544                         fi
2545                         if test -d "$i/X11/bitmaps"; then
2546                                 bitmapdirs="$i/X11/bitmaps:$bitmapdirs"
2547                         fi
2548                 done
2549                 bitmapdirs=`echo "$bitmapdirs" | sed s/.$//`
2550         fi
2551         if test ! -z "$bitmapdirs"; then
2552                 AC_DEFINE_UNQUOTED([BITMAPDIR], ["$bitmapdirs"], [Description here!])
2553         fi
2554
2555 dnl   dnl Autodetect defines extracted from X config by xmkmf, e.g. NARROWPROTO
2556 dnl   AS_MESSAGE(checking for X defines extracted by xmkmf)
2557 dnl   rm -fr conftestdir
2558 dnl   if mkdir conftestdir; then
2559 dnl     cd conftestdir
2560 dnl     cat > Imakefile <<'EOF'
2561 dnl xetest:
2562 dnl     @echo ${PROTO_DEFINES} ${STD_DEFINES}
2563 dnl EOF
2564 dnl     if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2565 dnl       # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
2566 dnl       xmkmf_defines=`${MAKE-make} xetest 2>/dev/null | grep -v make`
2567 dnl     fi
2568 dnl     cd ..
2569 dnl     rm -fr conftestdir
2570 dnl     for word in $xmkmf_defines; do
2571 dnl       case "$word" in
2572 dnl       -D__STDC__*) ;;
2573 dnl       -D* )
2574 dnl     sym=`echo '' $word | sed -e 's:^ *-D::' -e 's:=.*::'`
2575 dnl     case "$word" in
2576 dnl       -D*=* ) val=`echo '' $word | sed -e 's:^.*=::'` ;;
2577 dnl       *     ) val=1 ;;
2578 dnl     esac
2579 dnl dnl Avoid re-AC_DEFINE-ing xmkmf symbols we've already defined above.
2580 dnl     if grep "^#define $sym " confdefs.h >/dev/null; then :; else
2581 dnl       if test "$val" = "1"
2582 dnl         then AC_DEFINE_UNQUOTED([$sym], [], [Description here!])
2583 dnl         else AC_DEFINE_UNQUOTED([$sym], [$val], [Description here!])
2584 dnl       fi
2585 dnl     fi  ;;
2586 dnl       esac
2587 dnl     done
2588 dnl   fi
2589
2590         dnl make sure we can find Intrinsic.h
2591         AC_CHECK_HEADER([X11/Intrinsic.h], [],
2592                 [AC_MSG_ERROR([Unable to find X11 header files. Try using --x-includes=<path> if you know the path, or --with-x=no to disable X11 support.])])
2593
2594         dnl Check some more headers
2595         AC_CHECK_HEADERS([X11/Intrinsic.h X11/StringDefs.h X11/Shell.h X11/ShellP.h],
2596                 [],[],
2597                 [[#if HAVE_X11_INTRINSIC_H
2598                   # include <X11/Intrinsic.h>
2599                   # include <X11/IntrinsicP.h>
2600                   # include <X11/CoreP.h>
2601                   #endif]])
2602
2603         dnl -lXt and -lX11 are required
2604         dnl Some broken systems require the magic "-b i486-linuxaout" flag
2605         
2606         dnl Other broken systems will not pass these tests unless the pre and
2607         dnl extra libs are passed on...
2608         LIBS="$LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
2609         AC_CHECK_LIB(X11, XOpenDisplay, have_lib_x11=yes)
2610         if test "$have_lib_x11" != "yes"; then
2611                 AC_CHECK_LIB([X11], [XGetFontProperty],
2612                         [],
2613                         [AC_MSG_ERROR([Unable to find X11 libraries. Try using --x-libraries=<path> if you know the path, or --with-x=no to disable X11 support.])])
2614         fi
2615         SXE_PREPEND([-lX11], [libs_x])
2616         LIBS="$LIBS -lX11"
2617         if test "$extra_verbose" = "yes"; then
2618                 echo "    Setting libs_x to \"-lX11\""
2619         fi
2620         dnl Autodetect -lXext
2621         AC_CHECK_LIB([Xext], [XShapeSelectInput], [SXE_PREPEND([-lXext], [libs_x])])
2622
2623         dnl Require -lXt
2624         AC_CHECK_LIB([Xt], [XtOpenDisplay], [SXE_PREPEND([-lXt], [libs_x])], [
2625                 AC_MSG_ERROR([Unable to find X11 libraries. Try using --x-libraries=<path> if you know the path, or --with-x=no to disable X11 support.])])
2626         
2627         AC_MSG_CHECKING([the version of X11 being used])
2628         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2629 #include <X11/Intrinsic.h>
2630 int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }]])],
2631                 [./conftest foobar; x11_release=$?],[x11_release=4],[x11_release=4])
2632         AC_MSG_RESULT(R${x11_release})
2633         AC_DEFINE_UNQUOTED([X11_RELEASE], [${x11_release}], [Description here!])
2634         
2635         AC_CHECK_FUNCS([XConvertCase])
2636         AC_CHECK_LIB([Xt], [XtRegisterDrawable])
2637         if test "$ac_cv_lib_Xt_XtRegisterDrawable" = "yes"; then
2638                 AC_DEFINE([HAVE_XTREGISTERDRAWABLE], [1], [Description])
2639         fi
2640         
2641         AC_CHECK_HEADERS(X11/Xlocale.h)
2642         
2643         dnl XFree86 has a non-standard prototype for this X11R6 function
2644         AC_CHECK_FUNCS(XRegisterIMInstantiateCallback)
2645         AC_MSG_CHECKING(for standard XRegisterIMInstantiateCallback prototype)
2646         AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
2647 #ifndef NeedFunctionPrototypes
2648 #define NeedFunctionPrototypes 1
2649 #endif
2650 #include <X11/Xlib.h>
2651 extern Bool XRegisterIMInstantiateCallback(
2652         Display*, struct _XrmHashBucketRec*, char*, char*, XIMProc, XPointer*);
2653 ]])],
2654         [AC_MSG_RESULT(yes)],
2655         [AC_MSG_RESULT(no)
2656                 AC_DEFINE([XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE],
2657                         [], [Description here!])])
2658
2659         dnl autodetect -lXmu
2660         AC_CHECK_LIB([Xmu], [XmuReadBitmapDataFromFile],
2661                 [with_xmu=yes], [with_xmu=no])
2662         if test "$with_xmu" = "no"; then
2663                 SXE_ADD_SXEUIX11_OBJS([xmu.o])
2664         else
2665                 SXE_PREPEND([-lXmu], [libs_x])
2666                 AC_DEFINE([HAVE_XMU], [1], [Description here!])
2667         fi
2668         
2669         dnl Autodetect -lXbsd
2670         dnl #### Someone, please add a better function than main
2671         AC_CHECK_LIB([Xbsd], [main], SXE_PREPEND([-lXbsd], [libs_x]))
2672
2673         dnl restore old values
2674         SXE_RESTORE_LIBS
2675 fi dnl $with_x11 = yes
2676
2677 AC_SUBST([install_pp])
2678
2679 dnl test "$with_dragndrop" != "no" && with_dragndrop="$with_dragndrop_default"
2680 dnl test -z "$window_system" && window_system="none"
2681 with_dragndrop="no"
2682
2683 dnl Test for features that require a window system - ANY window system
2684 if test "$window_system" = "none"; then
2685   for feature in menubars scrollbars toolbars dialogs dragndrop xface
2686   do
2687     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2688        AC_MSG_WARN([--with-$feature ignored:  Not valid without window system support])
2689     fi
2690     eval "with_${feature}=no"
2691   done
2692 else
2693   test -z "with_toolbars" && with_toolbars=yes
2694 fi
2695
2696 dnl Test for features that require X11 support
2697 if test "$with_x11" != "yes"; then
2698   dnl It ought to be reasonable to have no output device at all, and only use
2699   dnl SXEmacs in --batch mode.
2700   dnl if test "$with_tty" = "no" ; then
2701   dnl   AC_MSG_ERROR([No window system support and no TTY support - Unable to proceed.])
2702   dnl fi
2703   for feature in offix wmcommand xim xmu nas_sound
2704   do
2705     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2706        AC_MSG_WARN([--with-$feature ignored:  Not valid without X support])
2707     fi
2708     eval "with_${feature}=no"
2709   done
2710 fi
2711
2712 dnl Balloon Help requires the Shape extension, not available everywhere,
2713 dnl for example not on AIX 4.3.
2714 if test "$with_x11" = "yes"; then
2715   AC_CHECK_HEADER(X11/extensions/shape.h, [
2716    AC_DEFINE([HAVE_BALLOON_HELP], [1], [Description here!])
2717    SXE_ADD_SXEUIX11_OBJS(balloon_help.o balloon-x.o)
2718    ])
2719 fi
2720
2721 dnl FSF 19.29 has some bitmapdir stuff here.
2722 bitmapdir=
2723
2724 case "$window_system" in
2725   x11  ) HAVE_X_WINDOWS=yes; echo "  Using X11." ;;
2726   gtk  )
2727        HAVE_X_WINDOWS=no
2728        test "$with_gnome" = "yes" && echo "  Using GNOME."
2729        test "$with_gnome" = "no" && echo "  Using GTK."
2730        ;;
2731   none ) HAVE_X_WINDOWS=no ; echo "  Using no window system." ;;
2732 esac
2733
2734 if test -n "$window_system" -a "$window_system" != "none"; then
2735         AC_DEFINE_UNQUOTED([HAVE_WINDOW_SYSTEM], [1], [Description here!])
2736 fi
2737
2738 case "$x_libraries" in *X11R4* )
2739   test "$opsys" = "hpux9"     && opsysfile="s/hpux9-x11r4.h"
2740   test "$opsys" = "hpux9-shr" && opsysfile="s/hpux9shxr4.h"
2741 esac
2742
2743 dnl Enable or disable proper handling of WM_COMMAND
2744 AS_MESSAGE(checking for WM_COMMAND option);
2745 dnl if test "$with_wmcommand" = "yes"; then
2746 if test "$with_wmcommand" != "no"; then
2747   AC_DEFINE([HAVE_WMCOMMAND], [1], [Description here!])
2748 fi
2749
2750 dnl Autodetect Xauth
2751 dnl -lXau is only used by gnuclient, so use a special variable for Xauth X libs
2752 test "$with_xauth" != "no" && test "$window_system" = "none" && with_xauth=no
2753 SXE_DUMP_LIBS
2754 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2755 LDFLAGS="$LDFLAGS $X_LIBS"
2756 AC_CHECK_HEADER([X11/Xauth.h], [:], [with_xauth=no])
2757 AC_CHECK_LIB([Xau], [XauGetAuthByAddr], [:], [with_xauth=no])
2758 if test "$with_xauth" = "yes"; then
2759   AC_DEFINE([HAVE_XAUTH], [1], [Description here!])
2760   SXE_CONSECUTIVE_UNDUP([libs_xauth], [$GTK_LIBS $X_EXTRA_LIBS -lXau $libs_x $X_PRE_LIBS])
2761 fi
2762 SXE_RESTORE_LIBS
2763 AC_SUBST(libs_xauth)
2764
2765 dnl ----------------------
2766 dnl GTK-Specific Graphics libraries
2767 dnl ----------------------
2768
2769 if test "$with_gtk" = "yes"; then
2770         dnl Autodetect XFACE
2771         have_image_xface=yes
2772         AC_CHECK_HEADER([compface.h], [], [have_image_xface=no])
2773         AC_CHECK_LIB([compface], [UnGenFace], [:], [have_image_xface=no])
2774         if test "$have_image_xface" = "yes"; then
2775                 AC_DEFINE([HAVE_XFACE], [1], [Description here!])
2776                 SXE_PREPEND(-lcompface, libs_gtk)
2777         fi
2778 fi
2779
2780
2781 dnl ----------------------
2782 dnl X-Specific Graphics libraries
2783 dnl ----------------------
2784
2785 ## Oki, now that we really need a more exhaustive way to autodetect
2786 ## athena and other widgets we construct a chain.  The elements of
2787 ## that chain are simple atomic tests (provided by AC_DEFUNs).
2788 ## The chain is defined to be:
2789 ##
2790 ## neXtaw -> Xaw3d -> XawXpm -> Xaw95  ->  Xaw  ->  Motif  ->  Nirvana
2791 ## ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^      ^^^      ^^^^^
2792 ##         3d sets                       non-3d   non-athena
2793 ##
2794 ## Now if the user passes a --with-athena=foo option, we jump
2795 ## directly to the according test-suite and in case this fails we jump
2796 ## off the cliff.
2797 ##
2798 ## Attention:
2799 ## We shall perform every test-suite twice, once the correct way, and
2800 ## once with #include'ing the Xfuncproto header.
2801 ## Thanks to the many, many distributions which treat their users
2802 ## like braindead zombies!
2803 ## Especially, I would like to thank Fedora/RedHat for bringing
2804 ## this up. Go on guys, you rock!
2805
2806 ## and now the test chain
2807 if test "$with_x11" = "yes" -a "$with_x" != "no"; then
2808         SXE_CHECK_XTOOLKITS
2809         SXE_CHECK_XT_DEPENDENCIES
2810 elif test "$with_gtk" = "yes" -o "$with_gnome" = "yes"; then
2811         SXE_CHECK_GTK_DEPENDENCIES
2812 else
2813         with_menubars=no
2814         with_scrollbars=no
2815         with_dialogs=no
2816         with_toolbars=no
2817         with_widgets=no
2818 fi
2819
2820 dnl Always compile OffiX unless --without-offix is given, no
2821 dnl X11 support is compiled in, no standard Xmu is available,
2822 dnl or dragndrop support is disabled
2823 dnl Because OffiX support currently loses when more than one display
2824 dnl is in use, we now disable it by default -slb 07/10/1998.
2825 test "$window_system" != "x11" && with_offix=no
2826 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2827   if test "$with_offix" = "yes" ; then
2828     AC_MSG_WARN([--with-offix forced to `no'; no real Xmu support])
2829   fi
2830   with_offix=no
2831 fi
2832 if test "$with_dragndrop" = "no" ; then
2833   if test "$with_offix" = "yes" ; then
2834     AC_MSG_WARN([--with-offix forced to `no'; no generic Drag'n'Drop support])
2835   fi
2836   with_offix=no
2837 fi
2838 if test "$with_offix" = "yes"; then
2839   AC_DEFINE([HAVE_OFFIX_DND], [1], [Description here!])
2840   SXE_APPEND(offix.o, dnd_objs)
2841   SXE_APPEND(OffiX, dragndrop_proto)
2842 fi
2843 if test "$with_gtk" = "yes"; then
2844    SXE_APPEND(GTK, dragndrop_proto)
2845 fi
2846
2847
2848 ## TTY Options
2849 ## ===========
2850 echo
2851 echo "TTY Options"
2852 echo "==========="
2853
2854
2855 dnl ---------------------
2856 dnl TTY-dependent options
2857 dnl ---------------------
2858
2859 dnl checks for header files
2860 AC_CHECK_HEADERS([libintl.h nlist.h sgtty.h termio.h termios.h])
2861
2862 if test "$with_tty" != "no"  ; then
2863         AS_MESSAGE(checking for TTY-related features)
2864         AC_DEFINE([HAVE_TTY], [1], [Description here!])
2865         AC_DEFINE([HAVE_UNIXOID_EVENT_LOOP], [1], [Description here!])
2866         SXE_ADD_SXEUITTY_OBJS([console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o])
2867
2868   dnl Autodetect ncurses.
2869   AC_CHECK_LIB(ncurses, tgetent, , with_ncurses=no)
2870   AC_CHECK_LIB(ncurses, tgetstr, , with_ncurses=no)
2871   AC_CHECK_LIB(ncurses, tparm, , with_ncurses=no)
2872   if test "$with_ncurses" != "no"; then
2873     AC_DEFINE([HAVE_NCURSES], [1], [Description here!])
2874     with_ncurses=yes
2875     AC_CHECK_HEADER(ncurses/ncurses.h, curses_h_file=ncurses/ncurses.h)
2876     if test -z "$curses_h_file"; then
2877             AC_CHECK_HEADER(ncurses/curses.h,  curses_h_file=ncurses/curses.h)
2878     fi
2879     if test -n "$curses_h_file"; then
2880             AC_CHECK_HEADER(ncurses/termcap.h, termcap_h_file=ncurses/termcap.h)
2881             AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
2882     else
2883             AC_CHECK_HEADER(ncurses.h, curses_h_file=ncurses.h)
2884             AC_CHECK_HEADER(termcap.h, termcap_h_file=termcap.h)
2885             AC_CHECK_HEADER(term.h,    term_h_file=term.h)
2886     fi
2887     SXE_ADD_SXEUITTY_OBJS(terminfo.o)
2888     SXE_PREPEND(-lncurses, LIBS)
2889
2890     if test -z "$curses_h_file" ; then
2891       dnl Try again, and check for the bogus ncurses/ include bug.
2892       dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
2893       dnl <ncurses/unctrl.h>)
2894       save_c_switch_site="$c_switch_site"
2895       c_switch_site="$c_switch_site -I/usr/include/ncurses"
2896       AC_CHECK_HEADER(ncurses/ncurses.h, curses_h_file=ncurses/ncurses.h)
2897       if test -z "$curses_h_file"; then
2898             AC_CHECK_HEADER(ncurses/curses.h,  curses_h_file=ncurses/curses.h)
2899       fi
2900       if test -n "$curses_h_file"; then
2901             AC_CHECK_HEADER(ncurses/termcap.h, termcap_h_file=ncurses/termcap.h)
2902             AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
2903       else
2904             AC_CHECK_HEADER(ncurses.h, curses_h_file=ncurses.h)
2905             AC_CHECK_HEADER(termcap.h, curses_h_file=termcap.h)
2906             AC_CHECK_HEADER(term.h,    curses_h_file=term.h)
2907       fi
2908       if test -n "$curses_h_file"
2909         then AC_MSG_WARN([Your system has the bogus ncurses include bug.])
2910         else c_switch_site="$save_c_switch_site"
2911       fi
2912     fi
2913   fi
2914   if test "$with_ncurses" = "no" -o -z "$curses_h_file" ; then
2915
2916     # Check alternate library includes
2917     for lib in curses term terminfo termcap; do
2918         AC_CHECK_HEADER(${lib}.h, [
2919                 eval ${lib}_h_file=${lib}.h
2920                 AC_CHECK_LIB($lib, tgetent, eval have_${lib}=yes, eval have_${lib}=no)
2921                 AC_CHECK_LIB($lib, tgetstr, , eval have_${lib}=no)])
2922     done
2923
2924     for lib in curses terminfo termlib termcap; do
2925           have_lib_eval=`eval echo \\$have_$lib`
2926           if test "$have_lib_eval" = "yes"; then
2927                 AC_CHECK_LIB($lib, tparm, 
2928                           SXE_ADD_SXEUITTY_OBJS(terminfo.o),
2929                           SXE_ADD_SXEUITTY_OBJS(tparam.o))
2930                 SXE_PREPEND(-l${lib}, LIBS)
2931                 break
2932           fi
2933     done
2934   fi
2935   if test -n "$curses_h_file"; then
2936         AC_DEFINE_UNQUOTED([HAVE_CURSES_H], [1], [There is a curses.h header file available])
2937   fi
2938   if test -n "$termcap_h_file"; then
2939         AC_DEFINE_UNQUOTED([HAVE_TERMCAP_H], [1], [There is a termcap.h header available])
2940   fi
2941   if test -n "$term_h_file"; then
2942         AC_DEFINE_UNQUOTED([HAVE_TERM_H], [1], [There is a term.h header available])
2943   fi
2944   AC_DEFINE_UNQUOTED([CURSES_H_FILE], ["${curses_h_file-curses.h}"], [The curses.h header file])
2945   AC_DEFINE_UNQUOTED([TERMCAP_H_FILE], ["${termcap_h_file-termcap.h}"], [The termcap.h header file])
2946   AC_DEFINE_UNQUOTED([TERM_H_FILE], ["${term_h_file-term.h}"], [The term.h header file])
2947
2948   dnl General Purpose Mouse (libgpm) support
2949   if test "$with_gpm" != "no"; then
2950     AC_CHECK_HEADER(gpm.h, [
2951       AC_CHECK_LIB(gpm, Gpm_Open, have_gpm=yes)])
2952     if test "$have_gpm" = "yes"; then
2953       with_gpm=yes
2954       AC_DEFINE([HAVE_GPM], [1], [General Purpose Mouse (libgpm) is available])
2955       SXE_ADD_SXEUITTY_OBJS(gpmevent.o)
2956       SXE_PREPEND(-lgpm, LIBS)
2957     else
2958       with_gpm=no
2959     fi
2960   fi
2961
2962 else dnl "$with_tty" = "no"
2963   for feature in ncurses gpm; do
2964     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
2965       AC_MSG_WARN([--with-${feature} ignored:  Not valid without TTY support])
2966     fi
2967     eval "with_${feature}=no"
2968   done
2969 fi dnl with_tty
2970
2971 SXE_CHECK_UI_SUFFICIENCY
2972
2973 ## Uncertain options
2974 ## =================
2975 echo
2976 echo "Uncertain options"
2977 echo "================="
2978
2979 ## for native xml support one day
2980 SXE_LANG_CHECK_XML
2981 SXE_CHECK_SUFFICIENCY([libxml2], [xml language])
2982 ## for BoehmGC support one day
2983 SXE_CHECK_BDWGC
2984 SXE_CHECK_SUFFICIENCY([bdwgc], [Boehm-Demers-Weiser GC])
2985
2986 if test "$with_experimental_features_bdwgc" = "yes"; then
2987         AC_MSG_CHECKING([if bdwgc prerequisites are met])
2988         AC_MSG_RESULT([${have_bdwgc}])
2989         have_experimental_features_bdwgc=${have_bdwgc}
2990         if test "${have_bdwgc}" = "yes"; then
2991                 AC_DEFINE([EF_USE_BDWGC], [1],
2992                         [Whether to actually use the BDWGC!])
2993         fi
2994 fi
2995
2996
2997 dnl This one is for the static initializeds variables in
2998 dnl offix.c, so that the thing is dumped after lastfile.o
2999 AC_SUBST(dnd_objs)
3000
3001 dnl Autodetect dll support
3002
3003 LIBSTDCPP=
3004 AC_SUBST(LIBSTDCPP)
3005
3006
3007 ## Multimedia Options
3008 ## ==================
3009 echo
3010 echo "Multimedia Options"
3011 echo "=================="
3012
3013 dnl ----------------------
3014 dnl Graphics libraries
3015 dnl ----------------------
3016
3017 if test "$with_image_xpm" = "yes"; then
3018         SXE_MM_CHECK_XPM([have_image_xpm=yes], [have_image_xpm=no])
3019
3020         AC_MSG_CHECKING([for sufficient xpm support])
3021         if test "$have_image_xpm" = "yes"; then
3022                 AC_MSG_RESULT([yes])
3023                 AC_DEFINE([HAVE_XPM], [1], [Description here!])
3024                 SXE_PREPEND([-lXpm], [MM_LIBS])
3025         else
3026                 AC_MSG_RESULT([no])
3027                 have_image_xpm=no
3028         fi
3029 fi
3030 AM_CONDITIONAL([WITH_BDWGC],
3031         [test "$with_experimental_features_bdwgc" = "yes" -a \
3032               "$have_bdwgc" = "yes"])
3033
3034 if test "$with_image_xface" = "yes"; then
3035         SXE_MM_CHECK_XFACE([have_image_xface=yes], [have_image_xface=no])
3036
3037         AC_MSG_CHECKING([for sufficient xface support])
3038         if test "$have_image_xface" = "yes"; then
3039                 AC_MSG_RESULT([yes])
3040                 AC_DEFINE([HAVE_XFACE], [1], [dnl
3041                         Both compface.h and libcompface have been found.])
3042                 SXE_PREPEND([-lcompface], [MM_LIBS])
3043         else
3044                 AC_MSG_RESULT([no])
3045                 have_image_xface=no
3046         fi
3047 fi
3048
3049 if test "$with_image_gif" = "yes"; then
3050         SXE_MM_CHECK_GIF([have_image_gif=yes], [have_image_gif=no])
3051
3052         AC_MSG_CHECKING([for sufficient gif support])
3053         if test "$have_image_gif" = "yes"; then
3054                 AC_MSG_RESULT([yes])
3055                 AC_DEFINE([HAVE_GIF], [1], [Enable internal GIF decoding])
3056                 SXE_ADD_MM_OBJS(dgif_lib.o gif_io.o)
3057         else
3058                 AC_MSG_RESULT([no])
3059         fi
3060 fi
3061
3062 SXE_MM_SEARCH_INFLATE
3063
3064 if test "$with_image_jpeg" = "yes"; then
3065         SXE_MM_CHECK_JPEG([have_image_jpeg=yes], [have_image_jpeg=no])
3066
3067         AC_MSG_CHECKING([for sufficient jpeg support])
3068         if test "$have_image_jpeg" = "yes"; then
3069                 AC_MSG_RESULT([yes])
3070                 AC_DEFINE([HAVE_JPEG], [1], [
3071                         Both jpeglib.h and libjpeg have been found.])
3072                 SXE_PREPEND([-ljpeg], [MM_LIBS])
3073         else
3074                 AC_MSG_RESULT([no])
3075         fi
3076 fi
3077
3078 if test "$with_image_png" = "yes"; then
3079         AC_DEFINE([WITH_PNG], [1], [Define to 1 if png support is desired.])
3080         SXE_MM_CHECK_PNG([have_image_png="yes"], [have_image_png="no"])
3081
3082         SXE_MSG_CHECKING([for sufficient PNG support])
3083         SXE_MSG_RESULT([${sxe_cv_feat_png}])
3084         if test "$sxe_cv_feat_png" = "yes"; then
3085                 SXE_PREPEND_UNDUP([$PNG_CPPFLAGS], [MM_CPPFLAGS])
3086                 SXE_PREPEND_UNDUP([$PNG_LDFLAGS], [MM_LDFLAGS])
3087                 SXE_PREPEND([$PNG_LIBS], [MM_LIBS])
3088         fi
3089 fi
3090
3091 if test "$with_image_tiff" = "yes"; then
3092         SXE_MM_CHECK_TIFF([have_image_tiff=yes], [have_image_tiff=no])
3093
3094         AC_MSG_CHECKING([for sufficient TIFF support])
3095         if test "$have_image_tiff" = "yes"; then
3096                 AC_MSG_RESULT([yes])
3097                 AC_DEFINE([HAVE_TIFF], [1], [
3098                         Both tiffio.h and libtiff have been found.])
3099                 SXE_PREPEND([-ltiff], [MM_LIBS])
3100         else
3101                 AC_MSG_RESULT([no])
3102         fi
3103 fi
3104
3105 dnl Check for audio output and media stream libraries.
3106
3107 dnl internal media stream analysis support
3108 if test "$with_media_internal" != "no"; then
3109         need_media_internal=yes
3110         have_media_internal=yes
3111 fi
3112
3113 ## Since almost any of the below tests uses pkgconfig we make a 
3114 ## once-for-all-times check now
3115 SXE_SEARCH_CONFIG_PROG([pkg-config])
3116
3117 dnl libsndfile support
3118 if test "$with_media_sndfile" != "no"; then
3119         SXE_MM_CHECK_SNDFILE([have_media_sndfile=yes], [have_media_sndfile=no])
3120
3121         AC_MSG_CHECKING([for sufficient sndfile support])
3122         if test "$have_media_sndfile" = "yes"; then
3123                 AC_MSG_RESULT([yes])
3124                 SNDFILE_LIBS=`$PKG_CONFIG --libs sndfile`
3125                 SNDFILE_CPPFLAGS=`$PKG_CONFIG --cflags sndfile`
3126                 SNDFILE_VERSION=`$PKG_CONFIG --modversion sndfile`
3127                 SXE_PREPEND([$SNDFILE_LIBS], [MM_LIBS])
3128                 SXE_PREPEND_UNDUP([$SNDFILE_CPPFLAGS], [MM_CPPFLAGS])
3129                 SXE_ADD_MM_OBJS([media-sndfile.o])
3130                 AC_DEFINE([HAVE_SNDFILE], [1],
3131                         [Whether we appear to have support for the sndfile library!])
3132                 AC_DEFINE_UNQUOTED([SNDFILE_VERSION], [$SNDFILE_VERSION],
3133                         [Version of the sndfile library!])
3134         else
3135                 AC_MSG_RESULT([no])
3136                 have_media_sndfile=no
3137         fi
3138 fi
3139
3140 dnl libavcodec/libavformat/ffmpeg support
3141 if test "$with_media_ffmpeg" != "no"; then
3142         SXE_MM_CHECK_FFMPEG([have_media_ffmpeg=yes], [have_media_ffmpeg=no])
3143
3144         AC_MSG_CHECKING([for sufficient FFmpeg support])
3145
3146         if test "$have_media_ffmpeg" = "yes"; then
3147                 AC_MSG_RESULT([yes])
3148                 FFMPEG_LIBS=`$PKG_CONFIG --libs libavformat`
3149                 FFMPEG_CPPFLAGS=`$PKG_CONFIG --cflags libavformat`
3150                 SXE_PREPEND($FFMPEG_LIBS, MM_LIBS)
3151                 SXE_PREPEND_UNDUP($FFMPEG_CPPFLAGS, MM_CPPFLAGS)
3152                 SXE_ADD_MM_OBJS([media-ffmpeg.o])
3153                 AC_DEFINE([HAVE_FFMPEG], [1], [Description here!])
3154         else
3155                 AC_MSG_RESULT([no])
3156                 have_media_ffmpeg=no
3157         fi
3158 fi
3159
3160 dnl sox support
3161 if test "$with_media_sox" != "no"; then
3162         ## defines $LIBST_CONFIG
3163         SXE_MM_CHECK_SOX([have_media_sox=yes], [have_media_sox=no])
3164
3165         AC_MSG_CHECKING([for sufficient SoX support])
3166         if test "$sxe_cv_feat_sox" = "yes"; then
3167                 AC_MSG_RESULT([yes])
3168                 SXE_ADD_MM_OBJS([media-sox.o])
3169                 SXE_PREPEND_UNDUP([$sox_cppflags], [MM_CPPFLAGS])
3170                 SXE_PREPEND_UNDUP([$sox_ldflags], [MM_LDFLAGS])
3171                 SXE_PREPEND([$sox_libs], [MM_LIBS])
3172                 AC_DEFINE([HAVE_SOX], [1], [Description here!])
3173         else
3174                 AC_MSG_RESULT(no)
3175                 have_media_sox=no
3176         fi
3177 fi
3178
3179 dnl mad support
3180 if test "$with_media_mad" != "no"; then
3181         SXE_MM_CHECK_MAD([have_media_mad=yes], [have_media_mad=no])
3182
3183         AC_MSG_CHECKING([for sufficient mad support])
3184         if test "$have_media_mad" = "yes"; then
3185                 AC_MSG_RESULT([yes])
3186                 SXE_ADD_MM_OBJS([media-mad.o])
3187                 SXE_PREPEND([-lmad], [MM_LIBS])
3188                 AC_DEFINE([HAVE_MAD], [1], [Description here!])
3189         else
3190                 AC_MSG_RESULT(no)
3191                 have_media_mad=no
3192         fi
3193 fi
3194
3195 ## file/libmagic support
3196 if test "$with_media_magic" != "no"; then
3197         SXE_MM_CHECK_MAGIC([have_media_magic=yes], [have_media_magic=no])
3198
3199         AC_MSG_CHECKING([for sufficient magic support])
3200         if test "$have_media_magic" = "yes"; then
3201                 AC_MSG_RESULT([yes])
3202                 SXE_ADD_MM_OBJS([media-magic.o])
3203                 SXE_PREPEND([-lmagic], [MM_LIBS])
3204                 AC_DEFINE([HAVE_MAGIC], [1], [Whether libmagic is available])
3205         else
3206                 AC_MSG_RESULT([no])
3207                 have_media_magic=no
3208         fi
3209 fi
3210
3211
3212 dnl Autodetect OSS sound
3213 AS_MESSAGE([checking for OSS sound support])
3214 dnl test -z "$with_sound_oss" -a -n "$with_oss_sound_lib" && with_sound_oss=yes
3215
3216 dnl Check for Linux/BSD sound (called OSS)
3217 if test "$with_sound_oss" != "no"; then
3218         SXE_MM_CHECK_OSS([have_sound_oss=yes], [have_sound_oss=no])
3219
3220         AC_MSG_CHECKING([for sufficient OSS support])
3221         if test "$have_sound_oss" = "yes"; then
3222                 AC_MSG_RESULT([yes])
3223                 SXE_ADD_MM_OBJS([sound-oss.o])
3224                 AC_DEFINE([HAVE_INTERNAL_SOUND], [1], [Description here!])
3225                 AC_DEFINE([HAVE_OSS_SOUND], [1], [Description here!])
3226         else
3227                 AC_MSG_RESULT([no])
3228                 have_sound_oss=yes
3229         fi
3230 fi
3231
3232 dnl NAS Sound support
3233 if test "$with_sound_nas" != "no"; then
3234         SXE_MM_CHECK_NAS([have_sound_nas=yes], [have_sound_nas=no])
3235
3236         AC_MSG_CHECKING([for sufficient NAS support])
3237         if test "$have_sound_nas" = "yes"; then
3238                 AC_MSG_RESULT([yes])
3239                 AC_DEFINE([HAVE_NAS_SOUND], [1], [Description here!])
3240                 SXE_ADD_MM_OBJS([sound-nas.o])
3241                 SXE_PREPEND([-laudio], [MM_LIBS])
3242         else
3243                 AC_MSG_RESULT([no])
3244                 have_nas_sound=no
3245         fi
3246 fi
3247
3248 dnl ESD Sound support
3249 if test "$with_sound_esd" != "no"; then
3250         SXE_MM_CHECK_ESD([have_sound_esd=yes], [have_sound_esd=no])
3251
3252         AC_MSG_CHECKING([for sufficient ESD support])
3253         if test "$have_sound_esd" = "yes"; then
3254                 AC_MSG_RESULT([yes])
3255                 need_internal_media=yes
3256                 SXE_ADD_MM_OBJS([sound-esd.o])
3257                 SXE_PREPEND([`$ESD_CONFIG --libs`], MM_LIBS)
3258                 AC_DEFINE([HAVE_ESD_SOUND], [1], [Description here!])
3259         else
3260                 AC_MSG_RESULT([no])
3261                 have_esd_sound=no
3262         fi
3263 fi
3264
3265 dnl PulseAudio Sound support
3266 if test "$with_pulseaudio" != "no"; then
3267         SXE_MM_CHECK_PULSE([have_sound_pulse=yes], [have_sound_pulse=no])
3268
3269         AC_MSG_CHECKING([for sufficient PulseAudio support])
3270         if test "$have_sound_pulse" = "yes"; then
3271                 AC_MSG_RESULT([yes])
3272                 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse`
3273                 pulse_version=`$PKG_CONFIG --modversion libpulse`
3274                 pulse_major_version=0
3275                 pulse_minor_version=`echo $pulse_version | \
3276                         sed -e "s/0\.\([[0-9]]*\).*/\1/"`
3277                 need_internal_media=yes
3278                 SXE_ADD_MM_OBJS([sound-pulse.o])
3279                 SXE_PREPEND($PULSEAUDIO_LIBS, MM_LIBS)
3280                 AC_DEFINE([HAVE_PULSE_SOUND], [1],
3281                         [Whether to put in support for PulseAudio.])
3282                 AC_DEFINE_UNQUOTED([PULSE_VERSION], [$pulse_minor_version],
3283                         [Version of the underlying pulse lib.])
3284         else
3285                 AC_MSG_RESULT(no)
3286                 have_sound_pulse=no
3287         fi
3288 fi
3289
3290 dnl aRts Sound support
3291 if test "$with_sound_arts" != "no"; then
3292         SXE_MM_CHECK_ARTS([have_sound_arts=yes], [have_sound_arts=no])
3293
3294         AC_MSG_CHECKING([for sufficient aRts support])
3295         if test "$have_sound_arts" = "yes"; then
3296                 AC_MSG_RESULT([yes])
3297                 ARTS_VERSION=`$ARTSC_CONFIG --arts-version`
3298                 ARTS_LIBS=`$ARTSC_CONFIG --libs`
3299                 ARTS_CPPFLAGS=`$ARTSC_CONFIG --cflags`
3300                 SXE_ADD_MM_OBJS([sound-arts.o])
3301                 SXE_PREPEND([$ARTS_LIBS], [MM_LIBS])
3302                 SXE_PREPEND_UNDUP([$ARTS_CPPFLAGS], [MM_CPPFLAGS])
3303                 AC_DEFINE([HAVE_ARTS_SOUND], [1], [Description here!])
3304                 AC_DEFINE_UNQUOTED([ARTS_VERSION], [$ARTS_VERSION],
3305                         [Version number of the underlying arts library])
3306         else
3307                 AC_MSG_RESULT(no)
3308                 have_sound_arts=no
3309         fi
3310
3311 fi
3312
3313 dnl Jack Sound support
3314 if test "$with_sound_jack" != "no"; then
3315         SXE_MM_CHECK_JACK([have_sound_jack=yes], [have_sound_jack=no])
3316
3317         AC_MSG_CHECKING([for sufficient Jack support])
3318         if test "$have_sound_jack" = "yes"; then
3319                 AC_MSG_RESULT([yes])
3320                 dnl okay, we have Jack on the system, but we have no working 
3321                 dnl interface to it :(
3322                 JACK_LIBS=`$PKG_CONFIG --libs jack`
3323                 JACK_VERSION=`$PKG_CONFIG --modversion jack`
3324                 need_internal_media=yes
3325                 SXE_ADD_MM_OBJS([sound-jack.o])
3326                 SXE_PREPEND([$JACK_LIBS], [MM_LIBS])
3327                 AC_DEFINE([HAVE_JACK_SOUND], [1], [Description here!])
3328                 AC_DEFINE_UNQUOTED([JACK_VERSION], [$JACK_VERSION],
3329                         [Description here!])
3330         else
3331                 AC_MSG_RESULT(no)
3332         fi
3333 fi
3334
3335 dnl alsa sound support
3336 if test "$with_sound_alsa" != "no"; then
3337         SXE_MM_CHECK_ALSA([have_sound_alsa=yes], [have_sound_alsa=no])
3338
3339         AC_MSG_CHECKING([for sufficient ALSA support])
3340         if test "$have_sound_alsa" = "yes"; then
3341                 AC_MSG_RESULT([yes])
3342                 SXE_ADD_MM_OBJS([sound-alsa.o])
3343                 SXE_PREPEND([-lasound], [MM_LIBS])
3344         else
3345                 AC_MSG_RESULT(no)
3346                 have_sound_alsa=no
3347         fi
3348 fi
3349
3350 dnl libao sound support
3351 if test "$with_sound_ao" != "no"; then
3352         SXE_MM_CHECK_AO([have_sound_ao=yes], [have_sound_ao=no])
3353
3354         AC_MSG_CHECKING([for sufficient AO support])
3355         if test "$have_sound_ao" = "yes"; then
3356                 AC_MSG_RESULT([yes])
3357                 AO_LIBS=`$PKG_CONFIG --libs ao`
3358                 ao_version=`$PKG_CONFIG --modversion ao`
3359                 SXE_ADD_MM_OBJS([sound-ao.o])
3360                 SXE_PREPEND($AO_LIBS, MM_LIBS)
3361                 AC_DEFINE([HAVE_AO_SOUND], [1], [Description here!])
3362                 AC_DEFINE_UNQUOTED([AO_VERSION], [$ao_version], [Description here!])
3363         else
3364                 AC_MSG_RESULT(no)
3365                 have_sound_ao=no
3366         fi
3367 fi
3368
3369 if test \
3370    "$have_sound_alsa \
3371     $have_sound_ao \
3372     $have_sound_arts \
3373     $have_sound_esd \
3374     $have_sound_jack \
3375     $have_sound_nas \
3376     $have_sound_pulse" != "no no no no no no no"; then
3377         AC_DEFINE([HAVE_AUDIO], [1], [Description here!])
3378 fi
3379 if test "$need_internal_media" = "yes"; then
3380         with_internal_media=yes
3381         AC_DEFINE([HAVE_INTERNAL_MEDIA], [1], [Description here!])
3382         SXE_ADD_MM_OBJS([media-internal.o])
3383 fi
3384 AC_SUBST([MM_LIBS])
3385 AC_SUBST([MM_CPPFLAGS])
3386 AC_SUBST([MM_LDFLAGS])
3387 SXE_SUBST_MM_OBJS
3388
3389
3390 ## Internationalisation Options
3391 ## ============================
3392 echo
3393 echo "Internationalisation Options"
3394 echo "============================"
3395
3396 dnl ----------------------
3397 dnl Mule-dependent options
3398 dnl ----------------------
3399
3400 dnl if test "$with_mule" = "yes" && test ! -d "$sxe_srcdir/lisp/mule"; then
3401 dnl     echo "Attempt to Build with Mule without Mule/Lisp"
3402 dnl     echo "Please install the SXEmacs/Mule tarball or"
3403 dnl     echo "rerun configure with --with-mule=no"
3404 dnl     exit 1
3405 dnl fi
3406
3407 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
3408   AC_DEFINE([FILE_CODING], [1], [Description here!])
3409   SXE_ADD_MULE_OBJS(file-coding.o)
3410 fi
3411
3412 if test "$with_mule" = "yes" ; then
3413         SXE_CHECK_MULE
3414
3415 else dnl "$with_mule" = "no"
3416         for feature in xim canna wnn; do
3417                 if eval "test -n \"\$with_${feature}\" -a \
3418                         \"\$with_${feature}\" != no" ; then
3419                         AC_MSG_WARN([--with-${feature} ignored:  Not valid without Mule support])
3420                 fi
3421                 eval "with_${feature}=no"
3422         done
3423 fi dnl with_mule
3424 SXE_SUBST_MULE_OBJS
3425 AM_CONDITIONAL([WITH_MULE], [test "$with_mule" = "yes"])
3426
3427
3428 dnl At this point, we know whether we need the motif lib or not.
3429 if test "$need_motif" = "yes" ; then
3430         SXE_PREPEND([-lXm], [libs_x])
3431         dnl AIX needs the following library for use with Motif
3432         AC_CHECK_LIB([i18n], [layout_object_getvalue])
3433         if test "$ac_cv_lib_i18n_layout_object_getvalue" = "yes"; then
3434                 SXE_PREPEND([-li18n], [libs_x])
3435         fi
3436 fi
3437
3438 dnl getaddrinfo() is borked under hpux11
3439 if test "$ac_cv_func_getaddrinfo" != "no" ; then
3440   case "$opsys" in
3441     hpux11 )
3442       AC_MSG_WARN([Use of getaddrinfo is disabled for HP-UX 11.XX.])
3443       ac_cv_func_getaddrinfo=no
3444       ;;
3445   esac
3446 fi
3447
3448
3449 ## Database Options
3450 ## ================
3451 echo
3452 echo "Database Options"
3453 echo "================"
3454
3455 dnl Database support
3456 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
3457 dnl On FreeBSD, both DB and DBM are part of libc.
3458 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
3459
3460 ## initialise values
3461 have_database_berkdb=no
3462 have_database_gdbm=no
3463 have_database_dbm=no
3464
3465 if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
3466    != "no no no"; then
3467         AS_MESSAGE(checking for database support)
3468 fi
3469
3470 dnl Check for ndbm.h, required for either kind of DBM support.
3471 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
3472         SXE_CHECK_NDBM
3473         if test "$sxe_cv_feat_ndbm" = "no"; then
3474                 have_database_gdbm="no"
3475                 have_database_dbm="no"
3476         fi
3477 fi
3478
3479 dnl Check for DBM support in libgdbm or libgdbm_compat.
3480 if test "$with_database_gdbm" != "no"; then
3481         SXE_CHECK_GDBM
3482
3483         if test "$sxe_cv_feat_gdbm" = "yes"; then
3484                 have_database_gdbm="yes"
3485         else
3486                 have_database_gdbm="no"
3487         fi
3488 fi
3489
3490 dnl Check for DBM support in libc and libdbm.
3491 if test "$with_database_dbm" != "no"; then
3492         SXE_CHECK_DBM
3493
3494         if test "$sxe_cv_feat_gdbm" != "yes" -a \
3495                 "$sxe_cv_feat_dbm" = "yes"; then
3496                 have_database_dbm="yes"
3497         else
3498                 have_database_dbm="no"
3499         fi
3500 fi
3501
3502 dnl Check for Berkeley DB.
3503 if test "$with_database_berkdb" != "no"; then
3504         SXE_CHECK_BERKDB
3505
3506         if test "$sxe_cv_feat_berkdb" = "yes"; then
3507                 have_database_berkdb="yes"
3508         else
3509                 have_database_berkdb="no"
3510         fi
3511 fi
3512
3513 if test "$have_database_gdbm $have_database_dbm $have_database_berkdb" \
3514      != "no no no"; then
3515         AC_DEFINE([HAVE_DATABASE], [1], [Description here!])
3516         SXE_ADD_DB_OBJS([database.o])
3517
3518         SXE_CHECK_NDBM_BERKDB_CONFLICT
3519         if test "$sxe_cv_db_ndbm_berkdb_conflict" = "yes"; then
3520                 ## can't do nothing because the way we designed it
3521                 ## is going to conflict at compile time
3522                 have_database_gdbm="no"
3523                 have_database_dbm="no"
3524
3525         elif test "$have_database_gdbm $have_database_dbm" != "no no"; then
3526                 AC_DEFINE([HAVE_DBM], [1], [Description here!])
3527
3528                 ## Also, tell make about the DBM support we detected.
3529                 if test -n "$libdbm"; then
3530                         SXE_PREPEND([$libdbm], [DB_LIBS])
3531                 fi
3532         fi
3533 fi
3534
3535
3536 dnl Autodetect LDAP
3537 if test "$with_ldap" != "no"; then
3538         SXE_CHECK_LDAP
3539 fi
3540 if test "$have_ldap" = "yes"; then
3541         AC_DEFINE([HAVE_LDAP], [1], [Description here!])
3542         SXE_ADD_DB_OBJS(eldap.o)
3543         if test "$have_ldap_des" = "yes" ; then
3544                 SXE_PREPEND(-ldes, DB_LIBS)
3545         fi
3546         if test "$have_ldap_krb" = "yes" ; then
3547                 SXE_PREPEND(-lkrb, DB_LIBS)
3548         fi
3549         if test "$have_ldap_lber" = "yes" ; then
3550                 SXE_PREPEND(-llber, DB_LIBS)
3551         fi
3552         SXE_PREPEND(-lldap, DB_LIBS)
3553
3554         dnl save our values until here
3555         save_LIBS="$LIBS"
3556         LIBS="$DB_LIBS $LIBS"
3557         AC_CHECK_FUNCS(
3558                 [ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result])
3559         dnl and restore
3560         LIBS="$save_LIBS"
3561 fi
3562
3563 dnl Autodetect PostgreSQL
3564 if test "x$with_postgresql" != "xno"; then
3565         SXE_CHECK_POSTGRESQL
3566 fi
3567 SXE_SUBST_DB_OBJS
3568
3569
3570 dnl Usage tracking (undocumented and likely unused option)
3571 if test "$usage_tracking" = "yes"; then
3572   AC_DEFINE([USAGE_TRACKING], [1], [Description here!])
3573   SXE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
3574 fi
3575
3576 dnl Unfortunately, just because we can link doesn't mean we can run.
3577 dnl One of the above link tests may have succeeded but caused resulting
3578 dnl executables to fail to run.  Also any tests using AC_RUN_IFELSE will
3579 dnl have reported incorrect results.
3580 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int c,char *v[]){return 0;}]])],[:],[
3581   echo ""
3582   echo "*** PANIC *** The C compiler can no longer build working executables."
3583   echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
3584   echo "*** PANIC *** The most likely reason for this problem is that configure"
3585   echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
3586   echo "*** PANIC *** found at run time."
3587   echo "*** PANIC ***"
3588   echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
3589   echo "*** PANIC *** On other systems, try telling configure where to find the"
3590   echo "*** PANIC *** shared libraries using the --with-site-runtime-libraries option"
3591   echo "*** PANIC ***"
3592   echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
3593   echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
3594   echo "*** PANIC *** on your system.  Don't do that."
3595   exit 1], [AS_MESSAGE(cannot cross-compile)])
3596
3597 dnl Process support
3598 AC_DEFINE([HAVE_UNIX_PROCESSES], [1], [Description here!])
3599
3600 dnl --------------------------------
3601 dnl Compute SUBST-itutable variables
3602 dnl --------------------------------
3603
3604 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
3605 dnl Use SXE_CONSECUTIVE_UNDUP instead of plain assignment statements to remove extraneous blanks
3606 if test "$with_module_support" = "yes"; then
3607         ld_libs_module=
3608 else
3609         SXE_CONSECUTIVE_UNDUP(ld_libs_module, $ldap_libs $postgresql_libs)
3610 fi
3611
3612 SXE_UNDUP(CFLAGS, $CFLAGS)
3613 SXE_UNDUP(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
3614 SXE_UNDUP(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS)
3615 SXE_UNDUP(c_switch_all, $c_switch_general $c_switch_window_system)
3616 SXE_UNDUP(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
3617 SXE_UNDUP(ld_switch_window_system, $ld_switch_x_site)
3618 SXE_UNDUP(ld_switch_all, $ld_switch_general $ld_switch_window_system)
3619 dnl Since some systems need libs to be restated later, we can't just dedup, we can only safely dedup
3620 dnl consecutive occurrences
3621 SXE_CONSECUTIVE_UNDUP(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
3622 SXE_CONSECUTIVE_UNDUP(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS)
3623 SXE_CONSECUTIVE_UNDUP(ld_libs_all, $OPENSSL_LIBS $DB_LIBS $ENT_LIBS $MM_LIBS $ld_libs_window_system $ld_libs_general $ld_libs_module)
3624
3625 dnl For no-module builds, make the src dir last
3626 if test "$with_module_support" = "no"; then
3627         SXE_APPEND(src, MAKE_SUBDIR)    dnl is that still important?
3628 fi
3629
3630 EMACS=$sxe_blddir/src/$PROGNAME
3631 AC_SUBST(EMACS)
3632
3633 dnl Compute lists of Makefiles and subdirs
3634 AC_SUBST(SRC_SUBDIR_DEPS)
3635 internal_makefile_list="Makefile.in"
3636 SUBDIR_MAKEFILES=''
3637 test -d lock || mkdir lock
3638 for dir in $MAKE_SUBDIR; do
3639   case "$dir" in */* ) dnl Implement mkdir -p
3640     ( for d in `echo $dir | sed 's:/: :g'` ; do
3641         test -d "$d" || mkdir "$d"; cd "$d"
3642       done ) ;;
3643    * ) test -d "$dir" || mkdir "$dir" ;;
3644   esac
3645   SXE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/Makefile)
3646   SXE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
3647 done
3648
3649 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
3650 AC_SUBST(MAKE_SUBDIR)
3651 AC_SUBST(MAKE_AM_SUBDIR)
3652 AC_SUBST(SUBDIR_MAKEFILES)
3653
3654 dnl ----------------------------------------------
3655 dnl Create some auxiliary files for developers.
3656 dnl ----------------------------------------------
3657
3658 dnl Create a useful TAGS file
3659 if test -f "$sxe_srcdir/TAGS" -a ! -f "TAGS"; then
3660   test "$extra_verbose" = "yes" && echo "creating TAGS"
3661   echo "\f
3662 $sxe_srcdir/TAGS,include" > "TAGS"
3663 fi
3664
3665 dnl Create top level .sbinit for Sun compilers
3666 if test "$__SUNPRO_C" = "yes"; then
3667   test "$extra_verbose" = "yes" && echo "creating .sbinit"
3668   ( echo "# For use with Sun WorkShop's Source browser."
3669     echo "# See sbquery(1) and sbinit(4) for more information"
3670     for dir in $MAKE_SUBDIR; do echo "import $dir"; done
3671   ) > .sbinit
3672 fi
3673
3674 ### whether to build with profile.o
3675 AC_RUN_IFELSE([AC_LANG_SOURCE([[
3676 int main(int c, char *v[]) 
3677 {
3678 #ifdef HAVE_SETITIMER
3679         return 1;
3680 #else
3681         return 0;
3682 #endif
3683 }]])], [./conftest; have_setitimer=$?],
3684         [have_setitimer=$?],[have_setitimer=0])
3685 AM_CONDITIONAL([HAVE_SETITIMER], [test "$have_setitimer" = "1"])
3686
3687 ## whether to build with sheap.o
3688 AC_RUN_IFELSE([AC_LANG_SOURCE([[
3689 int main(int c, char *v[]) 
3690 {
3691 #if defined(HEAP_IN_DATA) && !defined(PDUMP)
3692         return 1;
3693 #else
3694         return 0;
3695 #endif
3696 }]])], [./conftest; build_sheap=$?],
3697         [build_sheap=$?],[build_sheap=0])
3698 AM_CONDITIONAL([BUILD_SHEAP], [test "$build_sheap" = "1"])
3699
3700
3701 dnl There are no more compile tests; remove the core they created.
3702 rm -f core
3703
3704 dnl --------------------------------------------------
3705 dnl Substitute into Makefile, config.h and sxe-paths.h
3706 dnl --------------------------------------------------
3707
3708 dnl what sort of things to edit into Makefile, config.h and sxe-paths.h
3709 dnl configuration here uncanonicalized to avoid exceeding size limits.
3710
3711 AC_SUBST(PROGNAME)
3712 AC_SUBST(MULE)
3713 AC_SUBST(HAVE_LIBFFI)
3714 AC_SUBST(version)
3715 AC_SUBST(VERSION)
3716 AC_SUBST(old_version)
3717 AC_SUBST(inststaticdir)
3718 AC_SUBST(instvardir)
3719 AC_SUBST(instvarsepdir)
3720 AC_SUBST(sxe_srcdir)
3721 AC_SUBST(emodsrcdir)
3722 AC_SUBST(sxe_blddir)
3723 AC_SUBST(emodblddir)
3724 AC_SUBST(bindir)
3725 AC_SUBST(datarootdir)
3726 AC_SUBST(datadir)
3727 AC_SUBST(statedir)
3728 AC_SUBST(libdir)
3729 AC_SUBST(mandir)
3730 AC_SUBST(extra_includes)
3731
3732 AC_SUBST(prefix)
3733 AC_SUBST(PREFIX_USER_DEFINED)
3734 dnl Yo, Stephen Bourne!  I want to marry you!
3735 PREFIX=$prefix
3736 while true; do
3737   case "$PREFIX" in
3738     *\$* ) eval "PREFIX=\"${PREFIX}\"" ;;
3739     *) break ;;
3740   esac
3741 done
3742 AC_SUBST(PREFIX)
3743
3744 AC_SUBST(exec_prefix)
3745 AC_SUBST(EXEC_PREFIX_USER_DEFINED)
3746 EXEC_PREFIX=$exec_prefix
3747 while true; do
3748   case "$EXEC_PREFIX" in
3749     *\$* ) eval "EXEC_PREFIX=\"${EXEC_PREFIX}\"" ;;
3750     *) break ;;
3751   esac
3752 done
3753 AC_SUBST(EXEC_PREFIX)
3754
3755 AC_SUBST(infodir)
3756 AC_SUBST(INFODIR_USER_DEFINED)
3757 INFODIR=$infodir
3758 while true; do
3759   case "$INFODIR" in
3760     *\$* ) eval "INFODIR=\"${INFODIR}\"" ;;
3761     *) break ;;
3762   esac
3763 done
3764 AC_SUBST(INFODIR)
3765
3766 AC_SUBST(infopath,$with_infopath)
3767 AC_SUBST(INFOPATH_USER_DEFINED)
3768 INFOPATH=$with_infopath
3769 while true; do
3770   case "$INFOPATH" in
3771     *\$* ) eval "INFOPATH=\"${INFOPATH}\"" ;;
3772     *) break ;;
3773   esac
3774 done
3775 AC_SUBST(INFOPATH)
3776
3777 if test -z "$with_module_path"; then
3778     with_module_path="~/.sxemacs/${configuration}/modules:${libdir}/${PROGNAME}/${configuration}/site-modules:${libdir}/${instvardir}/${configuration}/modules"
3779 fi
3780
3781 AC_SUBST(module_path,$with_module_path)
3782 AC_SUBST(MODULE_PATH_USER_DEFINED)
3783 MODULE_PATH=$with_module_path
3784 while true; do
3785   case "$MODULE_PATH" in
3786     *\$* ) eval "MODULE_PATH=\"${MODULE_PATH}\"" ;;
3787     *) break ;;
3788   esac
3789 done
3790 AC_SUBST(MODULE_PATH)
3791
3792 if test -z "$with_package_prefix" ; then
3793   with_package_prefix=${prefix}/share/sxemacs
3794 fi
3795
3796 if test -z "$with_package_path" && test -n "$with_package_prefix" ; then
3797   if test "$with_mule" = "yes" ; then
3798     with_package_path="~/.sxemacs/site-packages:~/.sxemacs/sxemacs-packages:~/.sxemacs/xemacs-packages:~/.sxemacs/mule-packages"
3799     with_package_path="${with_package_path}:${with_package_prefix}/site-packages:${with_package_prefix}/sxemacs-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/mule-packages"
3800   else
3801     with_package_path="~/.sxemacs/site-packages:~/.sxemacs/sxemacs-packages:~/.sxemacs/xemacs-packages"
3802     with_package_path="${with_package_path}:${with_package_prefix}/site-packages:${with_package_prefix}/sxemacs-packages:${with_package_prefix}/xemacs-packages"
3803   fi
3804 fi
3805
3806 AC_SUBST(package_path,$with_package_path)
3807 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
3808 PACKAGE_PATH=$with_package_path
3809 while true; do
3810   case "$PACKAGE_PATH" in
3811     *\$* ) eval "PACKAGE_PATH=\"${PACKAGE_PATH}\"" ;;
3812     *) break ;;
3813   esac
3814 done
3815 AC_SUBST(PACKAGE_PATH)
3816
3817 AC_SUBST(lispdir, $with_lispdir)
3818 AC_SUBST(LISPDIR_USER_DEFINED)
3819 LISPDIR=$with_lispdir
3820 while true; do
3821   case "$LISPDIR" in
3822     *\$* ) eval "LISPDIR=\"${LISPDIR}\"" ;;
3823     *) break ;;
3824   esac
3825 done
3826 AC_SUBST(LISPDIR)
3827
3828 AC_SUBST(moduledir,$with_moduledir)
3829 AC_SUBST(MODULEDIR_USER_DEFINED)
3830 MODULEDIR=$with_moduledir
3831 while true; do
3832   case "$MODULEDIR" in
3833     *\$* ) eval "MODULEDIR=\"${MODULEDIR}\"" ;;
3834     *) break ;;
3835   esac
3836 done
3837 AC_SUBST(MODULEDIR)
3838
3839 AC_SUBST([sitelispdir], [$with_sitelispdir])
3840 AC_SUBST([SITELISPDIR_USER_DEFINED])
3841 SITELISPDIR=$sitelispdir
3842 while true; do
3843   case "$SITELISPDIR" in
3844     *\$* ) eval "SITELISPDIR=\"${SITELISPDIR}\"" ;;
3845     *) break ;;
3846   esac
3847 done
3848 AC_SUBST(SITELISPDIR)
3849
3850 AC_SUBST(sitemoduledir,$with_sitemoduledir)
3851 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
3852 SITEMODULEDIR=$with_sitemoduledir
3853 while true; do
3854   case "$SITEMODULEDIR" in
3855     *\$* ) eval "SITEMODULEDIR=\"${SITEMODULEDIR}\"" ;;
3856     *) break ;;
3857   esac
3858 done
3859 AC_SUBST(SITEMODULEDIR)
3860
3861 AC_SUBST(etcdir,$with_etcdir)
3862 AC_SUBST(ETCDIR_USER_DEFINED)
3863 ETCDIR=$with_etcdir
3864 while true; do
3865   case "$ETCDIR" in
3866     *\$* ) eval "ETCDIR=\"${ETCDIR}\"" ;;
3867     *) break ;;
3868   esac
3869 done
3870 AC_SUBST(ETCDIR)
3871
3872 AC_SUBST(archlibdir,$with_archlibdir)
3873 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
3874 ARCHLIBDIR=$with_archlibdir
3875 while true; do
3876   case "$ARCHLIBDIR" in
3877     *\$* ) eval "ARCHLIBDIR=\"${ARCHLIBDIR}\"" ;;
3878     *) break ;;
3879   esac
3880 done
3881 AC_SUBST(ARCHLIBDIR)
3882
3883 AC_SUBST(docdir,$with_docdir)
3884 AC_SUBST(DOCDIR_USER_DEFINED)
3885 DOCDIR=$with_docdir
3886 while true; do
3887   case "$DOCDIR" in
3888     *\$* ) eval "DOCDIR=\"${DOCDIR}\"" ;;
3889     *) break ;;
3890   esac
3891 done
3892 AC_SUBST(DOCDIR)
3893
3894 AC_SUBST(docdir)
3895 AC_SUBST(bitmapdir)
3896
3897 dnl The following flags combine all the information from:
3898 dnl - command line options (user always gets priority)
3899 dnl - user environment variables
3900 dnl - determined by configure
3901 dnl - the s&m header files (required for ellcc)
3902 AC_SUBST(machfile)
3903 AC_SUBST(opsysfile)
3904 AC_SUBST(c_switch_general)
3905 AC_SUBST(c_switch_window_system)
3906 AC_SUBST(c_switch_all)
3907 AC_SUBST(ld_switch_general)
3908 AC_SUBST(ld_switch_window_system)
3909 AC_SUBST(ld_switch_all)
3910 AC_SUBST(ld_libs_general)
3911 AC_SUBST(ld_libs_window_system)
3912 AC_SUBST(ld_libs_all)
3913 AC_SUBST(CFLAGS)
3914 AC_SUBST(CPPFLAGS)
3915 AC_SUBST(LDFLAGS)
3916 RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
3917 if test -z "$MAKE"; then
3918         MAKE=make
3919 fi
3920 case `$MAKE --version 2>/dev/null` in
3921    GNU\ Make*)
3922         AM_MAKEFLAGS="-w $AM_MAKEFLAGS"
3923         RECURSIVE_MAKE_ARGS="-w $RECURSIVE_MAKE_ARGS"
3924    ;;
3925    *)
3926         echo ===================================
3927         echo $MAKE does not seem to be GNU Make
3928         echo If you find makefile errors please try using GNU Make as some 
3929         echo autoconf constructs may not be proper for your make variant
3930         echo ===================================
3931    ;; 
3932 esac
3933 AC_SUBST(RECURSIVE_MAKE_ARGS)
3934 AC_SUBST(AM_MAKEFLAGS)
3935
3936 AC_SUBST(sound_cflags)
3937 AC_SUBST(AR)
3938 AC_SUBST(RANLIB)
3939
3940 AC_SUBST(SXEMACS_CC)
3941 AC_SUBST(SXE_CFLAGS)
3942
3943 SXE_SUBST_CORE_OBJS()
3944
3945 SXE_SUBST_CRUFT_OBJS
3946
3947 dnl The default is yes
3948 if test "$with_prefix" = "yes"; then
3949   AC_DEFINE([PREFIX_USER_DEFINED], [1], [Description here!])
3950 fi
3951
3952 dnl Should this stay even though --with-site-modules is no longer an
3953 dnl option?  It is used in emacs.c for when the -no-site-modules cmd line
3954 dnl opt is used.  That cmd line opt definitely has usefullness.  Sebastian?
3955 dnl --SY.
3956 dnl The default is yes
3957 if test "$with_site_modules" = "no"; then
3958   AC_DEFINE([INHIBIT_SITE_MODULES], [1], [Description here!])
3959 fi
3960
3961 dnl SXE_SPACE(ac_configure_args, $ac_configure_args)
3962 AC_DEFINE_UNQUOTED([EMACS_CONFIGURATION], ["$ac_cv_build"], [Description here!])
3963 AC_DEFINE_UNQUOTED([EMACS_CONFIG_OPTIONS], ["$ac_configure_args"], [Description here!])
3964
3965 AC_SUBST([srcdir_equals_blddir_p])
3966
3967 dnl Following are deprecated
3968 null_string=""
3969 AC_DEFINE_UNQUOTED([LD_SWITCH_X_SITE], [$null_string], [Description here!])
3970 AC_DEFINE_UNQUOTED([LD_SWITCH_X_SITE_AUX], [$null_string], [Description here!])
3971 AC_DEFINE_UNQUOTED([C_SWITCH_X_SITE], [$null_string], [Description here!])
3972 AC_DEFINE_UNQUOTED([LD_SWITCH_SITE], [$null_string], [Description here!])
3973 AC_DEFINE_UNQUOTED([C_SWITCH_SITE], [$null_string], [Description here!])
3974
3975 dnl Note: as a general rule, *only* define things here that are not
3976 dnl autodetected.  For things that are autodetected, define them
3977 dnl at the point where the autodetection occurs or would occur,
3978 dnl so that the user gets immediate feedback on the results of the
3979 dnl autodetection.
3980
3981 if test "$GNU_MALLOC" = "yes"; then
3982         AC_DEFINE([GNU_MALLOC], [1], [Description here!])
3983         SXE_ADD_MEMALLOC_OBJS(vm-limit.o)
3984         if test "$doug_lea_malloc" != "yes"; then
3985                 SXE_ADD_MEMALLOC_OBJS(gmalloc.o)
3986         fi
3987         if test "$with_error_checking_malloc" = "yes"; then
3988                 dnl SXE_ADD_MEMALLOC_OBJS(free-hook.o)
3989                 :
3990         fi
3991 elif test "$with_system_malloc" = "yes" -o "$system_malloc" = "yes"; then
3992         AC_DEFINE([USE_SYSTEM_MALLOC], [1], [Description here!])
3993         AC_DEFINE([SYSTEM_MALLOC], [1], [Description here!])
3994 elif test "$with_debug_malloc"  = "yes"; then
3995         AC_DEFINE([USE_DEBUG_MALLOC], [1], [Description here!])
3996         AC_DEFINE([USE_SYSTEM_MALLOC], [1], [Description here!])
3997         AC_DEFINE([SYSTEM_MALLOC], [1], [Description here!])
3998         SXE_APPEND(-ldmalloc, MEMALLOC_LIBS)
3999 else
4000         SXE_ADD_MEMALLOC_OBJS([malloc.o])
4001 fi
4002 test "$GCC" = "yes" && \
4003         AC_DEFINE([USE_GCC], [1], [Description here!])
4004 test "$with_external_widget" = "yes" && \
4005         AC_DEFINE([EXTERNAL_WIDGET], [1], [Description here!])
4006 test "$with_quick_build" = "yes" && \
4007         AC_DEFINE([QUICK_BUILD], [1], [Description here!])
4008 if test "$with_purify" = "yes"; then
4009         AC_DEFINE([PURIFY], [1], [Description here!])
4010         AC_DEFINE([XLIB_ILLEGAL_ACCESS], [1], [Description here!])
4011 fi
4012 if test "$with_quantify" = "yes"; then
4013         AC_DEFINE([QUANTIFY], [1], [Description here!])
4014         AC_DEFINE([XLIB_ILLEGAL_ACCESS], [1], [Description here!])
4015 fi
4016 test "$with_pop" = "yes" && \
4017         AC_DEFINE([MAIL_USE_POP], [1], [Description here!])
4018 test "$with_hesiod" = "yes" && \
4019         AC_DEFINE([HESIOD], [1], [Description here!])
4020 test "$with_regex_malloc" = "yes" && \
4021         AC_DEFINE([REGEX_MALLOC], [1], [Description here!])
4022 test "$with_ipv6_cname" = "yes" && \
4023         AC_DEFINE([IPV6_CANONICALIZE], [1], [Description here!])
4024 if test "$with_pdump" = "yes"; then
4025         AC_DEFINE([PDUMP], [1], [Description here!])    dnl deprecated!
4026         AC_DEFINE([WITH_PDUMP], [1], [Description here!])
4027 fi
4028
4029 AM_CONDITIONAL([WITH_EXTW], [test "$with_external_widget" = "yes"])
4030 AM_CONDITIONAL([WITH_PDUMP], [test "$with_pdump" = "yes"])
4031 AC_SUBST([MEMALLOC_LIBS])
4032 SXE_SUBST_MEMALLOC_OBJS
4033
4034
4035 AC_DEFINE_UNQUOTED([USER_FULL_NAME], [pw->pw_gecos], [dnl
4036         USER_FULL_NAME returns a string that is the user's full name.
4037         It can assume that the variable `pw' points to the password file
4038         entry for this user.
4039
4040         At some sites, the pw_gecos field contains the user's full name.
4041         If neither this nor any other field contains the right thing, use
4042         pw_name, giving the user's login name, since that is better than
4043         nothing.])
4044
4045 AC_DEFINE([SIGTYPE], [RETSIGTYPE], [SIGTYPE is the macro we actually use])
4046 AC_DEFINE([SIGRETURN], [return], [SIGTYPE is the macro we actually use])
4047
4048 ## finally, redefine VERSION; this has to be done after all tests on C sources
4049 ## were run because otherwise the symbol VERSION would be defined twice and
4050 ## the C compiler would warn, sigh, and due to this stupid -Werror flag we ...
4051 ## tadadada ... will fail to run _any_ C test successfully
4052 AC_DEFINE_UNQUOTED([VERSION], ["$version"], [Version of SXEmacs.])
4053
4054 AH_TOP([
4055 #ifndef INCLUDED_sxe_config_h_
4056 #define INCLUDED_sxe_config_h_
4057
4058 #ifndef NOT_C_CODE
4059 #if defined (__GNUC__)
4060 #define alloca __builtin_alloca
4061 #elif defined __DECC
4062 #include <alloca.h>
4063 #pragma intrinsic(alloca)
4064 #elif defined __INTEL_COMPILER && defined HAVE_ALLOCA_H
4065 /* defer #include to end of file */
4066 #elif defined HAVE_ALLOCA_H
4067 #include <alloca.h>
4068 #elif defined(_AIX)
4069 #pragma alloca
4070 #elif ! defined (alloca)
4071 void *alloca();
4072 #endif
4073 #endif  /* C code */
4074 ])
4075
4076 AH_BOTTOM([
4077 /* The configuration script may define `opsysfile' to be the name of
4078    the s/...h file that describes your operating system.
4079    The file name is chosen based on the configuration name. */
4080
4081 #ifdef config_opsysfile
4082 #include config_opsysfile
4083 #endif
4084
4085 /* The configuration script may define `machfile' to be the name of
4086    the m/...h file that describes the machine you are using.
4087    The file name is chosen based on the configuration name. */
4088
4089 #ifdef config_machfile
4090 #include config_machfile
4091 #endif
4092
4093 /* basic system calls */
4094 #if defined (INTERRUPTIBLE_IO) || defined (DEBUG_ENCAPSULATION)
4095 # define ENCAPSULATE_READ
4096 # define ENCAPSULATE_WRITE
4097 #endif
4098 #if defined (INTERRUPTIBLE_OPEN) || defined (MULE) || defined (DEBUG_ENCAPSULATION)
4099 # define ENCAPSULATE_OPEN
4100 #endif
4101 #if defined (INTERRUPTIBLE_CLOSE) || defined (DEBUG_ENCAPSULATION)
4102 # define ENCAPSULATE_CLOSE
4103 #endif
4104 /* stdio calls */
4105 #if defined (INTERRUPTIBLE_IO) || defined (DEBUG_ENCAPSULATION)
4106 # define ENCAPSULATE_FREAD
4107 # define ENCAPSULATE_FWRITE
4108 #endif
4109 #if defined (INTERRUPTIBLE_OPEN) || defined (MULE) || defined (DEBUG_ENCAPSULATION)
4110 # define ENCAPSULATE_FOPEN
4111 #endif
4112 #if defined (INTERRUPTIBLE_CLOSE) || defined (DEBUG_ENCAPSULATION)
4113 # define ENCAPSULATE_FCLOSE
4114 #endif
4115
4116 #if defined (HAVE_SOCKS) && !defined (DO_NOT_SOCKSIFY)
4117 #define accept Raccept
4118 #define bind Rbind
4119 #define connect Rconnect
4120 #define getsockname Rgetsockname
4121 #define listen Rlisten
4122 #endif                          /* HAVE_SOCKS && !DO_NOT_SOCKSIFY */
4123
4124 #ifndef NOT_C_CODE              /* Actually means C or C++ */
4125 # if defined (__cplusplus)
4126 /* Avoid C++ keywords used as ordinary C identifiers */
4127 #  define class c_class
4128 #  define new   c_new
4129 #  define this  c_this
4130 #  define catch c_catch
4131 #  define EXTERN_C extern "C"
4132 # else                          /* C code */
4133 #  define EXTERN_C extern
4134 # endif
4135 #endif                          /* C or C++ */
4136 /* Strictly speaking, only int or unsigned int are valid types in a
4137    bitfield.  In practice, we would like to use enums as bitfields.
4138    The following should just result in warning avoidance:
4139    warning: nonportable bit-field type */
4140 #ifdef __GNUC__
4141 #define enum_field(enumeration_type) enum enumeration_type
4142 #else
4143 #define enum_field(enumeration_type) unsigned int
4144 #endif
4145
4146 #ifndef NOT_C_CODE
4147 #if defined __INTEL_COMPILER && defined HAVE_ALLOCA_H
4148 /* icc's alloca.h pulls in <features.h>,
4149    but that must be done after _GNU_SOURCE and friends are defined */
4150 #include <alloca.h>
4151 #endif
4152 #endif                          /* C code */
4153
4154 #endif  /* INCLUDED_sxe_config_h_ */
4155 ])
4156
4157
4158 dnl -------------------------------------------------------------------------
4159 dnl -------------------------------
4160 dnl Report on what we decided to do
4161 dnl -------------------------------
4162
4163 dnl #### We should tag this as the _build_ environment.
4164 dnl Before doing that, though, must check if tools care about line 1.
4165
4166 (
4167 dnl /etc/osversion is on SONY NEWS-OS
4168 if test -f /etc/osversion; then dnl SONY NEWS-OS
4169   echo "osversion: `cat /etc/osversion`"
4170 else
4171   echo "uname -a: `uname -a`"
4172 fi
4173 echo ""
4174 echo "$0 $ac_configure_args"
4175 ) > Installation
4176
4177 if test ! -z ${emacs_beta_version} ; then
4178   if test -z "${emacs_is_beta}" ; then
4179         sxemacs_betaname=".${emacs_beta_version}"
4180   else
4181         sxemacs_betaname="-b${emacs_beta_version}"
4182   fi
4183 else
4184   sxemacs_betaname=""
4185 fi
4186
4187 dnl -----------------
4188 dnl Talking LFSL now!
4189 dnl -----------------
4190
4191 dnl -----------------------------------
4192 dnl Now generate config.h and Makefiles
4193 dnl -----------------------------------
4194
4195 dnl This has to be called in order for this variable to get into config.status
4196 AC_SUBST([internal_makefile_list])
4197 # Remove any trailing slashes in these variables.
4198 if test -n "$prefix"; then
4199         prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4200 fi
4201 if test -n "$exec_prefix"; then
4202         exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4203 fi
4204
4205 make_ifeq="ifeq"
4206 make_endif="endif"
4207 make_else="else"
4208 AC_SUBST([make_ifeq])
4209 AC_SUBST([make_endif])
4210 AC_SUBST([make_else])
4211
4212 dnl Coupla things needed for subst'ing into the sxemacs.desktop file
4213 ABS_PROGNAME=${prefix}/bin/${PROGNAME}
4214 ABS_ETCDIR=${ETCDIR}
4215 SXE_CANONICALISE_PATH([ABS_PROGNAME])
4216 SXE_CANONICALISE_PATH([ABS_ETCDIR])
4217 AC_SUBST([ABS_PROGNAME])
4218 AC_SUBST([ABS_ETCDIR])
4219
4220 AC_CONFIG_FILES([src/sxe-paths.h]) 
4221 AC_CONFIG_FILES([Makefile])
4222 AC_CONFIG_FILES([lib-src/Makefile])
4223 AC_CONFIG_FILES([src/Makefile])
4224 AC_CONFIG_FILES([src/ui/Makefile])
4225 AC_CONFIG_FILES([src/ui/TTY/Makefile])
4226 AC_CONFIG_FILES([src/ui/lwlib/Makefile])
4227 AC_CONFIG_FILES([src/ui/X11/Makefile])
4228 AC_CONFIG_FILES([src/ui/Gtk/Makefile])
4229 AC_CONFIG_FILES([src/events/Makefile])
4230 AC_CONFIG_FILES([src/ent/Makefile])
4231 AC_CONFIG_FILES([src/media/Makefile])
4232 AC_CONFIG_FILES([src/mem/Makefile])
4233 AC_CONFIG_FILES([src/database/Makefile])
4234 AC_CONFIG_FILES([src/mule/Makefile])
4235 AC_CONFIG_FILES([src/.gdbinit:src/gdbinit])
4236 AC_CONFIG_FILES([src/.dbxrc:src/dbxrc])
4237 AC_CONFIG_FILES([lisp/Makefile])
4238 AC_CONFIG_FILES([info/Makefile])
4239 AC_CONFIG_FILES([tests/Makefile])
4240 AC_CONFIG_FILES([modules/Makefile])
4241 AC_CONFIG_FILES([etc/Makefile])
4242 AC_CONFIG_FILES([etc/sxemacs.desktop])
4243 AC_CONFIG_FILES([sxemacs.pc])
4244 AC_CONFIG_LINKS([.sxemacs.source.tree:])
4245
4246 AC_OUTPUT
4247 SXE_SUMMARY