SXEmacs 22.1.14 (Geo) is Released!
[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
35 ### Don't edit this script!
36 ### This script was automatically generated by the `autoconf' program
37 ### from the file `./configure.ac'.
38 ### To rebuild it, execute the command
39 ###     autoconf
40 ### in the this directory.
41
42 ### This file is part of SXEmacs.
43
44 ### SXEmacs is free software: you can redistribute it and/or modify
45 ### it under the terms of the GNU General Public License as published by
46 ### the Free Software Foundation, either version 3 of the License, or
47 ### (at your option) any later version.
48
49 ### SXEmacs is distributed in the hope that it will be useful,
50 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
51 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
52 ### GNU General Public License for more details.
53
54 ### You should have received a copy of the GNU General Public License
55 ### along with this program.  If not, see <http://www.gnu.org/licenses/>.
56
57 ### Parts of SXEmacs are also distributed under a BSD-like licence.
58 ### Check file headers for more information.
59
60 ### For usage, run `./configure --help'
61 ### For more detailed information on building and installing SXEmacs,
62 ### read the file `INSTALL'.
63 ###
64 ### If configure succeeds, it leaves its status in config.status.
65 ### A log of configuration tests can be found in config.log.
66 ### If configure fails after disturbing the status quo,
67 ###     config.status is removed.
68 ])
69
70 AC_REVISION([SXEM4CS_GIT_VERSION])
71
72
73 dnl Build Options
74 dnl =============
75 OG_OPTION_GROUP(Build Options)
76
77 OG_ARG_WITH([prefix],
78         AS_HELP_STRING([--with-prefix@<:@=ARG@:>@],
79                 [Whether to compile the value of --prefix into the executable.]),
80         [yes], [YES (DO compile prefix into the executable)])
81
82 OG_ARG_WITH([sitemoduledir],
83         AS_HELP_STRING([--with-sitemoduledir=DIR],
84                 [Directory for loadable modules that are not part of
85                 the SXEmacs core distribution (3rd party emodules).]),
86         [none], [$prefix/lib/sxemacs/$build/site-modules], [og_any],
87         [AC_DEFINE([SITEMODULEDIR_USER_DEFINED], [1],
88                 [sitemoduledir has been specified on the configure line.])],
89         [with_sitemoduledir='${libdir}/${PROGNAME}/${configuration}/site-modules'])
90
91 OG_ARG_WITH([site-includes],
92         AS_HELP_STRING([--with-site-includes=PATH],
93                 [Colon separated list of _extra_ include directories
94                 to search for headers.]),
95         [none], [None], [og_any])
96
97 OG_ARG_WITH([site-libraries],
98         AS_HELP_STRING([--with-site-libraries=PATH],
99                 [Colon separated list of extra lib directories to
100                 search for libraries. (Default: None)]),
101         [none], [None], [og_any])
102
103 OG_ARG_WITH([site-prefixes],
104         AS_HELP_STRING([--with-site-prefixes=PATH],
105                 [Colon separated list of extra prefix directories to
106                 search for headers and libraries.  Sometimes this can
107                 be used instead of specifying both
108                 --with-site-includes and
109                 --with-site-libraries.]),
110         [none], [None], [og_any])
111
112 OG_ARG_WITH([lispdir],
113         AS_HELP_STRING([--with-lispdir=DIR],
114                 [Where to install core lisp files.]),
115         [none], [$prefix/lib/sxemacs-$version/lisp], [og_any],
116         [AC_DEFINE([LISPDIR_USER_DEFINED], [1],
117                 [lispdir has been specified on the configure line.])],
118         [with_lispdir='${datadir}/${instvardir}/lisp'])
119
120 OG_ARG_WITH([archlibdir],
121         AS_HELP_STRING([--with-archlibdir=DIR],
122                 [Directory for arch-dependent files.]),
123         [none], [$prefix/lib/sxemacs-$version/$build], [og_any],
124         [AC_DEFINE([ARCHLIBDIR_USER_DEFINED], [1],
125                 [archlibdir has been specified on the configure line.])],
126         [with_archlibdir='${libdir}/${instvardir}/${configuration}'])
127
128 OG_ARG_WITH([moduledir],
129         AS_HELP_STRING([--with-moduledir=DIR],
130                 [Directory for loadable modules.]),
131         [none], [$prefix/lib/sxemacs-$version/$build/modules], [og_any],
132         [AC_DEFINE([MODULEDIR_USER_DEFINED], [1],
133                 [moduledir has been specified on the configure line.])],
134         [with_moduledir='${libdir}/${instvardir}/${configuration}/modules'])
135
136 OG_ARG_WITH([etcdir],
137         AS_HELP_STRING([--with-etcdir=DIR],
138                 []),
139         [none], [$prefix/lib/sxemacs-$version/etc], [og_any],
140         [AC_DEFINE([ETCDIR_USER_DEFINED], [1],
141                 [etcdir has been specified on the configure line.])],
142         [with_etcdir='${datadir}/${instvardir}/etc'])
143
144 OG_ARG_WITH([infopath],
145         AS_HELP_STRING([--with-infopath=PATH],
146                 [Colon separated list of directories to use as
147                 the info search path. This is not normally needed.]),
148         [none], [None], [og_any],
149         [AC_DEFINE([INFOPATH_USER_DEFINED], [1],
150                 [inforpath has been specified on the configure line.])], [])
151
152 OG_ARG_WITH([docdir],
153         AS_HELP_STRING([--with-docdir=DIR],
154                 [Where it store certain doc files (not info or man).]),
155         [none], [$prefix/lib/sxemacs-$version/$build], [og_any],
156         [AC_DEFINE([DOCDIR_USER_DEFINED], [1],
157                 [docdir has been specified on the configure line.])],
158         [with_docdir='${archlibdir}'])
159
160 OG_ARG_WITH([site-runtime-libraries],
161         AS_HELP_STRING([--with-site-runtime-libraries=PATH],
162                 [Colon separated list of directories to search for
163                 libraries at run time.  This isn't normally needed.]),
164         [none], [None], [og_any])
165
166 OG_ARG_WITH([module-path],
167         AS_HELP_STRING([--with-module-path=PATH],
168                 [Search path to the emodules directories.
169                 A colon separated list of directories. Normally, there is
170                 no need to set this.]),
171         [none], [None], [og_any],
172         [AC_DEFINE([MODULE_PATH_USER_DEFINED], [1],
173                 [module-path has been specified on the configure line.])],
174         [])
175
176 OG_ARG_WITH([package-prefix],
177         AS_HELP_STRING([--with-package-prefix=PATH],
178                 [What to use as a prefix to the system-wide package
179                 directories.  It doesn't affect the package directories
180                 under ~/.sxemacs, and is totally ignored if
181                 --with-package-path is set.
182                 Normally, you would not need to set this.]),
183         [none], [None], [og_any],
184         [AC_DEFINE([PACKAGE_PREFIX_USER_DEFINED], [1],
185                 [package-prefix has been specified on the configure line.])],
186         [])
187
188 OG_ARG_WITH([package-path],
189         AS_HELP_STRING([--with-package-path=PATH],
190                 [Search path to the package directories.
191                 This path is made up of 3 separate "path elements",
192                 each element is a colon separated list of directories,
193                 with the boundary between elements being a double
194                 colon.  The 3 path elements are for "early", "late",
195                 and "last" package directories.  If only a single
196                 element is specified it is "late".  Example:
197                 early1:early2::late1:late2::last1:last2.  Setting this
198                 overrides --with-package-prefix.  Normally, there is
199                 no need to set this.]),
200         [none], [None], [og_any],
201         [AC_DEFINE([PACKAGE_PATH_USER_DEFINED], [1],
202                 [package-path has been specified on the configure line.])],
203         [])
204
205 dnl stupid option, innit?
206 OG_ARG_WITH([quick-build],
207         AS_HELP_STRING([--with-quick-build],
208                 [Speed up the build cycle by leaving out steps where
209                 SXEmacs will still work (more or less) without them.
210                 Potentially dangerous if you don't know what you're
211                 doing. This (1) doesn't garbage-collect after loading
212                 each file during dumping, (2) doesn't automatically
213                 rebuild the DOC file (remove it by hand to get it
214                 rebuilt), (3) Removes config.h lisp.h and associated
215                 files from the dependency lists so changes to these
216                 files don't automatically cause all .c files
217                 to be rebuilt.]),
218         [no], [No], [])
219
220 OG_ARG_WITH([compiler],
221         AS_HELP_STRING([--with-compiler=COMPILER],
222                 [Do not use me! Use CC=<your-compiler> instead!
223                 C compiler to use.
224                 Note: SXEmacs _CANNOT_ be built with a C++ compiler.]),
225         [none], [None], [og_any], [
226                 OG_WARN_OBSOLETE_OPTION([--with-compiler], [CC=<your-cc>])])
227
228 OG_ARG_WITH([cflags],
229         AS_HELP_STRING([--with-cflags],
230                 [Do not use me! Use CFLAGS=<your flags> instead!
231                 Compiler flags (such as -O); setting this overrides
232                 all default compiler flags except those that control
233                 warnings. Most people wouldn't need to set
234                 this.]),
235         [none], [None], [og_any], [
236                 OG_WARN_OBSOLETE_OPTION([--with-cflags], [CFLAGS=<your flags>])])
237
238 OG_ARG_WITH([cflags-warning],
239         AS_HELP_STRING([--with-cflags-warning],
240                 [Do not use me! I will disappear soon!]),
241         [none], [None], [og_any])
242
243 OG_ARG_WITH([cpp],
244         AS_HELP_STRING([--with-cpp],
245                 [Do not use me! Use CPP=<your-cpp> instead!]),
246         [none], [None], [og_any], [
247                 OG_WARN_OBSOLETE_OPTION([--with-cpp], [CPP=<your-cpp>])
248                 CPP="$with_cpp"])
249
250 OG_ARG_WITH([cppflags],
251         AS_HELP_STRING([--with-cppflags],
252                 [Do not use me! Use CPPFLAGS=<your flags> instead!]),
253         [none], [None], [og_any], [
254                 OG_WARN_OBSOLETE_OPTION([--with-cppflags], [CPPFLAGS=<your flags>])
255                 CPPFLAGS="$with_cppflags"])
256
257 OG_ARG_WITH([libs],
258         AS_HELP_STRING([--with-libs],
259                 [Do not use me! Use LIBS=<your libs> instead!]),
260         [none], [None], [og_any], [
261                 OG_WARN_OBSOLETE_OPTION([--with-libs], [LIBS=<your libs>])
262                 LIBS="$with_libs"])
263
264 OG_ARG_WITH([ldflags],
265         AS_HELP_STRING([--with-ldflags],
266                 [Do not use me! Use LDFLAGS=<your flags> instead!]),
267         [none], [None], [og_any], [
268                 OG_WARN_OBSOLETE_OPTION([--with-ldflags], [LDFLAGS=<your flags>])
269                 LDFLAGS="$with_ldflags"])
270
271 OG_ARG_WITH([ridiculously-aggressive-optimisations],
272         AS_HELP_STRING([--with-ridiculously-aggressive-optimisations],
273                 [Whether to try all possible optimisations]),
274         [no], [No])
275
276 OG_ARG_WITH([maximum-warning-output],
277         AS_HELP_STRING([--with-maximum-warning-output],
278                 [Whether to output as many warnings as possible]),
279         [no], [No])
280
281
282 dnl Internal Options
283 dnl ================
284 OG_OPTION_GROUP(Internal Options)
285
286 OG_ARG_WITH([dynamic],
287         AS_HELP_STRING([--with-dynamic],
288                 [Link dynamically if supported by system.
289                 'NO' forces static linking.]),
290         [auto], [Autodetect])
291
292 OG_ARG_WITH([rel-alloc],
293         AS_HELP_STRING([--with-rel-alloc],
294                 [Relocating allocator for buffers.]),
295         [default], [Autodetect])
296
297 OG_ARG_WITH([dlmalloc],
298         AS_HELP_STRING([--with-dlmalloc],
299                 [Use Doug Lea's malloc.]),
300         [default], [Autodetect])
301
302 OG_ARG_WITH([debug-malloc],
303         AS_HELP_STRING([--with-debug-malloc],
304                 [Use a debugging malloc.]),
305         [no], [NO])
306
307 OG_ARG_WITH([system-malloc],
308         AS_HELP_STRING([--with-system-malloc],
309                 [Use a system malloc instead of GNU.]),
310         [default], [YES if using quantify or purify; NO otherwise])
311
312 OG_ARG_WITH([regex-malloc],
313         AS_HELP_STRING([--with-regex-malloc],
314                 [Use malloc for regex failure stack.]),
315         [yes], [YES])
316
317 OG_ARG_WITH([ffi],
318         AS_HELP_STRING([--with-ffi],
319                 [Compile in experimental support for 
320                 Foreign Function Interface.]),
321         [yes], [YES])
322
323 OG_ARG_WITH([module-support],
324         AS_HELP_STRING([--with-module-support],
325                 [Compile in experimental support for dynamically
326                 loaded libraries (Dynamic Shared Objects).]),
327         [yes], [YES if shared libraries are supported])
328
329 OG_MULTIARG_WITH([modules], [dnl
330         AS_HELP_STRING([--with-modules], [
331                 Which modules to compile and install.])],
332         [all], [all], [dnl
333         OG_MULTIARG_ITEM([ase], [ase], [algebraic structures])
334         OG_MULTIARG_ITEM([cl], [cl], [fast Common Lisp implementation])
335 ])
336
337 OG_MULTIARG_WITH([static-modules], [dnl
338         AS_HELP_STRING([--with-static-modules], [
339                 Which modules to compile as archives to link their
340                 functionality statically into the SXEmacs binary.])
341         AS_HELP_STRING([], [
342                 You should regard this as a proof of concept.])],
343         [none], [NONE], [dnl
344         OG_MULTIARG_ITEM([ase], [ase], [algebraic structures])
345         OG_MULTIARG_ITEM([cl], [cl], [fast Common Lisp implementation])
346 ])
347
348 dnl _OG_MULTIARG_ITEM([ent], [int], [int], [native integer arithmetics])
349 dnl _OG_MULTIARG_ITEM([ent], [fpfloat], [fpfloat], [native fixed precision floats])
350 dnl _OG_MULTIARG_ITEM([ent], [indef], [indef], [abstract indefinites])
351 OG_MULTIARG_WITH([ent], [dnl
352         AS_HELP_STRING([--with-ent], [
353                 Compile in support for enhanced number types,
354                 using internal and external libraries.])],
355         [none int fpfloat indef gmp], [int fpfloat indef gmp], [dnl
356         OG_MULTIARG_ITEM([int], [int], [native integer arithmetics])
357         OG_MULTIARG_ITEM([fpfloat], [fpfloat], [native fixed precision floats])
358         OG_MULTIARG_ITEM([indef], [indef], [native abstract indefinites])
359         OG_MULTIARG_ITEM([gmp], [GMP], [GNU multiprecision library])
360         OG_MULTIARG_ITEM([mpfr], [MPFR], [Multiprecision Floats with correct Rounding])
361         OG_MULTIARG_ITEM([mpc], [MPC], [Multiprecision Complex numbers (C/R)])
362         OG_MULTIARG_ITEM([pseug], [pseudoG], [native Gaussian Numbers (Z+Z)])
363         OG_MULTIARG_ITEM([pseuc], [pseudoC], [native Complex Numbers (C/R)])
364         OG_MULTIARG_ITEM([quatern], [Quaternions], [native Quaternions (Z+Z+Z+Z)])
365         OG_MULTIARG_ITEM([ecm], [ECM], [factorisations per Elliptic Curve Method])
366         OG_MULTIARG_MUTEX([mpz], [Arbitrary precision integers], [gmp mp])
367         OG_MULTIARG_MUTEX([complex], [Complex numbers as in C/R], [mpc pseuc])
368 ])
369
370 OG_MULTIARG_WITH([ase], [dnl
371         AS_HELP_STRING([--with-ase], [
372                 Compile in support for algebraic structures based on ENT,
373                 using internal and external libraries.])],
374         [none], [none], [dnl
375         OG_MULTIARG_ITEM([cart], [cartesian], [Cartesian Products of ENT and ASE objects])
376         OG_MULTIARG_ITEM([dig], [digraph], [Directed 2-ary Graphs with Colours])
377         OG_MULTIARG_ITEM([intv], [interval], [Intervals of comparable or normed ENT and ASE objects])
378         OG_MULTIARG_ITEM([metric], [metric], [Metric Spaces])
379         OG_MULTIARG_ITEM([nbhood], [neighbourhood], [Neighbourhoods of comparable or normed ENT and ASE objects])
380         OG_MULTIARG_ITEM([perm], [permutation], [Permutations])
381         OG_MULTIARG_ITEM([resclass], [resclass], [Residue Class Rings and Classes])
382 ])
383
384 OG_MULTIARG_WITH([experimental-features], [dnl
385         AS_HELP_STRING([--with-experimental-features], [
386                 Activate experimental code, that is code which is
387                 considered useful but whose effects in conjunction with
388                 the variety of elisp projects cannot be foreseen.])
389         AS_HELP_STRING([], [
390                 During the beta phase of SXEmacs all experimental code
391                 will be unconditionally enabled.  However, if you plan
392                 to use this SXEmacs in a production environment you
393                 can switch off some portions.])],
394         [all nobdwgc], [ALL but bdwgc], [dnl
395         OG_MULTIARG_ITEM([bdwgc], [bdwgc], [the Boehm-Demers-Weiser collector])
396         OG_MULTIARG_ITEM([compre], [compre], [exhaustive caching of compiled regexps])
397         OG_MULTIARG_ITEM([asyneq], [asyneq], [asynchronous event queues])
398 ])
399         dnl stop that pom stuff
400         dnl OG_MULTIARG_ITEM([pom], [pom], [thread-safe objects])
401
402 OG_ARG_WITH([event-driver],
403         AS_HELP_STRING([--with-event-driver], [
404                 Which event routines to use.
405                 Events control the way how external `sources' are
406                 incorporated into SXEmacs.  Sources hereby are user inputs,
407                 such as key strokes, mouse moves, pedalling, slapping the
408                 monitor, etc.; but there are manifold further sources, such as
409                 process signals, data on a socket, focussing an X window,
410                 lapsing a timeout, and so forth.])
411 AS_HELP_STRING([], [
412                 An event driver can cope with all (or most) of these in a
413                 uniform and abstract way.  SXEmacs can either be driven
414                 using its built-in event handlers, or using one of the
415                 external systems.]),
416         [auto], [Autodetect], [auto built-in libevent liboop glib])
417
418
419 dnl Debugging Options
420 dnl ================
421 OG_OPTION_GROUP(Debugging Options)
422
423 OG_ARG_WITH([debug],
424         AS_HELP_STRING([--with-debug],
425                 [Compile with extra debugging code.
426                 This will turn on: --with-assertions
427                 and --with-memory-usage-stats.]),
428         [yes], [YES for beta; NO for release])
429
430 OG_ARG_WITH([memory-usage-stats],
431         AS_HELP_STRING([--with-memory-usage-stats],
432                 [Compile with support for statistics about memory usage at runtime.]),
433         [yes], [YES for beta])
434
435 OG_MULTIARG_WITH([error-checking], [dnl
436         AS_HELP_STRING([--with-error-checking=TYPE], [
437                 Compile with internal error-checking added.])
438         AS_HELP_STRING([], [
439                 WARNING: Causes noticeable loss of speed!])],
440         [all], [ALL for beta; NONE otherwise], [dnl
441         OG_MULTIARG_ITEM([extents], [extents], [checks on extents])
442         OG_MULTIARG_ITEM([types], [types], [checks on types])
443         OG_MULTIARG_ITEM([gc], [gc], [checks on garbage collection])
444         OG_MULTIARG_ITEM([malloc], [malloc], [checks on memory allocation])
445         OG_MULTIARG_ITEM([byte_code], [byte_code], [checks on byte compiled code])
446         OG_MULTIARG_ITEM([bufpos], [bufpos], [checks on buffer position])
447         OG_MULTIARG_ITEM([glyphs], [glyphs], [checks on glyph data])
448 ])
449
450 OG_ARG_WITH([purify],
451         AS_HELP_STRING([--with-purify],
452                 [Add support for memory debugging using Purify.]),
453         [no], [NO])
454
455 OG_ARG_WITH([quantify],
456         AS_HELP_STRING([--with-quantify],
457                 [Add support for performance debugging using Quantify.]),
458         [no], [NO])
459
460
461 dnl Window System Features
462 dnl ======================
463 OG_OPTION_GROUP(Window System Features)
464
465 OG_ARG_WITH([toolbars],
466         AS_HELP_STRING([--with-toolbars],
467                 [Compile in toolbar support.]),
468         [yes], [YES])
469
470 OG_ARG_WITH([external-widget],
471         AS_HELP_STRING([--with-external-widget],
472                 [Enable the "external widget" interface,
473                 which allows a SXEmacs frame to appear as a widget in
474                 another application.
475                 To date, we haven't heard of anyone who has actually done this.
476                 Consider this EXPERIMENTAL.]),
477         [no], [NO])
478
479 OG_ARG_WITH([menubars],
480         AS_HELP_STRING([--with-menubars=TYPE],
481                 [Type of menubars to use.  The Lucid menubars emulate
482                 Motif (mostly) but are faster.
483                 *WARNING*  The gtk menubar is gtk-1.2 only and unmaintained.]),
484         [lucid], [Lucid], [lucid gtk no])
485
486 OG_ARG_WITH([scrollbars],
487         AS_HELP_STRING([--with-scrollbars=TYPE],
488                 [Type of scrollbars to use.
489                 *WARNING*  The Motif scrollbars are currently broken.
490                 *WARNING*  The gtk scrollbars are gtk-1.2 only and unmaintained.]),
491         [lucid], [Lucid], [lucid motif athena gtk no])
492
493 OG_ARG_WITH([dialogs],
494         AS_HELP_STRING([--with-dialogs=TYPE],
495                 [Type of dialog boxes to use.  Athena dialogs will
496                  be used if Athena can be found.
497                  *WARNING*  The gtk dialogs are gtk-1.2 only and unmaintained.]),
498         [athena], [], [athena motif gtk no])
499
500 OG_ARG_WITH([widgets],
501         AS_HELP_STRING([--with-widgets=TYPE],
502                 [Type of native widgets to use.  Athena widgets will
503                 be used if Athena can be found.
504                 *WARNING*  The gtk widgets are gtk-1.2 only and unmaintained.]),
505         [athena], [], [athena motif gtk no])
506
507 OG_ARG_WITH([athena],
508         AS_HELP_STRING([--with-athena=TYPE],
509                 [Type of Athena widgets to use.]),
510         [auto], [Autodetect], [auto xaw 3d next 95 xpm no])
511
512 OG_ARG_WITH([xim],
513         AS_HELP_STRING([--with-xim],
514                 [Type of Mule input method to use.]),
515         [auto], [Autodetect], [yes no xlib motif])
516
517 OG_ARG_WITH([gtk],
518         AS_HELP_STRING([--with-gtk],
519                 [Support GTK (version 1.x) on the X Window System.
520                 (EXPERIMENTAL)]),
521         [no], [NO])
522
523 OG_ARG_WITH([gnome],
524         AS_HELP_STRING([--with-gnome],
525                 [Support GNOME (version 1.x) on the X Window System.
526                 (EXPERIMENTAL)]),
527         [no], [NO])
528
529 OG_ARG_WITH([wmcommand],
530         AS_HELP_STRING([--with-wmcommand],
531                 [Compile with realized leader window which will
532                 keep the WM_COMMAND property.]),
533         [yes], [YES])
534
535 OG_ARG_WITH([xmu],
536         AS_HELP_STRING([--with-xmu],
537                 [For those unfortunates whose vendors don't ship Xmu.]),
538         [auto], [Autodetect])
539
540 OG_ARG_WITH([xfs],
541         AS_HELP_STRING([--with-xfs],
542                 [Compile with XFontSet support for internationalized
543                 menubar.  Incompatible with `--with-xim=motif'.
544                 `--with-menubars=lucid' (the default) is desirable.]),
545         [no], [NO])
546
547 dnl TTY Options
548 dnl ================
549 OG_OPTION_GROUP(TTY options)
550
551 OG_ARG_WITH([tty],
552         AS_HELP_STRING([--with-tty],
553                 [Add support for ttys.]),
554         [auto], [Autodetect])
555
556 OG_ARG_WITH([ncurses],
557         AS_HELP_STRING([--with-ncurses],
558                 [Use the ncurses library for tty support.]),
559         [auto], [Autodetect])
560
561 OG_ARG_WITH([gpm],
562         AS_HELP_STRING([--with-gpm],
563                 [Compile in GPM mouse support for ttys.]),
564         [auto], [Autodetect])
565
566
567 dnl Database Options
568 dnl ================
569 OG_OPTION_GROUP(Database options)
570
571 OG_MULTIARG_WITH([database], [dnl
572         AS_HELP_STRING([--with-database=TYPE],
573                 [Compile with database support.])],
574         [auto], [Autodetect], [dnl
575         OG_MULTIARG_ITEM([berkdb], [berkdb], [Berkeley DB support])
576         OG_MULTIARG_ITEM([dbm], [dbm], [DBM database support])
577         OG_MULTIARG_ITEM([gdbm], [gdbm], [GNU DBM support])
578 ])
579
580 OG_ARG_WITH([ldap],
581         AS_HELP_STRING([--with-ldap],
582                 [Compile with support for the LDAP protocol.]),
583         [no], [NO])
584
585 OG_ARG_WITH([postgresql],
586         AS_HELP_STRING([--with-postgresql],
587                 [Compile with support for the PostgreSQL RDBMS.]),
588         [yes], [Autodetect])
589
590
591 dnl Multimedia Options
592 dnl ==================
593 OG_OPTION_GROUP(Multimedia options)
594
595 OG_MULTIARG_WITH([image], [dnl
596         AS_HELP_STRING([--with-image=TYPE],
597                 [Compile with image support.])],
598         [auto], [Autodetect all image support], [dnl
599         OG_MULTIARG_ITEM([gif], [GIF], [GIF image format])
600         OG_MULTIARG_ITEM([xpm], [XPM], [X PixMap image format])
601         OG_MULTIARG_ITEM([png], [PNG], [Portable Network Graphic format])
602         OG_MULTIARG_ITEM([jpeg], [JPEG], [jpeg image format])
603         OG_MULTIARG_ITEM([tiff], [TIFF], [TIFF image format])
604         OG_MULTIARG_ITEM([xface], [xface], [base64 encoded xbm])
605 ])
606
607 OG_MULTIARG_WITH([sound], [dnl
608         AS_HELP_STRING([--with-sound=TYPE],
609                 [Compile with sound support.])],
610         [auto], [Autodetect all sound support (except Pulse)], [dnl
611         OG_MULTIARG_ITEM([alsa], [ALSA], [kernel-based linux sound standard])
612         OG_MULTIARG_ITEM([ao], [ao], [generic audio output layer])
613         OG_MULTIARG_ITEM([arts], [aRts], [discontinued realtime synthesizer])
614         OG_MULTIARG_ITEM([esd], [ESD], [Enlightenment Sound Daemon])
615         OG_MULTIARG_ITEM([jack], [Jack], [a low-latency audio server])
616         OG_MULTIARG_ITEM([nas], [NAS], [Network Audio System])
617         OG_MULTIARG_ITEM([oss], [OSS], [Open Sound System])
618 ])
619
620 OG_ARG_WITH([pulseaudio],
621         AS_HELP_STRING([--with-pulseaudio],
622                 [Compile with support for the PulseAudio audio server.
623                 This has been turned off by default because of too many
624                 bugs in recent versions of PA.  Use at your own risk,
625                 YMMV, and all that.]),
626         [no], [NO])
627
628 OG_MULTIARG_WITH([media], [dnl
629         AS_HELP_STRING([--with-media=TYPE],
630                 [Compile with media stream support.])],
631         [auto], [Autodetect all media stream support libraries], [dnl
632         OG_MULTIARG_ITEM([ffmpeg], [FFmpeg], [media streams handled by ffmpeg])
633         OG_MULTIARG_ITEM([internal], [internal], [media streams handled internally])
634         OG_MULTIARG_ITEM([mad], [Mad], [media streams handled by mad])
635         OG_MULTIARG_ITEM([sndfile], [sndfile], [media streams handled by sndfile])
636         OG_MULTIARG_ITEM([sox], [SoX], [media streams handled by sox])
637         OG_MULTIARG_ITEM([magic], [magic], [file/libmagic support])
638 ])
639
640
641 dnl Cryptography Options
642 dnl ====================
643 OG_OPTION_GROUP(Cryptography options)
644
645 OG_ARG_WITH([openssl],
646         AS_HELP_STRING([--with-openssl],
647                 [Compile in experimental support for 
648                 OpenSSL libcrypto and libssl.]),
649         [yes], [YES])
650
651 OG_ARG_WITH([gnutls],
652         AS_HELP_STRING([--with-gnutls],
653                 [Compile in experimental support for 
654                 GnuTLS transport security.]),
655         [no], [NO])
656
657
658 dnl Networking Options
659 dnl ==================
660 OG_OPTION_GROUP(Networking options)
661
662 OG_ARG_WITH([dnet],
663         AS_HELP_STRING([--with-dnet],
664                 [Compile with support for DECnet.]),
665         [no], [NO])
666
667 OG_ARG_WITH([socks],
668         AS_HELP_STRING([--with-socks],
669                 [Compile with support for SOCKS (an Internet proxy).]),
670         [auto], [Autodetect])
671
672 OG_ARG_WITH([ipv6-cname],
673         AS_HELP_STRING([--with-ipv6-cname],
674                 [Try IPv6 information first when canonicalizing host names.
675                 This option has no effect unless system supports
676                 getaddrinfo(3) and getnameinfo(3).]),
677         [no], [NO])
678
679 OG_ARG_WITH([pop],
680         AS_HELP_STRING([--with-pop],
681                 [Support POP for mail retrieval.]),
682         [no], [NO])
683
684 OG_ARG_WITH([kerberos],
685         AS_HELP_STRING([--with-kerberos],
686                 [Support Kerberos-authenticated POP.]),
687         [no], [NO])
688
689 OG_ARG_WITH([hesiod],
690         AS_HELP_STRING([--with-hesiod],
691                 [Support Hesiod to get the POP server host.]),
692         [no], [NO])
693
694
695 dnl File-related Options
696 dnl ====================
697 OG_OPTION_GROUP(File-related options)
698
699 OG_ARG_WITH([clash-detection],
700         AS_HELP_STRING([--with-clash-detection],
701                 [Use lock files to detect multiple edits
702                 of the same file.]),
703         [no], [NO])
704
705 OG_ARG_WITH([mail-locking],
706         AS_HELP_STRING([--with-mail-locking=TYPE],
707                 [Specify the locking to be used by movemail to prevent
708                 concurrent updates of mail spool files. Valid types
709                 are `lockf'  `flock'  `file'  `locking'  `pop' or `mmdf'.]),
710         [auto], [Autodetect], [lockf flock file locking mmdf pop no])
711
712
713 dnl Internationalisation Options
714 dnl ============================
715 OG_OPTION_GROUP(Internationalisation options)
716
717 OG_ARG_WITH([mule],
718         AS_HELP_STRING([--with-mule],
719                 [Compile with Mule (MUlti-Lingual Emacs) support
720                 needed to support non-Latin-1 (including Asian)
721                 languages.]),
722         [yes], [YES])
723
724 OG_ARG_WITH([canna],
725         AS_HELP_STRING([--with-canna],
726                 [Compile with support for Canna (a Japanese input method
727                 used in conjunction with Mule support).]),
728         [auto], [Autodetect when Mule is enabled])
729
730 OG_ARG_WITH([wnn],
731         AS_HELP_STRING([--with-wnn],
732                 [Compile with support for Wnn (a multi-language input
733                 method used in conjunction with Mule support).]),
734         [auto], [Autodetect when Mule is enabled])
735
736 OG_ARG_WITH([wnn6],
737         AS_HELP_STRING([--with-wnn6],
738                 [Compile with support for the commercial package Wnn6.]),
739         [auto], [Autodetect when Mule is enabled])
740
741
742
743 dnl dnl Other Options
744 dnl dnl =============
745 dnl OG_OPTION_GROUP(Other options)
746 dnl 
747 dnl OG_ARG_WITH([tooltalk],
748 dnl     AS_HELP_STRING([--with-tooltalk],
749 dnl             [Support the ToolTalk IPC protocol.]),
750 dnl     [no], [NO], [], [with_tooltalk=$withval], [with_tooltalk=no])
751
752
753 ## -------------------------------------------------------------------------
754 ## Check for users who regularly forget about running autoconf
755 ## -------------------------------------------------------------------------
756 if test -f $0.ac -a $0.ac -nt $0; then
757         AC_MSG_ERROR([What are you doing? RUN autoreconf NOW!!!])
758 fi
759
760 #
761 # Turn off core generation. We are already verifying the program fails, no need 
762 # poluting the workspace. Of course if you are a SXEmacs developer you may want
763 # to comemnt this on occasion :-)
764 ulimit -c 0
765
766 ## initialise our nestable msg funs
767 SXE_INIT_MSG_LEVEL
768
769 dnl Small snippet to make echo -n work on solaris
770 ECHO_N= ECHO_C=
771 case `echo -n x` in
772 -n*)
773         case `echo 'x\c'` in
774         *c*)
775                 ;;
776         *)
777                 ECHO_C='\c'
778                 ;;
779         esac
780         ;;
781 *)
782         ECHO_N='-n'
783         ;;
784 esac
785
786
787 echo
788 echo "Preparing the build chain"
789 echo "========================="
790
791 ## We should brag about ourselves, no?
792 AC_DEFINE([XEMACS], [1], [Pretend to be an XEmacs])
793 AC_DEFINE([SXEMACS], [1], [Why not? It's the truth!])
794
795 dnl -------------------------------------------------------------------------
796 dnl Command line argument processing.
797 dnl -------------------------------------------------------------------------
798 dnl Check for bogus options
799 dnl -------------------------------------------------------------------------
800 SXE_CHECK_COMMAND_LINE
801
802 AM_INIT_AUTOMAKE([foreign -Wall])
803 SXE_CHECK_BUILDCHAIN
804 AC_SUBST(EGREP)
805
806 progname=$0
807 progbasename=$(basename $progname)
808 progdirname=$(dirname $progname)
809
810 ## Build Options
811 ## =============
812
813 echo
814 echo "Build and System Specific Options"
815 echo "================================="
816
817 SXE_EXPLORE_BUILD_ENVIRONMENT
818
819 dnl ----------------------------------------
820 dnl Find out which version of SXEmacs this is
821 dnl ----------------------------------------
822 AC_CHECK_PROG([have_git], [git], [yes], [no])
823 AC_MSG_CHECKING([for SXEmacs version])
824 AC_MSG_RESULT([SXEmacs SXEM4CS_VERSION])
825 dnl Must do the following first to determine verbosity for AC_DEFINE
826 if test -n "[]SXEM4CS_BETA_P[]"; then
827         beta=yes
828 else
829         beta=no
830 fi
831 : "${extra_verbose=$beta}"
832
833 AC_MSG_CHECKING([for SXEmacs patchlevel])
834 CURDIR=$(pwd)
835 cd "$sxe_srcdir"
836 if test "$have_git" = "yes"; then
837         sxemacs_git_version="$(git describe)"
838 fi
839 if test -z "$sxemacs_git_version" ; then
840         sxemacs_git_version="[]SXEM4CS_GIT_VERSION[]"
841 fi
842 AC_MSG_RESULT([$sxemacs_git_version])
843 version="$sxemacs_git_version"
844 cd "$CURDIR"
845 main_version="$sxemacs_git_version"
846 AC_DEFINE_UNQUOTED([EMACS_MAJOR_VERSION], [SXEM4CS_MAJOR_VERSION], [Description here!])
847 AC_DEFINE_UNQUOTED([EMACS_MINOR_VERSION], [SXEM4CS_MINOR_VERSION], [Description here!])
848 old_version=[]SXEM4CS_VERSION[]
849 if test -n "[]SXEM4CS_BETA_VERSION[]"; then
850         AC_MSG_CHECKING([if we are a beta version])
851         if test "$beta" = "yes"; then
852                 AC_MSG_RESULT([yes])
853                 AC_DEFINE_UNQUOTED([EMACS_BETA_VERSION], [SXEM4CS_BETA_VERSION],
854                         [Description here!])
855         else
856                 AC_MSG_RESULT([no])
857                 AC_DEFINE_UNQUOTED([EMACS_PATCH_LEVEL], [SXEM4CS_BETA_VERSION],
858                         [Description here!])
859         fi
860 fi
861 AC_DEFINE_UNQUOTED([SXEMACS_CODENAME], ["[]SXEM4CS_CODENAME[]"], [Description here!])
862 AC_DEFINE_UNQUOTED([EMACS_VERSION], ["$version"], [Description here!])
863 AC_DEFINE_UNQUOTED([SXEMACS_GIT_VERSION], ["$sxemacs_git_version"],
864         [Description here!])
865
866 PROGNAME=sxemacs
867
868 AC_DEFINE_UNQUOTED([EMACS_PROGNAME], ["$PROGNAME"], [Description here!])
869
870 ## build stuff in lib-src unconditionally
871 SXE_APPEND([lib-src], [MAKE_SUBDIR])
872 SXE_APPEND([lib-src], [INSTALL_ARCH_DEP_SUBDIR])
873
874 ## C compiler build chain
875 AC_USE_SYSTEM_EXTENSIONS
876 AC_LANG([C])
877 AS_MESSAGE([Let's look for the entire C build chain])
878 SXE_CHECK_CC
879 SXE_CHECK_CFLAGS
880
881 ## check machine chars
882 AS_MESSAGE([Let's have a detailed glance at your machine])
883 SXE_PROC_CPUID
884 SXE_PROC_VENDORID
885 SXE_NPROCESSORS
886 SXE_CHECK_PROC_GOODNESS
887
888
889 ## Debugging Options
890 ## =================
891 ## echo
892 ## echo "Debugging Options"
893 ## echo "================="
894
895 dnl ----------------------------------
896 dnl Error checking and debugging flags
897 dnl ----------------------------------
898 dnl Error checking default to "yes" in beta versions, to "no" in releases.
899 dnl Same goes for --enable-debug and --extra-verbosity.
900 if test "$with_error_checking_extents" = yes; then
901         have_error_checking_extents="yes"
902         AC_DEFINE([ERROR_CHECK_EXTENTS], [1], [Description here!])
903         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
904 fi
905 if test "$with_error_checking_types" = yes; then
906         have_error_checking_types="yes"
907         AC_DEFINE([ERROR_CHECK_TYPECHECK], [1], [Description here!])
908         AC_DEFINE_UNQUOTED([type_checking_assert(assertion)],
909                 [assert (assertion)], [
910                 Make sure that all X... macros are dereferencing the correct type,
911                 and that all XSET... macros (as much as possible) are setting the
912                 correct type of structure.  Highly recommended for all
913                 development work.])
914         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
915 else
916         AC_DEFINE_UNQUOTED([type_checking_assert(assertion)], [], [])
917 fi
918 if test "$with_error_checking_bufpos" = yes; then
919         have_error_checking_bufpos="yes"
920         AC_DEFINE([ERROR_CHECK_BUFPOS], [1], [Description here!])
921         AC_DEFINE_UNQUOTED([bufpos_checking_assert(assertion)],
922                 [assert (assertion)], [dnl
923                 Make sure valid buffer positions are passed to BUF_* macros])
924         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
925 else
926         AC_DEFINE_UNQUOTED([bufpos_checking_assert(assertion)], [], [])
927 fi
928 if test "$with_error_checking_gc" = yes; then
929         have_error_checking_gc="yes"
930         AC_DEFINE([ERROR_CHECK_GC], [1], [Description here!])
931         AC_DEFINE_UNQUOTED([gc_checking_assert(assertion)],
932                 [assert (assertion)], [dnl
933                 Attempt to catch bugs related to garbage collection
934                 (e.g. not GCPRO'ing)])
935         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
936 else
937         AC_DEFINE_UNQUOTED([gc_checking_assert(assertion)], [], [])
938 fi
939 if test "$with_error_checking_malloc" = yes; then
940         have_error_checking_malloc="yes"
941         AC_DEFINE([ERROR_CHECK_MALLOC], [1], [Description here!])
942         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
943 fi
944 if test "$with_error_checking_byte_code"  = yes; then
945         have_error_checking_byte_code="yes"
946         AC_DEFINE([ERROR_CHECK_BYTE_CODE], [1], [Description here!])
947         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
948 fi
949 if test "$with_error_checking_glyphs" = yes; then
950         have_error_checking_glyphs="yes"
951         AC_DEFINE([ERROR_CHECK_GLYPHS], [1], [Description here!])
952         AC_DEFINE([USE_ASSERTIONS], [1], [Description here!])
953 fi
954
955 dnl enable_debug=yes must be set when error checking is present.  This should be
956 dnl fixed up.
957 dnl with_debug implies other options
958 if test "${with_debug:=$beta}" = "yes"; then
959         with_memory_usage_stats=yes
960         SXE_ADD_CRUFT_OBJS([debug.o])
961         SXE_ADD_CRUFT_OBJS([tests.o])
962         AC_DEFINE([DEBUG_SXEMACS], [1], [Description here!])
963 fi
964 if test "$with_memory_usage_stats" = "yes"; then
965         AC_DEFINE([MEMORY_USAGE_STATS], [1], [Description here!])
966 fi
967
968
969
970 dnl --------------------------------------------------------------
971 dnl $opsys detection complete; defaults depending on $opsys follow
972 dnl --------------------------------------------------------------
973
974
975 dnl --------------------------------------------------------------
976 dnl WooHoo! pdump is ON always and everywhere! --SY.
977 dnl --------------------------------------------------------------
978 with_pdump=yes
979
980 if test "$with_dynamic" != "no"; then
981         case "$opsys" in
982         hpux* | sunos4* )
983                 with_dynamic=no
984                 ;;
985         *)
986                 with_dynamic=yes
987                 ;;
988         esac
989 fi
990 if test "$with_dynamic" = "yes"; then
991         case "$opsys" in
992         hpux* | sunos4* | sco5 )
993                 opsys="${opsys}-shr"
994                 ;;
995         decosf* )
996                 ld_call_shared="-call_shared"
997                 ;;
998         darwin )
999                 AC_DEFINE([DLSYM_NEEDS_UNDERSCORE], [1], [Description here!])
1000                 ;;
1001         esac
1002 else dnl "$with_dynamic" = "no"
1003         case "$opsys" in
1004         sol2 )
1005                 echo "Static linking is not supported on Solaris 2."
1006                 echo "Rerun configure without specifying --without-dynamic."
1007                 exit 1
1008                 ;;
1009         linux )
1010                 ld_call_shared="-Bstatic"
1011                 ;;
1012         decosf* )
1013                 ld_call_shared="-non_shared"
1014                 ;;
1015         esac
1016 fi
1017
1018 dnl Tools configuration
1019 case "$opsys" in
1020 aix* )
1021         NON_GNU_CC=xlc
1022         ;;      dnl Use xlc by default on AIX
1023 darwin )
1024         RANLIB="ranlib -c"
1025         ;;  dnl Avoid link error in lwlib-config.c
1026         ## this needs rework I think because RANLIB is provided by LT_INIT anyway
1027 esac
1028
1029 stack_trace_eye_catcher=\
1030 `echo ${PROGNAME}_${version}_${ac_cv_build} | sed 'y!@/.-!____!'`
1031 AC_DEFINE_UNQUOTED([STACK_TRACE_EYE_CATCHER], [$stack_trace_eye_catcher],
1032         [Just a very looong string to make traces more readable.])
1033
1034 dnl --------------------------------------------------
1035 dnl Determine the compiler, set up for feature testing
1036 dnl --------------------------------------------------
1037
1038 dnl Sun Development environment support
1039 test "$with_sparcworks" = "yes" && with_workshop=yes # compatibility alias
1040 SXE_CHECK_FEATURE_DEPENDENCY([workshop], [tooltalk])
1041 if test "$with_workshop" = "yes"; then
1042         AC_DEFINE([SUNPRO], [1], [Description here!])
1043 fi
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_LINKER_FLAGS
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_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(-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(-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   have_pthreads_opt=yes
1615   case "`$CC -pthreads 2>&1`" in
1616       *unrecognized\ option*) have_pthreads_opt=no ;;
1617   esac
1618   if test "$have_pthreads_opt" = "yes"; then
1619         SXE_PREPEND(-pthreads, c_switch_site)
1620   fi
1621   have_pthread_opt=yes
1622   case "`$CC -pthread 2>&1`" in
1623      *unrecognized\ option*) have_pthread_opt=no ;;
1624   esac
1625   if test "$have_pthread_opt" = "yes"; then
1626         SXE_PREPEND(-pthread, c_switch_site)
1627   fi
1628   SXE_PREPEND(-lpthread, MM_LIBS)
1629 fi
1630
1631 dnl test for AIX pthreads
1632 AC_CHECK_LIB(pthreads, pthread_create)
1633 if test $ac_cv_lib_pthreads_pthread_create = yes; then
1634   have_threads=yes
1635   SXE_PREPEND(-lpthreads, MM_LIBS)
1636 fi
1637
1638 dnl test for HPUX cma threads. 
1639 AC_CHECK_LIB(cma, pthread_create)
1640 if test $ac_cv_lib_cma_pthread_create = yes; then
1641   have_threads=yes
1642   SXE_PREPEND(-lcma, MM_LIBS)
1643 fi
1644
1645 dnl FreeBSD -pthread check
1646 AC_DEFUN([AC_PTHREAD_FREEBSD],
1647 [AC_MSG_CHECKING([if we need -pthread for threads])
1648 AC_CACHE_VAL(ac_cv_ldflag_pthread,
1649         [ac_save_ld_switch_site="$ld_switch_site"
1650         ld_switch_site="-pthread $ld_switch_site"
1651         AC_LINK_IFELSE([AC_LANG_PROGRAM([[char pthread_create();]],
1652         [[char pthread_create();]])],
1653         eval "ac_cv_ldflag_pthread=yes",
1654         eval "ac_cv_ldflag_pthread=no"),
1655         ld_switch_site="$ac_save_ld_switch_site"
1656 ])
1657 if eval "test \"`echo $ac_cv_ldflag_pthread`\" = yes"; then
1658         AC_MSG_RESULT(yes)
1659         have_threads=yes
1660         SXE_PREPEND("-pthread", ld_switch_site)
1661         SXE_PREPEND("-D_THREAD_SAFE", c_switch_site)
1662 else
1663         AC_MSG_RESULT(no)
1664 fi])
1665
1666 dnl If all other thread tests fail, try BSD's -pthread
1667 if test "$have_threads" != yes; then
1668   AC_PTHREAD_FREEBSD
1669 fi
1670
1671 if test "$have_threads" = yes; then
1672   AC_DEFINE([HAVE_THREADS], [1], [Description here!])
1673 fi
1674
1675
1676 ## Internal Options
1677 ## ================
1678
1679 echo
1680 echo "Internal Options"
1681 echo "================"
1682
1683 SXE_CHECK_LIBTOOL
1684 SXE_CHECK_LIBLTDL
1685
1686 dnl ----------------------------------------------------------------
1687 dnl Check for POSIX functions.
1688 dnl ----------------------------------------------------------------
1689
1690 SXE_CHECK_BASIC_FUNS
1691 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])
1692
1693
1694 ## combines all these time structures and funs
1695 SXE_CHECK_METRONOME
1696 SXE_CHECK_SUFFICIENCY([metronome], [metronome])
1697
1698 ## check for a sane dirname/realpath
1699 SXE_CHECK_DIRNAME
1700 SXE_CHECK_REALPATH
1701
1702 dnl -----------------------------------
1703 dnl Do some misc autoconf-special tests
1704 dnl -----------------------------------
1705
1706 dnl Do the opsystem or machine files prohibit the use of the GNU malloc?
1707 dnl Assume not, until told otherwise.
1708 GNU_MALLOC=yes
1709 if test "$with_dlmalloc" != "no"; then
1710         doug_lea_malloc=yes
1711 else
1712         doug_lea_malloc=no
1713 fi
1714 after_morecore_hook_exists=yes
1715 AC_CHECK_FUNC(malloc_set_state, ,doug_lea_malloc=no)
1716 AC_MSG_CHECKING(whether __after_morecore_hook exists)
1717 AC_LINK_IFELSE([AC_LANG_SOURCE([[extern void (* __after_morecore_hook)();],[__after_morecore_hook = 0]])],
1718   [AC_MSG_RESULT(yes)],
1719   [AC_MSG_RESULT(no)
1720    after_morecore_hook_exists=no])
1721 if test "$system_malloc" = "yes" ; then
1722   GNU_MALLOC=no
1723   GNU_MALLOC_reason="
1724     - The GNU allocators don't work with this system configuration."
1725 elif test "$with_system_malloc" = "yes" ; then
1726   GNU_MALLOC=no
1727   GNU_MALLOC_reason="
1728     - User chose not to use GNU allocators."
1729 elif test "$with_debug_malloc" = "yes" ; then
1730   GNU_MALLOC=no
1731   GNU_MALLOC_reason="
1732     - User chose to use Debugging Malloc."
1733 fi
1734
1735 if test "$doug_lea_malloc" = "yes" -a "$GNU_MALLOC" = "yes" ; then
1736         GNU_MALLOC_reason="
1737     - Using Doug Lea's new malloc from the GNU C Library."
1738         AC_DEFINE([DOUG_LEA_MALLOC], [1], [Description here!])
1739         if test "$after_morecore_hook_exists" = "no" ; then
1740                 GNU_MALLOC_reason="
1741     - Using Doug Lea's new malloc from the Linux C Library."
1742         AC_DEFINE([_NO_MALLOC_WARNING_], [1], [Description here!])
1743         fi
1744 fi
1745 AM_CONDITIONAL([USE_MEMALLOC], [test -n "${libmemalloc_objs}"])
1746
1747 dnl #### mcheck is broken in all versions of Linux libc and glibc.
1748 dnl Try this again when 2.1 hits the streets.
1749 dnl Avoid using free-hook.c if support exists for malloc debugging in libc
1750 have_libmcheck=no
1751 if test "$with_error_checking_malloc" = "yes" -a \
1752    "$have_glibc" = "yes" -a \
1753    "$doug_lea_malloc" = "yes"; then
1754         AC_CHECK_HEADERS(mcheck.h)
1755         AC_CHECK_LIB(mcheck, mcheck, [have_libmcheck=yes], [have_libmcheck=no])
1756 fi
1757
1758 if test "$with_module_support" != "no"; then
1759         AS_MESSAGE([checking for module support])
1760         if test "$sxe_cv_feat_libltdl" = "yes"; then
1761                 have_module_support="yes"
1762                 with_module_support="yes"
1763                 SXE_ADD_CRUFT_OBJS([emodules-ng.o])
1764                 AC_DEFINE([HAVE_EMODULES], [1], [Whether emods would be available])
1765                 AC_DEFINE([WITH_EMODULES], [1], [Whether emods shall be available])
1766         else
1767                 have_module_support="no"
1768                 AC_DEFINE([WITH_EMODULES], [1], [Whether emods shall be available])
1769         fi
1770 fi
1771
1772 AM_CONDITIONAL([DESCEND_MODULES],
1773         [test "$with_module_support $have_module_support" = "yes yes"])
1774 if test "$with_module_support $have_module_support" = "yes"; then
1775         SXE_APPEND([src], [MAKE_SUBDIR])
1776         SXE_APPEND([src], [INSTALL_ARCH_DEP_SUBDIR])
1777         SXE_APPEND([modules], [MAKE_AM_SUBDIR])
1778         SXE_APPEND([modules], [SRC_SUBDIR_DEPS])
1779 dnl else
1780 dnl     MOD_CC="$SXEMACS_CC"
1781 dnl     MODCFLAGS="\$(SXE_CFLAGS) -I../../src -I\$(sxe_srcdir)/../../src"
1782 dnl     INSTALLPATH=""
1783 dnl     MOD_INSTALL_PROGRAM="true"
1784 dnl     OBJECT_TO_BUILD="\$(MODNAME).o"
1785 fi
1786
1787 if test "$opsys" != "darwin"; then
1788
1789         if test "$with_modules_ase" = "yes"; then
1790                 have_modules_ase=yes
1791         fi
1792         if test "$with_static_modules_ase" = "yes"; then
1793                 have_static_modules_ase=yes
1794         fi
1795 fi
1796 SXE_EMOD_STATMOD([ase])
1797 if test "$opsys" != "darwin"; then
1798         have_ase_cart="yes"
1799         have_ase_dig="yes"
1800         have_ase_intv="yes"
1801         have_ase_metric="yes"
1802         have_ase_nbhood="yes"
1803         have_ase_perm="yes"
1804         have_ase_resclass="yes"
1805 fi
1806
1807 if test "$with_modules_cl" = "yes" -a "$have_bison" = "yes"; then
1808         have_modules_cl="yes"
1809 fi
1810 if test "$with_static_modules_cl" = "yes" -a "$have_bison" = "yes"; then
1811         have_static_modules_cl="yes"
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(${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(${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/CDE/Tooltalk 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(["-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(["-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 tooltalk cde 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_SPACE([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 Autodetect tooltalk
2821 if test "$with_tooltalk" != "no" ; then
2822   dnl autodetect the location of tt_c.h
2823   dnl tt_c.h might be in Tt or desktop include directories
2824   for dir in "" "Tt/" "desktop/" ; do
2825     AC_CHECK_HEADER(${dir}tt_c.h, tt_c_h_file="${dir}tt_c.h"; break)
2826   done
2827   if test -z "$tt_c_h_file"; then
2828     if test "$with_tooltalk" = "yes"; then
2829       SXE_USAGE_ERROR("Unable to find required tooltalk header files.")
2830     fi
2831     with_tooltalk=no
2832   fi
2833 fi
2834 if test "$with_tooltalk" != "no" ; then
2835   for extra_libs in "" "-lI18N -lce" "-lcxx"; do
2836     AC_CHECK_LIB(tt, tt_message_create,
2837       tt_libs="-ltt $extra_libs"; break, [:],$extra_libs)
2838   done
2839   if test -z "$tt_libs"; then
2840     if test "$with_tooltalk" = "yes"; then
2841       SXE_USAGE_ERROR("Unable to find required tooltalk libraries.")
2842     fi
2843     with_tooltalk=no
2844   fi
2845 fi
2846 if test "$with_tooltalk" = "yes"; then
2847   AC_DEFINE([TOOLTALK], [1], [Description here!])
2848   AC_DEFINE_UNQUOTED([TT_C_H_FILE], ["$tt_c_h_file"], [Description here!])
2849   SXE_PREPEND($tt_libs, libs_x)
2850 fi
2851
2852 dnl Autodetect CDE
2853 AC_CHECK_HEADER(Dt/Dt.h, , with_cde=no)
2854 AC_CHECK_LIB(DtSvc, DtDndDragStart, [:], with_cde=no)
2855 if test "$with_dragndrop" = "no" ; then
2856   if test "$with_cde" = "yes" ; then
2857     AC_MSG_WARN([--with-cde forced to `no'; no generic Drag'n'Drop support])
2858   fi
2859   with_cde=no
2860 fi
2861 if test "$with_cde" = "yes" ; then
2862   AC_DEFINE([HAVE_CDE], [1], [Description here!])
2863   SXE_PREPEND(-lDtSvc, libs_x)
2864   SXE_APPEND(CDE, dragndrop_proto)
2865   with_tooltalk=yes # CDE requires Tooltalk
2866   need_motif=yes    # CDE requires Motif
2867 fi
2868
2869 dnl Always compile OffiX unless --without-offix is given, no
2870 dnl X11 support is compiled in, no standard Xmu is available,
2871 dnl or dragndrop support is disabled
2872 dnl Because OffiX support currently loses when more than one display
2873 dnl is in use, we now disable it by default -slb 07/10/1998.
2874 test "$window_system" != "x11" && with_offix=no
2875 if test "$with_xmu" != yes -a "$with_x11" = yes; then
2876   if test "$with_offix" = "yes" ; then
2877     AC_MSG_WARN([--with-offix forced to `no'; no real Xmu support])
2878   fi
2879   with_offix=no
2880 fi
2881 if test "$with_dragndrop" = "no" ; then
2882   if test "$with_offix" = "yes" ; then
2883     AC_MSG_WARN([--with-offix forced to `no'; no generic Drag'n'Drop support])
2884   fi
2885   with_offix=no
2886 fi
2887 if test "$with_cde" = "yes" ; then
2888   if test "$with_offix" = "yes" ; then
2889     AC_MSG_WARN([--with-offix forced to `no'; CDE already found])
2890   fi
2891   with_offix=no
2892 fi
2893 if test "$with_offix" = "yes"; then
2894   AC_DEFINE([HAVE_OFFIX_DND], [1], [Description here!])
2895   SXE_APPEND(offix.o, dnd_objs)
2896   SXE_APPEND(OffiX, dragndrop_proto)
2897 fi
2898 if test "$with_gtk" = "yes"; then
2899    SXE_APPEND(GTK, dragndrop_proto)
2900 fi
2901
2902
2903 ## TTY Options
2904 ## ===========
2905 echo
2906 echo "TTY Options"
2907 echo "==========="
2908
2909
2910 dnl ---------------------
2911 dnl TTY-dependent options
2912 dnl ---------------------
2913
2914 dnl checks for header files
2915 AC_CHECK_HEADERS([libintl.h nlist.h sgtty.h termio.h termios.h])
2916
2917 if test "$with_tty" != "no"  ; then
2918         AS_MESSAGE(checking for TTY-related features)
2919         AC_DEFINE([HAVE_TTY], [1], [Description here!])
2920         AC_DEFINE([HAVE_UNIXOID_EVENT_LOOP], [1], [Description here!])
2921         SXE_ADD_SXEUITTY_OBJS([console-tty.o device-tty.o event-tty.o frame-tty.o objects-tty.o redisplay-tty.o cm.o])
2922
2923   dnl Autodetect ncurses.
2924   AC_CHECK_LIB(ncurses, tgetent, , with_ncurses=no)
2925   AC_CHECK_LIB(ncurses, tgetstr, , with_ncurses=no)
2926   AC_CHECK_LIB(ncurses, tparm, , with_ncurses=no)
2927   if test "$with_ncurses" != "no"; then
2928     AC_DEFINE([HAVE_NCURSES], [1], [Description here!])
2929     with_ncurses=yes
2930     AC_CHECK_HEADER(ncurses/ncurses.h, curses_h_file=ncurses/ncurses.h)
2931     if test -z "$curses_h_file"; then
2932             AC_CHECK_HEADER(ncurses/curses.h,  curses_h_file=ncurses/curses.h)
2933     fi
2934     if test -n "$curses_h_file"; then
2935             AC_CHECK_HEADER(ncurses/termcap.h, termcap_h_file=ncurses/termcap.h)
2936             AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
2937     else
2938             AC_CHECK_HEADER(ncurses.h, curses_h_file=ncurses.h)
2939             AC_CHECK_HEADER(termcap.h, termcap_h_file=termcap.h)
2940             AC_CHECK_HEADER(term.h,    term_h_file=term.h)
2941     fi
2942     SXE_ADD_SXEUITTY_OBJS(terminfo.o)
2943     SXE_PREPEND(-lncurses, LIBS)
2944
2945     if test -z "$curses_h_file" ; then
2946       dnl Try again, and check for the bogus ncurses/ include bug.
2947       dnl (i.e. ncurses/curses.h bogusly includes <unctrl.h> instead of
2948       dnl <ncurses/unctrl.h>)
2949       save_c_switch_site="$c_switch_site"
2950       c_switch_site="$c_switch_site -I/usr/include/ncurses"
2951       AC_CHECK_HEADER(ncurses/ncurses.h, curses_h_file=ncurses/ncurses.h)
2952       if test -z "$curses_h_file"; then
2953             AC_CHECK_HEADER(ncurses/curses.h,  curses_h_file=ncurses/curses.h)
2954       fi
2955       if test -n "$curses_h_file"; then
2956             AC_CHECK_HEADER(ncurses/termcap.h, termcap_h_file=ncurses/termcap.h)
2957             AC_CHECK_HEADER(ncurses/term.h, term_h_file=ncurses/term.h)
2958       else
2959             AC_CHECK_HEADER(ncurses.h, curses_h_file=ncurses.h)
2960             AC_CHECK_HEADER(termcap.h, curses_h_file=termcap.h)
2961             AC_CHECK_HEADER(term.h,    curses_h_file=term.h)
2962       fi
2963       if test -n "$curses_h_file"
2964         then AC_MSG_WARN([Your system has the bogus ncurses include bug.])
2965         else c_switch_site="$save_c_switch_site"
2966       fi
2967     fi
2968   fi
2969   if test "$with_ncurses" = "no" -o -z "$curses_h_file" ; then
2970
2971     # Check alternate library includes
2972     for lib in curses term terminfo termcap; do
2973         AC_CHECK_HEADER(${lib}.h, [
2974                 eval ${lib}_h_file=${lib}.h
2975                 AC_CHECK_LIB($lib, tgetent, eval have_${lib}=yes, eval have_${lib}=no)
2976                 AC_CHECK_LIB($lib, tgetstr, , eval have_${lib}=no)])
2977     done
2978
2979     for lib in curses terminfo termlib termcap; do
2980           have_lib_eval=`eval echo \\$have_$lib`
2981           if test "$have_lib_eval" = "yes"; then
2982                 AC_CHECK_LIB($lib, tparm, 
2983                           SXE_ADD_SXEUITTY_OBJS(terminfo.o),
2984                           SXE_ADD_SXEUITTY_OBJS(tparam.o))
2985                 SXE_PREPEND(-l${lib}, LIBS)
2986                 break
2987           fi
2988     done
2989   fi
2990   if test -n "$curses_h_file"; then
2991         AC_DEFINE_UNQUOTED([HAVE_CURSES_H], [1], [There is a curses.h header file available])
2992   fi
2993   if test -n "$termcap_h_file"; then
2994         AC_DEFINE_UNQUOTED([HAVE_TERMCAP_H], [1], [There is a termcap.h header available])
2995   fi
2996   if test -n "$term_h_file"; then
2997         AC_DEFINE_UNQUOTED([HAVE_TERM_H], [1], [There is a term.h header available])
2998   fi
2999   AC_DEFINE_UNQUOTED([CURSES_H_FILE], ["${curses_h_file-curses.h}"], [The curses.h header file])
3000   AC_DEFINE_UNQUOTED([TERMCAP_H_FILE], ["${termcap_h_file-termcap.h}"], [The termcap.h header file])
3001   AC_DEFINE_UNQUOTED([TERM_H_FILE], ["${term_h_file-term.h}"], [The term.h header file])
3002
3003   dnl General Purpose Mouse (libgpm) support
3004   if test "$with_gpm" != "no"; then
3005     AC_CHECK_HEADER(gpm.h, [
3006       AC_CHECK_LIB(gpm, Gpm_Open, have_gpm=yes)])
3007     if test "$have_gpm" = "yes"; then
3008       with_gpm=yes
3009       AC_DEFINE([HAVE_GPM], [1], [General Purpose Mouse (libgpm) is available])
3010       SXE_ADD_SXEUITTY_OBJS(gpmevent.o)
3011       SXE_PREPEND(-lgpm, LIBS)
3012     else
3013       with_gpm=no
3014     fi
3015   fi
3016
3017 else dnl "$with_tty" = "no"
3018   for feature in ncurses gpm; do
3019     if eval "test -n \"\$with_${feature}\" -a \"\$with_${feature}\" != no" ; then
3020       AC_MSG_WARN([--with-${feature} ignored:  Not valid without TTY support])
3021     fi
3022     eval "with_${feature}=no"
3023   done
3024 fi dnl with_tty
3025
3026 SXE_CHECK_UI_SUFFICIENCY
3027
3028 ## Uncertain options
3029 ## =================
3030 echo
3031 echo "Uncertain options"
3032 echo "================="
3033
3034 ## for native xml support one day
3035 SXE_LANG_CHECK_XML
3036 SXE_CHECK_SUFFICIENCY([libxml2], [xml language])
3037 ## for BoehmGC support one day
3038 SXE_CHECK_BDWGC
3039 SXE_CHECK_SUFFICIENCY([bdwgc], [Boehm-Demers-Weiser GC])
3040
3041 if test "$with_experimental_features_bdwgc" = "yes"; then
3042         AC_MSG_CHECKING([if bdwgc prerequisites are met])
3043         AC_MSG_RESULT([${have_bdwgc}])
3044         have_experimental_features_bdwgc=${have_bdwgc}
3045         if test "${have_bdwgc}" = "yes"; then
3046                 AC_DEFINE([EF_USE_BDWGC], [1],
3047                         [Whether to actually use the BDWGC!])
3048         fi
3049 fi
3050
3051
3052 dnl This one is for the static initializeds variables in
3053 dnl offix.c, so that the thing is dumped after lastfile.o
3054 AC_SUBST(dnd_objs)
3055
3056 dnl Autodetect dll support
3057
3058 LIBSTDCPP=
3059 AC_SUBST(LIBSTDCPP)
3060
3061
3062 ## Multimedia Options
3063 ## ==================
3064 echo
3065 echo "Multimedia Options"
3066 echo "=================="
3067
3068 dnl ----------------------
3069 dnl Graphics libraries
3070 dnl ----------------------
3071
3072 if test "$with_image_xpm" = "yes"; then
3073         SXE_MM_CHECK_XPM([have_image_xpm=yes], [have_image_xpm=no])
3074
3075         AC_MSG_CHECKING([for sufficient xpm support])
3076         if test "$have_image_xpm" = "yes"; then
3077                 AC_MSG_RESULT([yes])
3078                 AC_DEFINE([HAVE_XPM], [1], [Description here!])
3079                 SXE_PREPEND([-lXpm], [MM_LIBS])
3080         else
3081                 AC_MSG_RESULT([no])
3082                 have_image_xpm=no
3083         fi
3084 fi
3085 AM_CONDITIONAL([WITH_BDWGC],
3086         [test "$with_experimental_features_bdwgc" = "yes" -a \
3087               "$have_bdwgc" = "yes"])
3088
3089 if test "$with_image_xface" = "yes"; then
3090         SXE_MM_CHECK_XFACE([have_image_xface=yes], [have_image_xface=no])
3091
3092         AC_MSG_CHECKING([for sufficient xface support])
3093         if test "$have_image_xface" = "yes"; then
3094                 AC_MSG_RESULT([yes])
3095                 AC_DEFINE([HAVE_XFACE], [1], [dnl
3096                         Both compface.h and libcompface have been found.])
3097                 SXE_PREPEND([-lcompface], [MM_LIBS])
3098         else
3099                 AC_MSG_RESULT([no])
3100                 have_image_xface=no
3101         fi
3102 fi
3103
3104 if test "$with_image_gif" = "yes"; then
3105         SXE_MM_CHECK_GIF([have_image_gif=yes], [have_image_gif=no])
3106
3107         AC_MSG_CHECKING([for sufficient gif support])
3108         if test "$have_image_gif" = "yes"; then
3109                 AC_MSG_RESULT([yes])
3110                 AC_DEFINE([HAVE_GIF], [1], [Enable internal GIF decoding])
3111                 SXE_ADD_MM_OBJS(dgif_lib.o gif_io.o)
3112         else
3113                 AC_MSG_RESULT([no])
3114         fi
3115 fi
3116
3117 SXE_MM_SEARCH_INFLATE
3118
3119 if test "$with_image_jpeg" = "yes"; then
3120         SXE_MM_CHECK_JPEG([have_image_jpeg=yes], [have_image_jpeg=no])
3121
3122         AC_MSG_CHECKING([for sufficient jpeg support])
3123         if test "$have_image_jpeg" = "yes"; then
3124                 AC_MSG_RESULT([yes])
3125                 AC_DEFINE([HAVE_JPEG], [1], [
3126                         Both jpeglib.h and libjpeg have been found.])
3127                 SXE_PREPEND([-ljpeg], [MM_LIBS])
3128         else
3129                 AC_MSG_RESULT([no])
3130         fi
3131 fi
3132
3133 if test "$with_image_png" = "yes"; then
3134         AC_DEFINE([WITH_PNG], [1], [Define to 1 if png support is desired.])
3135         SXE_MM_CHECK_PNG([have_image_png="yes"], [have_image_png="no"])
3136
3137         SXE_MSG_CHECKING([for sufficient PNG support])
3138         SXE_MSG_RESULT([${sxe_cv_feat_png}])
3139         if test "$sxe_cv_feat_png" = "yes"; then
3140                 SXE_PREPEND([$PNG_CPPFLAGS], [MM_CPPFLAGS])
3141                 SXE_PREPEND([$PNG_LDFLAGS], [MM_LDFLAGS])
3142                 SXE_PREPEND([$PNG_LIBS], [MM_LIBS])
3143         fi
3144 fi
3145
3146 if test "$with_image_tiff" = "yes"; then
3147         SXE_MM_CHECK_TIFF([have_image_tiff=yes], [have_image_tiff=no])
3148
3149         AC_MSG_CHECKING([for sufficient TIFF support])
3150         if test "$have_image_tiff" = "yes"; then
3151                 AC_MSG_RESULT([yes])
3152                 AC_DEFINE([HAVE_TIFF], [1], [
3153                         Both tiffio.h and libtiff have been found.])
3154                 SXE_PREPEND([-ltiff], [MM_LIBS])
3155         else
3156                 AC_MSG_RESULT([no])
3157         fi
3158 fi
3159
3160 dnl Check for audio output and media stream libraries.
3161
3162 dnl internal media stream analysis support
3163 if test "$with_media_internal" != "no"; then
3164         need_media_internal=yes
3165         have_media_internal=yes
3166 fi
3167
3168 ## Since almost any of the below tests uses pkgconfig we make a 
3169 ## once-for-all-times check now
3170 SXE_SEARCH_CONFIG_PROG([pkg-config])
3171
3172 dnl libsndfile support
3173 if test "$with_media_sndfile" != "no"; then
3174         SXE_MM_CHECK_SNDFILE([have_media_sndfile=yes], [have_media_sndfile=no])
3175
3176         AC_MSG_CHECKING([for sufficient sndfile support])
3177         if test "$have_media_sndfile" = "yes"; then
3178                 AC_MSG_RESULT([yes])
3179                 SNDFILE_LIBS=`$PKG_CONFIG --libs sndfile`
3180                 SNDFILE_CPPFLAGS=`$PKG_CONFIG --cflags sndfile`
3181                 SNDFILE_VERSION=`$PKG_CONFIG --modversion sndfile`
3182                 SXE_PREPEND([$SNDFILE_LIBS], [MM_LIBS])
3183                 SXE_PREPEND([$SNDFILE_CPPFLAGS], [MM_CPPFLAGS])
3184                 SXE_ADD_MM_OBJS([media-sndfile.o])
3185                 AC_DEFINE([HAVE_SNDFILE], [1],
3186                         [Whether we appear to have support for the sndfile library!])
3187                 AC_DEFINE_UNQUOTED([SNDFILE_VERSION], [$SNDFILE_VERSION],
3188                         [Version of the sndfile library!])
3189         else
3190                 AC_MSG_RESULT([no])
3191                 have_media_sndfile=no
3192         fi
3193 fi
3194
3195 dnl libavcodec/libavformat/ffmpeg support
3196 if test "$with_media_ffmpeg" != "no"; then
3197         SXE_MM_CHECK_FFMPEG([have_media_ffmpeg=yes], [have_media_ffmpeg=no])
3198
3199         AC_MSG_CHECKING([for sufficient FFmpeg support])
3200
3201         if test "$have_media_ffmpeg" = "yes"; then
3202                 AC_MSG_RESULT([yes])
3203                 FFMPEG_LIBS=`$PKG_CONFIG --libs libavformat`
3204                 FFMPEG_CPPFLAGS=`$PKG_CONFIG --cflags libavformat`
3205                 SXE_PREPEND($FFMPEG_LIBS, MM_LIBS)
3206                 SXE_PREPEND($FFMPEG_CPPFLAGS, MM_CPPFLAGS)
3207                 SXE_ADD_MM_OBJS([media-ffmpeg.o])
3208                 AC_DEFINE([HAVE_FFMPEG], [1], [Description here!])
3209         else
3210                 AC_MSG_RESULT([no])
3211                 have_media_ffmpeg=no
3212         fi
3213 fi
3214
3215 dnl sox support
3216 if test "$with_media_sox" != "no"; then
3217         ## defines $LIBST_CONFIG
3218         SXE_MM_CHECK_SOX([have_media_sox=yes], [have_media_sox=no])
3219
3220         AC_MSG_CHECKING([for sufficient SoX support])
3221         if test "$sxe_cv_feat_sox" = "yes"; then
3222                 AC_MSG_RESULT([yes])
3223                 SXE_ADD_MM_OBJS([media-sox.o])
3224                 SXE_PREPEND([$sox_cppflags], [MM_CPPFLAGS])
3225                 SXE_PREPEND([$sox_ldflags], [MM_LDFLAGS])
3226                 SXE_PREPEND([$sox_libs], [MM_LIBS])
3227                 AC_DEFINE([HAVE_SOX], [1], [Description here!])
3228         else
3229                 AC_MSG_RESULT(no)
3230                 have_media_sox=no
3231         fi
3232 fi
3233
3234 dnl mad support
3235 if test "$with_media_mad" != "no"; then
3236         SXE_MM_CHECK_MAD([have_media_mad=yes], [have_media_mad=no])
3237
3238         AC_MSG_CHECKING([for sufficient mad support])
3239         if test "$have_media_mad" = "yes"; then
3240                 AC_MSG_RESULT([yes])
3241                 SXE_ADD_MM_OBJS([media-mad.o])
3242                 SXE_PREPEND([-lmad], [MM_LIBS])
3243                 AC_DEFINE([HAVE_MAD], [1], [Description here!])
3244         else
3245                 AC_MSG_RESULT(no)
3246                 have_media_mad=no
3247         fi
3248 fi
3249
3250 ## file/libmagic support
3251 if test "$with_media_magic" != "no"; then
3252         SXE_MM_CHECK_MAGIC([have_media_magic=yes], [have_media_magic=no])
3253
3254         AC_MSG_CHECKING([for sufficient magic support])
3255         if test "$have_media_magic" = "yes"; then
3256                 AC_MSG_RESULT([yes])
3257                 SXE_ADD_MM_OBJS([media-magic.o])
3258                 SXE_PREPEND([-lmagic], [MM_LIBS])
3259                 AC_DEFINE([HAVE_MAGIC], [1], [Whether libmagic is available])
3260         else
3261                 AC_MSG_RESULT([no])
3262                 have_media_magic=no
3263         fi
3264 fi
3265
3266
3267 dnl Autodetect OSS sound
3268 AS_MESSAGE([checking for OSS sound support])
3269 dnl test -z "$with_sound_oss" -a -n "$with_oss_sound_lib" && with_sound_oss=yes
3270
3271 dnl Check for Linux/BSD sound (called OSS)
3272 if test "$with_sound_oss" != "no"; then
3273         SXE_MM_CHECK_OSS([have_sound_oss=yes], [have_sound_oss=no])
3274
3275         AC_MSG_CHECKING([for sufficient OSS support])
3276         if test "$have_sound_oss" = "yes"; then
3277                 AC_MSG_RESULT([yes])
3278                 SXE_ADD_MM_OBJS([sound-oss.o])
3279                 AC_DEFINE([HAVE_INTERNAL_SOUND], [1], [Description here!])
3280                 AC_DEFINE([HAVE_OSS_SOUND], [1], [Description here!])
3281         else
3282                 AC_MSG_RESULT([no])
3283                 have_sound_oss=yes
3284         fi
3285 fi
3286
3287 dnl NAS Sound support
3288 if test "$with_sound_nas" != "no"; then
3289         SXE_MM_CHECK_NAS([have_sound_nas=yes], [have_sound_nas=no])
3290
3291         AC_MSG_CHECKING([for sufficient NAS support])
3292         if test "$have_sound_nas" = "yes"; then
3293                 AC_MSG_RESULT([yes])
3294                 AC_DEFINE([HAVE_NAS_SOUND], [1], [Description here!])
3295                 SXE_ADD_MM_OBJS([sound-nas.o])
3296                 SXE_PREPEND([-laudio], [MM_LIBS])
3297         else
3298                 AC_MSG_RESULT([no])
3299                 have_nas_sound=no
3300         fi
3301 fi
3302
3303 dnl ESD Sound support
3304 if test "$with_sound_esd" != "no"; then
3305         SXE_MM_CHECK_ESD([have_sound_esd=yes], [have_sound_esd=no])
3306
3307         AC_MSG_CHECKING([for sufficient ESD support])
3308         if test "$have_sound_esd" = "yes"; then
3309                 AC_MSG_RESULT([yes])
3310                 need_internal_media=yes
3311                 SXE_ADD_MM_OBJS([sound-esd.o])
3312                 SXE_PREPEND([`$ESD_CONFIG --libs`], MM_LIBS)
3313                 AC_DEFINE([HAVE_ESD_SOUND], [1], [Description here!])
3314         else
3315                 AC_MSG_RESULT([no])
3316                 have_esd_sound=no
3317         fi
3318 fi
3319
3320 dnl PulseAudio Sound support
3321 if test "$with_pulseaudio" != "no"; then
3322         SXE_MM_CHECK_PULSE([have_sound_pulse=yes], [have_sound_pulse=no])
3323
3324         AC_MSG_CHECKING([for sufficient PulseAudio support])
3325         if test "$have_sound_pulse" = "yes"; then
3326                 AC_MSG_RESULT([yes])
3327                 PULSEAUDIO_LIBS=`$PKG_CONFIG --libs libpulse`
3328                 pulse_version=`$PKG_CONFIG --modversion libpulse`
3329                 pulse_major_version=0
3330                 pulse_minor_version=`echo $pulse_version | \
3331                         sed -e "s/0\.\([[0-9]]*\).*/\1/"`
3332                 need_internal_media=yes
3333                 SXE_ADD_MM_OBJS([sound-pulse.o])
3334                 SXE_PREPEND($PULSEAUDIO_LIBS, MM_LIBS)
3335                 AC_DEFINE([HAVE_PULSE_SOUND], [1],
3336                         [Whether to put in support for PulseAudio.])
3337                 AC_DEFINE_UNQUOTED([PULSE_VERSION], [$pulse_minor_version],
3338                         [Version of the underlying pulse lib.])
3339         else
3340                 AC_MSG_RESULT(no)
3341                 have_sound_pulse=no
3342         fi
3343 fi
3344
3345 dnl aRts Sound support
3346 if test "$with_sound_arts" != "no"; then
3347         SXE_MM_CHECK_ARTS([have_sound_arts=yes], [have_sound_arts=no])
3348
3349         AC_MSG_CHECKING([for sufficient aRts support])
3350         if test "$have_sound_arts" = "yes"; then
3351                 AC_MSG_RESULT([yes])
3352                 ARTS_VERSION=`$ARTSC_CONFIG --arts-version`
3353                 ARTS_LIBS=`$ARTSC_CONFIG --libs`
3354                 ARTS_CPPFLAGS=`$ARTSC_CONFIG --cflags`
3355                 SXE_ADD_MM_OBJS([sound-arts.o])
3356                 SXE_PREPEND([$ARTS_LIBS], [MM_LIBS])
3357                 SXE_PREPEND([$ARTS_CPPFLAGS], [MM_CPPFLAGS])
3358                 AC_DEFINE([HAVE_ARTS_SOUND], [1], [Description here!])
3359                 AC_DEFINE_UNQUOTED([ARTS_VERSION], [$ARTS_VERSION],
3360                         [Version number of the underlying arts library])
3361         else
3362                 AC_MSG_RESULT(no)
3363                 have_sound_arts=no
3364         fi
3365
3366 fi
3367
3368 dnl Jack Sound support
3369 if test "$with_sound_jack" != "no"; then
3370         SXE_MM_CHECK_JACK([have_sound_jack=yes], [have_sound_jack=no])
3371
3372         AC_MSG_CHECKING([for sufficient Jack support])
3373         if test "$have_sound_jack" = "yes"; then
3374                 AC_MSG_RESULT([yes])
3375                 dnl okay, we have Jack on the system, but we have no working 
3376                 dnl interface to it :(
3377                 JACK_LIBS=`$PKG_CONFIG --libs jack`
3378                 JACK_VERSION=`$PKG_CONFIG --modversion jack`
3379                 need_internal_media=yes
3380                 SXE_ADD_MM_OBJS([sound-jack.o])
3381                 SXE_PREPEND([$JACK_LIBS], [MM_LIBS])
3382                 AC_DEFINE([HAVE_JACK_SOUND], [1], [Description here!])
3383                 AC_DEFINE_UNQUOTED([JACK_VERSION], [$JACK_VERSION],
3384                         [Description here!])
3385         else
3386                 AC_MSG_RESULT(no)
3387         fi
3388 fi
3389
3390 dnl alsa sound support
3391 if test "$with_sound_alsa" != "no"; then
3392         SXE_MM_CHECK_ALSA([have_sound_alsa=yes], [have_sound_alsa=no])
3393
3394         AC_MSG_CHECKING([for sufficient ALSA support])
3395         if test "$have_sound_alsa" = "yes"; then
3396                 AC_MSG_RESULT([yes])
3397                 SXE_ADD_MM_OBJS([sound-alsa.o])
3398                 SXE_PREPEND([-lasound], [MM_LIBS])
3399         else
3400                 AC_MSG_RESULT(no)
3401                 have_sound_alsa=no
3402         fi
3403 fi
3404
3405 dnl libao sound support
3406 if test "$with_sound_ao" != "no"; then
3407         SXE_MM_CHECK_AO([have_sound_ao=yes], [have_sound_ao=no])
3408
3409         AC_MSG_CHECKING([for sufficient AO support])
3410         if test "$have_sound_ao" = "yes"; then
3411                 AC_MSG_RESULT([yes])
3412                 AO_LIBS=`$PKG_CONFIG --libs ao`
3413                 ao_version=`$PKG_CONFIG --modversion ao`
3414                 SXE_ADD_MM_OBJS([sound-ao.o])
3415                 SXE_PREPEND($AO_LIBS, MM_LIBS)
3416                 AC_DEFINE([HAVE_AO_SOUND], [1], [Description here!])
3417                 AC_DEFINE_UNQUOTED([AO_VERSION], [$ao_version], [Description here!])
3418         else
3419                 AC_MSG_RESULT(no)
3420                 have_sound_ao=no
3421         fi
3422 fi
3423
3424 if test \
3425    "$have_sound_alsa \
3426     $have_sound_ao \
3427     $have_sound_arts \
3428     $have_sound_esd \
3429     $have_sound_jack \
3430     $have_sound_nas \
3431     $have_sound_pulse" != "no no no no no no no"; then
3432         AC_DEFINE([HAVE_AUDIO], [1], [Description here!])
3433 fi
3434 if test "$need_internal_media" = "yes"; then
3435         with_internal_media=yes
3436         AC_DEFINE([HAVE_INTERNAL_MEDIA], [1], [Description here!])
3437         SXE_ADD_MM_OBJS([media-internal.o])
3438 fi
3439 AC_SUBST([MM_LIBS])
3440 AC_SUBST([MM_CPPFLAGS])
3441 AC_SUBST([MM_LDFLAGS])
3442 SXE_SUBST_MM_OBJS
3443
3444
3445 ## Internationalisation Options
3446 ## ============================
3447 echo
3448 echo "Internationalisation Options"
3449 echo "============================"
3450
3451 dnl ----------------------
3452 dnl Mule-dependent options
3453 dnl ----------------------
3454
3455 dnl if test "$with_mule" = "yes" && test ! -d "$sxe_srcdir/lisp/mule"; then
3456 dnl     echo "Attempt to Build with Mule without Mule/Lisp"
3457 dnl     echo "Please install the SXEmacs/Mule tarball or"
3458 dnl     echo "rerun configure with --with-mule=no"
3459 dnl     exit 1
3460 dnl fi
3461
3462 if test "$with_file_coding" = "yes" && test "$with_mule" = "no"; then
3463   AC_DEFINE([FILE_CODING], [1], [Description here!])
3464   SXE_ADD_MULE_OBJS(file-coding.o)
3465 fi
3466
3467 if test "$with_mule" = "yes" ; then
3468         SXE_CHECK_MULE
3469
3470 else dnl "$with_mule" = "no"
3471         for feature in xim canna wnn; do
3472                 if eval "test -n \"\$with_${feature}\" -a \
3473                         \"\$with_${feature}\" != no" ; then
3474                         AC_MSG_WARN([--with-${feature} ignored:  Not valid without Mule support])
3475                 fi
3476                 eval "with_${feature}=no"
3477         done
3478 fi dnl with_mule
3479 SXE_SUBST_MULE_OBJS
3480 AM_CONDITIONAL([WITH_MULE], [test "$with_mule" = "yes"])
3481
3482
3483 dnl At this point, we know whether we need the motif lib or not.
3484 if test "$need_motif" = "yes" ; then
3485         SXE_PREPEND([-lXm], [libs_x])
3486         dnl AIX needs the following library for use with Motif
3487         AC_CHECK_LIB([i18n], [layout_object_getvalue])
3488         if test "$ac_cv_lib_i18n_layout_object_getvalue" = "yes"; then
3489                 SXE_PREPEND([-li18n], [libs_x])
3490         fi
3491 fi
3492
3493 dnl getaddrinfo() is borked under hpux11
3494 if test "$ac_cv_func_getaddrinfo" != "no" ; then
3495   case "$opsys" in
3496     hpux11 )
3497       AC_MSG_WARN([Use of getaddrinfo is disabled for HP-UX 11.XX.])
3498       ac_cv_func_getaddrinfo=no
3499       ;;
3500   esac
3501 fi
3502
3503
3504 ## Database Options
3505 ## ================
3506 echo
3507 echo "Database Options"
3508 echo "================"
3509
3510 dnl Database support
3511 dnl We do not necessarily have to have libdb/lib(g)dbm for DB/(G)DBM support.
3512 dnl On FreeBSD, both DB and DBM are part of libc.
3513 dnl By default, we check for DBM support in libgdbm, then libc, then libdbm.
3514
3515 ## initialise values
3516 have_database_berkdb=no
3517 have_database_gdbm=no
3518 have_database_dbm=no
3519
3520 if test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
3521    != "no no no"; then
3522         AS_MESSAGE(checking for database support)
3523 fi
3524
3525 dnl Check for ndbm.h, required for either kind of DBM support.
3526 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
3527         SXE_CHECK_NDBM
3528         if test "$sxe_cv_feat_ndbm" = "no"; then
3529                 have_database_gdbm="no"
3530                 have_database_dbm="no"
3531         fi
3532 fi
3533
3534 dnl Check for DBM support in libgdbm or libgdbm_compat.
3535 if test "$with_database_gdbm" != "no"; then
3536         SXE_CHECK_GDBM
3537
3538         if test "$sxe_cv_feat_gdbm" = "yes"; then
3539                 have_database_gdbm="yes"
3540         else
3541                 have_database_gdbm="no"
3542         fi
3543 fi
3544
3545 dnl Check for DBM support in libc and libdbm.
3546 if test "$with_database_dbm" != "no"; then
3547         SXE_CHECK_DBM
3548
3549         if test "$sxe_cv_feat_gdbm" != "yes" -a \
3550                 "$sxe_cv_feat_dbm" = "yes"; then
3551                 have_database_dbm="yes"
3552         else
3553                 have_database_dbm="no"
3554         fi
3555 fi
3556
3557 dnl Check for Berkeley DB.
3558 if test "$with_database_berkdb" != "no"; then
3559         SXE_CHECK_BERKDB
3560
3561         if test "$sxe_cv_feat_berkdb" = "yes"; then
3562                 have_database_berkdb="yes"
3563         else
3564                 have_database_berkdb="no"
3565         fi
3566 fi
3567
3568 if test "$have_database_gdbm $have_database_dbm $have_database_berkdb" \
3569      != "no no no"; then
3570         AC_DEFINE([HAVE_DATABASE], [1], [Description here!])
3571         SXE_ADD_DB_OBJS([database.o])
3572
3573         SXE_CHECK_NDBM_BERKDB_CONFLICT
3574         if test "$sxe_cv_db_ndbm_berkdb_conflict" = "yes"; then
3575                 ## can't do nothing because the way we designed it
3576                 ## is going to conflict at compile time
3577                 have_database_gdbm="no"
3578                 have_database_dbm="no"
3579
3580         elif test "$have_database_gdbm $have_database_dbm" != "no no"; then
3581                 AC_DEFINE([HAVE_DBM], [1], [Description here!])
3582
3583                 ## Also, tell make about the DBM support we detected.
3584                 if test -n "$libdbm"; then
3585                         SXE_PREPEND([$libdbm], [DB_LIBS])
3586                 fi
3587         fi
3588 fi
3589
3590
3591 dnl Autodetect LDAP
3592 if test "$with_ldap" != "no"; then
3593         SXE_CHECK_LDAP
3594 fi
3595 if test "$have_ldap" = "yes"; then
3596         AC_DEFINE([HAVE_LDAP], [1], [Description here!])
3597         SXE_ADD_DB_OBJS(eldap.o)
3598         if test "$have_ldap_des" = "yes" ; then
3599                 SXE_PREPEND(-ldes, DB_LIBS)
3600         fi
3601         if test "$have_ldap_krb" = "yes" ; then
3602                 SXE_PREPEND(-lkrb, DB_LIBS)
3603         fi
3604         if test "$have_ldap_lber" = "yes" ; then
3605                 SXE_PREPEND(-llber, DB_LIBS)
3606         fi
3607         SXE_PREPEND(-lldap, DB_LIBS)
3608
3609         dnl save our values until here
3610         save_LIBS="$LIBS"
3611         LIBS="$DB_LIBS $LIBS"
3612         AC_CHECK_FUNCS(
3613                 [ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result])
3614         dnl and restore
3615         LIBS="$save_LIBS"
3616 fi
3617
3618 dnl Autodetect PostgreSQL
3619 if test "x$with_postgresql" != "xno"; then
3620         SXE_CHECK_POSTGRESQL
3621 fi
3622 SXE_SUBST_DB_OBJS
3623
3624
3625 dnl Usage tracking (undocumented and likely unused option)
3626 if test "$usage_tracking" = "yes"; then
3627   AC_DEFINE([USAGE_TRACKING], [1], [Description here!])
3628   SXE_PREPEND(-Bstatic -lut -Bdynamic, LIBS)
3629 fi
3630
3631 dnl Unfortunately, just because we can link doesn't mean we can run.
3632 dnl One of the above link tests may have succeeded but caused resulting
3633 dnl executables to fail to run.  Also any tests using AC_RUN_IFELSE will
3634 dnl have reported incorrect results.
3635 AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int c,char *v[]){return 0;}]])],[:],[
3636   echo ""
3637   echo "*** PANIC *** The C compiler can no longer build working executables."
3638   echo "*** PANIC *** Please examine the tail of config.log for runtime errors."
3639   echo "*** PANIC *** The most likely reason for this problem is that configure"
3640   echo "*** PANIC *** links with shared libraries, but those libraries cannot be"
3641   echo "*** PANIC *** found at run time."
3642   echo "*** PANIC ***"
3643   echo "*** PANIC *** On a Linux system, edit /etc/ld.so.conf and re-run ldconfig."
3644   echo "*** PANIC *** On other systems, try telling configure where to find the"
3645   echo "*** PANIC *** shared libraries using the --with-site-runtime-libraries option"
3646   echo "*** PANIC ***"
3647   echo "*** PANIC *** Another way to shoot yourself in the foot is to specify"
3648   echo "*** PANIC *** --with-FEATURE when FEATURE is not actually installed"
3649   echo "*** PANIC *** on your system.  Don't do that."
3650   exit 1], [AS_MESSAGE(cannot cross-compile)])
3651
3652 dnl Process support
3653 AC_DEFINE([HAVE_UNIX_PROCESSES], [1], [Description here!])
3654
3655 dnl --------------------------------
3656 dnl Compute SUBST-itutable variables
3657 dnl --------------------------------
3658
3659 dnl We ignore (C|LD)_SWITCH_X_(MACHINE|SYSTEM)
3660 dnl Use SXE_SPACE instead of plain assignment statements to remove extraneous blanks
3661 if test "$with_module_support" = "yes"; then
3662         ld_libs_module=
3663 else
3664         SXE_SPACE(ld_libs_module, $ldap_libs $postgresql_libs)
3665 fi
3666
3667 SXE_SPACE(CFLAGS, $CFLAGS)
3668 SXE_SPACE(c_switch_general, -DHAVE_CONFIG_H $c_switch_site $c_switch_machine $c_switch_system)
3669 SXE_SPACE(c_switch_window_system, $c_switch_x_site $c_switch_gtk $X_CFLAGS)
3670 SXE_SPACE(c_switch_all, $c_switch_general $c_switch_window_system)
3671 SXE_SPACE(ld_switch_general, $ld_switch_site $ld_switch_machine $ld_switch_system $ld_switch_run)
3672 SXE_SPACE(ld_switch_window_system, $ld_switch_x_site)
3673 SXE_SPACE(ld_switch_all, $ld_switch_general $ld_switch_window_system)
3674 SXE_SPACE(ld_libs_general, $LIBS $libs_machine $libs_system $libs_standard)
3675 SXE_SPACE(ld_libs_window_system, $X_EXTRA_LIBS $libs_x $libs_gtk $X_PRE_LIBS)
3676 SXE_SPACE(ld_libs_all, $OPENSSL_LIBS $DB_LIBS $ENT_LIBS $MM_LIBS $ld_libs_window_system $ld_libs_general $ld_libs_module)
3677
3678 dnl For no-module builds, make the src dir last
3679 if test "$with_module_support" = "no"; then
3680         SXE_APPEND(src, MAKE_SUBDIR)    dnl is that still important?
3681 fi
3682
3683 EMACS=$sxe_blddir/src/$PROGNAME
3684 AC_SUBST(EMACS)
3685
3686 dnl Compute lists of Makefiles and subdirs
3687 AC_SUBST(SRC_SUBDIR_DEPS)
3688 internal_makefile_list="Makefile.in"
3689 SUBDIR_MAKEFILES=''
3690 test -d lock || mkdir lock
3691 for dir in $MAKE_SUBDIR; do
3692   case "$dir" in */* ) dnl Implement mkdir -p
3693     ( for d in `echo $dir | sed 's:/: :g'` ; do
3694         test -d "$d" || mkdir "$d"; cd "$d"
3695       done ) ;;
3696    * ) test -d "$dir" || mkdir "$dir" ;;
3697   esac
3698   SXE_SPACE(SUBDIR_MAKEFILES, $SUBDIR_MAKEFILES $dir/Makefile $dir/Makefile)
3699   SXE_SPACE(internal_makefile_list, $internal_makefile_list $dir/Makefile.in)
3700 done
3701
3702 AC_SUBST(INSTALL_ARCH_DEP_SUBDIR)
3703 AC_SUBST(MAKE_SUBDIR)
3704 AC_SUBST(MAKE_AM_SUBDIR)
3705 AC_SUBST(SUBDIR_MAKEFILES)
3706
3707 if test "$extra_verbose" = "yes"; then
3708   echo ""
3709   SXE_PRINT_VAR(
3710    c_switch_general  c_switch_window_system  c_switch_all
3711   ld_switch_general ld_switch_window_system ld_switch_all
3712     ld_libs_general   ld_libs_window_system   ld_libs_all)
3713   echo ""
3714 fi
3715
3716 dnl ----------------------------------------------
3717 dnl Create some auxiliary files for developers.
3718 dnl ----------------------------------------------
3719
3720 dnl Create a useful TAGS file
3721 if test -f "$sxe_srcdir/TAGS" -a ! -f "TAGS"; then
3722   test "$extra_verbose" = "yes" && echo "creating TAGS"
3723   echo "\f
3724 $sxe_srcdir/TAGS,include" > "TAGS"
3725 fi
3726
3727 dnl Create top level .sbinit for Sun compilers
3728 if test "$__SUNPRO_C" = "yes"; then
3729   test "$extra_verbose" = "yes" && echo "creating .sbinit"
3730   ( echo "# For use with Sun WorkShop's Source browser."
3731     echo "# See sbquery(1) and sbinit(4) for more information"
3732     for dir in $MAKE_SUBDIR; do echo "import $dir"; done
3733   ) > .sbinit
3734 fi
3735
3736 ### whether to build with profile.o
3737 AC_RUN_IFELSE([AC_LANG_SOURCE([[
3738 int main(int c, char *v[]) 
3739 {
3740 #ifdef HAVE_SETITIMER
3741         return 1;
3742 #else
3743         return 0;
3744 #endif
3745 }]])], [./conftest; have_setitimer=$?],
3746         [have_setitimer=$?],[have_setitimer=0])
3747 AM_CONDITIONAL([HAVE_SETITIMER], [test "$have_setitimer" = "1"])
3748
3749 ## whether to build with sheap.o
3750 AC_RUN_IFELSE([AC_LANG_SOURCE([[
3751 int main(int c, char *v[]) 
3752 {
3753 #if defined(HEAP_IN_DATA) && !defined(PDUMP)
3754         return 1;
3755 #else
3756         return 0;
3757 #endif
3758 }]])], [./conftest; build_sheap=$?],
3759         [build_sheap=$?],[build_sheap=0])
3760 AM_CONDITIONAL([BUILD_SHEAP], [test "$build_sheap" = "1"])
3761
3762
3763 dnl There are no more compile tests; remove the core they created.
3764 rm -f core
3765
3766 dnl --------------------------------------------------
3767 dnl Substitute into Makefile, config.h and sxe-paths.h
3768 dnl --------------------------------------------------
3769
3770 dnl what sort of things to edit into Makefile, config.h and sxe-paths.h
3771 dnl configuration here uncanonicalized to avoid exceeding size limits.
3772
3773 AC_SUBST(PROGNAME)
3774 AC_SUBST(MULE)
3775 AC_SUBST(HAVE_LIBFFI)
3776 AC_SUBST(version)
3777 AC_SUBST(VERSION)
3778 AC_SUBST(old_version)
3779 AC_SUBST(inststaticdir)
3780 AC_SUBST(instvardir)
3781 AC_SUBST(instvarsepdir)
3782 AC_SUBST(sxe_srcdir)
3783 AC_SUBST(emodsrcdir)
3784 AC_SUBST(sxe_blddir)
3785 AC_SUBST(emodblddir)
3786 AC_SUBST(bindir)
3787 AC_SUBST(datarootdir)
3788 AC_SUBST(datadir)
3789 AC_SUBST(statedir)
3790 AC_SUBST(libdir)
3791 AC_SUBST(mandir)
3792 AC_SUBST(extra_includes)
3793
3794 AC_SUBST(prefix)
3795 AC_SUBST(PREFIX_USER_DEFINED)
3796 dnl Yo, Stephen Bourne!  I want to marry you!
3797 PREFIX=$prefix
3798 while true; do
3799   case "$PREFIX" in
3800     *\$* ) eval "PREFIX=$PREFIX" ;;
3801     *) break ;;
3802   esac
3803 done
3804 AC_SUBST(PREFIX)
3805
3806 AC_SUBST(exec_prefix)
3807 AC_SUBST(EXEC_PREFIX_USER_DEFINED)
3808 EXEC_PREFIX=$exec_prefix
3809 while true; do
3810   case "$EXEC_PREFIX" in
3811     *\$* ) eval "EXEC_PREFIX=$EXEC_PREFIX" ;;
3812     *) break ;;
3813   esac
3814 done
3815 AC_SUBST(EXEC_PREFIX)
3816
3817 AC_SUBST(infodir)
3818 AC_SUBST(INFODIR_USER_DEFINED)
3819 INFODIR=$infodir
3820 while true; do
3821   case "$INFODIR" in
3822     *\$* ) eval "INFODIR=$INFODIR" ;;
3823     *) break ;;
3824   esac
3825 done
3826 AC_SUBST(INFODIR)
3827
3828 AC_SUBST(infopath,$with_infopath)
3829 AC_SUBST(INFOPATH_USER_DEFINED)
3830 INFOPATH=$with_infopath
3831 while true; do
3832   case "$INFOPATH" in
3833     *\$* ) eval "INFOPATH=$INFOPATH" ;;
3834     *) break ;;
3835   esac
3836 done
3837 AC_SUBST(INFOPATH)
3838
3839 if test -z "$with_module_path"; then
3840     with_module_path="~/.sxemacs/${configuration}/modules:${libdir}/${PROGNAME}/${configuration}/site-modules:${libdir}/${instvardir}/${configuration}/modules"
3841 fi
3842
3843 AC_SUBST(module_path,$with_module_path)
3844 AC_SUBST(MODULE_PATH_USER_DEFINED)
3845 MODULE_PATH=$with_module_path
3846 while true; do
3847   case "$MODULE_PATH" in
3848     *\$* ) eval "MODULE_PATH=$MODULE_PATH" ;;
3849     *) break ;;
3850   esac
3851 done
3852 AC_SUBST(MODULE_PATH)
3853
3854 if test -z "$with_package_prefix" ; then
3855   with_package_prefix=${prefix}/share/sxemacs
3856 fi
3857
3858 if test -z "$with_package_path" && test -n "$with_package_prefix" ; then
3859   if test "$with_mule" = "yes" ; then
3860     with_package_path="~/.sxemacs/site-packages:~/.sxemacs/xemacs-packages:~/.sxemacs/mule-packages:~/.sxemacs/sxemacs-packages::${with_package_prefix}/site-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/mule-packages:${with_package_prefix}/sxemacs-packages"
3861   else
3862     with_package_path="~/.sxemacs/site-packages:~/.sxemacs/xemacs-packages:~/.sxemacs/sxemacs-packages::${with_package_prefix}/site-packages:${with_package_prefix}/xemacs-packages:${with_package_prefix}/sxemacs-packages"
3863   fi
3864 fi
3865
3866 AC_SUBST(package_path,$with_package_path)
3867 AC_SUBST(PACKAGE_PATH_USER_DEFINED)
3868 PACKAGE_PATH=$with_package_path
3869 while true; do
3870   case "$PACKAGE_PATH" in
3871     *\$* ) eval "PACKAGE_PATH=$PACKAGE_PATH" ;;
3872     *) break ;;
3873   esac
3874 done
3875 AC_SUBST(PACKAGE_PATH)
3876
3877 AC_SUBST(lispdir, $with_lispdir)
3878 AC_SUBST(LISPDIR_USER_DEFINED)
3879 LISPDIR=$with_lispdir
3880 while true; do
3881   case "$LISPDIR" in
3882     *\$* ) eval "LISPDIR=$LISPDIR" ;;
3883     *) break ;;
3884   esac
3885 done
3886 AC_SUBST(LISPDIR)
3887
3888 AC_SUBST(moduledir,$with_moduledir)
3889 AC_SUBST(MODULEDIR_USER_DEFINED)
3890 MODULEDIR=$with_moduledir
3891 while true; do
3892   case "$MODULEDIR" in
3893     *\$* ) eval "MODULEDIR=$MODULEDIR" ;;
3894     *) break ;;
3895   esac
3896 done
3897 AC_SUBST(MODULEDIR)
3898
3899 AC_SUBST([sitelispdir], [$with_sitelispdir])
3900 AC_SUBST([SITELISPDIR_USER_DEFINED])
3901 SITELISPDIR=$sitelispdir
3902 while true; do
3903   case "$SITELISPDIR" in
3904     *\$* ) eval "SITELISPDIR=$SITELISPDIR" ;;
3905     *) break ;;
3906   esac
3907 done
3908 AC_SUBST(SITELISPDIR)
3909
3910 AC_SUBST(sitemoduledir,$with_sitemoduledir)
3911 AC_SUBST(SITEMODULEDIR_USER_DEFINED)
3912 SITEMODULEDIR=$with_sitemoduledir
3913 while true; do
3914   case "$SITEMODULEDIR" in
3915     *\$* ) eval "SITEMODULEDIR=$SITEMODULEDIR" ;;
3916     *) break ;;
3917   esac
3918 done
3919 AC_SUBST(SITEMODULEDIR)
3920
3921 AC_SUBST(etcdir,$with_etcdir)
3922 AC_SUBST(ETCDIR_USER_DEFINED)
3923 ETCDIR=$with_etcdir
3924 while true; do
3925   case "$ETCDIR" in
3926     *\$* ) eval "ETCDIR=$ETCDIR" ;;
3927     *) break ;;
3928   esac
3929 done
3930 AC_SUBST(ETCDIR)
3931
3932 AC_SUBST(archlibdir,$with_archlibdir)
3933 AC_SUBST(ARCHLIBDIR_USER_DEFINED)
3934 ARCHLIBDIR=$with_archlibdir
3935 while true; do
3936   case "$ARCHLIBDIR" in
3937     *\$* ) eval "ARCHLIBDIR=$ARCHLIBDIR" ;;
3938     *) break ;;
3939   esac
3940 done
3941 AC_SUBST(ARCHLIBDIR)
3942
3943 AC_SUBST(docdir,$with_docdir)
3944 AC_SUBST(DOCDIR_USER_DEFINED)
3945 DOCDIR=$with_docdir
3946 while true; do
3947   case "$DOCDIR" in
3948     *\$* ) eval "DOCDIR=$DOCDIR" ;;
3949     *) break ;;
3950   esac
3951 done
3952 AC_SUBST(DOCDIR)
3953
3954 AC_SUBST(docdir)
3955 AC_SUBST(bitmapdir)
3956
3957 dnl The following flags combine all the information from:
3958 dnl - command line options (user always gets priority)
3959 dnl - user environment variables
3960 dnl - determined by configure
3961 dnl - the s&m header files (required for ellcc)
3962 AC_SUBST(machfile)
3963 AC_SUBST(opsysfile)
3964 AC_SUBST(c_switch_general)
3965 AC_SUBST(c_switch_window_system)
3966 AC_SUBST(c_switch_all)
3967 AC_SUBST(ld_switch_general)
3968 AC_SUBST(ld_switch_window_system)
3969 AC_SUBST(ld_switch_all)
3970 AC_SUBST(ld_libs_general)
3971 AC_SUBST(ld_libs_window_system)
3972 AC_SUBST(ld_libs_all)
3973 AC_SUBST(CFLAGS)
3974 AC_SUBST(CPPFLAGS)
3975 AC_SUBST(LDFLAGS)
3976 RECURSIVE_MAKE_ARGS="\$(MFLAGS) CC='\$(CC)' CFLAGS='\$(CFLAGS)' LDFLAGS='\$(LDFLAGS)' CPPFLAGS='\$(CPPFLAGS)'"
3977 if test -z "$MAKE"; then
3978         MAKE=make
3979 fi
3980 case `$MAKE --version 2>/dev/null` in
3981    GNU\ Make*)
3982         AM_MAKEFLAGS="-w $AM_MAKEFLAGS"
3983         RECURSIVE_MAKE_ARGS="-w $RECURSIVE_MAKE_ARGS"
3984    ;;
3985    *)
3986         echo ===================================
3987         echo $MAKE does not seem to be GNU Make
3988         echo If you find makefile errors please try using GNU Make as some 
3989         echo autoconf constructs may not be proper for your make variant
3990         echo ===================================
3991    ;; 
3992 esac
3993 AC_SUBST(RECURSIVE_MAKE_ARGS)
3994 AC_SUBST(AM_MAKEFLAGS)
3995
3996 AC_SUBST(sound_cflags)
3997 AC_SUBST(AR)
3998 AC_SUBST(RANLIB)
3999
4000 AC_SUBST(SXEMACS_CC)
4001 AC_SUBST(SXE_CFLAGS)
4002
4003 SXE_SUBST_CORE_OBJS()
4004
4005 SXE_SUBST_CRUFT_OBJS
4006
4007 dnl The default is yes
4008 if test "$with_prefix" = "yes"; then
4009   AC_DEFINE([PREFIX_USER_DEFINED], [1], [Description here!])
4010 fi
4011
4012 dnl Should this stay even though --with-site-modules is no longer an
4013 dnl option?  It is used in emacs.c for when the -no-site-modules cmd line
4014 dnl opt is used.  That cmd line opt definitely has usefullness.  Sebastian?
4015 dnl --SY.
4016 dnl The default is yes
4017 if test "$with_site_modules" = "no"; then
4018   AC_DEFINE([INHIBIT_SITE_MODULES], [1], [Description here!])
4019 fi
4020
4021 dnl SXE_SPACE(ac_configure_args, $ac_configure_args)
4022 AC_DEFINE_UNQUOTED([EMACS_CONFIGURATION], ["$ac_cv_build"], [Description here!])
4023 AC_DEFINE_UNQUOTED([EMACS_CONFIG_OPTIONS], ["$ac_configure_args"], [Description here!])
4024
4025 AC_SUBST([srcdir_equals_blddir_p])
4026
4027 dnl Following are deprecated
4028 null_string=""
4029 AC_DEFINE_UNQUOTED([LD_SWITCH_X_SITE], [$null_string], [Description here!])
4030 AC_DEFINE_UNQUOTED([LD_SWITCH_X_SITE_AUX], [$null_string], [Description here!])
4031 AC_DEFINE_UNQUOTED([C_SWITCH_X_SITE], [$null_string], [Description here!])
4032 AC_DEFINE_UNQUOTED([LD_SWITCH_SITE], [$null_string], [Description here!])
4033 AC_DEFINE_UNQUOTED([C_SWITCH_SITE], [$null_string], [Description here!])
4034
4035 dnl Note: as a general rule, *only* define things here that are not
4036 dnl autodetected.  For things that are autodetected, define them
4037 dnl at the point where the autodetection occurs or would occur,
4038 dnl so that the user gets immediate feedback on the results of the
4039 dnl autodetection.
4040
4041 if test "$GNU_MALLOC" = "yes"; then
4042         AC_DEFINE([GNU_MALLOC], [1], [Description here!])
4043         SXE_ADD_MEMALLOC_OBJS(vm-limit.o)
4044         if test "$doug_lea_malloc" != "yes"; then
4045                 SXE_ADD_MEMALLOC_OBJS(gmalloc.o)
4046         fi
4047         if test "$with_error_checking_malloc" = "yes"; then
4048                 dnl SXE_ADD_MEMALLOC_OBJS(free-hook.o)
4049                 :
4050         fi
4051 elif test "$with_system_malloc" = "yes" -o "$system_malloc" = "yes"; then
4052         AC_DEFINE([USE_SYSTEM_MALLOC], [1], [Description here!])
4053         AC_DEFINE([SYSTEM_MALLOC], [1], [Description here!])
4054 elif test "$with_debug_malloc"  = "yes"; then
4055         AC_DEFINE([USE_DEBUG_MALLOC], [1], [Description here!])
4056         AC_DEFINE([USE_SYSTEM_MALLOC], [1], [Description here!])
4057         AC_DEFINE([SYSTEM_MALLOC], [1], [Description here!])
4058         SXE_APPEND(-ldmalloc, MEMALLOC_LIBS)
4059 else
4060         SXE_ADD_MEMALLOC_OBJS([malloc.o])
4061 fi
4062 test "$GCC" = "yes" && \
4063         AC_DEFINE([USE_GCC], [1], [Description here!])
4064 test "$with_external_widget" = "yes" && \
4065         AC_DEFINE([EXTERNAL_WIDGET], [1], [Description here!])
4066 test "$with_quick_build" = "yes" && \
4067         AC_DEFINE([QUICK_BUILD], [1], [Description here!])
4068 if test "$with_purify" = "yes"; then
4069         AC_DEFINE([PURIFY], [1], [Description here!])
4070         AC_DEFINE([XLIB_ILLEGAL_ACCESS], [1], [Description here!])
4071 fi
4072 if test "$with_quantify" = "yes"; then
4073         AC_DEFINE([QUANTIFY], [1], [Description here!])
4074         AC_DEFINE([XLIB_ILLEGAL_ACCESS], [1], [Description here!])
4075 fi
4076 test "$with_pop" = "yes" && \
4077         AC_DEFINE([MAIL_USE_POP], [1], [Description here!])
4078 test "$with_hesiod" = "yes" && \
4079         AC_DEFINE([HESIOD], [1], [Description here!])
4080 test "$with_regex_malloc" = "yes" && \
4081         AC_DEFINE([REGEX_MALLOC], [1], [Description here!])
4082 test "$with_ipv6_cname" = "yes" && \
4083         AC_DEFINE([IPV6_CANONICALIZE], [1], [Description here!])
4084 if test "$with_pdump" = "yes"; then
4085         AC_DEFINE([PDUMP], [1], [Description here!])    dnl deprecated!
4086         AC_DEFINE([WITH_PDUMP], [1], [Description here!])
4087 fi
4088
4089 AM_CONDITIONAL([WITH_EXTW], [test "$with_external_widget" = "yes"])
4090 AM_CONDITIONAL([WITH_PDUMP], [test "$with_pdump" = "yes"])
4091 AC_SUBST([MEMALLOC_LIBS])
4092 SXE_SUBST_MEMALLOC_OBJS
4093
4094
4095 AC_DEFINE_UNQUOTED([USER_FULL_NAME], [pw->pw_gecos], [dnl
4096         USER_FULL_NAME returns a string that is the user's full name.
4097         It can assume that the variable `pw' points to the password file
4098         entry for this user.
4099
4100         At some sites, the pw_gecos field contains the user's full name.
4101         If neither this nor any other field contains the right thing, use
4102         pw_name, giving the user's login name, since that is better than
4103         nothing.])
4104
4105 AC_DEFINE([SIGTYPE], [RETSIGTYPE], [SIGTYPE is the macro we actually use])
4106 AC_DEFINE([SIGRETURN], [return], [SIGTYPE is the macro we actually use])
4107
4108 ## finally, redefine VERSION; this has to be done after all tests on C sources
4109 ## were run because otherwise the symbol VERSION would be defined twice and
4110 ## the C compiler would warn, sigh, and due to this stupid -Werror flag we ...
4111 ## tadadada ... will fail to run _any_ C test successfully
4112 AC_DEFINE_UNQUOTED([VERSION], ["$version"], [Version of SXEmacs.])
4113
4114 AH_TOP([
4115 #ifndef INCLUDED_sxe_config_h_
4116 #define INCLUDED_sxe_config_h_
4117
4118 #ifndef NOT_C_CODE
4119 #if defined (__GNUC__)
4120 #define alloca __builtin_alloca
4121 #elif defined __DECC
4122 #include <alloca.h>
4123 #pragma intrinsic(alloca)
4124 #elif defined __INTEL_COMPILER && defined HAVE_ALLOCA_H
4125 /* defer #include to end of file */
4126 #elif defined HAVE_ALLOCA_H
4127 #include <alloca.h>
4128 #elif defined(_AIX)
4129 #pragma alloca
4130 #elif ! defined (alloca)
4131 void *alloca();
4132 #endif
4133 #endif  /* C code */
4134 ])
4135
4136 AH_BOTTOM([
4137 /* The configuration script may define `opsysfile' to be the name of
4138    the s/...h file that describes your operating system.
4139    The file name is chosen based on the configuration name. */
4140
4141 #ifdef config_opsysfile
4142 #include config_opsysfile
4143 #endif
4144
4145 /* The configuration script may define `machfile' to be the name of
4146    the m/...h file that describes the machine you are using.
4147    The file name is chosen based on the configuration name. */
4148
4149 #ifdef config_machfile
4150 #include config_machfile
4151 #endif
4152
4153 /* basic system calls */
4154 #if defined (INTERRUPTIBLE_IO) || defined (DEBUG_ENCAPSULATION)
4155 # define ENCAPSULATE_READ
4156 # define ENCAPSULATE_WRITE
4157 #endif
4158 #if defined (INTERRUPTIBLE_OPEN) || defined (MULE) || defined (DEBUG_ENCAPSULATION)
4159 # define ENCAPSULATE_OPEN
4160 #endif
4161 #if defined (INTERRUPTIBLE_CLOSE) || defined (DEBUG_ENCAPSULATION)
4162 # define ENCAPSULATE_CLOSE
4163 #endif
4164 /* stdio calls */
4165 #if defined (INTERRUPTIBLE_IO) || defined (DEBUG_ENCAPSULATION)
4166 # define ENCAPSULATE_FREAD
4167 # define ENCAPSULATE_FWRITE
4168 #endif
4169 #if defined (INTERRUPTIBLE_OPEN) || defined (MULE) || defined (DEBUG_ENCAPSULATION)
4170 # define ENCAPSULATE_FOPEN
4171 #endif
4172 #if defined (INTERRUPTIBLE_CLOSE) || defined (DEBUG_ENCAPSULATION)
4173 # define ENCAPSULATE_FCLOSE
4174 #endif
4175
4176 #if defined (HAVE_SOCKS) && !defined (DO_NOT_SOCKSIFY)
4177 #define accept Raccept
4178 #define bind Rbind
4179 #define connect Rconnect
4180 #define getsockname Rgetsockname
4181 #define listen Rlisten
4182 #endif                          /* HAVE_SOCKS && !DO_NOT_SOCKSIFY */
4183
4184 #ifndef NOT_C_CODE              /* Actually means C or C++ */
4185 # if defined (__cplusplus)
4186 /* Avoid C++ keywords used as ordinary C identifiers */
4187 #  define class c_class
4188 #  define new   c_new
4189 #  define this  c_this
4190 #  define catch c_catch
4191 #  define EXTERN_C extern "C"
4192 # else                          /* C code */
4193 #  define EXTERN_C extern
4194 # endif
4195 #endif                          /* C or C++ */
4196 /* Strictly speaking, only int or unsigned int are valid types in a
4197    bitfield.  In practice, we would like to use enums as bitfields.
4198    The following should just result in warning avoidance:
4199    warning: nonportable bit-field type */
4200 #ifdef __GNUC__
4201 #define enum_field(enumeration_type) enum enumeration_type
4202 #else
4203 #define enum_field(enumeration_type) unsigned int
4204 #endif
4205
4206 #ifndef NOT_C_CODE
4207 #if defined __INTEL_COMPILER && defined HAVE_ALLOCA_H
4208 /* icc's alloca.h pulls in <features.h>,
4209    but that must be done after _GNU_SOURCE and friends are defined */
4210 #include <alloca.h>
4211 #endif
4212 #endif                          /* C code */
4213
4214 #endif  /* INCLUDED_sxe_config_h_ */
4215 ])
4216
4217
4218 dnl -------------------------------------------------------------------------
4219 dnl -------------------------------
4220 dnl Report on what we decided to do
4221 dnl -------------------------------
4222
4223 dnl #### We should tag this as the _build_ environment.
4224 dnl Before doing that, though, must check if tools care about line 1.
4225
4226 (
4227 dnl /etc/osversion is on SONY NEWS-OS
4228 if test -f /etc/osversion; then dnl SONY NEWS-OS
4229   echo "osversion: `cat /etc/osversion`"
4230 else
4231   echo "uname -a: `uname -a`"
4232 fi
4233 echo ""
4234 echo "$0 $ac_configure_args"
4235 ) > Installation
4236
4237 if test ! -z ${emacs_beta_version} ; then
4238   if test -z "${emacs_is_beta}" ; then
4239         sxemacs_betaname=".${emacs_beta_version}"
4240   else
4241         sxemacs_betaname="-b${emacs_beta_version}"
4242   fi
4243 else
4244   sxemacs_betaname=""
4245 fi
4246
4247 dnl -----------------
4248 dnl Talking LFSL now!
4249 dnl -----------------
4250
4251 dnl -----------------------------------
4252 dnl Now generate config.h and Makefiles
4253 dnl -----------------------------------
4254
4255 dnl This has to be called in order for this variable to get into config.status
4256 AC_SUBST([internal_makefile_list])
4257 # Remove any trailing slashes in these variables.
4258 if test -n "$prefix"; then
4259         prefix=`echo '' "$prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4260 fi
4261 if test -n "$exec_prefix"; then
4262         exec_prefix=`echo '' "$exec_prefix" | sed -e 's:^ ::' -e 's,\([[^/]]\)/*$,\1,'`
4263 fi
4264
4265 make_ifeq="ifeq"
4266 make_endif="endif"
4267 make_else="else"
4268 AC_SUBST([make_ifeq])
4269 AC_SUBST([make_endif])
4270 AC_SUBST([make_else])
4271
4272 dnl Coupla things needed for subst'ing into the sxemacs.desktop file
4273 ABS_PROGNAME=${prefix}/bin/${PROGNAME}
4274 ABS_ETCDIR=${ETCDIR}
4275 SXE_CANONICALISE_PATH([ABS_PROGNAME])
4276 SXE_CANONICALISE_PATH([ABS_ETCDIR])
4277 AC_SUBST([ABS_PROGNAME])
4278 AC_SUBST([ABS_ETCDIR])
4279
4280 AC_CONFIG_FILES([src/sxe-paths.h]) 
4281 AC_CONFIG_FILES([Makefile])
4282 AC_CONFIG_FILES([lib-src/Makefile])
4283 AC_CONFIG_FILES([src/Makefile])
4284 AC_CONFIG_FILES([src/ui/Makefile])
4285 AC_CONFIG_FILES([src/ui/TTY/Makefile])
4286 AC_CONFIG_FILES([src/ui/lwlib/Makefile])
4287 AC_CONFIG_FILES([src/ui/X11/Makefile])
4288 AC_CONFIG_FILES([src/ui/Gtk/Makefile])
4289 AC_CONFIG_FILES([src/events/Makefile])
4290 AC_CONFIG_FILES([src/ent/Makefile])
4291 AC_CONFIG_FILES([src/media/Makefile])
4292 AC_CONFIG_FILES([src/mem/Makefile])
4293 AC_CONFIG_FILES([src/database/Makefile])
4294 AC_CONFIG_FILES([src/mule/Makefile])
4295 AC_CONFIG_FILES([src/.gdbinit:src/gdbinit])
4296 AC_CONFIG_FILES([src/.dbxrc:src/dbxrc])
4297 AC_CONFIG_FILES([lisp/Makefile])
4298 AC_CONFIG_FILES([info/Makefile])
4299 AC_CONFIG_FILES([tests/Makefile])
4300 AC_CONFIG_FILES([modules/Makefile])
4301 AC_CONFIG_FILES([etc/Makefile])
4302 AC_CONFIG_FILES([etc/sxemacs.desktop])
4303 AC_CONFIG_FILES([sxemacs.pc])
4304 AC_CONFIG_LINKS([.sxemacs.source.tree:])
4305
4306 AC_OUTPUT
4307 SXE_SUMMARY