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