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