Sync with Tramp 2.2.6-pre.
[emacs.git] / admin / CPP-DEFINES
blob94bb94357b9bdcfd6af74cd72231a1d86ceb0571
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 USE_LISP_UNION_TYPE Define it in lisp.h to make Lisp_Object be a union type instead of the default int.
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 ** Replace, the definition is trivial: SWITCH_ENUM_CAST
66 ** 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.
69 AIX
70 AMPERSAND_FULL_NAME
71 BROKEN_DATAGRAM_SOCKETS
72 BROKEN_FIONREAD
73 BROKEN_GET_CURRENT_DIR_NAME
74 BROKEN_NON_BLOCKING_CONNECT
75 BROKEN_PTY_READ_AFTER_EAGAIN
76 BROKEN_SA_RESTART
77 BROKEN_SIGAIO
78 BROKEN_SIGIO
79 BROKEN_SIGPOLL
80 BROKEN_SIGPTY
81 BSD4_2
82 BSD4_3
83 BSD_SYSTEM
84 CLASH_DETECTION
85 DATA_SEG_BITS
86 DATA_START
87 DBL_MIN_REPLACEMENT
88 DEFAULT_SOUND_DEVICE
89 DEVICE_SEP
90 DIRECTORY_SEP
91 DONT_REOPEN_PTY
92 DOUG_LEA_MALLOC
93 DebPrint
94 EMACSDEBUG
95 EMACS_CONFIGURATION
96 EMACS_CONFIG_OPTIONS
97 EMACS_INT
98 EMACS_UINT
99 FILE_SYSTEM_CASE
100 FLOAT_CHECK_DOMAIN
101 GC_LISP_OBJECT_ALIGNMENT
102 GC_MARK_SECONDARY_STACK
103 GC_MARK_STACK
104 GC_SETJMP_WORKS
105 GMALLOC_INHIBIT_VALLOC
106 GNU_LIBRARY_PENDING_OUTPUT_COUNT
107 GNU_LINUX
108 GNU_MALLOC
109 HAVE_AIX_SMT_EXP
110 HAVE_CBRT
111 HAVE_CLOSEDIR
112 HAVE_DUP2
113 HAVE_EUIDACCESS
114 HAVE_FMOD
115 HAVE_FPATHCONF
116 HAVE_FREXP
117 HAVE_FSYNC
118 HAVE_GETCWD
119 HAVE_GETHOSTNAME
120 HAVE_GETLOADAVG
121 HAVE_GETPAGESIZE
122 HAVE_GETPT
123 HAVE_GETTIMEOFDAY
124 HAVE_GETWD
125 HAVE_H_ERRNO
126 HAVE_INET_SOCKETS
127 HAVE_INVERSE_HYPERBOLIC
128 HAVE_LIBKSTAT
129 HAVE_LIMITS_H
130 HAVE_LINUX_VERSION_H
131 HAVE_LOGB
132 HAVE_LONG_FILE_NAMES
133 HAVE_LRAND48
134 HAVE_MENUS
135 HAVE_MKDIR
136 HAVE_MKTIME
137 HAVE_MOUSE
138 HAVE_PERROR
139 HAVE_PSTAT_GETDYNAMIC
140 HAVE_PWD_H
141 HAVE_RANDOM
142 HAVE_RENAME
143 HAVE_RES_INIT
144 HAVE_RINT
145 HAVE_RMDIR
146 HAVE_SELECT
147 HAVE_SETLOCALE
148 HAVE_SETPGID
149 HAVE_SETRLIMIT
150 HAVE_SETSID
151 HAVE_SHUTDOWN
152 HAVE_SOCKETS
153 HAVE_SOUND
154 HAVE_STDLIB_H
155 HAVE_STRERROR
156 HAVE_STRFTIME
157 HAVE_STRING_H
158 HAVE_STRUCT_UTIMBUF
159 HAVE_SYSV_SIGPAUSE
160 HAVE_SYS_SELECT_H
161 HAVE_SYS_SYSTEMINFO_H
162 HAVE_SYS_TIMEB_H
163 HAVE_SYS_TIME_H
164 HAVE_TCATTR
165 HAVE_TIMEVAL
166 HAVE_TM_ZONE
167 HAVE_TZSET
168 HAVE_UNISTD_H
169 HAVE_UTIMES
170 HAVE_UTIME_H
171 HAVE_WINDOW_SYSTEM
172 HAVE_WORKING_VFORK
173 HAVE_XRMSETDATABASE
174 HPUX
175 INTERNAL_TERMINAL
176 IS_ANY_SEP
177 IS_DIRECTORY_SEP
178 LINKER
179 LINUX_VERSION_CODE
180 LISP_FLOAT_TYPE
181 LNOFLSH
182 LOCALTIME_CACHE
183 MAIL_USE_FLOCK
184 MAIL_USE_LOCKF
185 MAIL_USE_POP
186 MAIL_USE_SYSTEM_LOCK
187 MAXPATHLEN
188 MIN_PTY_KERNEL_VERSION -- only used on Mac
189 MODE_LINE_BINARY_TEXT
190 MUST_UNDEF__STDC__
191 NLIST_STRUCT
192 NO_ABORT
193 NO_EDITRES
194 NO_MATHERR
195 NO_TERMIO
196 NSIG
197 NSIG_MINIMUM
198 NULL_DEVICE
199 ORDINARY_LINK
200 O_APPEND
201 O_RDONLY
202 O_RDWR
203 PAGESIZE
204 PENDING_OUTPUT_COUNT
205 POSIX
206 PREFER_VSUSP
207 PTY_ITERATION
208 PTY_NAME_SPRINTF
209 PTY_OPEN
210 PTY_TTY_NAME_SPRINTF
211 PURESIZE
212 RUN_TIME_REMAP
213 SA_RESTART
214 SEGMENT_MASK
215 SETPGRP_RELEASES_CTTY
216 SETUP_SLAVE_PTY
217 SIGALRM
218 SIGCHLD
219 SIGHUP
220 SIGKILL
221 SIGNALS_VIA_CHARACTERS
222 SIGPIPE
223 SIGQUIT
224 SIGTRAP
225 SOLARIS2
226 STDC_HEADERS
227 SYSTEM_PURESIZE_EXTRA
228 SYSTEM_MALLOC
229 SYSV_SYSTEM_DIR
230 TAB3
231 TABDLY
232 TERM
233 TIME_WITH_SYS_TIME
234 TIOCSIGSEND
235 TM_IN_SYS_TIME
236 ULIMIT_BREAK_VALUE
237 UNIX98_PTYS
238 USE_CRT_DLL
239 USE_TOOLKIT_SCROLL_BARS
241 USG5
242 USG5_4
243 USG_SUBTTY_WORKS
244 VALBITS
245 WRETCODE
246 XOS_NEEDS_TIME_H
247 _AIX
248 _ARCH_PPC64
249 _FILE_OFFSET_BITS
250 _LP64
251 _MALLOC_INTERNAL
252 _NAIVE_DOS_REGS
253 _VARARGS_
254 _WINSOCKAPI_
255 _WINSOCK_H
256 _longjmp
257 _setjmp
258 _start
259 abort
260 access
261 alloca
263 calloc
264 chdir
265 chmod
266 chown
267 close
268 creat
269 ctime
271 dup2
272 edata
273 emacs
274 etext
275 execlp
276 execvp
277 fdopen
278 fileno
279 fopen
280 free
281 fsync
282 ftruncate
283 fwrite
284 getdefdir
285 getdisk
286 getenv
287 getpid
288 getuid
289 gmtime
290 index
291 isatty
292 kill
293 link
294 linux
295 localtime
296 logb
297 lseek
298 malloc
299 mkdir
300 mktemp
301 open
302 pclose
303 pipe
304 popen
305 random
306 read
307 realloc
308 rename
309 rindex
310 rmdir
311 sbrk
312 select
313 sigmask
314 signal
315 sigsetmask
316 sleep
317 spawnve
318 srandom
319 strdup
320 strerror
321 stricmp
322 strnicmp
323 strupr
324 sys_nerr
325 system
326 temacs
327 tzname
328 tzset
329 umask
330 unix
331 unlink
332 utimbuf
333 utime
334 vfork
335 wait
336 write
337 xfree