fpc/rtl/embedded/system.cfg

313 lines
4.9 KiB
INI

# first, disable all
-Sf-
# enable required ones
# they don't add much additional code or data
-SfTEXTIO
-SfFILEIO
-SfHEAP
# uncomment to enable the stuff you want to use
# include full heap management into the rtl
# -SfHEAP
# include support for init final code of units into the rtl
# -SfINITFINAL
# -SfCLASSES
# -SfEXCEPTIONS
# -SfEXITCODE
# -SfANSISTRINGS
# -SfWIDESTRINGS
# -SfTEXTIO
# -SfCONSOLEIO
# -SfFILEIO
# -SfRANDOM
# -SfVARIANTS
# -SfOBJECTS
# -SfDYNARRAYS
# -SfTHREADING
# -SfCOMMANDARGS
# -SfPROCESSES
# -SfSTACKCHECK
# -SfDYNLIBS
# include exit code support
-SfEXITCODE
#ifdef CPUAVR
-SfRANDOM
#endif CPUAVR
# i386 is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUI386
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUI386
# x86_64 is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUX86_64
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUX86_64
# arm is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUARM
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUARM
# aarch64 is powerful enough to handle most object pascal constructs
#ifdef CPUAARCH64
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUAARCH64
# mipsel is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUMIPSEL
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUMIPSEL
# mips is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUMIPS
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUMIPS
# powerpc is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUPOWERPC
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUPOWERPC
# powerpc64 is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUPOWERPC64
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUPOWERPC64
# does not require extra memory, neither code nor data
# in programs not using e. g. writeln based I/O which is the common case for AVR
#ifdef CPUAVR
-SfOBJECTS
-SfEXCEPTIONS
-SfCLASSES
-SfRTTI
# AVR6 has normally more memory, so enable more functions
#ifdef CPUAVR6
-SfANSISTRINGS
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif
#endif
# m68k is powerful enough to handle most object pascal constructs
#ifdef CPUM68K
-SfSOFTFPU
-SfOBJECTS
-SfEXCEPTIONS
-SfCLASSES
-SfRTTI
-SfANSISTRINGS
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif
# Minimal set for i8086, copied from AVR above
# does not require extra memory, neither code nor data
# in programs not using e. g. writeln based I/OR
#ifdef CPUI8086
-SfOBJECTS
-SfEXCEPTIONS
-SfCLASSES
-SfRTTI
-Cs2048
-CX
-XX
#endif
#ifdef CPURISCV32
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPURISCV32
#ifdef CPURISCV64
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPURISCV64
# Xtensa is powerful enough to handle most object pascal constructs
# it is only a matter of size
#ifdef CPUXTENSA
-SfSOFTFPU
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUXTENSA
# does not require extra memory, neither code nor data
# in programs not using e. g. writeln based I/O which is the common case
#ifdef CPUZ80
-SfOBJECTS
-SfEXCEPTIONS
-SfCLASSES
-SfRTTI
-SfSOFTFPU
#endif
# wasm32 is powerful enough to handle most object pascal constructs
# it is only a matter of size, it does not need softfpu
#ifdef CPUWASM32
-SfCLASSES
-SfEXCEPTIONS
-SfANSISTRINGS
-SfRTTI
-SfWIDESTRINGS
-SfDYNARRAYS
-SfTHREADING
-SfVARIANTS
-SfOBJECTS
-SfCOMMANDARGS
-SfRANDOM
-SfRESOURCES
#endif CPUWASM32