declare smobs in alloc.c
[bpt/emacs.git] / admin / CPP-DEFINES
CommitLineData
aa5fea59
SM
1Here are some of the cpp macros used, together with some short explanation
2of their use. Feel free to add more macros and more categories.
8922df07
GM
3Most of these are from config.in, so it's probably better to put the
4explanations in that file. Ideally, everything would be defined and
5documented in config.in, and this file would not be necessary.
6
aa5fea59
SM
7
8** Distinguishing OSes **
9
8922df07
GM
10AIX
11_AIX
aa5fea59 12CYGWIN Compiling the Cygwin port.
077e3aa8 13__CYGWIN__ Ditto
8922df07
GM
14GNU_LINUX
15HPUX
16IRIX6_5
077e3aa8
EZ
17MSDOS Compiling the MS-DOS port.
18__MSDOS__ Ditto.
796bb936 19__DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
077e3aa8
EZ
20DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
21WINDOWSNT Compiling the native MS-Windows (W32) port.
22__MINGW32__ Compiling the W32 port with the MinGW port of GCC.
23_MSC_VER Compiling the W32 port with the Microsoft C compiler.
14145fa3 24DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
8922df07
GM
25SOLARIS2
26USG
8922df07 27USG5_4
aa5fea59
SM
28
29** Distinguishing GUIs **
30
077e3aa8 31HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
14145fa3 32HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
d1a5744d 33NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
edfda783 34NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
aa5fea59 35HAVE_X11 Compile support for the X11 GUI.
077e3aa8 36HAVE_X_WINDOWS Compile support for X Window system
3df7b338
GM
37 (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
38 be, and vice versa. At least, this is true for configure, and
39 msdos; not sure about nt.)
e568d279
GM
40HAVE_X11R6
41HAVE_X11R6_XIM
42HAVE_X11XTR6
aa5fea59
SM
43USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
44USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
45USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
46
077e3aa8
EZ
47** Frame types **
48
49FRAME_TERMCAP_P A tty (character terminal) frame.
50FRAME_X_P A frame on X Window system.
51FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
077e3aa8
EZ
52FRAME_W32_P A frame using native MS-Windows GUI.
53FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
54
c3179b06
EZ
55** Support for accessing other processes on the system **
56
57HAVE_PROCFS The /proc filesystem is supported.
c3179b06 58
077e3aa8 59** Compile-time options **
c3179b06 60
077e3aa8
EZ
61REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
62SYSTEM_MALLOC Use the system library's malloc.
8922df07
GM
63subprocesses System can use subprocesses (for M-x shell for example).
64 Defined by default, only MSDOS undefines it.
65DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
66 on Lisp_Object use.
077e3aa8 67
8922df07 68** System specific macros
0f21c005
DN
69FIRST_PTY_LETTER
70HAVE_PTYS
0f21c005 71INTERRUPT_INPUT
0f21c005 72NARROWPROTO
0f21c005 73SEPCHAR
0f21c005 74SYSTEM_TYPE
0f21c005 75
2b5b9582 76** Misc macros
8922df07
GM
77USER_FULL_NAME If defined, overrides the default pw->pw_gecos for
78getting at the full user name. Only MSDOS overrides the default.
2b5b9582 79
8922df07
GM
80** Miscellaneous defines. Some of these might not be used in the code
81anymore, so they can be removed.
a0ce9ab7 82
a0ce9ab7 83AMPERSAND_FULL_NAME
a0ce9ab7 84BROKEN_DATAGRAM_SOCKETS
f3041af1 85BROKEN_FIONREAD
a0ce9ab7
DN
86BROKEN_GET_CURRENT_DIR_NAME
87BROKEN_NON_BLOCKING_CONNECT
88BROKEN_PTY_READ_AFTER_EAGAIN
a0ce9ab7
DN
89DEFAULT_SOUND_DEVICE
90DEVICE_SEP
91DIRECTORY_SEP
92DONT_REOPEN_PTY
a0ce9ab7 93DOUG_LEA_MALLOC
a0ce9ab7
DN
94EMACS_CONFIGURATION
95EMACS_CONFIG_OPTIONS
96EMACS_INT
97EMACS_UINT
a0ce9ab7 98GC_MARK_SECONDARY_STACK
f3041af1
DN
99GC_MARK_STACK
100GC_SETJMP_WORKS
f3041af1 101GNU_MALLOC
a0ce9ab7 102HAVE_AIX_SMT_EXP
e568d279
GM
103HAVE_ALARM
104HAVE_ALLOCA
105HAVE_ALLOCA_H
106HAVE_ALSA
107HAVE_ATTRIBUTE_ALIGNED
108HAVE_BDFFONT
109HAVE_BOXES
110HAVE_C99_STRTOLD
e568d279
GM
111HAVE_CFMAKERAW
112HAVE_CFSETSPEED
113HAVE_CLOCK_GETTIME
114HAVE_CLOCK_SETTIME
e568d279
GM
115HAVE_COFF_H
116HAVE_COM_ERR_H
117HAVE_COPYSIGN
118HAVE_DBUS
119HAVE_DBUS_TYPE_IS_VALID
120HAVE_DBUS_VALIDATE_BUS_NAME
121HAVE_DBUS_VALIDATE_INTERFACE
122HAVE_DBUS_VALIDATE_MEMBER
123HAVE_DBUS_VALIDATE_PATH
124HAVE_DBUS_WATCH_GET_UNIX_FD
125HAVE_DECL_GETENV
126HAVE_DECL_LOCALTIME_R
127HAVE_DECL_STRMODE
128HAVE_DECL_STRTOIMAX
129HAVE_DECL_STRTOLL
130HAVE_DECL_STRTOULL
131HAVE_DECL_STRTOUMAX
132HAVE_DECL_SYS_SIGLIST
133HAVE_DECL_TZNAME
134HAVE_DECL___SYS_SIGLIST
e568d279
GM
135HAVE_DIALOGS
136HAVE_DIFFTIME
a0ce9ab7 137HAVE_DUP2
e568d279
GM
138HAVE_ENDGRENT
139HAVE_ENDPWENT
140HAVE_ENVIRON_DECL
a0ce9ab7 141HAVE_EUIDACCESS
e568d279 142HAVE_FORK
e568d279
GM
143HAVE_FREEIFADDRS
144HAVE_FREETYPE
e568d279 145HAVE_FSEEKO
e568d279
GM
146HAVE_FUTIMENS
147HAVE_FUTIMES
148HAVE_FUTIMESAT
149HAVE_GAI_STRERROR
150HAVE_GCONF
151HAVE_GETADDRINFO
e568d279
GM
152HAVE_GETDELIM
153HAVE_GETGRENT
a0ce9ab7 154HAVE_GETHOSTNAME
e568d279
GM
155HAVE_GETIFADDRS
156HAVE_GETLINE
a0ce9ab7 157HAVE_GETLOADAVG
e568d279
GM
158HAVE_GETOPT_H
159HAVE_GETOPT_LONG_ONLY
a0ce9ab7 160HAVE_GETPAGESIZE
e568d279 161HAVE_GETPEERNAME
a0ce9ab7 162HAVE_GETPT
e568d279
GM
163HAVE_GETPWENT
164HAVE_GETRLIMIT
165HAVE_GETRUSAGE
166HAVE_GETSOCKNAME
f3041af1 167HAVE_GETTIMEOFDAY
e568d279
GM
168HAVE_GET_CURRENT_DIR_NAME
169HAVE_GHOSTSCRIPT
170HAVE_GIF
171HAVE_GNUTLS
e568d279
GM
172HAVE_GPM
173HAVE_GRANTPT
174HAVE_GSETTINGS
175HAVE_GTK3
176HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
177HAVE_GTK_DIALOG_GET_ACTION_AREA
178HAVE_GTK_FILE_SELECTION_NEW
179HAVE_GTK_MAIN
180HAVE_GTK_MULTIDISPLAY
181HAVE_GTK_ORIENTABLE_SET_ORIENTATION
182HAVE_GTK_WIDGET_GET_MAPPED
183HAVE_GTK_WIDGET_GET_SENSITIVE
184HAVE_GTK_WIDGET_GET_WINDOW
185HAVE_GTK_WIDGET_SET_HAS_WINDOW
186HAVE_GTK_WINDOW_SET_HAS_RESIZE_GRIP
187HAVE_G_TYPE_INIT
a0ce9ab7 188HAVE_H_ERRNO
e568d279
GM
189HAVE_IFADDRS_H
190HAVE_IMAGEMAGICK
f3041af1 191HAVE_INET_SOCKETS
e568d279 192HAVE_INTTYPES_H
e568d279 193HAVE_JPEG
e568d279 194HAVE_KERBEROSIV_KRB_H
e568d279
GM
195HAVE_KERBEROS_KRB_H
196HAVE_KRB5_ERROR_E_TEXT
197HAVE_KRB5_ERROR_TEXT
198HAVE_KRB5_H
199HAVE_KRB_H
200HAVE_LANGINFO_CODESET
e568d279 201HAVE_LIBDGC
a0ce9ab7 202HAVE_LIBKSTAT
e568d279 203HAVE_LIBLOCKFILE
e568d279
GM
204HAVE_LIBMAIL
205HAVE_LIBOTF
206HAVE_LIBPERFSTAT
207HAVE_LIBPNG_PNG_H
e568d279 208HAVE_LIBSELINUX
e568d279
GM
209HAVE_LIBXML2
210HAVE_LIBXMU
e568d279
GM
211HAVE_LOCALTIME_R
212HAVE_LOCAL_SOCKETS
a0ce9ab7 213HAVE_LONG_FILE_NAMES
e568d279 214HAVE_LONG_LONG_INT
a0ce9ab7 215HAVE_LRAND48
e568d279
GM
216HAVE_LSTAT
217HAVE_LUTIMES
218HAVE_M17N_FLT
219HAVE_MACHINE_SOUNDCARD_H
220HAVE_MACH_MACH_H
221HAVE_MAGICKEXPORTIMAGEPIXELS
222HAVE_MAGICKMERGEIMAGELAYERS
223HAVE_MAILLOCK_H
224HAVE_MALLOC_MALLOC_H
225HAVE_MATHERR
226HAVE_MBSTATE_T
227HAVE_MEMCMP
228HAVE_MEMMOVE
229HAVE_MEMORY_H
230HAVE_MEMSET
a0ce9ab7 231HAVE_MENUS
e568d279
GM
232HAVE_MKSTEMP
233HAVE_MMAP
e568d279
GM
234HAVE_MULTILINGUAL_MENU
235HAVE_NANOTIME
236HAVE_NET_IF_DL_H
237HAVE_NET_IF_H
238HAVE_NLIST_H
239HAVE_OTF_GET_VARIATION_GLYPHS
240HAVE_PERSONALITY_LINUX32
241HAVE_PNG
242HAVE_PNG_H
243HAVE_POSIX_MEMALIGN
244HAVE_PROCFS
245HAVE_PSELECT
a0ce9ab7 246HAVE_PSTAT_GETDYNAMIC
e568d279
GM
247HAVE_PTHREAD
248HAVE_PTHREAD_H
249HAVE_PTHREAD_SIGMASK
250HAVE_PTYS
251HAVE_PTY_H
a0ce9ab7
DN
252HAVE_PWD_H
253HAVE_RANDOM
e568d279
GM
254HAVE_READLINK
255HAVE_READLINKAT
256HAVE_RECVFROM
a0ce9ab7 257HAVE_RES_INIT
a0ce9ab7 258HAVE_RINT
e568d279 259HAVE_RSVG
f3041af1 260HAVE_SELECT
e568d279
GM
261HAVE_SENDTO
262HAVE_SEQPACKET
263HAVE_SETITIMER
a0ce9ab7 264HAVE_SETLOCALE
a0ce9ab7 265HAVE_SETRLIMIT
e568d279 266HAVE_SHARED_GAME_DIR
a0ce9ab7 267HAVE_SHUTDOWN
e568d279
GM
268HAVE_SIGNED_${GLTYPE}
269HAVE_SIGNED_SIG_ATOMIC_T
270HAVE_SIGNED_WCHAR_T
271HAVE_SIGNED_WINT_T
272HAVE_SIGSET_T
e568d279 273HAVE_SNPRINTF
d35e1cd7 274HAVE_SOCKETS
a0ce9ab7 275HAVE_SOUND
e568d279 276HAVE_SOUNDCARD_H
e568d279
GM
277HAVE_STDINT_H
278HAVE_STDIO_EXT_H
a0ce9ab7 279HAVE_STDLIB_H
e568d279
GM
280HAVE_STLIB_H_1
281HAVE_STRINGS_H
f2a77c3a 282HAVE_STRING_H
e568d279
GM
283HAVE_STRNCASECMP
284HAVE_STRSIGNAL
285HAVE_STRTOIMAX
286HAVE_STRTOLL
287HAVE_STRTOULL
288HAVE_STRTOUMAX
289HAVE_STRUCT_ERA_ENTRY
290HAVE_STRUCT_IFREQ_IFR_ADDR
291HAVE_STRUCT_IFREQ_IFR_ADDR_SA_LEN
292HAVE_STRUCT_IFREQ_IFR_BROADADDR
293HAVE_STRUCT_IFREQ_IFR_FLAGS
294HAVE_STRUCT_IFREQ_IFR_HWADDR
295HAVE_STRUCT_IFREQ_IFR_NETMASK
296HAVE_STRUCT_NLIST_N_UN_N_NAME
297HAVE_STRUCT_STAT_ST_ATIMENSEC
298HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
299HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
300HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
301HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
302HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
303HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
304HAVE_STRUCT_TIMEZONE
305HAVE_STRUCT_TM_TM_ZONE
a0ce9ab7 306HAVE_STRUCT_UTIMBUF
e568d279
GM
307HAVE_ST_DM_MODE
308HAVE_SYMLINK
309HAVE_SYNC
310HAVE_SYS_BITYPES_H
311HAVE_SYS_INTTYPES_H
312HAVE_SYS_LOADAVG_H
313HAVE_SYS_PARAM_H
314HAVE_SYS_RESOURCE_H
a0ce9ab7 315HAVE_SYS_SELECT_H
e568d279
GM
316HAVE_SYS_SOCKET_H
317HAVE_SYS_SOUNDCARD_H
318HAVE_SYS_STAT_H
a0ce9ab7
DN
319HAVE_SYS_SYSTEMINFO_H
320HAVE_SYS_TIMEB_H
321HAVE_SYS_TIME_H
e568d279
GM
322HAVE_SYS_TYPES_H
323HAVE_SYS_UN_H
324HAVE_SYS_UTSNAME_H
325HAVE_SYS_VLIMIT_H
326HAVE_SYS_WAIT_H
f3041af1 327HAVE_TCATTR
e568d279
GM
328HAVE_TERM_H
329HAVE_TIFF
330HAVE_TIMEVAL
331HAVE_TM_GMTOFF
a0ce9ab7 332HAVE_TM_ZONE
e568d279
GM
333HAVE_TOUCHLOCK
334HAVE_TZNAME
a0ce9ab7 335HAVE_TZSET
e568d279
GM
336HAVE_UNSIGNED_LONG_LONG_INT
337HAVE_UTIL_H
338HAVE_UTIMENSAT
339HAVE_UTIMES
a0ce9ab7 340HAVE_UTIME_H
e568d279
GM
341HAVE_UTMP_H
342HAVE_VFORK
343HAVE_VFORK_H
344HAVE_WCHAR_H
345HAVE_WCHAR_T
a0ce9ab7 346HAVE_WINDOW_SYSTEM
e568d279
GM
347HAVE_WINSOCK2_H
348HAVE_WORKING_FORK
349HAVE_WORKING_UTIMES
a0ce9ab7 350HAVE_WORKING_VFORK
e568d279
GM
351HAVE_WS2TCPIP_H
352HAVE_XAW3D
353HAVE_XFT
354HAVE_XIM
e568d279 355HAVE_XPM
a0ce9ab7 356HAVE_XRMSETDATABASE
e568d279
GM
357HAVE_XSCREENNUMBEROFSCREEN
358HAVE_XSCREENRESOURCESTRING
359HAVE_X_I18N
360HAVE_X_MENU
361HAVE_X_SM
362HAVE_X_WINDOWS
363HAVE__BOOL
364HAVE__FTIME
365HAVE___BUILTIN_UNWIND_INIT
366HAVE___EXECUTABLE_START
367HAVE___FPENDING
a0ce9ab7 368INTERNAL_TERMINAL
a0ce9ab7
DN
369IS_ANY_SEP
370IS_DIRECTORY_SEP
a0ce9ab7 371LOCALTIME_CACHE
1495e2fc 372MAIL_USE_FLOCK
a0ce9ab7
DN
373MAIL_USE_LOCKF
374MAIL_USE_POP
375MAIL_USE_SYSTEM_LOCK
376MAXPATHLEN
f3041af1 377NLIST_STRUCT
a0ce9ab7 378NO_EDITRES
f3041af1
DN
379NSIG
380NSIG_MINIMUM
a0ce9ab7 381NULL_DEVICE
a0ce9ab7 382PAGESIZE
f3041af1
DN
383PREFER_VSUSP
384PTY_ITERATION
d35e1cd7 385PTY_NAME_SPRINTF
f3041af1 386PTY_OPEN
d35e1cd7 387PTY_TTY_NAME_SPRINTF
f3041af1 388PURESIZE
f3041af1 389RUN_TIME_REMAP
f3041af1 390SETUP_SLAVE_PTY
f3041af1 391SIGNALS_VIA_CHARACTERS
a0ce9ab7 392STDC_HEADERS
a0ce9ab7 393SYSTEM_PURESIZE_EXTRA
bbbac910 394SYSTEM_MALLOC
f2a77c3a
DN
395TAB3
396TABDLY
a0ce9ab7 397TERM
a0ce9ab7
DN
398TIME_WITH_SYS_TIME
399TIOCSIGSEND
400TM_IN_SYS_TIME
a0ce9ab7 401UNIX98_PTYS
a0ce9ab7 402USE_TOOLKIT_SCROLL_BARS
a0ce9ab7
DN
403USG_SUBTTY_WORKS
404VALBITS
f2a77c3a 405XOS_NEEDS_TIME_H
a0ce9ab7 406_FILE_OFFSET_BITS
a0ce9ab7 407_LP64
f3041af1
DN
408_longjmp
409_setjmp
a0ce9ab7 410abort
f3041af1 411alloca
38a414f0
GM
412close
413emacs
414free
415gmtime
416localtime
417malloc
418random
419read
420realloc
421select
422umask
423vfork
424
425
426src/sysdep.c:
427write
428
429src/syssignal.h:
430signal
431sigmask
432sigsetmask
433
434
435lib/dup2.c:
436dup2
437
438lib/signal.h:
439signal
440
38a414f0
GM
441lib/stdio.h:
442fdopen
443fopen
444fwrite
445popen
446rename
447
448lib/stdlib.h:
449calloc
450srandom (conf_post.h may undo)
451
452lib/strftime.c:
453tzname
454tzset
455
456lib/sys/stat.h:
457mkdir
458
459lib/unistd.h:
460chown
461dup
462dup2
463ftruncate
464isatty
465link
466lseek
467pipe
468rmdir
469sleep
470unlink
471
472
e568d279
GM
473MS DOS stuff:
474
475_NAIVE_DOS_REGS
476
477
478MS stuff:
479
480USE_CRT_DLL
38a414f0
GM
481
482ms-w32.h:
e568d279
GM
483DebPrint
484EMACSDEBUG
485MUST_UNDEF__STDC__
486
487_VARARGS_
488_WINSOCKAPI_
489_WINSOCK_H
490
38a414f0 491access
a0ce9ab7
DN
492calloc
493chdir
494chmod
495chown
a0ce9ab7
DN
496creat
497ctime
a0ce9ab7
DN
498dup
499dup2
a0ce9ab7 500execlp
38a414f0 501execvp (also emacsclient.c [WINDOWSNT])
a0ce9ab7 502fdopen
a0ce9ab7 503fileno
a0ce9ab7 504fopen
a0ce9ab7
DN
505fsync
506ftruncate
a0ce9ab7
DN
507getdefdir
508getdisk
a0ce9ab7 509getpid
a0ce9ab7
DN
510isatty
511kill
512link
a0ce9ab7 513lseek
a0ce9ab7
DN
514mkdir
515mktemp
516open
517pclose
518pipe
519popen
a0ce9ab7 520rename
a0ce9ab7 521rmdir
a0ce9ab7 522signal
a0ce9ab7
DN
523sleep
524spawnve
a0ce9ab7 525strdup
a0ce9ab7
DN
526stricmp
527strnicmp
528strupr
a0ce9ab7 529sys_nerr
a0ce9ab7
DN
530tzname
531tzset
532umask
a0ce9ab7
DN
533unlink
534utimbuf
535utime
38a414f0 536wait (also movemail.c [WINDOWSNT])
a0ce9ab7 537write
38a414f0
GM
538
539lib-src/ntlib:
540access
541chdir
542chmod
543creat
544dup
545dup2
546execlp
547execvp
548fdopen
549fileno
550fopen
551getpid
552index
553isatty
38a414f0
GM
554lseek
555mkdir
556mktemp
557open
558pclose
559pipe
560popen
561rmdir
562rindex
563sleep
564umask
565unlink
566utime