Platform defines

From Lazarus wiki
Jump to navigationJump to search

English (en) français (fr)

Useful tips before using platform defines

Architecture defines

Light bulb  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 8/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 Amiga
  • ATARI: Atari TOS
  • GO32V2, 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 targets
    • EMX on emx targets
  • PALMOS: on PalmOS and Garnet OS targets
  • UNIX
    • BEOS on BeOS targets
    • BSD
      • DARWIN on Mac OS X and iOS targets
      • FREEBSD on FreeBSD targets
      • NETBSD on NetBSD targets
    • LINUX on Linux targets
    • SOLARIS on Solaris targets
      • SUNOS on SunOS targets
    • QNX on QNX RTP targets
  • WINDOWS for all Windows targets
    • MSWINDOWS
      • WIN32: 32-bit Windows
      • WIN64: 64-bit Windows
    • WINCE, UNDER_CE, UNICODE<ref name="winceUnicode" group="note"/>: Windows CE, Windows mobile

Notes

<references group="note"> <ref name="winceUnicode">UNICODE was defined till 3.0.0, see [[User Changes 3.0#Define UNICODE was changed to FPC_OS_UNICODE|User changes 3.0 § “define UNICODE was changed to FPC_OS_UNICODE”]]</ref> </references>

See also

Directives, definitions and conditionals definitions
global compiler directives • local compiler directives

Conditional Compiler Options • Conditional compilation • Macros and Conditionals • Platform defines
$IF