428
|
1 /* XEmacs site configuration template file. -*- C -*-
|
|
2 Copyright (C) 1986, 1991-1994, 1998, 1999 Free Software Foundation, Inc.
|
771
|
3 Copyright (C) 2000, 2001, 2002 Ben Wing.
|
428
|
4
|
|
5 This file is part of XEmacs.
|
|
6
|
|
7 XEmacs is free software; you can redistribute it and/or modify it
|
|
8 under the terms of the GNU General Public License as published by the
|
|
9 Free Software Foundation; either version 2, or (at your option) any
|
|
10 later version.
|
|
11
|
|
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT
|
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
15 for more details.
|
|
16
|
|
17 You should have received a copy of the GNU General Public License
|
|
18 along with XEmacs; see the file COPYING. If not, write to
|
|
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
20 Boston, MA 02111-1307, USA. */
|
|
21
|
|
22 /* Significantly divergent from FSF. */
|
|
23
|
|
24 /* No code in XEmacs #includes config.h twice, but some of the code
|
|
25 intended to work with other packages as well (like gmalloc.c)
|
|
26 think they can include it as many times as they like. */
|
|
27 #ifndef _SRC_CONFIG_H_
|
|
28 #define _SRC_CONFIG_H_
|
|
29
|
771
|
30 /*
|
|
31 This file now serves both as config.h.in and simply as config.h under
|
|
32 Windows NT. Under Windows NT, there is no configure script that
|
|
33 operates, so it is necessary for the relevant constants to be set
|
|
34 manually, either by the user (for user options) or in s/windowsnt.h.
|
|
35
|
|
36 Formerly, under NT there were three different places where constants
|
|
37 were defined -- nt/config.h, nt/xemacs.mak and s/windowsnt.h; now only
|
|
38 the latter two are used. (This separate config.h was a hassle because
|
|
39 it required constant synchronization between it and src/config.h.in.)
|
|
40 Since the options that are substituted by configure are written in
|
|
41 config.h.in with #undef, it is easy to make this file serve as
|
|
42 config.h under Windows NT. Options that are set by the user are
|
|
43 specified in the file config.inc.samp, which is included by xemacs.mak
|
|
44 (the makefile) and used to set command-line options to the
|
|
45 compiler. The sorts of options that relate to the system and not to
|
|
46 the user and which are normally auto-determined by configure are set
|
|
47 in windowsnt.h.
|
|
48
|
|
49 What this means is that a little more care has to be taken in the way
|
|
50 things are arranged in config.h.in. In particular:
|
|
51
|
|
52 -- Everything that is written with a #undef should be bracketed by
|
|
53 #ifdef WIN32_NO_CONFIGURE, and these #ifdefs should in general be
|
|
54 grouped together as much as possible.
|
|
55
|
|
56 -- Things that are not #undefs should not go inside this bracketed
|
|
57 #ifdef, because these things typically set constants based on other
|
|
58 constants and those latter constants may be set elsewhere under
|
|
59 Windows NT.
|
|
60
|
|
61 -- Any #ifdefs that depend on constants that may be set in windowsnt.h
|
|
62 need to be moved after the point at which this file is
|
|
63 included. This applies for example to the error checking macros.
|
|
64 */
|
|
65
|
|
66 #if defined (WIN32_NATIVE) && !defined (MINGW)
|
|
67 # define WIN32_NO_CONFIGURE
|
|
68 #endif
|
|
69
|
428
|
70 /* Use this to add code in a structured way to FSF-maintained source
|
|
71 files so as to make it obvious where XEmacs changes are. */
|
|
72 #define XEMACS 1
|
|
73
|
771
|
74 #ifndef WIN32_NO_CONFIGURE /* Defined in xemacs.mak or s/windowsnt.h: */
|
|
75
|
442
|
76 /* Program name */
|
|
77 #undef EMACS_PROGNAME
|
|
78
|
428
|
79 /* Allow s&m files to differentiate OS versions without having
|
|
80 multiple files to maintain. */
|
|
81 #undef OS_RELEASE
|
|
82
|
|
83 /* The configuration name. This is used as the install directory name
|
|
84 for the lib-src programs. */
|
|
85 #undef EMACS_CONFIGURATION
|
|
86
|
|
87 /* The configuration options. This is exported to Lisp. */
|
|
88 #undef EMACS_CONFIG_OPTIONS
|
|
89
|
|
90 /* The version info from version.sh. Used in #pragma ident in emacs.c */
|
|
91 #undef EMACS_MAJOR_VERSION
|
|
92 #undef EMACS_MINOR_VERSION
|
|
93 #undef EMACS_PATCH_LEVEL
|
|
94 #undef EMACS_BETA_VERSION
|
|
95 #undef EMACS_VERSION
|
|
96 #undef XEMACS_CODENAME
|
|
97 /* InfoDock versions, not used with XEmacs */
|
|
98 #undef INFODOCK_MAJOR_VERSION
|
|
99 #undef INFODOCK_MINOR_VERSION
|
|
100 #undef INFODOCK_BUILD_VERSION
|
|
101
|
442
|
102 /* Make functions from IEEE Stds 1003.[123] available. */
|
|
103 #undef _POSIX_C_SOURCE
|
|
104
|
|
105 /* Make some functions from Unix98 available. */
|
|
106 #undef _XOPEN_SOURCE
|
|
107
|
|
108 /* Make "extensions" from Unix98 available. */
|
|
109 #undef _XOPEN_SOURCE_EXTENDED
|
|
110
|
428
|
111 /* Make all functions available on AIX. See AC_AIX. */
|
|
112 #undef _ALL_SOURCE
|
|
113
|
|
114 /* Make all functions available on GNU libc systems. See features.h. */
|
|
115 #undef _GNU_SOURCE
|
|
116
|
442
|
117 /* Make all functions available on Solaris 2 systems. */
|
|
118 #undef __EXTENSIONS__
|
|
119
|
428
|
120 /* Used to identify the XEmacs version in stack traces. */
|
|
121 #undef STACK_TRACE_EYE_CATCHER
|
|
122
|
|
123 /* Allow the configurer to specify if she wants site-lisp. */
|
|
124 #undef INHIBIT_SITE_LISP
|
|
125
|
|
126 /* Allow the configurer to specify if she wants site-modules. */
|
|
127 #undef INHIBIT_SITE_MODULES
|
|
128
|
|
129 /* This will be removed in 19.15. */
|
|
130 /* Hah! Try 20.3 ... */
|
|
131 /* Hah! Try never ... */
|
|
132 /* If at first you don't succeed, try, try again. */
|
|
133 /* #define LOSING_BYTECODE */
|
|
134
|
|
135 /* Undefine on systems which don't have processes */
|
|
136 #undef HAVE_UNIX_PROCESSES
|
|
137
|
|
138 /* Does XEmacs support floating-point numbers? */
|
|
139 #undef LISP_FLOAT_TYPE
|
|
140
|
|
141 /* Define GNU_MALLOC if you want to use the GNU memory allocator. */
|
|
142 #undef GNU_MALLOC
|
|
143
|
|
144 /* Define if you are using the GNU C Library. -- experimental. */
|
|
145 #undef DOUG_LEA_MALLOC
|
|
146
|
|
147 /* Define if you are using libmcheck.a from the GNU C Library. */
|
|
148 #undef HAVE_LIBMCHECK
|
|
149
|
|
150 /* Define if you are using dlmalloc from the Linux C library. */
|
|
151 #undef _NO_MALLOC_WARNING_
|
|
152
|
|
153 /* Use the system malloc? */
|
|
154 #undef USE_SYSTEM_MALLOC
|
|
155
|
|
156 /* Use a debugging malloc? -- experimental */
|
|
157 #undef USE_DEBUG_MALLOC
|
|
158
|
|
159 /* Compile in TTY support? */
|
|
160 #undef HAVE_TTY
|
|
161
|
|
162 /* Compile in support for MS windows? */
|
|
163 #undef HAVE_MS_WINDOWS
|
|
164
|
|
165 /* special cygwin process handling? */
|
|
166 #undef HAVE_MSG_SELECT
|
|
167
|
|
168 /* Compile in support for the X window system? */
|
|
169 #undef HAVE_X_WINDOWS
|
|
170
|
|
171 /* Defines for building X applications */
|
|
172 #ifdef HAVE_X_WINDOWS
|
|
173 /* The following will be defined if xmkmf thinks they are necessary */
|
|
174 #undef SVR4
|
|
175 #undef SYSV
|
|
176 #undef AIXV3
|
|
177 #undef _POSIX_SOURCE
|
|
178 #undef _BSD_SOURCE
|
|
179 #undef _SVID_SOURCE
|
|
180 #undef X_LOCALE
|
|
181 #undef NARROWPROTO
|
771
|
182 #endif /* HAVE_X_WINDOWS */
|
|
183
|
|
184 #endif /* WIN32_NO_CONFIGURE */
|
|
185
|
|
186 #ifdef HAVE_X_WINDOWS
|
428
|
187 /* The following should always be defined, no matter what xmkmf thinks. */
|
|
188 #ifndef NeedFunctionPrototypes
|
|
189 #define NeedFunctionPrototypes 1
|
|
190 #endif
|
|
191 #ifndef FUNCPROTO
|
|
192 #define FUNCPROTO 15
|
|
193 #endif
|
|
194 #endif /* HAVE_X_WINDOWS */
|
|
195
|
462
|
196 /* Defines for building Gtk applications */
|
|
197 #undef HAVE_GNOME
|
|
198 #undef HAVE_GTK
|
|
199 #undef HAVE_GDK_IMLIB_INIT
|
|
200 #undef HAVE_GLADE_GLADE_H
|
|
201 #undef HAVE_GLADE_H
|
|
202 #undef LIBGLADE_XML_TXTDOMAIN
|
|
203
|
428
|
204 /* Define HAVE_WINDOW_SYSTEM if any windowing system is available. */
|
462
|
205 #if defined (HAVE_GTK) || defined (HAVE_X_WINDOWS) || defined(HAVE_MS_WINDOWS) /* || defined (HAVE_NEXTSTEP) */
|
428
|
206 #define HAVE_WINDOW_SYSTEM
|
|
207 #endif
|
|
208
|
|
209 /* Define HAVE_UNIXOID_EVENT_LOOP if we use select() to wait for events. */
|
|
210 #if defined (HAVE_X_WINDOWS) || defined (HAVE_TTY) || defined(HAVE_MSG_SELECT)
|
|
211 #define HAVE_UNIXOID_EVENT_LOOP
|
|
212 #endif
|
|
213
|
771
|
214 #ifndef WIN32_NO_CONFIGURE /* Defined in xemacs.mak or s/windowsnt.h: */
|
|
215
|
444
|
216 /* XFree86 has a different prototype for this function */
|
|
217 #undef HAVE_XREGISTERIMINSTANTIATECALLBACK
|
|
218 #undef XREGISTERIMINSTANTIATECALLBACK_NONSTANDARD_PROTOTYPE
|
428
|
219
|
|
220 #undef THIS_IS_X11R4
|
|
221 #undef THIS_IS_X11R5
|
|
222 #undef THIS_IS_X11R6
|
|
223
|
442
|
224 #undef HAVE_XCONVERTCASE
|
|
225
|
|
226 #undef HAVE_BALLOON_HELP
|
|
227
|
428
|
228 /* Where do we find bitmaps? */
|
|
229 #undef BITMAPDIR
|
|
230
|
|
231 /* Define AMPERSAND_FULL_NAME if you use the convention
|
|
232 that & in the full name stands for the login id. */
|
|
233 #undef AMPERSAND_FULL_NAME
|
|
234
|
|
235 /* Some things figured out by the configure script, grouped as they are in
|
|
236 configure.in. */
|
|
237 #undef HAVE_MCHECK_H
|
442
|
238 #undef HAVE_A_OUT_H
|
446
|
239 #undef HAVE_ELF_H
|
442
|
240 #undef HAVE_CYGWIN_VERSION_H
|
|
241 #undef HAVE_FCNTL_H
|
|
242 #undef HAVE_INTTYPES_H
|
|
243 #undef HAVE_LIBGEN_H
|
|
244 #undef HAVE_LOCALE_H
|
428
|
245 #undef HAVE_MACH_MACH_H
|
442
|
246 #undef HAVE_SYS_PARAM_H
|
|
247 #undef HAVE_SYS_PSTAT_H
|
|
248 #undef HAVE_SYS_TIME_H
|
428
|
249 #undef HAVE_SYS_TIMEB_H
|
777
|
250 #undef HAVE_SYS_TIMES_H
|
442
|
251 #undef HAVE_SYS_UN_H
|
|
252 #undef HAVE_ULIMIT_H
|
428
|
253 #undef HAVE_UNISTD_H
|
442
|
254
|
428
|
255 #undef HAVE_SYS_WAIT_H
|
|
256 #undef HAVE_LIBINTL_H
|
|
257 #undef HAVE_X11_XLOCALE_H
|
|
258 #undef STDC_HEADERS
|
|
259 #undef TIME_WITH_SYS_TIME
|
|
260 #undef WORDS_BIGENDIAN
|
|
261
|
|
262 #undef HAVE_LONG_FILE_NAMES
|
|
263
|
|
264 /* Use lock files to detect multiple edits of the same file? */
|
|
265 #undef CLASH_DETECTION
|
|
266
|
|
267 /* Have shared library support */
|
|
268 #undef HAVE_DLOPEN
|
|
269 #undef HAVE_DLERROR
|
|
270 #undef HAVE__DLERROR
|
|
271 #undef HAVE_SHL_LOAD
|
|
272 #undef HAVE_DLD_INIT
|
|
273 #undef HAVE_SHLIB
|
|
274
|
|
275 #undef HAVE_LIBINTL
|
|
276 #undef HAVE_LIBDNET
|
|
277 #undef HAVE_LIBRESOLV
|
|
278
|
|
279 /* Is `sys_siglist' declared by <signal.h>? */
|
|
280 #undef SYS_SIGLIST_DECLARED
|
|
281
|
|
282 /* Is `struct timeval' declared by <sys/time.h>? */
|
|
283 #undef HAVE_TIMEVAL
|
|
284
|
|
285
|
|
286 #undef TM_IN_SYS_TIME
|
|
287 #undef HAVE_TM_ZONE
|
|
288 #undef HAVE_TZNAME
|
|
289
|
442
|
290 /* For `getloadavg' provided by system */
|
|
291 #undef HAVE_GETLOADAVG
|
|
292 #undef HAVE_SYS_LOADAVG_H
|
|
293 /* For implementing `getloadavg' ourselves */
|
|
294 #undef HAVE_LIBKSTAT
|
|
295 #undef HAVE_KSTAT_H
|
|
296
|
428
|
297 /* Is `h_errno' declared by <netdb.h>? */
|
|
298 #undef HAVE_H_ERRNO
|
|
299
|
|
300 /* Does `localtime' cache TZ? */
|
|
301 #undef LOCALTIME_CACHE
|
|
302
|
|
303 /* Can `gettimeofday' accept two arguments? */
|
|
304 #undef GETTIMEOFDAY_ONE_ARGUMENT
|
|
305
|
|
306 #undef HAVE_MMAP
|
|
307 #undef HAVE_STRCOLL
|
|
308 #undef HAVE_GETPGRP
|
|
309 #undef GETPGRP_VOID
|
|
310
|
|
311 #undef HAVE_INVERSE_HYPERBOLIC
|
|
312
|
|
313 #undef HAVE_CBRT
|
|
314 #undef HAVE_CLOSEDIR
|
|
315 #undef HAVE_DUP2
|
|
316 #undef HAVE_EACCESS
|
|
317 #undef HAVE_FMOD
|
|
318 #undef HAVE_FPATHCONF
|
|
319 #undef HAVE_FREXP
|
|
320 #undef HAVE_FTIME
|
440
|
321 #undef HAVE_GETADDRINFO
|
428
|
322 #undef HAVE_GETHOSTNAME
|
440
|
323 #undef HAVE_GETNAMEINFO
|
428
|
324 #undef HAVE_GETPAGESIZE
|
|
325 #undef HAVE_GETTIMEOFDAY
|
|
326 #undef HAVE_GETWD
|
|
327 #undef HAVE_GETCWD
|
771
|
328 #undef HAVE_LINK
|
428
|
329 #undef HAVE_LOGB
|
|
330 #undef HAVE_LRAND48
|
|
331 #undef HAVE_MATHERR
|
|
332 #undef HAVE_MKDIR
|
|
333 #undef HAVE_MKTIME
|
|
334 #undef HAVE_PERROR
|
|
335 #undef HAVE_POLL
|
|
336 #undef HAVE_RANDOM
|
771
|
337 #undef HAVE_READLINK
|
428
|
338 #undef HAVE_REALPATH
|
|
339 #undef HAVE_RENAME
|
|
340 #undef HAVE_RES_INIT
|
|
341 #undef HAVE_RINT
|
|
342 #undef HAVE_RMDIR
|
|
343 #undef HAVE_SELECT
|
|
344 #undef HAVE_SETITIMER
|
|
345 #undef HAVE_SETPGID
|
|
346 #undef HAVE_SETSID
|
|
347 #undef HAVE_SIGBLOCK
|
|
348 #undef HAVE_SIGHOLD
|
|
349 #undef HAVE_SIGPROCMASK
|
|
350 #undef HAVE_SIGSETJMP
|
|
351 #undef HAVE_SNPRINTF
|
|
352 #undef HAVE_STPCPY
|
|
353 #undef HAVE_STRERROR
|
771
|
354 #undef HAVE_SYMLINK
|
428
|
355 #undef HAVE_TZSET
|
|
356 #undef HAVE_ULIMIT
|
|
357 #undef HAVE_USLEEP
|
460
|
358 #undef HAVE_UTIME
|
428
|
359 #undef HAVE_UTIMES
|
|
360 #undef HAVE_WAITPID
|
|
361 #undef HAVE_VSNPRINTF
|
442
|
362
|
535
|
363 /* Many flavors of PTY support */
|
442
|
364 #undef HAVE_GETPT /* glibc's easy pty allocation function */
|
444
|
365 #undef HAVE__GETPTY /* SGI's easy pty allocation function */
|
442
|
366 #undef HAVE_OPENPTY /* BSD's easy pty allocation function */
|
|
367 #undef HAVE_GRANTPT /* Unix98 */
|
|
368 #undef HAVE_UNLOCKPT /* Unix98 */
|
|
369 #undef HAVE_PTSNAME /* Unix98 */
|
|
370 #undef HAVE_KILLPG /* BSD */
|
|
371 #undef HAVE_TCGETPGRP /* Posix 1 */
|
|
372 #undef HAVE_ISASTREAM /* SysV streams */
|
535
|
373 #undef HAVE_SYS_PTY_H /* AIX */
|
|
374 #undef HAVE_SYS_PTYIO_H /* HP-UX */
|
|
375 #undef HAVE_PTY_H /* Linux, Tru64 */
|
442
|
376 #undef HAVE_LIBUTIL_H /* BSD openpty */
|
458
|
377 #undef HAVE_UTIL_H /* NetBSD openpty */
|
444
|
378 #undef HAVE_STROPTS_H /* SysV streams */
|
|
379 #undef HAVE_STRTIO_H /* SysV streams TIOCSIGNAL */
|
442
|
380
|
428
|
381 #undef HAVE_SOCKETS
|
|
382 #undef HAVE_SOCKADDR_SUN_LEN
|
|
383 #undef HAVE_MULTICAST
|
|
384 #undef HAVE_SYSVIPC
|
438
|
385 #undef HAVE_LOCKF
|
|
386 #undef HAVE_FLOCK
|
|
387 #undef HAVE_FSYNC
|
|
388 #undef HAVE_FTRUNCATE
|
|
389 #undef HAVE_UMASK
|
428
|
390
|
|
391 #undef SYSV_SYSTEM_DIR
|
|
392 #undef NONSYSTEM_DIR_LIBRARY
|
|
393
|
|
394 #undef HAVE_TERMIOS
|
|
395 #undef HAVE_TERMIO
|
|
396 #undef NO_TERMIO
|
|
397 #undef SIGNALS_VIA_CHARACTERS
|
|
398
|
|
399 #undef NLIST_STRUCT
|
|
400
|
724
|
401 /* Do IPv6 hostname canonicalization before IPv4 in getaddrinfo()? */
|
|
402 #undef IPV6_CANONICALIZE
|
|
403
|
428
|
404 /* Compile in support for SOCKS? */
|
|
405 #undef HAVE_SOCKS
|
|
406
|
|
407 /* Compile in support for X pixmaps via the `xpm' library? */
|
|
408 #undef HAVE_XPM
|
|
409 #undef FOR_MSW
|
|
410
|
|
411 /* Compile in support for "X faces" via the `compface' library?
|
|
412 This enables graphical display of X-face headers in mail/news messages */
|
|
413 #undef HAVE_XFACE
|
|
414
|
|
415 /* Compile in support for JPEG images */
|
|
416 #undef HAVE_JPEG
|
|
417
|
|
418 /* Compile in support for TIFF images */
|
|
419 #undef HAVE_TIFF
|
|
420
|
|
421 /* Compile in support for GIF images */
|
|
422 #undef HAVE_GIF
|
|
423
|
|
424 /* Compile in support for PNG images */
|
|
425 #undef HAVE_PNG
|
|
426
|
771
|
427 /* Compile in support for GZIP compression */
|
|
428 #undef HAVE_ZLIB
|
|
429
|
428
|
430 /* Do you have the Xmu library?
|
|
431 This should always be the case except on losing HP-UX systems. */
|
|
432 #undef HAVE_XMU
|
|
433
|
|
434 /* Compile in support for DBM databases? May require libgdbm or libdbm. */
|
|
435 #undef HAVE_DBM
|
|
436
|
|
437 /* Compile in support for Berkeley DB style databases? May require libdb. */
|
|
438 #undef HAVE_BERKELEY_DB
|
|
439 /* Full #include file path for Berkeley DB's db.h */
|
442
|
440 #undef DB_H_FILE
|
428
|
441
|
|
442 /* Do we have either DBM or Berkeley DB database support? */
|
|
443 #undef HAVE_DATABASE
|
|
444
|
|
445 /* Do we have LDAP support? */
|
|
446 #undef HAVE_LDAP
|
|
447 /* Does the library define ldap_set_option () ? */
|
|
448 #undef HAVE_LDAP_SET_OPTION
|
|
449 /* Does the library define ldap_get_lderrno () ? */
|
|
450 #undef HAVE_LDAP_GET_LDERRNO
|
|
451 /* Does the library define ldap_result2error () ? */
|
|
452 #undef HAVE_LDAP_RESULT2ERROR
|
|
453 /* Does the library define ldap_parse_result () ? */
|
|
454 #undef HAVE_LDAP_PARSE_RESULT
|
|
455
|
442
|
456 /* Do we have PostgreSQL RDBMS support? */
|
|
457 #undef HAVE_POSTGRESQL
|
|
458 #undef HAVE_POSTGRESQLV7
|
|
459 #undef LIBPQ_FE_H_FILE /* main PostgreSQL header file */
|
|
460
|
428
|
461 /* Do you have the Xauth library present? This will add some extra
|
|
462 functionality to gnuserv. */
|
|
463 #undef HAVE_XAUTH
|
|
464
|
|
465 /* Compile in support for gpm (General Purpose Mouse)? */
|
|
466 #undef HAVE_GPM
|
|
467
|
|
468 /* Compile in support for ncurses? */
|
|
469 #undef HAVE_NCURSES
|
|
470 /* Full #include file paths for ncurses' curses.h and term.h. */
|
442
|
471 #undef CURSES_H_FILE
|
|
472 #undef TERM_H_FILE
|
428
|
473
|
|
474 /* Define USE_ASSERTIONS if you want the abort() to be changed to assert().
|
|
475 If the assertion fails, assert_failed() will be called. This is
|
|
476 recommended for general use because it gives more info about the crash
|
|
477 than just the abort() message. Too many people "Can't find the corefile"
|
|
478 or have limit-ed core dumps out of existence. */
|
|
479 #undef USE_ASSERTIONS
|
|
480
|
|
481 /* Define one or more of the following if you want lots of extra checks
|
|
482 (e.g. structure validation) compiled in. These should be turned
|
|
483 on during the beta-test cycle. */
|
|
484
|
|
485 /* Check the entire extent structure of a buffer each time an extent
|
|
486 change is done, and do other extent-related checks. */
|
|
487 #undef ERROR_CHECK_EXTENTS
|
440
|
488
|
428
|
489 /* Make sure that all X... macros are dereferencing the correct type,
|
|
490 and that all XSET... macros (as much as possible) are setting the
|
|
491 correct type of structure. Highly recommended for all
|
|
492 development work. */
|
|
493 #undef ERROR_CHECK_TYPECHECK
|
440
|
494
|
428
|
495 /* Make sure valid buffer positions are passed to BUF_* macros. */
|
665
|
496 #undef ERROR_CHECK_CHARBPOS
|
440
|
497
|
428
|
498 /* Attempt to catch bugs related to garbage collection (e.g. not GCPRO'ing). */
|
|
499 #undef ERROR_CHECK_GC
|
440
|
500
|
428
|
501 /* Attempt to catch freeing of a non-malloc()ed block, heap corruption, etc. */
|
|
502 #undef ERROR_CHECK_MALLOC
|
440
|
503
|
428
|
504 /* Minor sanity checking of the bytecode interpreter. Useful for
|
|
505 debugging the byte compiler. */
|
|
506 #undef ERROR_CHECK_BYTE_CODE
|
|
507
|
442
|
508 /* Minor sanity checking of glyphs, especially subwindows and
|
|
509 widgets. */
|
|
510 #undef ERROR_CHECK_GLYPHS
|
|
511
|
428
|
512 /* Define DEBUG_XEMACS if you want extra debugging code compiled in.
|
|
513 This is mainly intended for use by developers. */
|
|
514 #undef DEBUG_XEMACS
|
|
515
|
|
516 /* Define MEMORY_USAGE_STATS if you want extra code compiled in to
|
|
517 determine where XEmacs' memory is going. */
|
|
518 #undef MEMORY_USAGE_STATS
|
|
519
|
460
|
520 /* Define QUANTIFY if using Quantify from Rational Software.
|
428
|
521 This adds some additional calls to control data collection.
|
|
522 It is only intended for use by the developers. */
|
|
523 #undef QUANTIFY
|
|
524
|
460
|
525 /* Define PURIFY if using Purify from Rational Software.
|
428
|
526 It is only intended for use by the developers. */
|
|
527 #undef PURIFY
|
|
528
|
|
529 /* Define EXTERNAL_WIDGET to compile support for using the editor as a
|
|
530 widget within another program. */
|
|
531 #undef EXTERNAL_WIDGET
|
|
532
|
|
533 /* There are some special-case defines for gcc and lcc. */
|
|
534 #undef USE_GCC
|
|
535 #undef USE_LCC
|
|
536
|
|
537 /* Compile in support for CDE (Common Desktop Environment) drag and drop?
|
|
538 Requires libDtSvc, which typically must be present at runtime. */
|
|
539 #undef HAVE_CDE
|
|
540
|
|
541 /* Compile in support for OffiX Drag and Drop? */
|
|
542 #undef HAVE_OFFIX_DND
|
|
543
|
|
544 /* Compile in generic Drag'n'Drop API */
|
|
545 #undef HAVE_DRAGNDROP
|
|
546
|
|
547 /* Compile in support for proper handling of WM_COMMAND. */
|
|
548 #undef HAVE_WMCOMMAND
|
|
549
|
|
550 /* Define this if you want Mule support (multi-byte character support).
|
|
551 There may be some performance penalty, although it should be small
|
|
552 if you're working with ASCII files. */
|
|
553 #undef MULE
|
|
554
|
771
|
555 /* Define this if you want EOL detection of files to be on by default
|
|
556 in a non-Mule Unix; otherwise, defaults will be set so that all
|
|
557 files are read in as binary. Doesn't apply to Cygwin or MinGW. */
|
|
558 #undef HAVE_DEFAULT_EOL_DETECTION
|
428
|
559
|
|
560 /* Do we want to use X window input methods for use with Mule? (requires X11R5)
|
|
561 If so, use raw Xlib or higher level Motif interface? */
|
|
562 #undef HAVE_XIM
|
|
563 #undef XIM_XLIB
|
|
564 #undef XIM_MOTIF
|
|
565
|
|
566 /* Non-XIM input methods for use with Mule. */
|
|
567 #undef HAVE_CANNA
|
|
568 #undef HAVE_WNN
|
|
569 #undef WNN6
|
|
570
|
442
|
571 /* Debugging development option: Remove inessential but time consuming
|
|
572 actions from happening during build. This saves a lot of time when
|
|
573 you're repeatedly compiling-running-crashing. This (1) doesn't
|
|
574 garbage-collect after loading each file during dumping, and (2)
|
|
575 doesn't automatically rebuild the DOC file. (Remove it by hand to
|
|
576 get it rebuilt.)
|
|
577 */
|
|
578 #undef QUICK_BUILD
|
428
|
579
|
771
|
580 /* If defined, use unions instead of ints. A few systems (DEC Alpha)
|
|
581 seem to require this, probably because something with the int
|
|
582 definitions isn't right with 64-bit systems. */
|
|
583 #undef USE_UNION_TYPE
|
|
584
|
|
585 /* Enable special GNU Make features in the Makefiles. */
|
|
586 #undef USE_GNU_MAKE
|
|
587
|
428
|
588 /* Defined by AC_C_CONST in configure.in */
|
|
589 #undef const
|
|
590
|
434
|
591 /* Allow the source to use standard types. Include these before the
|
|
592 s&m files so that they can use them. */
|
|
593 #undef ssize_t
|
|
594 #undef size_t
|
|
595 #undef pid_t
|
|
596 #undef mode_t
|
|
597 #undef off_t
|
|
598 #undef uid_t
|
|
599 #undef gid_t
|
442
|
600 #undef socklen_t
|
434
|
601
|
771
|
602 #endif /* WIN32_NO_CONFIGURE */
|
|
603
|
|
604
|
|
605 /* USER_FULL_NAME returns a string that is the user's full name.
|
|
606 It can assume that the variable `pw' points to the password file
|
|
607 entry for this user.
|
|
608
|
|
609 At some sites, the pw_gecos field contains the user's full name.
|
|
610 If neither this nor any other field contains the right thing, use
|
|
611 pw_name, giving the user's login name, since that is better than
|
|
612 nothing. */
|
|
613 #define USER_FULL_NAME pw->pw_gecos
|
|
614
|
|
615 #if (defined (QUANTIFY) || defined (PURIFY)) && !defined (XLIB_ILLEGAL_ACCESS)
|
|
616 #define XLIB_ILLEGAL_ACCESS 1
|
|
617 #endif
|
428
|
618
|
615
|
619 /* alloca twiddling.
|
|
620 Because we might be #including alloca.h here, feature test macros
|
|
621 such as _XOPEN_SOURCE must be defined above. */
|
771
|
622
|
615
|
623 #undef HAVE_ALLOCA_H
|
|
624 #ifndef NOT_C_CODE
|
771
|
625 #if defined (__CYGWIN__)
|
|
626 /* We get complaints about redefinitions if we just use the __GNUC__
|
|
627 definition: stdlib.h also includes alloca.h, which defines it slightly
|
|
628 differently */
|
|
629 #include <alloca.h>
|
|
630 #elif defined (__GNUC__)
|
615
|
631 #define alloca __builtin_alloca
|
771
|
632 #elif defined (WIN32_NO_CONFIGURE)
|
|
633 /* Defines size_t and alloca (). */
|
|
634 #include <malloc.h>
|
|
635 #elif defined (__DECC)
|
615
|
636 #include <alloca.h>
|
|
637 #pragma intrinsic(alloca)
|
771
|
638 #elif defined (HAVE_ALLOCA_H)
|
615
|
639 #include <alloca.h>
|
771
|
640 #elif defined (_AIX)
|
615
|
641 /* AIX requires this before any "real" code in the translation unit. */
|
|
642 #pragma alloca
|
|
643 #elif ! defined (alloca)
|
|
644 void *alloca ();
|
|
645 #endif
|
|
646 #endif /* C code */
|
|
647
|
442
|
648 /* The configuration script may define `opsysfile' to be the name of
|
|
649 the s/...h file that describes your operating system.
|
|
650 The file name is chosen based on the configuration name. */
|
428
|
651
|
|
652 #if defined (__cplusplus) && !defined (NOT_C_CODE)
|
|
653 extern "C" {
|
|
654 #endif
|
442
|
655
|
428
|
656 #undef config_opsysfile
|
771
|
657 #ifdef WIN32_NO_CONFIGURE
|
|
658 #include "s/windowsnt.h"
|
|
659 #elif defined (config_opsysfile)
|
428
|
660 #include config_opsysfile
|
442
|
661 #endif
|
428
|
662
|
442
|
663 /* The configuration script may define `machfile' to be the name of
|
|
664 the m/...h file that describes the machine you are using.
|
|
665 The file name is chosen based on the configuration name. */
|
428
|
666
|
|
667 #undef config_machfile
|
771
|
668 #ifdef WIN32_NO_CONFIGURE
|
|
669 #include "m/windowsnt.h"
|
|
670 #elif defined (config_machfile)
|
428
|
671 #include config_machfile
|
442
|
672 #endif
|
|
673
|
428
|
674 #if defined (__cplusplus) && !defined (NOT_C_CODE)
|
|
675 }
|
|
676 #endif
|
|
677
|
557
|
678 /* s&m files shouldn't be required to define anything, or even to exist.
|
|
679 If the s&m files don't define SYSTEM_TYPE, configure will select an
|
|
680 appropriate default value. */
|
|
681 #ifndef SYSTEM_TYPE
|
|
682 #undef SYSTEM_TYPE
|
|
683 #endif
|
|
684
|
428
|
685 #if defined (USE_SYSTEM_MALLOC) && !defined (SYSTEM_MALLOC)
|
|
686 #define SYSTEM_MALLOC
|
|
687 #endif
|
|
688
|
|
689 /* Use the relocating allocator for buffer space? */
|
|
690 #undef REL_ALLOC
|
|
691
|
|
692 /* Define the return type of signal handlers if the s/xxx.h file
|
|
693 did not already do so. */
|
|
694 #define RETSIGTYPE void
|
|
695
|
|
696 /* SIGTYPE is the macro we actually use. */
|
|
697 #ifndef SIGTYPE
|
|
698 #define SIGTYPE RETSIGTYPE
|
|
699 #define SIGRETURN return
|
|
700 #endif
|
|
701
|
771
|
702 #ifndef WIN32_NO_CONFIGURE /* Defined in xemacs.mak or s/windowsnt.h: */
|
|
703
|
428
|
704 /* Define DYNODUMP if it is necessary to properly dump on this system.
|
|
705 Currently this is only Solaris 2.x, for x < 6. */
|
|
706 #undef DYNODUMP
|
|
707
|
|
708 /* Compile in support for Sun Sparcworks/WorkShop? */
|
|
709 #undef SUNPRO
|
|
710
|
|
711 /* Sun SparcStations, SGI machines, and HP9000s700s have built-in
|
|
712 support for playing sound files. (On Suns, the sound support is
|
|
713 usually found in /usr/demo/SOUND - you may need to install the
|
|
714 "SUNWaudmo" package.) */
|
|
715 #undef HAVE_NATIVE_SOUND
|
771
|
716
|
428
|
717 /* Native sound may be provided via soundcard.h, in various directories */
|
442
|
718 #undef SOUNDCARD_H_FILE
|
428
|
719
|
|
720 /* Compile in support for NAS (Network Audio System)?
|
|
721 NAS_NO_ERROR_JUMP means that the NAS libraries don't include some
|
|
722 error handling changes. */
|
|
723 #undef HAVE_NAS_SOUND
|
|
724 #undef NAS_NO_ERROR_JUMP
|
|
725
|
|
726 /* Compile in support for ESD (Enlightened Sound Daemon)? */
|
|
727 #undef HAVE_ESD_SOUND
|
|
728
|
|
729 /* Compile in support for SunPro usage-tracking code? */
|
|
730 #undef USAGE_TRACKING
|
|
731
|
|
732 /* Compile in support for Tooltalk? */
|
|
733 #undef TOOLTALK
|
|
734 /* tt_c.h might be in "Tt" or "desktop" subdirectories */
|
442
|
735 #undef TT_C_H_FILE
|
428
|
736
|
|
737 /* Toolkits used by lwlib for various widgets... */
|
771
|
738
|
428
|
739 #undef LWLIB_USES_MOTIF
|
|
740 #undef LWLIB_USES_ATHENA
|
|
741 #undef LWLIB_MENUBARS_LUCID
|
|
742 #undef LWLIB_MENUBARS_MOTIF
|
|
743 #undef LWLIB_SCROLLBARS_LUCID
|
|
744 #undef LWLIB_SCROLLBARS_MOTIF
|
|
745 #undef LWLIB_SCROLLBARS_ATHENA
|
|
746 #undef LWLIB_SCROLLBARS_ATHENA3D
|
|
747 #undef LWLIB_DIALOGS_MOTIF
|
|
748 #undef LWLIB_DIALOGS_ATHENA
|
|
749 #undef LWLIB_DIALOGS_ATHENA3D
|
|
750 #undef LWLIB_TABS_LUCID
|
|
751 #undef LWLIB_WIDGETS_MOTIF
|
|
752 #undef LWLIB_WIDGETS_ATHENA
|
440
|
753 #undef HAVE_ATHENA_3D
|
428
|
754
|
|
755 /* Other things that can be disabled by configure. */
|
|
756 #undef HAVE_MENUBARS
|
|
757 #undef HAVE_SCROLLBARS
|
|
758 #undef HAVE_DIALOGS
|
|
759 #undef HAVE_TOOLBARS
|
|
760 #undef HAVE_WIDGETS
|
|
761
|
771
|
762 #endif /* WIN32_NO_CONFIGURE */
|
|
763
|
|
764 #if defined (HAVE_MENUBARS) || defined (HAVE_SCROLLBARS) || defined (HAVE_DIALOGS) || defined (HAVE_TOOLBARS) || defined (HAVE_WIDGETS)
|
|
765 #define HAVE_GUI_OBJECTS
|
|
766 #endif
|
|
767
|
|
768 /* For the moment, Athena widgets and dialogs may be very unstable and not
|
|
769 working well, but things under Windows work much better. configure by
|
|
770 default tries to turn Windows widgets and dialogs on, but the Athena
|
|
771 ones off, so let's separate the defines. */
|
|
772 #if defined (HAVE_WIDGETS) && (defined (LWLIB_WIDGETS_MOTIF) || defined (LWLIB_WIDGETS_ATHENA))
|
|
773 #define HAVE_X_WIDGETS
|
|
774 #endif
|
|
775
|
|
776 #if defined (HAVE_DIALOGS) && (defined (LWLIB_DIALOGS_MOTIF) || defined (LWLIB_DIALOGS_ATHENA) || defined (LWLIB_DIALOGS_ATHENA3D))
|
|
777 #define HAVE_X_DIALOGS
|
|
778 #endif
|
428
|
779
|
|
780 #if defined (HAVE_MENUBARS) || defined (HAVE_DIALOGS)
|
|
781 #define HAVE_POPUPS
|
|
782 #endif
|
|
783
|
|
784 /* If you are using SunOS 4.1.1 and X11r5, then you need this patch.
|
|
785 There is a stupid bug in the SunOS libc.a: two functions which X11r5
|
|
786 uses, mbstowcs() and wcstombs(), are unusable when programs are
|
|
787 statically linked (as XEmacs must be) because the static version of
|
|
788 libc.a contains the *dynamic* versions of these functions. These
|
|
789 functions don't seem to be called when XEmacs is running, so it's
|
|
790 enough to define stubs for them.
|
|
791
|
|
792 This appears to be fixed in SunOS 4.1.2.
|
|
793
|
|
794 Also, SunOS 4.1.1 contains buggy versions of strcmp and strcpy that
|
|
795 sometimes reference memory past the end of the string, which can segv.
|
444
|
796 I don't know whether this has been fixed as of 4.1.2 or 4.1.3. */
|
428
|
797 #if defined (sparc) && !defined (USG)
|
|
798 #define OBJECTS_SYSTEM sunOS-fix.o strcmp.o strcpy.o
|
|
799 #endif
|
|
800
|
|
801 #ifdef HAVE_CANNA
|
|
802 # define CANNA2
|
|
803 # define CANNA_MULE
|
|
804 # define CANNA_PURESIZE 0
|
|
805 #else /* not CANNA */
|
|
806 # define CANNA_PURESIZE 0
|
|
807 #endif /* not CANNA */
|
|
808
|
|
809 #if defined (HAVE_SOCKS) && !defined (DO_NOT_SOCKSIFY)
|
|
810 #define accept Raccept
|
|
811 #define bind Rbind
|
|
812 #define connect Rconnect
|
|
813 #define getsockname Rgetsockname
|
|
814 #define listen Rlisten
|
|
815 #endif /* HAVE_SOCKS && !DO_NOT_SOCKSIFY */
|
|
816
|
771
|
817 #ifndef WIN32_NO_CONFIGURE /* Defined in xemacs.mak or s/windowsnt.h: */
|
|
818
|
428
|
819 #undef SIZEOF_SHORT
|
|
820 #undef SIZEOF_INT
|
|
821 #undef SIZEOF_LONG
|
|
822 #undef SIZEOF_LONG_LONG
|
|
823 #undef SIZEOF_VOID_P
|
|
824
|
771
|
825 /* Does the keyword `inline' exist? */
|
|
826 #undef inline
|
|
827
|
|
828 #endif /* WIN32_NO_CONFIGURE */
|
|
829
|
428
|
830 #ifndef BITS_PER_CHAR
|
|
831 #define BITS_PER_CHAR 8
|
|
832 #endif
|
|
833 #define SHORTBITS (SIZEOF_SHORT * BITS_PER_CHAR)
|
|
834 #define INTBITS (SIZEOF_INT * BITS_PER_CHAR)
|
|
835 #define LONGBITS (SIZEOF_LONG * BITS_PER_CHAR)
|
|
836 #define LONG_LONG_BITS (SIZEOF_LONG_LONG * BITS_PER_CHAR)
|
|
837 #define VOID_P_BITS (SIZEOF_VOID_P * BITS_PER_CHAR)
|
|
838
|
442
|
839 /* Use `INLINE_HEADER' to define inline functions in .h files.
|
|
840 Use `inline static' to define inline functions in .c files.
|
|
841 See the Internals manual for examples and more information. */
|
|
842
|
|
843 #if defined (__cplusplus) || ! defined (__GNUC__)
|
|
844 # define INLINE_HEADER inline static
|
|
845 #elif defined (DONT_EXTERN_INLINE_HEADER_FUNCTIONS)
|
|
846 # define INLINE_HEADER inline
|
|
847 #else
|
|
848 # define INLINE_HEADER inline extern
|
|
849 #endif
|
428
|
850
|
771
|
851 /* Use DECLARE_INLINE_HEADER() to declare an inline function in a header
|
|
852 file, like this: (This avoids the need to write a prototype directly
|
|
853 followed by the function header itself.)
|
|
854
|
|
855 DECLARE_INLINE_HEADER (int foo (int x))
|
|
856 {
|
|
857 return x * x;
|
|
858 }
|
|
859
|
|
860 */
|
|
861
|
|
862 #define DECLARE_INLINE_HEADER(header) \
|
|
863 INLINE_HEADER header ; INLINE_HEADER header
|
|
864
|
442
|
865 #ifndef NOT_C_CODE /* Actually means C or C++ */
|
|
866 # if defined (__cplusplus)
|
428
|
867 /* Avoid C++ keywords used as ordinary C identifiers */
|
442
|
868 # define class c_class
|
|
869 # define new c_new
|
|
870 # define this c_this
|
|
871 # define catch c_catch
|
|
872
|
|
873 # define EXTERN_C extern "C"
|
|
874 # else /* C code */
|
|
875 # define EXTERN_C extern
|
|
876 # endif
|
|
877 #endif /* C or C++ */
|
428
|
878
|
|
879 /* Strictly speaking, only int or unsigned int are valid types in a
|
|
880 bitfield. In practice, we would like to use enums as bitfields.
|
|
881 The following should just result in warning avoidance:
|
|
882 warning: nonportable bit-field type */
|
|
883 #ifdef __GNUC__
|
|
884 #define enum_field(enumeration_type) enum enumeration_type
|
|
885 #else
|
|
886 #define enum_field(enumeration_type) unsigned int
|
|
887 #endif
|
|
888
|
|
889 /* We want to avoid saving the signal mask if possible, because
|
|
890 that necessitates a system call. */
|
|
891 #ifdef HAVE_SIGSETJMP
|
|
892 # define SETJMP(x) sigsetjmp (x, 0)
|
|
893 # define LONGJMP(x, y) siglongjmp (x, y)
|
|
894 # define JMP_BUF sigjmp_buf
|
|
895 #else
|
|
896 # define SETJMP(x) setjmp (x)
|
|
897 # define LONGJMP(x, y) longjmp (x, y)
|
|
898 # define JMP_BUF jmp_buf
|
|
899 #endif
|
|
900
|
771
|
901 #ifndef WIN32_NO_CONFIGURE /* Defined in xemacs.mak or s/windowsnt.h: */
|
|
902
|
428
|
903 /* movemail options */
|
|
904 /* Should movemail use POP3 for mail access? */
|
|
905 #undef MAIL_USE_POP
|
|
906 /* Should movemail use kerberos for POP authentication? */
|
|
907 #undef KERBEROS
|
|
908 /* Should movemail use hesiod for getting POP server host? */
|
|
909 #undef HESIOD
|
|
910 /* Determine type of mail locking. */
|
438
|
911 #undef MAIL_LOCK_LOCKF
|
|
912 #undef MAIL_LOCK_FLOCK
|
|
913 #undef MAIL_LOCK_DOT
|
|
914 #undef MAIL_LOCK_LOCKING
|
|
915 #undef MAIL_LOCK_MMDF
|
428
|
916
|
567
|
917 #undef HAVE_MKSTEMP
|
|
918
|
428
|
919 #undef PREFIX_USER_DEFINED
|
|
920 #undef EXEC_PREFIX_USER_DEFINED
|
|
921 #undef MODULEDIR_USER_DEFINED
|
|
922 #undef SITEMODULEDIR_USER_DEFINED
|
|
923 #undef DOCDIR_USER_DEFINED
|
|
924 #undef LISPDIR_USER_DEFINED
|
|
925 #undef PACKAGE_PATH_USER_DEFINED
|
|
926 #undef SITELISPDIR_USER_DEFINED
|
|
927 #undef ARCHLIBDIR_USER_DEFINED
|
|
928 #undef ETCDIR_USER_DEFINED
|
|
929 #undef INFODIR_USER_DEFINED
|
|
930 #undef INFOPATH_USER_DEFINED
|
|
931
|
|
932 #undef PDUMP
|
|
933
|
771
|
934 #endif /* WIN32_NO_CONFIGURE */
|
|
935
|
|
936 #if defined (WIN32_NATIVE) || defined (CYGWIN)
|
|
937 # define HAVE_WIN32_CODING_SYSTEMS
|
|
938 #endif
|
|
939
|
|
940 /* Move these down here so that the s/m files (esp. windowsnt.h) can
|
|
941 set them. */
|
|
942 #ifdef ERROR_CHECK_TYPECHECK
|
|
943 #define type_checking_assert(assertion) assert (assertion)
|
788
|
944 #define type_checking_assert_at_line(assertion, file, line) \
|
|
945 assert_at_line (assertion, file, line)
|
771
|
946 #else
|
|
947 #define type_checking_assert(assertion)
|
788
|
948 #define type_checking_assert_at_line(assertion, file, line)
|
771
|
949 #endif
|
|
950 #ifdef ERROR_CHECK_CHARBPOS
|
|
951 #define charbpos_checking_assert(assertion) assert (assertion)
|
788
|
952 #define charbpos_checking_assert_at_line(assertion, file, line) \
|
|
953 assert_at_line (assertion, file, line)
|
771
|
954 #else
|
|
955 #define charbpos_checking_assert(assertion)
|
788
|
956 #define charbpos_checking_assert_at_line(assertion, file, line)
|
771
|
957 #endif
|
|
958 #ifdef ERROR_CHECK_GC
|
|
959 #define gc_checking_assert(assertion) assert (assertion)
|
788
|
960 #define gc_checking_assert_at_line(assertion, file, line) \
|
|
961 assert_at_line (assertion, file, line)
|
771
|
962 #else
|
|
963 #define gc_checking_assert(assertion)
|
788
|
964 #define gc_checking_assert_at_line(assertion, file, line)
|
771
|
965 #endif
|
|
966
|
428
|
967 #endif /* _SRC_CONFIG_H_ */
|