The RTL source tree
The RTL source tree is divided in many subdirectories, but is very structured and easy to understand. It mainly consists of three parts:
A OS-dependent directory. This contains the files that are different for each operating system. When compiling the RTL, you should do it here. The following directories exist:
amigaFor the .atariFor the .beosFor . It has one subdirectory for each of the supported processors.bsdCommon files for the various BSD platforms.darwinFor the unix-compatibility layer on macOS.embeddedA template for embedded targets.emxOS/2 using the EMX extender.freebsdFor the FreeBSDplatform.gbaGame Boy Advanced.go32v2For DOS, using the GO32v2 extender.linuxFor Linuxplatforms. It has one subdirectory for each of the supported processors.macosFor the macOSplatform.morphosFor the MorphOS platform.ndsFor the Nintendo DS platform.netbsdFor platforms. It has one subdirectory for each of the supported processors.netwareFor the Novell netware platform.netwlibcFor the Novell netware platform using the C library.openbsdFor the OpenBSD platform.os2for OS/2.palmosFor the Dragonball processor based platform.posixFor posix interfaces (used for easier porting).solarisFor the platform. It has one subdirectory for each of the supported processors.symbianFor the symbian mobile phone OS.qnxFor the .unixFor unix common interfaces (used for easier porting).win32For Windows 32-bit platforms.win64For Windows 64-bit platforms.winceFor the Windows CE embedded platform (arm CPU).posixFor posix interfaces (used for easier porting).
A processor dependent directory. This contains files that are system independent, but processor dependent. It contains mostly optimized routines for a specific processor. The following directories exist:
armFor the ARM series of processors.i386For the Intel 80x86 series of processors.m68kFor the Motorola 680x0 series of processors.powerpcFor the PowerPC processor.powerpc64For the PowerPC 64-bit processor.sparcFor the SUN SPARC processor.x86_64For Intel compatible 64-bit processors such as the AMD64.
An OS-independent and Processor independent directory:
inc. This contains complete units, and include files containing interface parts of units as well as generic versions of processor specific routines.The Object Pascal extensions (mainly Delphicompatibility units) are in the
objpasdirectory. Thesysutilsandclassesunits are in separate subdirectories of theobjpasdirectory.
An experiment, built from development snapshots. Not the official Free Pascal or Lazarus documentation.
