* start of conversion to fpmake

git-svn-id: trunk@9687 -
This commit is contained in:
peter 2008-01-08 23:44:09 +00:00
parent 63258c61fe
commit 4c54059cd7
2 changed files with 144 additions and 106 deletions

View File

@ -115,53 +115,6 @@ Var
begin
With Installer.Targets do
begin
DefaultOS:=AllOSs;
DefaultCPU:=AllCPUs;
{ System unit. For all platforms. }
T:=AddUnit(OSDIR(False)+'system.pp');
With T.Dependencies do
begin
// Headers
Add(CPUDir+'setjumph.inc');
Add('inc/systemh.inc');
Add('inc/objpash.inc');
Add('inc/dynarrh.inc');
Add('inc/compproc.inc');
Add('inc/heaph.inc');
Add('inc/threadh.inc');
Add('inc/varianth.inc');
// Implementations
Add(CPUDir+CurrentCPU+'.inc');
Add(CPUDir+'set.inc');
Add(CPUDir+'math.inc');
Add(CPUDir+'int64p.inc');
Add(CPUDir+'setjump.inc');
Add(OSDir+'systhrd.inc');
Add(OSDir(False)+'sysos.inc');
Add(OSDir+'sysheap.inc');
Add(OSDir+'sysdir.inc');
Add('inc/filerec.inc');
Add('inc/textrec.inc');
Add('inc/generic.inc');
Add('inc/genset.inc');
Add('inc/genmath.inc');
Add('inc/sstrings.inc');
Add('inc/int64.inc');
Add('inc/astrings.inc');
Add('inc/wstrings.inc');
Add('inc/aliases.inc');
Add('inc/dynarr.inc');
Add('inc/objpas.inc');
Add('inc/variant.inc');
Add('inc/rtti.inc');
Add('inc/heap.inc');
Add('inc/thread.inc');
Add('inc/text.inc');
Add('inc/file.inc');
Add('inc/typefile.inc');
end;
T:=AddUnit('objpas/objpas.pp');
T:=AddUnit('inc/macpas.pp');
{ Turbo Pascal RTL units }
T:=AddUnit(OSDir+'dos.pp');
@ -191,6 +144,7 @@ begin
Add('inc/genstrs.inc');
Add('inc/stringsi.inc');
end;
{ Delphi RTL units }
T:=AddUnit('objpas/rtlconsts.pp');
T.Resourcestrings:=True;

View File

@ -1,50 +1,134 @@
{$ifndef ALLPACKAGES}
{$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}
*)
uses fpmkunit;
Var
T : TTarget;
P : TPackage;
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);
With Installer do
begin
{$endif ALLPACKAGES}
else
Raise EInstallerError.Create('OS not yet supported by makefile: '+OsToString(Defaults.OS));
P:=AddPackage('rtl');
{$ifdef ALLPACKAGES}
P.Directory:='rtl';
{$endif ALLPACKAGES}
P.Version:='2.2.0';
// Where to find the sources using firstmatch
P.SourcePath.Add('$(OS)');
P.SourcePath.Add('unix',AllUnixOSes);
P.SourcePath.Add('win',AllWindowsOSes);
P.SourcePath.Add('$(CPU)');
P.SourcePath.Add('inc');
P.SourcePath.Add('objpas');
// System unit
T:=P.Targets.AddUnit('system.pp');
T.IncludePath.Add('inc');
T.IncludePath.Add('$(CPU)');
T.IncludePath.Add('$(OS)');
T.IncludePath.Add('$(OS)/$(CPU)',TOSes([Linux]));
T.IncludePath.Add('unix',AllUnixOSes);
T.IncludePath.Add('win',AllWindowsOSes);
With T.Dependencies do
begin
// Headers
AddInclude('setjumph.inc');
AddInclude('systemh.inc');
AddInclude('objpash.inc');
AddInclude('dynarrh.inc');
AddInclude('compproc.inc');
AddInclude('heaph.inc');
AddInclude('threadh.inc');
AddInclude('varianth.inc');
// Implementations
AddInclude('$(CPU).inc');
AddInclude('set.inc');
AddInclude('math.inc');
AddInclude('int64p.inc');
AddInclude('setjump.inc');
AddInclude('systhrd.inc');
AddInclude('sysos.inc');
AddInclude('sysheap.inc');
AddInclude('sysdir.inc');
AddInclude('filerec.inc');
AddInclude('textrec.inc');
AddInclude('generic.inc');
AddInclude('genset.inc');
AddInclude('genmath.inc');
AddInclude('sstrings.inc');
AddInclude('int64.inc');
AddInclude('astrings.inc');
AddInclude('wstrings.inc');
AddInclude('aliases.inc');
AddInclude('dynarr.inc');
AddInclude('objpas.inc');
AddInclude('variant.inc');
AddInclude('rtti.inc');
AddInclude('heap.inc');
AddInclude('thread.inc');
AddInclude('text.inc');
AddInclude('file.inc');
AddInclude('typefile.inc');
end;
Installer.EndPackage;
Installer.Run; // Go.
end.
// Compile mode units
T:=P.Targets.AddUnit('objpas.pp');
T.Dependencies.AddUnit('system');
T:=P.Targets.AddUnit('macpas.pp');
T.Dependencies.AddUnit('system');
// Unix units
T:=P.Targets.AddUnit('unixtype.pp',AllUnixOSes);
T.IncludePath.Add('$(OS)/$(CPU)',TOSes([Linux]));
T.IncludePath.Add('$(OS)');
T.IncludePath.Add('unix');
With T.Dependencies do
begin
AddUnit('system');
end;
T:=P.Targets.AddUnit('baseunix.pp',AllUnixOSes);
T.IncludePath.Add('$(OS)/$(CPU)',TOSes([Linux]));
T.IncludePath.Add('$(OS)');
T.IncludePath.Add('unix');
T.IncludePath.Add('inc');
With T.Dependencies do
begin
AddUnit('unixtype');
end;
// Turbo Pascal RTL units
T:=P.Targets.AddUnit('dos.pp');
With T.Dependencies do
begin
AddUnit('baseunix',AllUnixOSes);
AddInclude('inc/dosh.inc');
end;
T:=P.Targets.AddUnit('crt.pp');
With T.Dependencies do
begin
AddUnit('baseunix',AllUnixOSes);
AddInclude('inc/crth.inc');
end;
T:=P.Targets.AddUnit('strings.pp');
T.IncludePath.Add('$(CPU)');
T.IncludePath.Add('inc');
With T.Dependencies do
begin
AddUnit('system');
AddInclude('strings.inc');
AddInclude('stringss.inc');
AddInclude('genstr.inc');
AddInclude('genstrs.inc');
AddInclude('stringsi.inc');
end;
{$ifndef ALLPACKAGES}
Run;
end;
end.
{$endif ALLPACKAGES}