fpc/rtl
Jonas Maebe 6165536b5e + added {$modeswitch objectivec1}/-Mobjectivec1 mode switch to enable
the use of Objective-C 1.0 constructs. Because it is a mode switch, it
    can be used cumulatively with every syntax mode. Note that a {$mode xxx}
    statement resets all mode switches as well, so you cannot use the
    -Mobjectivec1 variant if you have such a statement in a unit. This
    modeswitch is currently only enabled for Darwin/PowerPC and Darwin/i386,
    as the backend support is not yet implemented for other platforms.
  + implemented selector() statement that can be used to create an Objective-C
    selector for the message with the specified *constant* name (in the future,
    it will also work for Objective-C method identifiers)
  + added SEL type to the system unit (the selector() statement returns it)
  + added all Objective-C segments to the assembler writers
  + (currently mostly dummy) objc1 unit that is automatically included if the
    {$modeswitch objectivec1} statement is used
  + some tests for the selector() statement

git-svn-id: trunk@12870 -
2009-03-08 18:40:32 +00:00
..
amiga - removed all "islibrary:=false;" assignments from system unit 2008-12-17 17:48:04 +00:00
arm * return 0 for length(pchar(0)), like Kylix does (using corrected and 2009-01-01 22:02:17 +00:00
atari * unicodestringmanager patch from r11743 extended to OS/2 and other platforms using system.pas instead of system.pp 2008-12-19 12:47:17 +00:00
avr * some avr fixes 2008-07-13 18:16:24 +00:00
beos * patch by Olivier Coursiere to fix beos building 2009-02-14 18:02:01 +00:00
bsd - removed all "islibrary:=false;" assignments from system unit 2008-12-17 17:48:04 +00:00
darwin + added {$modeswitch objectivec1}/-Mobjectivec1 mode switch to enable 2009-03-08 18:40:32 +00:00
embedded + list of possible feature switches 2009-02-07 21:48:43 +00:00
emx * unicodestringmanager patch from r11743 extended to OS/2 and other platforms using system.pas instead of system.pp 2008-12-19 12:46:58 +00:00
freebsd + pthread_cond_broadcast() definition 2009-03-04 20:10:05 +00:00
gba * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
go32v2 * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
haiku + pthread_cond_broadcast() definition 2009-03-04 20:10:05 +00:00
i386 * return 0 for length(pchar(0)), like Kylix does (using corrected and 2009-01-01 22:02:17 +00:00
inc + added {$modeswitch objectivec1}/-Mobjectivec1 mode switch to enable 2009-03-08 18:40:32 +00:00
linux * use different haltproc for arm-linux-eabi, this should be cleaned up by using also pascal units for the startup code for arm-linux 2009-02-27 15:20:20 +00:00
m68k
macos * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
morphos * fixed typo 2009-02-28 12:14:59 +00:00
nds * Changes to compiler and rtl to make it compatible with devkitARM r24 2009-01-18 16:05:44 +00:00
netbsd * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
netware * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
netwlibc * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
objpas * changed the output parameters of a bunch of *tofloat() and 2009-03-07 15:17:58 +00:00
openbsd * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
os2 * unicodestringmanager patch from r11743 extended to OS/2 and other platforms using system.pas instead of system.pp 2008-12-19 12:46:58 +00:00
palmos * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
powerpc + support for the different rounding modes in the generic rounding 2008-06-27 17:20:56 +00:00
powerpc64 + support for the different rounding modes in the generic rounding 2008-06-27 17:20:56 +00:00
qnx * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
solaris + pthread_cond_broadcast() definition 2009-03-04 20:10:05 +00:00
sparc + support for the different rounding modes in the generic rounding 2008-06-27 17:20:56 +00:00
symbian - removed all "islibrary:=false;" assignments from system unit 2008-12-17 17:48:04 +00:00
ucmaps
unix * new Intbasicevent*() implementation based on pthread_cond_signal by 2009-03-04 20:15:27 +00:00
watcom * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
win * fixed compilation on win64 by using LResult as result type of a window proc 2009-02-23 20:29:08 +00:00
win32 * link against libc when profiling 2008-11-29 12:28:43 +00:00
win64 * regened makefiles to propagate makefile versions 2008-10-22 17:32:15 +00:00
wince + Added extapi and imm wince api units by Vasil Maximov. 2009-03-01 11:10:10 +00:00
x86_64 + applied a fix similar to 11820 to x86-64 2008-09-25 19:31:16 +00:00
COPYING.FPC
COPYING.txt * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
fpmake.inc * start of conversion to fpmake 2008-01-08 23:44:09 +00:00
fpmake.pp * include fix fixes 2008-04-01 22:39:52 +00:00
Makefile + build embedded rtl 2009-02-01 17:17:39 +00:00
Makefile.fpc + build embedded rtl 2009-02-01 17:17:39 +00:00
README.txt * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00

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.