Platform defines
From Free Pascal wiki
Revision as of 16:41, 11 February 2018 by Kai Burghardt (talk | contribs) (→Operating system defines: tree instead of table)
│
English (en) │
français (fr) │
Useful tips before using platform defines
- http://www.stack.nl/~marcov/buildfaq.pdf - general building guidelines
- http://www.stack.nl/~marcov/porting.pdf - general porting guidelines
- if you need to cast a pointer to an integer for arithmetic or you want to provide a spare field (like tag in Tcomponent) that may be used to store a pointer use ptrint as signed type, or better ptruint as unsigned type.
Architecture defines
Note: This is a copy of the official FPC documentation which is the authorative version for the stable FPC version.
define(s) | meaning |
---|---|
General | |
ENDIAN_BIG | big endian |
ENDIAN_LITTLE | little endian |
CPU16 | 16 bit CPU |
CPU32 | 32 bit CPU |
CPU64 | 64 bit CPU |
Specific | |
CPU86 | Intel 8086 and compatible (original PC) |
CPU87 | Intel 8086 and compatible (original PC) |
CPU386, CPUi386 | 386 and compatible (32 bit PC) |
CPUAMD64, CPUX86_64 | AMD64 or Intel 64-bit processor |
CPUIA64 | Intel itanium 64-bit processor |
CPU68 | Motorola 680x0 or compatible CPU |
CPU68K, CPUM68K | Motorola 680x0 or compatible CPU |
CPUM68020 | Motorola 68020 or compatible CPU |
CPUPOWERPC | PowerPC processor (32 or 64 bit) |
CPUPOWERPC32 | PowerPC processor (32 bit) |
CPUPOWERPC64 | PowerPC processor (64 bit) |
CPUSPARC, CPUSPARC32 | SPARC v7 or compatible |
CPUARM | ARM 32 bit processor |
CPUAVR | AVR 16-bit processor |
FPU | |
FPUSOFT | Software emulation of FPU (all types) |
FPUSSE64 | SSE64 FPU on Intel I386 and higher, AMD64. |
FPUSSE | SSE instructions on Intel I386 and higher. |
FPUSSE2 | SSE 2 instructions on Intel I386 and higher. |
FPUSSE3 | SSE 3 instructions on Intel I386 and higher, AMD64. |
FPULIBGCC | GCC library FPU emulation on ARM and M68K. |
FPU68881 | 68881 on M68K. |
FPUFPA | FPA on ARM. |
FPUFPA10 | FPA 10 on ARM. |
FPUFPA11 | FPA 11 on ARM. |
FPUVFP | VFP on ARM. |
FPUX87 | X87 FPU on Intel I386 and higher. |
FPUITANIUM | On Intel Itanium. |
FPUSTANDARD | On PowerPC (32/64 bit). |
FPUHARD | On Sparc. |
Operating system defines
In the following tree, you have to follow leaves to their respective roots, in order to determine all defines:
AMIGA
: Classic AmigaATARI
: Atari TOSGO32V2
,DPMI
: MS DOS (using go32v2 extender)MACOS
: Classic Macintosh (System 7 etc.)MSDOS
on MS-DOS 16 bit real mode targets (defined since FPC version 2.7.1)OS2
on OS2 targetsEMX
on emx targets
PALMOS
: on PalmOS and Garnet OS targetsUNIX
WINDOWS
for all Windows targetsMSWINDOWS
WIN32
: 32-bit WindowsWIN64
: 64-bit Windows
WINCE
,UNDER_CE
,UNICODE
: Windows CE, Windows mobile
See also
- http://delphi.wikia.com/wiki/FreePascal_detection_and_versioning
- Free Pascal Documentation: Appendix G: Compiler defines during compilation
Directives, definitions and conditionals definitions |
---|
global compiler directives • local compiler directives Conditional Compiler Options • Conditional compilation • Macros and Conditionals • Platform defines |