Browse Source

* add all linux units, still need to finish dependencies

git-svn-id: trunk@9877 -
peter 17 năm trước cách đây
mục cha
commit
ff4b5fcb59
1 tập tin đã thay đổi với 335 bổ sung44 xóa
  1. 335 44
      rtl/fpmake.pp

+ 335 - 44
rtl/fpmake.pp

@@ -20,20 +20,23 @@ begin
 
     // Where to find the sources using firstmatch
     P.SourcePath.Add('$(OS)');
+    P.SourcePath.Add('$(CPU)');
     P.SourcePath.Add('unix',AllUnixOSes);
     P.SourcePath.Add('win',AllWindowsOSes);
-    P.SourcePath.Add('$(CPU)');
     P.SourcePath.Add('inc');
     P.SourcePath.Add('objpas');
 
+    // Where to find the include files using firstmatch
+    P.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
+    P.IncludePath.Add('$(OS)');
+    P.IncludePath.Add('$(CPU)');
+    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');
-      T.IncludePath.Add('inc');
-      T.IncludePath.Add('$(CPU)');
-      T.IncludePath.Add('$(OS)');
-      T.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
-      T.IncludePath.Add('unix',AllUnixOSes);
-      T.IncludePath.Add('win',AllWindowsOSes);
       With T.Dependencies do
         begin
           // Headers
@@ -53,7 +56,6 @@ begin
           AddInclude('set.inc');
           AddInclude('int64p.inc');
           AddInclude('setjump.inc');
-          AddInclude('systhrd.inc');
           AddInclude('sysos.inc');
           AddInclude('sysheap.inc');
           AddInclude('sysdir.inc');
@@ -83,6 +85,8 @@ begin
           AddInclude('innr.inc');
           AddInclude('$(CPU).inc');
           AddInclude('fastmove.inc',[i386],AllOSes);
+          AddInclude('strpas.inc');
+          AddInclude('math.inc');
           AddInclude('real2str.inc');
           // Unix implementations
           AddInclude('osdefs.inc',AllUnixOSes);
@@ -104,75 +108,163 @@ begin
           AddInclude('osmacro.inc',AllUnixOSes);
         end;
 
+    // Startup
+    T:=P.Targets.AddUnit('si_c21g.pp');
+      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');
+      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');
+      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');
+      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');
+      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');
+      With T.Dependencies do
+        begin
+          AddUnit('system');
+          AddInclude('si_intf.inc');
+          AddInclude('sysnr.inc');
+          AddInclude('si_uc.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');
+    T:=P.Targets.AddUnit('fpcylix.pp');
+      With T.Dependencies do
+        begin
+          AddUnit('cthreads');
+          AddUnit('cwstring');
+          AddUnit('dynlibs');
+        end;
 
     // Unix units
     T:=P.Targets.AddUnit('unixtype.pp',AllUnixOSes);
-      T.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
-      T.IncludePath.Add('$(OS)');
-      T.IncludePath.Add('unix');
       With T.Dependencies do
         begin
           AddUnit('system');
         end;
     T:=P.Targets.AddUnit('unixutil.pp',AllUnixOSes);
-      T.IncludePath.Add('unix');
-      T.IncludePath.Add('inc');
     T:=P.Targets.AddUnit('baseunix.pp',AllUnixOSes);
-      T.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
-      T.IncludePath.Add('$(OS)');
-      T.IncludePath.Add('unix');
-      T.IncludePath.Add('inc');
       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');
+          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');
+          AddInclude('sysnr.inc');
+          AddInclude('bsyscall.inc');
+          AddInclude('bunxsysc.inc');
+          AddInclude('settimeo.inc');
+          AddInclude('osmacro.inc');
+          AddInclude('bunxovl.inc');
+          AddInclude('textrec.inc');
+          AddInclude('filerec.inc');
         end;
     T:=P.Targets.AddUnit('unix.pp',AllUnixOSes);
-      T.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
-      T.IncludePath.Add('$(OS)');
-      T.IncludePath.Add('unix');
-      T.IncludePath.Add('inc');
-      T.Dependencies.AddUnit('baseunix');
-      T.Dependencies.AddUnit('unixutil');
+      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');
+          AddInclude('unxsysc.inc');
+          AddInclude('textrec.inc');
+          AddInclude('filerec.inc');
+          AddInclude('unxfunc.inc');
+          AddInclude('timezone.inc');
+        end;
     T:=P.Targets.AddUnit('termio.pp',AllUnixOSes);
-      T.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
-      T.IncludePath.Add('$(OS)');
-      T.IncludePath.Add('unix');
-      T.IncludePath.Add('inc');
-      T.Dependencies.AddUnit('baseunix');
+      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.IncludePath.Add('$(OS)');
       T.Dependencies.AddUnit('unixtype');
       T.Dependencies.AddInclude('errnostr.inc');
     T:=P.Targets.AddUnit('unix/syscall.pp',AllUnixOSes);
-      T.IncludePath.Add('$(OS)/$(CPU)',[Linux]);
-      T.IncludePath.Add('$(OS)');
       T.Dependencies.AddInclude('sysnr.inc');
       T.Dependencies.AddInclude('syscallh.inc');
     T:=P.Targets.AddUnit('unix/terminfo.pp',AllUnixOSes);
       T.Dependencies.AddUnit('baseunix');
+    T:=P.Targets.AddUnit('unix/dl.pp',AllUnixOSes);
+    T:=P.Targets.AddUnit('unix/ipc.pp',AllUnixOSes);
+      With T.Dependencies do
+        begin
+          AddUnit('baseunix');
+          AddUnit('syscall');
+          AddInclude('ipccall.inc');
+        end;
 
-    // Linux only
+    // Linux units
     T:=P.Targets.AddUnit('linux/linux.pp',[Linux]);
+    T:=P.Targets.AddUnit('linux/gpm.pp',[Linux]);
+      With T.Dependencies do
+        begin
+          AddUnit('termio');
+          AddUnit('sockets');
+          AddUnit('strings');
+          AddUnit('unix');
+        end;
 
-{
-    With Targets['sysutils'].dependencies do
-      begin
-      add('unix');
-      add('errors');
-      Add('unixtype');
-      Add('baseunix');
-      end;
-}
+    T:=P.Targets.AddUnit('linux/linuxvcs.pp');
 
     // Turbo Pascal RTL units
     T:=P.Targets.AddUnit('strings.pp');
-      T.IncludePath.Add('$(CPU)');
-      T.IncludePath.Add('inc');
       With T.Dependencies do
         begin
           AddUnit('system');
@@ -187,7 +279,11 @@ begin
         begin
           AddUnit('strings');
           AddUnit('unix',AllUnixOSes);
-          AddInclude('inc/dosh.inc');
+          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
@@ -195,6 +291,201 @@ begin
           AddUnit('unix',AllUnixOSes);
           AddInclude('inc/crth.inc');
         end;
+    T:=P.Targets.AddUnit('objects.pp');
+    T:=P.Targets.AddUnit('ports.pp');
+    T:=P.Targets.AddUnit('printer.pp');
+
+    // 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);
+          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');
+        end;
+    T:=P.Targets.AddUnit('types.pp');
+      T.Dependencies.AddUnit('objpas');
+    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);
+          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');
+        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');
+      T.Dependencies.AddUnit('system');
+    T:=P.Targets.AddUnit('x86.pp',[i386,x86_64],AllOSes);
+      T.Dependencies.AddUnit('system');
+      T.Dependencies.AddUnit('baseunix',AllUnixOSes);
+    T:=P.Targets.AddUnit('mmx.pp',[i386,x86_64],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');
+      With T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('initc');
+          AddUnit('unix');
+          AddUnit('ctypes');
+        end;
+
+    // Misc units
+    T:=P.Targets.AddUnit('charset.pp');
+    T:=P.Targets.AddUnit('ucomplex.pp');
+    T:=P.Targets.AddUnit('matrix.pp');
+    T:=P.Targets.AddUnit('getopts.pp');
+    T:=P.Targets.AddUnit('dynlibs.pas');
+      With T.Dependencies do
+        begin
+          AddUnit('objpas');
+          AddUnit('dl');
+          AddInclude('dynlibs.inc');
+        end;
+
+    // Debugging units
+    T:=P.Targets.AddUnit('exeinfo.pp');
+    T:=P.Targets.AddUnit('heaptrc.pp');
+    T:=P.Targets.AddUnit('lineinfo.pp');
+    T:=P.Targets.AddUnit('lnfodwrf.pp');
+
+    // IO units
+    T:=P.Targets.AddUnit('mouse');
+    T:=P.Targets.AddUnit('video');
+    T:=P.Targets.AddUnit('keyboard');
+    T:=P.Targets.AddUnit('sockets');
+    T:=P.Targets.AddUnit('serial');
 
 {$ifndef ALLPACKAGES}
     Run;