mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-02 02:26:14 +02:00
![]() RTL units. Comes with a FPCRTL_FILESYSTEM_UTF8 define that can be activated for targets whose single byte filesystem interface enforces UTF-8; included in inc/systemh.inc and unix/cwstring.pp until now + DefaultFileSystemCodePage variable that holds the code page used for communicating with the OS single byte file system APIs, and for the strings returned by those same APIs. Initialized with o the result of GetACP in the system unit of Windows platforms, except for WinCE which uses UTF-8 since its file system OS API calls already use the UTF-16 versions o CP_UTF8 on Unix platforms with FPCRTL_FILESYSTEM_UTF8 defined, and with DefaultSystemCodePage on other Unix platforms o DefaultSystemCodePage on Java/Android JVM targets + DefaultRTLFileSystemCodePage variable that holds the code page used to encode strings returned by RTL routines that return filenames obtained from OS API calls. By default the same as DefaultFileSystemCodePage on all platforms. Separate from DefaultFileSystemCodePage for clarity on platforms that may use either utf-16 or single byte OS API calls to send/receive file names (such as most Windows platforms) + new scpFileSystemSingleByte enum that can be passed to GetStandardCodePage() to get the default code page for OS single byte file system APIs, with implementations for Unix and Windows + SetMultiByteFileSystemCodePage() procedure to override the value of DefaultFileSystemCodePage In principle, in the long run unchanged programs only using generic ansistrings and unicodestrings should (mostly) behave the same as in FPC 2.6.0 as far as RTL-level file system APIs are concerned if they set DefaultFileSystemCodePage and DefaultRTLFileSystemCodePage to DefaultSystemCodePage at the start of their execution git-svn-id: branches/cpstrrtl@22466 - |
||
---|---|---|
.. | ||
aix | ||
amiga | ||
android/jvm | ||
arm | ||
atari | ||
avr | ||
beos | ||
bsd | ||
darwin | ||
embedded | ||
emx | ||
freebsd | ||
gba | ||
go32v2 | ||
haiku | ||
i386 | ||
inc | ||
java | ||
jvm | ||
linux | ||
m68k | ||
macos | ||
mips | ||
mipsel | ||
morphos | ||
nativent | ||
nds | ||
netbsd | ||
netware | ||
netwlibc | ||
objpas | ||
openbsd | ||
os2 | ||
palmos | ||
powerpc | ||
powerpc64 | ||
qnx | ||
solaris | ||
sparc | ||
symbian | ||
ucmaps | ||
unix | ||
watcom | ||
wii | ||
win | ||
win32 | ||
win64 | ||
wince | ||
x86_64 | ||
COPYING.FPC | ||
COPYING.txt | ||
fpmake.inc | ||
fpmake.pp | ||
Makefile | ||
Makefile.fpc | ||
README.txt |
This is the Run-Time Library (RTL) tree for Free Pascal. To recompile the RTL, edit the main makefile. The makefiles NEED a GNU make compatible make, they need unix-like 'rm' and 'mv' commands, as well as some others. You can find these in the gnuutils package on the ftp site. The main makefile is located ABOVE the RTL tree. It uses the FPC makefile.fpc to guess reasonable defaults for everything it needs. (these files can be found in base.zip on the FTP site) The only variable that you may want to set are FPC - What compiler to use. Use an absolute path. (default is ppc386) INSTALL_UNITDIR - Where to install the RTL units OPT - any special options you want to set for the compiler. In principle, you can also descend into the subdirectory of your OS, and type 'make' there, that should also compile everything. The tree contains subdirectories for all the supported operating systems, as well as all processor architectures. The processor directories contain low-level routines which are required for the system unit (if they are not available in high-level language form), as well as optimized versions of the pascal generic routines (the generic routine source code is localed in the inc subdirectory). The following directories are not supported officially and may not work correctly with FreePascal v1.0: go32v1 - The DJGPP go32v1 DOS extender (no longer supported) palmos - The PalmOS directory for the Dragonball (incomplete) Enjoy.