Kaynağa Gözat

Merged revisions 9687,9692,9694-9695,9697-9714,9720,9722,9729,9732-9733,9740,9745,9749-9750,9753-9757,9760-9766,9768-9770,9772-9774,9814,9822,9825,9833,9837-9850,9852,9855-9856,9859,9863-9864,9867,9877,9883,9888,10082,10093 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r9687 | peter | 2008-01-09 00:44:09 +0100 (Wed, 09 Jan 2008) | 2 lines

* start of conversion to fpmake
........
r9833 | peter | 2008-01-20 23:12:31 +0100 (Sun, 20 Jan 2008) | 2 lines

* more unix units added
........
r9859 | peter | 2008-01-21 19:16:08 +0100 (Mon, 21 Jan 2008) | 2 lines

* completed linux system include deps
........
r9877 | peter | 2008-01-23 01:24:05 +0100 (Wed, 23 Jan 2008) | 2 lines

* add all linux units, still need to finish dependencies
........
r9883 | peter | 2008-01-23 18:43:55 +0100 (Wed, 23 Jan 2008) | 2 lines

* linux rtl can be built as package
........
r9888 | peter | 2008-01-24 00:03:54 +0100 (Thu, 24 Jan 2008) | 2 lines

* windows support
........
r10093 | marco | 2008-01-29 10:10:29 +0100 (Tue, 29 Jan 2008) | 3 lines

* Remove some BSD warnings. Still get warnings for cwstrings and ctypes, but
they are in inc/ ?
........

git-svn-id: branches/fixes_2_2@10153 -

peter 17 yıl önce
ebeveyn
işleme
b753d0a510
2 değiştirilmiş dosya ile 700 ekleme ve 106 silme
  1. 18 64
      rtl/fpmake.inc
  2. 682 42
      rtl/fpmake.pp

+ 18 - 64
rtl/fpmake.inc

@@ -3,8 +3,8 @@ Const
   GraphDir = 'inc/graph/';
   SysUtilsDir = 'objpas/sysutils/';
   Unixes = [darwin,freebsd,linux,netbsd,openbsd];
-  
- 
+
+
 Function CurrentOS : String;
 
 begin
@@ -25,8 +25,8 @@ begin
   else
     Result:=IncludeTrailingPathDelimiter(CurrentOS);
 end;
-  
-  
+
+
 Function CPUDir : String;
 
 begin
@@ -69,16 +69,16 @@ Procedure AddCurrentOS(T : TTarget = Nil);
 Var
   I : Integer;
   O : TOSes;
-  
+
 begin
-  If (T<>Nil) then  
+  If (T<>Nil) then
     begin
     O:=T.OS;
     If (O<>[]) then
       Include(O,Defaults.OS)
     else
       // Don't do anything.  If empty, all will be compiled.
-    T.OS:=O;  
+    T.OS:=O;
     end
   else
     With Installer.Targets do
@@ -91,15 +91,15 @@ Procedure ExcludeCurrentOS(T : TTarget = Nil);
 Var
   I : Integer;
   O : TOSes;
-  
+
 begin
-  If (T<>Nil) then  
+  If (T<>Nil) then
     begin
     O:=T.OS;
     If (O=[]) then
       O:=AllOSs;
     Exclude(O,Defaults.OS);
-    T.OS:=O;  
+    T.OS:=O;
     end
   else
     With Installer.Targets do
@@ -115,54 +115,7 @@ 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');
     T.Dependencies.Add('inc/dosh.inc');
@@ -190,7 +143,8 @@ begin
       Add('inc/genstr.inc');
       Add('inc/genstrs.inc');
       Add('inc/stringsi.inc');
-      end; 
+      end;
+
     { Delphi RTL units }
     T:=AddUnit('objpas/rtlconsts.pp');
     T.Resourcestrings:=True;
@@ -270,7 +224,7 @@ begin
       Add('inc/mouse.inc');
       end;
     T:=AddUnit(OSDir+'video.pp');
-    With T.Dependencies do 
+    With T.Dependencies do
       begin
       Add('inc/video.inc');
       Add('inc/videoh.inc');
@@ -279,8 +233,8 @@ begin
     T.Dependencies.Add('inc/mmatimp.inc');
     T:=AddUnit('inc/dynlibs.pp');
     T.Dependencies.Add(OSDir+'dynlibs.inc');
-    T:=AddUnit('inc/getopts.pp');    
-    T:=AddUnit('inc/cmem.pp');    
+    T:=AddUnit('inc/getopts.pp');
+    T:=AddUnit('inc/cmem.pp');
     T:=AddUnit('inc/ctypes.pp');
     T:=AddUnit('inc/softfpu.pp');
     T:=AddUnit('inc/ucomplex.pp');
@@ -290,5 +244,5 @@ begin
     T:=AddUnit('inc/charset.pp');
     // T:=AddUnit('inc/pagemem.pp');
     end;
-  AddSystemDependencies(Installer.Targets);  
-end; 
+  AddSystemDependencies(Installer.Targets);
+end;

+ 682 - 42
rtl/fpmake.pp

@@ -1,50 +1,690 @@
+{$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('$(CPU)');
+    P.SourcePath.Add('bsd',AllBSDOSes);
+    P.SourcePath.Add('unix',AllUnixOSes);
+    P.SourcePath.Add('win',AllWindowsOSes);
+    P.SourcePath.Add('inc');
+    P.SourcePath.Add('objpas');
+
+    // Where to find the include files using firstmatch
+    P.IncludePath.Add('$(OS)/$(CPU)',[Linux]+AllBSDOSes);
+    P.IncludePath.Add('$(OS)');
+    P.IncludePath.Add('$(CPU)');
+    P.IncludePath.Add('bsd',AllBSDOSes);
+    P.IncludePath.Add('bsd/$(CPU)',AllBSDOSes-[Darwin]);
+    P.IncludePath.Add('unix',AllUnixOSes);
+    P.IncludePath.Add('win',AllWindowsOSes);
+    P.IncludePath.Add('inc');
+    P.IncludePath.Add('objpas');
+
+    // System unit
+    T:=P.Targets.AddUnit('system.pp');
+      With T.Dependencies do
+        begin
+          // Headers
+          AddInclude('setjumph.inc');
+          AddInclude('systemh.inc');
+          AddInclude('objpash.inc');
+          AddInclude('mathh.inc');
+          AddInclude('wstringh.inc');
+          AddInclude('dynarrh.inc');
+          AddInclude('compproc.inc');
+          AddInclude('heaph.inc');
+          AddInclude('threadh.inc');
+          AddInclude('varianth.inc');
+          AddInclude('sysosh.inc');
+          AddInclude('resh.inc');
+          // Implementations
+          AddInclude('set.inc');
+          AddInclude('int64p.inc');
+          AddInclude('setjump.inc');
+          AddInclude('sysos.inc');
+          AddInclude('sysheap.inc');
+          AddInclude('sysdir.inc');
+          AddInclude('sysfile.inc');
+          AddInclude('except.inc');
+          AddInclude('threadvr.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('wustrings.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');
+          AddInclude('innr.inc');
+          AddInclude('$(CPU).inc');
+          AddInclude('fastmove.inc',[i386],AllOSes);
+          AddInclude('strpas.inc');
+          AddInclude('math.inc');
+          AddInclude('real2str.inc');
+          AddInclude('systhrd.inc',AllWindowsOSes+[Netware,Netwlibc,EMX,OS2]);
+          // Unix implementations
+          AddInclude('osdefs.inc',AllUnixOSes);
+          AddInclude('sysunixh.inc',AllUnixOSes);
+          AddInclude('elfres32.inc',AllUnixOSes);
+          AddInclude('system.inc',AllUnixOSes);
+          AddInclude('errno.inc',AllUnixOSes);
+          AddInclude('ostypes.inc',AllUnixOSes);
+          AddInclude('ptypes.inc',AllUnixOSes);
+          AddInclude('ctypes.inc',AllUnixOSes);
+          AddInclude('stat.inc',[Linux]);
+          AddInclude('signal.inc',AllUnixOSes);
+          AddInclude('sighnd.inc',AllUnixOSes);
+          AddInclude('sighndh.inc',AllUnixOSes);
+          AddInclude('syscallh.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('syscall.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('sysnr.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('ossysc.inc',AllUnixOSes);
+          AddInclude('osmacro.inc',AllUnixOSes);
+          // Windows implementations
+          AddInclude('winres.inc',AllWindowsOSes);
+        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);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+        end;
+    T:=P.Targets.AddUnit('unixutil.pp',AllUnixOSes);
+      with T.Dependencies do
+        begin
+          AddInclude('textrec.inc');
+          AddInclude('filerec.inc');
+          AddUnit('system');
+        end;
+    T:=P.Targets.AddUnit('baseunix.pp',AllUnixOSes);
+      With T.Dependencies do
+        begin
+          AddUnit('unixtype');
+          AddInclude('osdefs.inc');
+          AddInclude('aliasptp.inc');
+          AddInclude('aliasctp.inc');
+          AddInclude('errno.inc');
+          AddInclude('ostypes.inc');
+          AddInclude('stat.inc',[Linux]);
+          AddInclude('signal.inc');
+          AddInclude('sighndh.inc');
+          AddInclude('bunxh.inc');
+          AddInclude('bunxovlh.inc');
+          AddInclude('genfunch.inc');
+          AddInclude('genfuncs.inc');
+          AddInclude('gensigset.inc');
+          AddInclude('genfdset.inc');
+          AddInclude('syscallh.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('sysnr.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('bsyscall.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('bunxsysc.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('settimeo.inc');
+          AddInclude('osmacro.inc');
+          AddInclude('bunxovl.inc');
+          AddInclude('textrec.inc');
+          AddInclude('filerec.inc');
+        end;
+    T:=P.Targets.AddUnit('unix.pp',AllUnixOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('baseunix');
+          AddUnit('unixutil');
+          AddInclude('aliasptp.inc');
+          AddInclude('aliasctp.inc');
+          AddInclude('unxconst.inc');
+          AddInclude('unxsysch.inc');
+          AddInclude('unxovlh.inc');
+          AddInclude('unxovl.inc');
+          AddInclude('syscallh.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('unxsysc.inc',[Linux,Beos,FreeBSD]);
+          AddInclude('textrec.inc');
+          AddInclude('filerec.inc');
+          AddInclude('unxfunc.inc');
+          AddInclude('timezone.inc');
+        end;
+    T:=P.Targets.AddUnit('termio.pp',AllUnixOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('baseunix');
+          AddInclude('termios.inc');
+          AddInclude('termiosh.inc');
+          AddInclude('textrec.inc');
+          AddInclude('termiosproc.inc');
+        end;
+    T:=P.Targets.AddUnit('unix/errors.pp',AllUnixOSes);
+      T.Dependencies.AddUnit('unixtype');
+      T.Dependencies.AddInclude('errnostr.inc');
+    T:=P.Targets.AddUnit('unix/syscall.pp',AllUnixOSes);
+      T.Dependencies.AddInclude('sysnr.inc');
+      T.Dependencies.AddInclude('syscallh.inc');
+    T:=P.Targets.AddUnit('unix/terminfo.pp',AllUnixOSes);
+      T.Dependencies.AddUnit('baseunix',AllUnixOSes);
+    T:=P.Targets.AddUnit('unix/dl.pp',AllUnixOSes);
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('unix/ipc.pp',AllUnixOSes);
+      With T.Dependencies do
+        begin
+          AddUnit('baseunix');
+          AddUnit('syscall');
+          AddInclude('ipccall.inc',[Linux]);
+          AddInclude('ipcbsd.inc',[FreeBSD]);
+        end;
+
+    // Linux units
+    T:=P.Targets.AddUnit('si_c21g.pp',[i386],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_c21g.inc');
+        end;
+    T:=P.Targets.AddUnit('si_c21.pp',[i386],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_c21.inc');
+        end;
+    T:=P.Targets.AddUnit('si_c.pp',[i386,x86_64],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_c.inc');
+        end;
+    T:=P.Targets.AddUnit('si_dll.pp',[i386],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_dll.inc');
+        end;
+    T:=P.Targets.AddUnit('si_prc.pp',[i386,x86_64],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_prc.inc');
+        end;
+    T:=P.Targets.AddUnit('si_uc.pp',[i386],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_uc.inc');
+        end;
+    T:=P.Targets.AddUnit('linux.pp',[Linux]);
+      with T.Dependencies do
+        begin
+          AddUnit('baseunix');
+          AddUnit('syscall');
+        end;
+    T:=P.Targets.AddUnit('gpm.pp',[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('termio');
+          AddUnit('sockets');
+          AddUnit('strings');
+          AddUnit('unix');
+        end;
+    T:=P.Targets.AddUnit('linuxvcs.pp',[Linux]);
+      with T.Dependencies do
+        begin
+          AddUnit('baseunix');
+          AddUnit('strings');
+        end;
+    T:=P.Targets.AddUnit('x86.pp',[i386,x86_64],[Linux]);
+      T.Dependencies.AddUnit('system');
+      T.Dependencies.AddUnit('baseunix');
+    T:=P.Targets.AddUnit('ports.pp',[i386,x86_64],[Linux]);
+      with T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('x86');
+        end;
+    T:=P.Targets.AddUnit('fpcylix.pp',[i386],[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('cthreads');
+          AddUnit('cwstring');
+          AddUnit('dynlibs');
+        end;
 
+    // Windows units
+    T:=P.Targets.AddUnit('sysinitcyg.pp',AllWindowsOSes);
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('sysinitgprof.pp',AllWindowsOSes);
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('sysinitpas.pp',AllWindowsOSes);
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('windows.pp',AllWindowsOSes);
+      T.IncludePath.Add('win/wininc');
+      with T.Dependencies do
+        begin
+          AddInclude('base.inc');
+          AddInclude('errors.inc');
+          AddInclude('defines.inc');
+          AddInclude('struct.inc');
+          AddInclude('messages.inc');
+          AddInclude('ascfun.inc');
+          AddInclude('unifun.inc');
+          AddInclude('ascdef.inc');
+          AddInclude('func.inc');
+          AddInclude('redef.inc');
+          AddInclude('base.inc');
+          AddInclude('errors.inc');
+          AddInclude('defines.inc');
+          AddInclude('struct.inc');
+          AddInclude('messages.inc');
+          AddInclude('ascfun.inc');
+          AddInclude('unifun.inc');
+          AddInclude('ascdef.inc');
+          AddInclude('func.inc');
+          AddInclude('redef.inc');
+          AddUnit('objpas');
+        end;
+    T:=P.Targets.AddUnit('winevent.pp',AllWindowsOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('windows');
+        end;
+    T:=P.Targets.AddUnit('winsock2.pp',AllWindowsOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('windows');
+        end;
+    T:=P.Targets.AddUnit('winsock.pp',AllWindowsOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('windows');
+        end;
+    T:=P.Targets.AddUnit('winsysut.pp',AllWindowsOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('windows');
+          AddUnit('sysutils');
+        end;
+    T:=P.Targets.AddUnit('sharemem.pp',AllWindowsOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('system');
+        end;
+    T:=P.Targets.AddUnit('signals.pp',AllWindowsOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('system');
+        end;
+    T:=P.Targets.AddUnit('messages.pp',AllWindowsOSes);
+      T.IncludePath.Add('win/wininc');
+      with T.Dependencies do
+        begin
+          AddInclude('messages.inc');
+          AddUnit('windows');
+        end;
+
+    // Turbo Pascal RTL units
+    T:=P.Targets.AddUnit('strings.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('strings.inc');
+          AddInclude('stringss.inc');
+          AddInclude('genstr.inc');
+          AddInclude('genstrs.inc');
+          AddInclude('stringsi.inc');
+        end;
+    T:=P.Targets.AddUnit('dos.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('strings');
+          AddUnit('unix',AllUnixOSes);
+          AddInclude('dosh.inc');
+          AddInclude('filerec.inc');
+          AddInclude('textrec.inc');
+          AddInclude('dos.inc');
+          AddInclude('fexpand.inc');
+        end;
+    T:=P.Targets.AddUnit('crt.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('unix',AllUnixOSes);
+          AddUnit('termio',AllUnixOSes);
+          AddInclude('crth.inc');
+          AddInclude('textrec.inc');
+        end;
+    T:=P.Targets.AddUnit('objects.pp');
+      T.Dependencies.AddUnit('dos');
+    T:=P.Targets.AddUnit('printer.pp');
+      with T.Dependencies do
+        begin
+          AddInclude('printerh.inc');
+          AddInclude('printer.inc');
+          AddInclude('textrec.inc');
+          AddUnit('unix',AllUnixOSes);
+          AddUnit('strings');
+        end;
+
+    // Object Pascal RTL units
+    T:=P.Targets.AddUnit('rtlconsts.pp');
+      T.Dependencies.AddUnit('objpas');
+      T.Dependencies.AddInclude('rtlconst.inc');
+    T:=P.Targets.AddUnit('sysconst.pp');
+      T.Dependencies.AddUnit('objpas');
+    T:=P.Targets.AddUnit('sysutils.pp');
+      T.IncludePath.Add('objpas/sysutils');
+      With T.Dependencies do
+        begin
+          AddUnit('sysconst');
+          AddUnit('unix',AllUnixOSes);
+          AddUnit('errors',AllUnixOSes);
+          AddUnit('windows',AllWindowsOSes);
+          AddInclude('sysutilh.inc');
+          AddInclude('sysinth.inc');
+          AddInclude('osutilsh.inc');
+          AddInclude('datih.inc');
+          AddInclude('sysstrh.inc');
+          AddInclude('filerec.inc');
+          AddInclude('textrec.inc');
+          AddInclude('syspchh.inc');
+          AddInclude('sysansih.inc');
+          AddInclude('syswideh.inc');
+          AddInclude('finah.inc');
+          AddInclude('filutilh.inc');
+          AddInclude('diskh.inc');
+          AddInclude('systhrdh.inc');
+          AddInclude('intfh.inc');
+          AddInclude('sysutils.inc');
+          AddInclude('fina.inc');
+          AddInclude('fexpand.inc');
+          AddInclude('varerror.inc');
+          AddInclude('sysstr.inc');
+          AddInclude('sysformt.inc');
+          AddInclude('dati.inc');
+          AddInclude('syspch.inc');
+          AddInclude('strings.inc');
+          AddInclude('genstr.inc');
+          AddInclude('stringsi.inc');
+          AddInclude('sysint.inc');
+          AddInclude('sysansi.inc');
+          AddInclude('syswide.inc');
+          AddInclude('sysformt.inc');
+          AddInclude('sysuthrd.inc');
+          AddInclude('osutil.inc');
+          AddInclude('sysuintf.inc');
+          AddInclude('suuid.inc',AllUnixOSes);
+        end;
+    T:=P.Targets.AddUnit('types.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('windows',AllWindowsOSes);
+        end;
+    T:=P.Targets.AddUnit('typinfo.pp');
+      T.Dependencies.AddUnit('sysutils');
+    T:=P.Targets.AddUnit('classes.pp');
+      T.IncludePath.Add('objpas/classes');
+      With T.Dependencies do
+        begin
+          AddUnit('sysutils');
+          AddUnit('types');
+          AddUnit('typinfo');
+          AddUnit('unix',AllUnixOSes);
+          AddUnit('windows',AllWindowsOSes);
+          AddInclude('classesh.inc');
+          AddInclude('classes.inc');
+          AddInclude('util.inc');
+          AddInclude('bits.inc');
+          AddInclude('streams.inc');
+          AddInclude('parser.inc');
+          AddInclude('collect.inc');
+          AddInclude('lists.inc');
+          AddInclude('stringl.inc');
+          AddInclude('tthread.inc');
+          AddInclude('persist.inc');
+          AddInclude('compon.inc');
+          AddInclude('action.inc');
+          AddInclude('dm.inc');
+          AddInclude('cregist.inc');
+          AddInclude('intf.inc');
+          AddInclude('filer.inc');
+          AddInclude('reader.inc');
+          AddInclude('writer.inc');
+          AddInclude('twriter.inc');
+        end;
+    T:=P.Targets.AddUnit('convutils.pp');
+      T.Dependencies.AddUnit('objpas');
+      T.Dependencies.AddInclude('convutil.inc');
+    T:=P.Targets.AddUnit('dateutils.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('sysutils');
+          AddUnit('math');
+          AddUnit('types');
+          AddUnit('sysconst');
+          AddInclude('dateutil.inc');
+        end;
+    T:=P.Targets.AddUnit('stdconvs.pp');
+      T.Dependencies.AddUnit('convutils');
+    T:=P.Targets.AddUnit('strutils.pp');
+      T.Dependencies.AddUnit('sysutils');
+    T:=P.Targets.AddUnit('varutils.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('sysutils');
+          AddInclude('varutilh.inc');
+          AddInclude('varerror.inc');
+          AddInclude('cvarutil.inc');
+          AddInclude('varutils.inc',AllOSes-AllWindowsOSes);
+        end;
+    T:=P.Targets.AddUnit('variants.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('sysutils');
+          AddUnit('rtlconsts');
+          AddUnit('typinfo');
+        end;
+    T:=P.Targets.AddUnit('fgl.pp');
+      T.Dependencies.AddUnit('sysutils');
+      T.Dependencies.AddUnit('types');
+    T:=P.Targets.AddUnit('fmtbcd.pp');
+      T.Dependencies.AddUnit('sysutils');
+      T.Dependencies.AddUnit('variants');
+    T:=P.Targets.AddUnit('math.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('sysutils');
+          AddInclude('mathuh.inc');
+          AddInclude('mathu.inc');
+        end;
+
+    // CPU dependent units
+    T:=P.Targets.AddUnit('cpu.pp',[i386],AllOSes);
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('mmx.pp',[i386],AllOSes);
+      T.Dependencies.AddUnit('cpu');
+
+    // C Interfacing units
+    T:=P.Targets.AddUnit('ctypes');
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddUnit('unixtype',AllUnixOSes);
+          AddInclude('aliasctp.inc',AllUnixOSes);
+        end;
+    T:=P.Targets.AddUnit('initc.pp');
+      T.Dependencies.AddUnit('ctypes');
+    T:=P.Targets.AddUnit('cmem.pp');
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('cthreads.pp',AllUnixOSes);
+      With T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('initc');
+          AddUnit('unix');
+          AddUnit('dl');
+          AddInclude('pthread.inc');
+        end;
+    T:=P.Targets.AddUnit('cwstring',AllUnixOSes);
+      With T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('initc');
+          AddUnit('unix');
+          AddUnit('ctypes');
+        end;
+
+    // Misc units
+    T:=P.Targets.AddUnit('charset.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('objpas');
+        end;
+    T:=P.Targets.AddUnit('ucomplex.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('math');
+        end;
+    T:=P.Targets.AddUnit('matrix.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('mvecimp.inc');
+          AddInclude('mmatimp.inc');
+        end;
+    T:=P.Targets.AddUnit('getopts.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('system');
+        end;
+    T:=P.Targets.AddUnit('dynlibs.pas');
+      With T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('dl',AllUnixOSes);
+          AddInclude('dynlibs.inc');
+        end;
+
+    // Debugging units
+    T:=P.Targets.AddUnit('exeinfo.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('strings');
+        end;
+    T:=P.Targets.AddUnit('heaptrc.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('system');
+        end;
+    T:=P.Targets.AddUnit('lineinfo.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('exeinfo');
+        end;
+    T:=P.Targets.AddUnit('lnfodwrf.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('exeinfo');
+        end;
+
+    // IO units
+    T:=P.Targets.AddUnit('mouse.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('video');
+          AddUnit('gpm',[Linux]);
+          AddInclude('mouseh.inc');
+          AddInclude('mouse.inc');
+        end;
+    T:=P.Targets.AddUnit('video.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('baseunix',AllUnixOSes);
+          AddUnit('termio',AllUnixOSes);
+          AddUnit('strings');
+          AddUnit('linuxvcs',[Linux]);
+          AddUnit('windows',AllWindowsOSes);
+          AddUnit('dos',AllWindowsOSes);
+          AddInclude('videoh.inc');
+          AddInclude('video.inc');
+          AddInclude('convert.inc',AllUnixOSes);
+        end;
+    T:=P.Targets.AddUnit('keyboard.pp');
+       with T.Dependencies do
+         begin
+           AddInclude('keybrdh.inc');
+           AddInclude('keyboard.inc');
+           AddInclude('keyscan.inc');
+           AddUnit('mouse');
+         end;
+    T:=P.Targets.AddUnit('sockets.pp');
+      with T.Dependencies do
+        begin
+          AddUnit('baseunix',AllUnixOSes);
+          AddUnit('winsock2',AllWindowsOSes);
+          AddUnit('ctypes');
+          AddInclude('socketsh.inc');
+          AddInclude('filerec.inc');
+          AddInclude('textrec.inc');
+          AddInclude('sockovl.inc');
+          AddInclude('sockets.inc');
+          AddInclude('unxsockh.inc',AllUnixOSes);
+          AddInclude('unixsock.inc',AllUnixOSes);
+          AddInclude('fpwinsockh.inc',AllWindowsOSes);
+        end;
+    T:=P.Targets.AddUnit('serial.pp',AllUnixOSes);
+      with T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('termio',AllUnixOSes);
+          AddUnit('unix',AllUnixOSes);
+        end;
+
+{$ifndef ALLPACKAGES}
+    Run;
+    end;
+end.
+{$endif ALLPACKAGES}