CPP-DEFINES 9.4 KB

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