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