|
@@ -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);
|
|
|
-
|
|
|
- else
|
|
|
- Raise EInstallerError.Create('OS not yet supported by makefile: '+OsToString(Defaults.OS));
|
|
|
- end;
|
|
|
- Installer.EndPackage;
|
|
|
- Installer.Run; // Go.
|
|
|
-end.
|
|
|
+ With Installer do
|
|
|
+ begin
|
|
|
+{$endif ALLPACKAGES}
|
|
|
+
|
|
|
+ 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;
|
|
|
|
|
|
+ // 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}
|