HAVE_ALLOCA not needed since alloca.s was removed.
[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.
3
4** Distinguishing OSes **
5
aa5fea59 6CYGWIN Compiling the Cygwin port.
077e3aa8
EZ
7__CYGWIN__ Ditto
8MSDOS Compiling the MS-DOS port.
9__MSDOS__ Ditto.
796bb936 10__DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
077e3aa8
EZ
11DOS_NT Compiling for either the MS-DOS or native MS-Windows port.
12WINDOWSNT Compiling the native MS-Windows (W32) port.
13__MINGW32__ Compiling the W32 port with the MinGW port of GCC.
14_MSC_VER Compiling the W32 port with the Microsoft C compiler.
14145fa3 15DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
aa5fea59
SM
16
17** Distinguishing GUIs **
18
077e3aa8 19HAVE_NTGUI Use the native W32 GUI for windows, frames, menus&scrollbars.
14145fa3 20HAVE_NS Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
d1a5744d 21NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
edfda783 22NS_IMPL_COCOA Compile support for Cocoa (Apple) implementation of NS GUI API.
aa5fea59 23HAVE_X11 Compile support for the X11 GUI.
077e3aa8 24HAVE_X_WINDOWS Compile support for X Window system
3df7b338
GM
25 (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
26 be, and vice versa. At least, this is true for configure, and
27 msdos; not sure about nt.)
aa5fea59
SM
28USE_LUCID Use the Lucid toolkit for menus&scrollbars. Requires HAVE_X11.
29USE_MOTIF Use the Motif toolkit for menus&scrollbars. Requires HAVE_X11.
30USE_GTK Use the Gtk toolkit for menus&scrollbars. Requires HAVE_X11.
31
077e3aa8
EZ
32** Frame types **
33
34FRAME_TERMCAP_P A tty (character terminal) frame.
35FRAME_X_P A frame on X Window system.
36FRAME_MSDOS_P An MS-DOS frame (used only by the DOS port).
077e3aa8
EZ
37FRAME_W32_P A frame using native MS-Windows GUI.
38FRAME_WINDOW_P A GUI frame (like X, w32, etc.)
39
c3179b06
EZ
40** Support for accessing other processes on the system **
41
42HAVE_PROCFS The /proc filesystem is supported.
c3179b06 43
077e3aa8 44** Compile-time options **
c3179b06 45
077e3aa8
EZ
46REL_ALLOC Compile in the relocatable memory allocator ralloc.c.
47SYSTEM_MALLOC Use the system library's malloc.
bbbac910 48subprocesses System can use subprocesses (for M-x shell for example). Defined by default, only MSDOS undefines it.
14145fa3 49USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
077e3aa8 50
0f21c005
DN
51** System specific macros, decribed in detail in src/s/template.h
52BSTRING
53CLASH_DETECTION
54COFF
55FIRST_PTY_LETTER
56HAVE_PTYS
57HAVE_TERMIO
58HAVE_TERMIOS
59INTERRUPT_INPUT
0f21c005 60NARROWPROTO
0f21c005
DN
61SEPCHAR
62SIGTYPE
63SYSTEM_TYPE
64USE_MMAP_FOR_BUFFERS
65
66** Machine specific macros, decribed in detail in src/m/template.h
67CANNOT_DUMP
68EXPLICIT_SIGN_EXTEND
69LOAD_AVE_CVT
70LOAD_AVE_TYPE
0f21c005 71NO_REMAP
0f21c005
DN
72VIRT_ADDR_VARIES
73WORDS_BIG_ENDIAN
74
2b5b9582
EZ
75** Misc macros
76USER_FULL_NAME If defined, overrides the default pw->pw_gecos for getting at the full user name. Only MSDOS overrides the default.
77
4624371d 78** Replace, the definition is trivial: SWITCH_ENUM_CAST
d35e1cd7 79
a0ce9ab7
DN
80** Defines from src/m/*.h and src/s/*.h. Some of these might not be used in the code anymore, so they can be removed. The HAVE_* definitions are probably handled by autoconf, so it might be possible to just remove them from src/[sm]/*.h.
81
d35e1cd7 82
a0ce9ab7
DN
83AIX
84AMPERSAND_FULL_NAME
a0ce9ab7
DN
85BCOPY_DOWNWARD_SAFE
86BCOPY_UPWARD_SAFE
87BITS_PER_EMACS_INT
88BITS_PER_LONG
97560d35
GM
89BITS_PER_CHAR
90BITS_PER_SHORT
91BITS_PER_INT
a0ce9ab7 92BROKEN_DATAGRAM_SOCKETS
f3041af1 93BROKEN_FIONREAD
a0ce9ab7
DN
94BROKEN_GET_CURRENT_DIR_NAME
95BROKEN_NON_BLOCKING_CONNECT
96BROKEN_PTY_READ_AFTER_EAGAIN
97BROKEN_SA_RESTART
98BROKEN_SIGAIO
f3041af1 99BROKEN_SIGIO
a0ce9ab7
DN
100BROKEN_SIGPOLL
101BROKEN_SIGPTY
a0ce9ab7 102BSD4_2
f3041af1 103BSD4_3
d35e1cd7 104BSD_SYSTEM
d35e1cd7 105CLASH_DETECTION
f3041af1
DN
106DATA_SEG_BITS
107DATA_START
a0ce9ab7 108DBL_MIN_REPLACEMENT
f3041af1 109DECLARE_GETPWUID_WITH_UID_T
a0ce9ab7
DN
110DEFAULT_SOUND_DEVICE
111DEVICE_SEP
112DIRECTORY_SEP
113DONT_REOPEN_PTY
a0ce9ab7
DN
114DOUG_LEA_MALLOC
115DebPrint
116EMACSDEBUG
117EMACS_CONFIGURATION
118EMACS_CONFIG_OPTIONS
119EMACS_INT
120EMACS_UINT
a0ce9ab7 121FILE_SYSTEM_CASE
a0ce9ab7 122FLOAT_CHECK_DOMAIN
f3041af1 123FSCALE
a0ce9ab7
DN
124GAP_USE_BCOPY
125GC_LISP_OBJECT_ALIGNMENT
126GC_MARK_SECONDARY_STACK
f3041af1
DN
127GC_MARK_STACK
128GC_SETJMP_WORKS
a0ce9ab7
DN
129GMALLOC_INHIBIT_VALLOC
130GNU_LIBRARY_PENDING_OUTPUT_COUNT
131GNU_LINUX
f3041af1 132GNU_MALLOC
a0ce9ab7 133HAVE_AIX_SMT_EXP
a0ce9ab7
DN
134HAVE_BCMP
135HAVE_BCOPY
136HAVE_CBRT
f3041af1 137HAVE_CLOSEDIR
a0ce9ab7
DN
138HAVE_DUP2
139HAVE_EUIDACCESS
a0ce9ab7
DN
140HAVE_FMOD
141HAVE_FPATHCONF
142HAVE_FREXP
143HAVE_FSYNC
144HAVE_FTIME
145HAVE_GETCWD
146HAVE_GETDOMAINNAME
147HAVE_GETHOSTNAME
148HAVE_GETLOADAVG
149HAVE_GETPAGESIZE
150HAVE_GETPT
f3041af1 151HAVE_GETTIMEOFDAY
a0ce9ab7
DN
152HAVE_GETWD
153HAVE_H_ERRNO
154HAVE_INDEX
f3041af1 155HAVE_INET_SOCKETS
a0ce9ab7 156HAVE_INVERSE_HYPERBOLIC
a0ce9ab7 157HAVE_LIBKSTAT
a0ce9ab7
DN
158HAVE_LIMITS_H
159HAVE_LINUX_VERSION_H
160HAVE_LOGB
161HAVE_LONG_FILE_NAMES
162HAVE_LRAND48
163HAVE_MENUS
164HAVE_MKDIR
165HAVE_MKTIME
166HAVE_MOUSE
167HAVE_PERROR
168HAVE_PSTAT_GETDYNAMIC
a0ce9ab7
DN
169HAVE_PWD_H
170HAVE_RANDOM
171HAVE_RENAME
172HAVE_RES_INIT
173HAVE_RINDEX
174HAVE_RINT
175HAVE_RMDIR
f3041af1 176HAVE_SELECT
a0ce9ab7
DN
177HAVE_SETLOCALE
178HAVE_SETPGID
179HAVE_SETRLIMIT
180HAVE_SETSID
181HAVE_SHUTDOWN
d35e1cd7 182HAVE_SOCKETS
a0ce9ab7
DN
183HAVE_SOUND
184HAVE_STDLIB_H
185HAVE_STRERROR
186HAVE_STRFTIME
f2a77c3a 187HAVE_STRING_H
a0ce9ab7
DN
188HAVE_STRUCT_UTIMBUF
189HAVE_SYSINFO
f3041af1 190HAVE_SYSV_SIGPAUSE
a0ce9ab7
DN
191HAVE_SYS_SELECT_H
192HAVE_SYS_SYSTEMINFO_H
193HAVE_SYS_TIMEB_H
194HAVE_SYS_TIME_H
f3041af1 195HAVE_TCATTR
a0ce9ab7 196HAVE_TERMIOS_H
f3041af1 197HAVE_TEXT_START
a0ce9ab7
DN
198HAVE_TIMEVAL
199HAVE_TM_ZONE
200HAVE_TZSET
f3041af1 201HAVE_UNISTD_H
f3041af1 202HAVE_UTIMES
a0ce9ab7
DN
203HAVE_UTIME_H
204HAVE_VOLATILE
a0ce9ab7
DN
205HAVE_WINDOW_SYSTEM
206HAVE_WORKING_VFORK
207HAVE_XRMSETDATABASE
208HPUX
f3041af1 209INHIBIT_X11R6_XIM
a0ce9ab7 210INTERNAL_TERMINAL
a0ce9ab7
DN
211IS_ANY_SEP
212IS_DIRECTORY_SEP
d35e1cd7
DN
213KERNEL_FILE
214LDAV_SYMBOL
f3041af1 215LINKER
0176a259 216LINUX_VERSION_CODE
a0ce9ab7
DN
217LISP_FLOAT_TYPE
218LNOFLSH
a0ce9ab7 219LOCALTIME_CACHE
1495e2fc 220MAIL_USE_FLOCK
a0ce9ab7
DN
221MAIL_USE_LOCKF
222MAIL_USE_POP
223MAIL_USE_SYSTEM_LOCK
224MAXPATHLEN
c5e7567d 225MIN_PTY_KERNEL_VERSION -- only used on Mac
a0ce9ab7 226MODE_LINE_BINARY_TEXT
a0ce9ab7 227MUST_UNDEF__STDC__
f3041af1 228NLIST_STRUCT
f2a77c3a 229NO_ABORT
a0ce9ab7 230NO_EDITRES
a0ce9ab7 231NO_MATHERR
f3041af1 232NO_TERMIO
f3041af1
DN
233NSIG
234NSIG_MINIMUM
a0ce9ab7
DN
235NULL
236NULL_DEVICE
f3041af1 237ORDINARY_LINK
a0ce9ab7 238O_APPEND
a0ce9ab7
DN
239O_RDONLY
240O_RDWR
a0ce9ab7 241PAGESIZE
f3041af1 242PENDING_OUTPUT_COUNT
a0ce9ab7 243POSIX
f3041af1
DN
244PREFER_VSUSP
245PTY_ITERATION
d35e1cd7 246PTY_NAME_SPRINTF
f3041af1 247PTY_OPEN
d35e1cd7 248PTY_TTY_NAME_SPRINTF
f3041af1 249PURESIZE
f3041af1 250RUN_TIME_REMAP
a0ce9ab7 251SA_RESTART
605f35cd 252SECTION_ALIGNMENT -- was only used by s/lynxos.h, maybe all code depending on it can be removed.
f3041af1 253SEGMENT_MASK
a0ce9ab7 254SETPGRP_RELEASES_CTTY
f3041af1 255SETUP_SLAVE_PTY
a0ce9ab7
DN
256SIGALRM
257SIGCHLD
258SIGHUP
259SIGKILL
f3041af1 260SIGNALS_VIA_CHARACTERS
a0ce9ab7
DN
261SIGPIPE
262SIGQUIT
263SIGTRAP
f3041af1 264SIGTYPE
a0ce9ab7 265SOLARIS2
a0ce9ab7
DN
266STDC_HEADERS
267SYMS_SYSTEM
268SYSTEM_PURESIZE_EXTRA
bbbac910 269SYSTEM_MALLOC
f3041af1 270SYSV_SYSTEM_DIR
f2a77c3a
DN
271TAB3
272TABDLY
a0ce9ab7 273TERM
f3041af1 274TEXT_START
a0ce9ab7 275THIS_IS_CONFIGURE
a0ce9ab7
DN
276TIME_WITH_SYS_TIME
277TIOCSIGSEND
278TM_IN_SYS_TIME
f3041af1 279ULIMIT_BREAK_VALUE
f3041af1 280UNEXEC
a0ce9ab7
DN
281UNIX98_PTYS
282USE_CRT_DLL
a0ce9ab7 283USE_TOOLKIT_SCROLL_BARS
f3041af1
DN
284USG
285USG5
f3041af1 286USG5_4
a0ce9ab7
DN
287USG_SUBTTY_WORKS
288VALBITS
d35e1cd7 289WORDS_BIG_ENDIAN
a0ce9ab7 290WRETCODE
a0ce9ab7 291XINT
f2a77c3a 292XOS_NEEDS_TIME_H
a0ce9ab7
DN
293XPNTR
294XSET
295XUINT
a0ce9ab7
DN
296_AIX
297_ARCH_PPC64
298_CALLBACK_
299_FILE_OFFSET_BITS
a0ce9ab7
DN
300_LP64
301_MALLOC_INTERNAL
302_NAIVE_DOS_REGS
303_VARARGS_
304_WINSOCKAPI_
305_WINSOCK_H
306__ELF__
307__FreeBSD__
a0ce9ab7 308__GNUC__
bbbac910 309__GNU_LIBRARY__
0176a259 310__GNUC_MINOR__
a0ce9ab7
DN
311__NetBSD__
312__OpenBSD__
313__STDC__
314__arch64__
315__cplusplus
316__hpux
317__ia64__
318__linux__
319__mc68000__
320__mips__
f3041af1
DN
321_longjmp
322_setjmp
a0ce9ab7
DN
323_start
324abort
325access
f3041af1 326alloca
a0ce9ab7
DN
327bcmp
328bcopy
329brk
330bzero
331calloc
332chdir
333chmod
334chown
335close
336const
337creat
338ctime
a0ce9ab7
DN
339dup
340dup2
341edata
f3041af1 342emacs
f3041af1 343etext
a0ce9ab7
DN
344execlp
345execvp
a0ce9ab7 346fdopen
a0ce9ab7 347fileno
a0ce9ab7 348fopen
a0ce9ab7
DN
349free
350fsync
351ftruncate
352fwrite
353getdefdir
354getdisk
355getenv
356getpid
357getuid
a0ce9ab7
DN
358gmtime
359i386
f3041af1 360index
a0ce9ab7
DN
361init_process
362isatty
363kill
364link
365linux
366localtime
367logb
368lseek
f3041af1 369m68k
a0ce9ab7 370malloc
a0ce9ab7
DN
371mkdir
372mktemp
373open
374pclose
375pipe
376popen
a0ce9ab7
DN
377random
378read
379realloc
380rename
381rindex
382rmdir
383sbrk
384select
385sigmask
386signal
387sigsetmask
388sleep
389spawnve
390srandom
a0ce9ab7
DN
391strdup
392strerror
393stricmp
394strnicmp
395strupr
a0ce9ab7
DN
396sys_nerr
397system
398temacs
399tzname
400tzset
401umask
402unix
403unlink
404utimbuf
405utime
406vfork
407wait
408write
409xfree
d35e1cd7 410
aa5fea59 411# arch-tag: bc80061a-1168-4911-9766-46aaf2640250