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