Misc updates for CPP-DEFINES
[emacs.git] / admin / CPP-DEFINES
blob47453f504678e234229898fc8a9290f523494fc3
1 Here are some of the cpp macros used, together with some short explanation
2 of their use.  Feel free to add more macros and more categories.
3 Most of these are from config.in, so it's probably better to put the
4 explanations in that file.  Ideally, everything would be defined and
5 documented in config.in, and this file would not be necessary.
8 ** Distinguishing OSes **
10 AIX
11 _AIX
12 BSD4_2
13 BSD_SYSTEM
14 CYGWIN          Compiling the Cygwin port.
15 __CYGWIN__      Ditto
16 GNU_LINUX
17 HPUX
18 IRIX6_5
19 MSDOS           Compiling the MS-DOS port.
20 __MSDOS__       Ditto.
21 __DJGPP_MINOR__ Minor version number of the DJGPP library; used only in msdos.c and dosfns.c.
22 DOS_NT          Compiling for either the MS-DOS or native MS-Windows port.
23 WINDOWSNT       Compiling the native MS-Windows (W32) port.
24 __MINGW32__     Compiling the W32 port with the MinGW port of GCC.
25 _MSC_VER        Compiling the W32 port with the Microsoft C compiler.
26 DARWIN_OS       Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
27 SOLARIS2
28 USG
29 USG5
30 USG5_4
32 ** Distinguishing GUIs **
34 HAVE_NTGUI      Use the native W32 GUI for windows, frames, menus&scrollbars.
35 HAVE_NS         Use the NeXT/OpenStep/Cocoa UI under Mac OS X or GNUstep.
36 NS_IMPL_GNUSTEP Compile support for GNUstep implementation of NS GUI API.
37 NS_IMPL_COCOA   Compile support for Cocoa (Apple) implementation of NS GUI API.
38 HAVE_X11        Compile support for the X11 GUI.
39 HAVE_X_WINDOWS  Compile support for X Window system
40   (It looks like, nowadays, if HAVE_X11 is set, HAVE_X_WINDOWS must
41    be, and vice versa.  At least, this is true for configure, and
42    msdos; not sure about nt.)
43 USE_LUCID       Use the Lucid toolkit for menus&scrollbars.  Requires HAVE_X11.
44 USE_MOTIF       Use the Motif toolkit for menus&scrollbars.  Requires HAVE_X11.
45 USE_GTK         Use the Gtk   toolkit for menus&scrollbars.  Requires HAVE_X11.
47 ** Frame types **
49 FRAME_TERMCAP_P A tty (character terminal) frame.
50 FRAME_X_P       A frame on X Window system.
51 FRAME_MSDOS_P   An MS-DOS frame (used only by the DOS port).
52 FRAME_W32_P     A frame using native MS-Windows GUI.
53 FRAME_WINDOW_P  A GUI frame (like X, w32, etc.)
55 ** Support for accessing other processes on the system **
57 HAVE_PROCFS     The /proc filesystem is supported.
59 ** Compile-time options **
61 REL_ALLOC       Compile in the relocatable memory allocator ralloc.c.
62 SYSTEM_MALLOC   Use the system library's malloc.
63 subprocesses    System can use subprocesses (for M-x shell for example).
64                 Defined by default, only MSDOS undefines it.
65 DEBUG_LISP_OBJECT_TYPE Define it in lisp.h enable compile time checks
66                        on Lisp_Object use.
68 ** System specific macros
69 FIRST_PTY_LETTER
70 HAVE_PTYS
71 INTERRUPT_INPUT
72 NARROWPROTO
73 SEPCHAR
74 SYSTEM_TYPE
76 ** Misc macros
77 USER_FULL_NAME   If defined, overrides the default pw->pw_gecos for
78 getting at the full user name.  Only MSDOS overrides the default.
80 ** Miscellaneous defines.  Some of these might not be used in the code
81 anymore, so they can be removed.
83 AMPERSAND_FULL_NAME
84 BROKEN_DATAGRAM_SOCKETS
85 BROKEN_FIONREAD
86 BROKEN_GET_CURRENT_DIR_NAME
87 BROKEN_NON_BLOCKING_CONNECT
88 BROKEN_PTY_READ_AFTER_EAGAIN
89 BROKEN_SA_RESTART
90 BROKEN_SIGAIO
91 BROKEN_SIGIO
92 BROKEN_SIGPOLL
93 BROKEN_SIGPTY
94 CLASH_DETECTION
95 DATA_SEG_BITS
96 DATA_START
97 DBL_MIN_REPLACEMENT
98 DEFAULT_SOUND_DEVICE
99 DEVICE_SEP
100 DIRECTORY_SEP
101 DONT_REOPEN_PTY
102 DOUG_LEA_MALLOC
103 DebPrint
104 EMACSDEBUG
105 EMACS_CONFIGURATION
106 EMACS_CONFIG_OPTIONS
107 EMACS_INT
108 EMACS_UINT
109 FLOAT_CHECK_DOMAIN
110 GC_LISP_OBJECT_ALIGNMENT
111 GC_MARK_SECONDARY_STACK
112 GC_MARK_STACK
113 GC_SETJMP_WORKS
114 GMALLOC_INHIBIT_VALLOC
115 GNU_LIBRARY_PENDING_OUTPUT_COUNT
116 GNU_MALLOC
117 HAVE_AIX_SMT_EXP
118 HAVE_CBRT
119 HAVE_CLOSEDIR
120 HAVE_DUP2
121 HAVE_EUIDACCESS
122 HAVE_FMOD
123 HAVE_FPATHCONF
124 HAVE_FREXP
125 HAVE_FSYNC
126 HAVE_GETCWD
127 HAVE_GETHOSTNAME
128 HAVE_GETLOADAVG
129 HAVE_GETPAGESIZE
130 HAVE_GETPT
131 HAVE_GETTIMEOFDAY
132 HAVE_GETWD
133 HAVE_H_ERRNO
134 HAVE_INET_SOCKETS
135 HAVE_INVERSE_HYPERBOLIC
136 HAVE_LIBKSTAT
137 HAVE_LIMITS_H
138 HAVE_LINUX_VERSION_H
139 HAVE_LOGB
140 HAVE_LONG_FILE_NAMES
141 HAVE_LRAND48
142 HAVE_MENUS
143 HAVE_MKTIME
144 HAVE_MOUSE
145 HAVE_PSTAT_GETDYNAMIC
146 HAVE_PWD_H
147 HAVE_RANDOM
148 HAVE_RES_INIT
149 HAVE_RINT
150 HAVE_SELECT
151 HAVE_SETLOCALE
152 HAVE_SETPGID
153 HAVE_SETRLIMIT
154 HAVE_SETSID
155 HAVE_SHUTDOWN
156 HAVE_SOCKETS
157 HAVE_SOUND
158 HAVE_STDLIB_H
159 HAVE_STRFTIME
160 HAVE_STRING_H
161 HAVE_STRUCT_UTIMBUF
162 HAVE_SYS_SELECT_H
163 HAVE_SYS_SYSTEMINFO_H
164 HAVE_SYS_TIMEB_H
165 HAVE_SYS_TIME_H
166 HAVE_TCATTR
167 HAVE_TM_ZONE
168 HAVE_TZSET
169 HAVE_UNISTD_H
170 HAVE_UTIME_H
171 HAVE_WINDOW_SYSTEM
172 HAVE_WORKING_VFORK
173 HAVE_XRMSETDATABASE
174 INTERNAL_TERMINAL
175 IS_ANY_SEP
176 IS_DIRECTORY_SEP
177 LINUX_VERSION_CODE
178 LOCALTIME_CACHE
179 MAIL_USE_FLOCK
180 MAIL_USE_LOCKF
181 MAIL_USE_POP
182 MAIL_USE_SYSTEM_LOCK
183 MAXPATHLEN
184 MODE_LINE_BINARY_TEXT
185 MUST_UNDEF__STDC__
186 NLIST_STRUCT
187 NO_ABORT
188 NO_EDITRES
189 NO_MATHERR
190 NO_TERMIO
191 NSIG
192 NSIG_MINIMUM
193 NULL_DEVICE
194 ORDINARY_LINK
195 O_APPEND
196 O_RDONLY
197 O_RDWR
198 PAGESIZE
199 PENDING_OUTPUT_COUNT
200 PREFER_VSUSP
201 PTY_ITERATION
202 PTY_NAME_SPRINTF
203 PTY_OPEN
204 PTY_TTY_NAME_SPRINTF
205 PURESIZE
206 RUN_TIME_REMAP
207 SA_RESTART
208 SEGMENT_MASK
209 SETPGRP_RELEASES_CTTY
210 SETUP_SLAVE_PTY
211 SIGALRM
212 SIGCHLD
213 SIGHUP
214 SIGKILL
215 SIGNALS_VIA_CHARACTERS
216 SIGPIPE
217 SIGQUIT
218 SIGTRAP
219 STDC_HEADERS
220 SYSTEM_PURESIZE_EXTRA
221 SYSTEM_MALLOC
222 SYSV_SYSTEM_DIR
223 TAB3
224 TABDLY
225 TERM
226 TIME_WITH_SYS_TIME
227 TIOCSIGSEND
228 TM_IN_SYS_TIME
229 ULIMIT_BREAK_VALUE
230 UNIX98_PTYS
231 USE_CRT_DLL
232 USE_TOOLKIT_SCROLL_BARS
233 USG_SUBTTY_WORKS
234 VALBITS
235 XOS_NEEDS_TIME_H
236 _FILE_OFFSET_BITS
237 _LP64
238 _MALLOC_INTERNAL
239 _NAIVE_DOS_REGS
240 _VARARGS_
241 _WINSOCKAPI_
242 _WINSOCK_H
243 _longjmp
244 _setjmp
245 _start
246 abort
247 access
248 alloca
250 calloc
251 chdir
252 chmod
253 chown
254 close
255 creat
256 ctime
258 dup2
259 edata
260 emacs
261 etext
262 execlp
263 execvp
264 fdopen
265 fileno
266 fopen
267 free
268 fsync
269 ftruncate
270 fwrite
271 getdefdir
272 getdisk
273 getenv
274 getpid
275 getuid
276 gmtime
277 index
278 isatty
279 kill
280 link
281 linux
282 localtime
283 logb
284 lseek
285 malloc
286 mkdir
287 mktemp
288 open
289 pclose
290 pipe
291 popen
292 random
293 read
294 realloc
295 rename
296 rindex
297 rmdir
298 sbrk
299 select
300 sigmask
301 signal
302 sigsetmask
303 sleep
304 spawnve
305 srandom
306 strdup
307 stricmp
308 strnicmp
309 strupr
310 sys_nerr
311 system
312 temacs
313 tzname
314 tzset
315 umask
316 unix
317 unlink
318 utimbuf
319 utime
320 vfork
321 wait
322 write
323 xfree