+ Initial check-in

git-svn-id: trunk@973 -
This commit is contained in:
michael 2005-08-29 07:38:56 +00:00
parent aea94c8707
commit 03f441c966
4 changed files with 133 additions and 0 deletions

3
.gitattributes vendored
View File

@ -3344,6 +3344,7 @@ rtl/emx/sysosh.inc svneol=native#text/plain
rtl/emx/system.pas svneol=native#text/plain
rtl/emx/systhrd.inc svneol=native#text/plain
rtl/emx/sysutils.pp svneol=native#text/plain
rtl/fpmake.pp svneol=native#text/plain
rtl/freebsd/Makefile svneol=native#text/plain
rtl/freebsd/Makefile.fpc svneol=native#text/plain
rtl/freebsd/bsdport.txt svneol=native#text/plain
@ -3540,6 +3541,7 @@ rtl/linux/arm/syscallh.inc svneol=native#text/plain
rtl/linux/arm/sysnr.inc svneol=native#text/plain
rtl/linux/bunxsysc.inc svneol=native#text/plain
rtl/linux/errno.inc svneol=native#text/plain
rtl/linux/fpmake.inc svneol=native#text/plain
rtl/linux/gpm.pp svneol=native#text/plain
rtl/linux/i386/bsyscall.inc svneol=native#text/plain
rtl/linux/i386/cprt0.as -text
@ -4082,6 +4084,7 @@ rtl/unix/dl.pp svneol=native#text/plain
rtl/unix/dos.pp svneol=native#text/plain
rtl/unix/dynlibs.inc svneol=native#text/plain
rtl/unix/errors.pp svneol=native#text/plain
rtl/unix/fpmake.inc svneol=native#text/plain
rtl/unix/genfdset.inc svneol=native#text/plain
rtl/unix/genfuncs.inc svneol=native#text/plain
rtl/unix/gensigset.inc svneol=native#text/plain

50
rtl/fpmake.pp Normal file
View File

@ -0,0 +1,50 @@
{$mode objfpc}{$H+}
{$define allpackages}
program fpmake;
uses sysutils,fpmkunit;
{ Read RTL definitions. }
{$i fpmake.inc}
{ Unix/Posix defines }
{$i unix/fpmake.inc}
{ Load OS-specific targets and corrections }
{$i linux/fpmake.inc}
(*
{$i amiga/fpmake.inc}
{$i darwin/fpmake.inc}
{$i freebsd/fpmake.inc}
{$i palmos/fpmake.inc}
{$i emx/fpmake.inc}
{$i go32v2/fpmake.inc}
{$i morphos/fpmake.inc}
{$i atari/fpmake.inc}
{$i macos/fpmake.inc}
{$i netbsd/fpmake.inc}
{$i openbsd/fpmake.inc}
{$i win32/fpmake.inc}
{$i beos/fpmake.inc}
{$i netware/fpmake.inc}
{$i os2/fpmake.inc}
{$i solaris/fpmake.inc}
*)
Var
T : TTarget;
begin
InitRTL(Installer); // Define RTL package.
AddDefaultTargets(Installer); // Add all cross-platform units.
// A line must be added here when adding support for a new OS.
Case Installer.Defaults.OS of
linux : ApplyLinuxTargets(Installer);
else
Raise EInstallerError.Create('OS not yet supported by makefile: '+OsToString(Defaults.OS));
end;
Installer.EndPackage;
Installer.Run; // Go.
end.

39
rtl/linux/fpmake.inc Normal file
View File

@ -0,0 +1,39 @@
Procedure ApplyLinuxTargets(Installer : TInstaller);
Var
C : String;
Procedure AddLoader (Loader : String);
Const
asbin = 'as';
asopt = '-o $(OUTPUTDIR)/$(DEST) $(SOURCE)';
begin
With Installer.DefaultPackage.Commands do
AddCommand(asbin,asopt,loader+'.o',c+loader+'.as');
end;
begin
ApplyUnixTargets(Installer);
with Installer do
begin
DefaultPackage.Options:=DefaultPackage.Options+' -Filinux/'+CurrentCPU;
ExcludeCurrentOS(Targets['utf8bidi']);
end;
C:=IncludeTrailingPathDelimiter('linux/'+CPUToString(Defaults.CPU));
AddLoader('prt0');
If (Defaults.CPU<>m68k) then
begin
AddLoader('cprt0');
AddLoader('dllprt0');
AddLoader('gprt0');
end
else
AddLoader('prt1');
If (Defaults.CPU=i386) Then
begin
AddLoader('cprt21');
AddLoader('gprt21');
end;
end;

41
rtl/unix/fpmake.inc Normal file
View File

@ -0,0 +1,41 @@
Procedure ApplyUnixTargets(Installer : TInstaller);
Var
T : TTarget;
begin
With Installer,Targets do
begin
T:=AddUnit('unix/syscall.pp');
T:=AddUnit('unix/unixtype.pp');
T:=AddUnit('unix/baseunix.pp');
T.Dependencies.Add('unixtype');
T:=AddUnit('unix/errors.pp');
T.Dependencies.Add('strings');
T:=AddUnit('unix/unix.pp');
T.Dependencies.Add('baseunix');
T.Dependencies.Add('unixtype');
T.Dependencies.Add('strings');
T:=AddUnit('unix/terminfo.pp');
T.Dependencies.Add('baseunix');
T:=AddUnit('unix/linux.pp');
T:=AddUnit('unix/oldlinux.pp');
T:=AddUnit('unix/unixutil.pp');
if Defaults.CPU=i386 then
T:=AddUnit('unix/x86');
With Targets['sysutils'].dependencies do
begin
add('unix');
add('errors');
Add('unixtype');
Add('baseunix');
end;
With Targets['Dos'].dependencies do
begin
Add('strings');
Add('unix');
Add('baseunix');
Add('syscall');
end;
end;
end;