Browse Source

Amiga: Enable Dotted RTL for Amiga

Marcus Sackrow 1 year ago
parent
commit
1714dbb563
5 changed files with 34 additions and 12 deletions
  1. 1 1
      rtl/amicommon/athreads.pp
  2. 8 8
      rtl/amicommon/sysutils.pp
  3. 4 1
      rtl/amiga/Makefile
  4. 5 1
      rtl/amiga/Makefile.fpc
  5. 16 1
      rtl/amiga/buildrtl.pp

+ 1 - 1
rtl/amicommon/athreads.pp

@@ -820,7 +820,7 @@ var p:pintrtlevent;
 begin
 begin
   p:=pintrtlevent(aevent);
   p:=pintrtlevent(aevent);
   ObtainSemaphore(@p^.Sem);
   ObtainSemaphore(@p^.Sem);
-  while not p^.isset do 
+  while not p^.isset do
     begin
     begin
       ReleaseSemaphore(@p^.Sem);
       ReleaseSemaphore(@p^.Sem);
       DOSDelay(1);
       DOSDelay(1);

+ 8 - 8
rtl/amicommon/sysutils.pp

@@ -471,7 +471,7 @@ begin
 
 
     Rslt.Size := fib_Size;
     Rslt.Size := fib_Size;
     Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
     Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
-    if not validDate then 
+    if not validDate then
       begin
       begin
         InternalFindClose(Rslt.FindHandle);
         InternalFindClose(Rslt.FindHandle);
         exit;
         exit;
@@ -538,7 +538,7 @@ var
  attr: word;
  attr: word;
 begin
 begin
  Assign(F,FileName);
  Assign(F,FileName);
- dos.GetFAttr(F,attr);
+ {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}dos.GetFAttr(F,attr);
  if DosError <> 0 then
  if DosError <> 0 then
     FileGetAttr := -1
     FileGetAttr := -1
  else
  else
@@ -551,7 +551,7 @@ var
  F: file;
  F: file;
 begin
 begin
  Assign(F, FileName);
  Assign(F, FileName);
- Dos.SetFAttr(F, Attr and $ffff);
+ {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.SetFAttr(F, Attr and $ffff);
  FileSetAttr := DosError;
  FileSetAttr := DosError;
 end;
 end;
 
 
@@ -759,9 +759,9 @@ var
  dayOfWeek: word;
  dayOfWeek: word;
  Sec100: Word;
  Sec100: Word;
 begin
 begin
-  dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second, Sec100);
+  {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second, Sec100);
   SystemTime.Millisecond := Sec100 * 10;
   SystemTime.Millisecond := Sec100 * 10;
-  dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek);
+  {$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek);
 end;
 end;
 
 
 
 
@@ -856,21 +856,21 @@ begin
     if StrOfpaths = '' then StrOfPaths := GetPathString;
     if StrOfpaths = '' then StrOfPaths := GetPathString;
     Result:=StrOfPaths;
     Result:=StrOfPaths;
   end else
   end else
-    Result:=Dos.Getenv(shortstring(EnvVar));
+    Result:={$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.Getenv(shortstring(EnvVar));
 end;
 end;
 
 
 Function GetEnvironmentVariableCount : Integer;
 Function GetEnvironmentVariableCount : Integer;
 
 
 begin
 begin
   // Result:=FPCCountEnvVar(EnvP);
   // Result:=FPCCountEnvVar(EnvP);
-  Result:=Dos.envCount;
+  Result:={$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.envCount;
 end;
 end;
 
 
 Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif};
 Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif};
 
 
 begin
 begin
   // Result:=FPCGetEnvStrFromP(Envp,Index);
   // Result:=FPCGetEnvStrFromP(Envp,Index);
-  Result:=Dos.EnvStr(Index);
+  Result:={$IFDEF FPC_DOTTEDUNITS}TP.{$ENDIF}Dos.EnvStr(Index);
 end;
 end;
 
 
 function ExecuteProcess (const Path: RawByteString; const ComLine: RawByteString;Flags:TExecuteFlags=[]):
 function ExecuteProcess (const Path: RawByteString; const ComLine: RawByteString;Flags:TExecuteFlags=[]):

+ 4 - 1
rtl/amiga/Makefile

@@ -2868,7 +2868,10 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 	$(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
 	$(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
+ifdef FPC_DOTTEDUNITS
+BUILDRTL_OPT:=$(BUILDRTL_OPT) -Fu$(NSINC) -Fu$(NSOSDIR) -dFPC_DOTTEDUNITS 
+endif
 buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
 buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
-	$(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl
+	$(COMPILER) -Fi$(OBJPASDIR) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) $(BUILDRTL_OPT) buildrtl
 $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
 $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) -Sg $(INC)/$(RESUNIT).pp
 	$(COMPILER) -Sg $(INC)/$(RESUNIT).pp

+ 5 - 1
rtl/amiga/Makefile.fpc

@@ -94,12 +94,16 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 prt0$(OEXT) : $(CPU_TARGET)/prt0.as
         $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
         $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
 
 
+ifdef FPC_DOTTEDUNITS
+BUILDRTL_OPT:=$(BUILDRTL_OPT) -Fu$(NSINC) -Fu$(NSOSDIR) -dFPC_DOTTEDUNITS 
+endif
+
 #
 #
 # Base Units (System, strings, os-dependent-base-unit)
 # Base Units (System, strings, os-dependent-base-unit)
 #
 #
 
 
 buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
 buildrtl$(PPUEXT): buildrtl.pp system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl
+        $(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(CPU_TARGET) -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) $(BUILDRTL_OPT) buildrtl
 
 
 $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
 $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) -Sg $(INC)/$(RESUNIT).pp
         $(COMPILER) -Sg $(INC)/$(RESUNIT).pp

+ 16 - 1
rtl/amiga/buildrtl.pp

@@ -1,7 +1,22 @@
 unit buildrtl;
 unit buildrtl;
 
 
   interface
   interface
+{$IFDEF FPC_DOTTEDUNITS}
+    uses
+      si_prc,
+      AmigaApi.AThreads, TP.DOS, System.SysUtils,
 
 
+{$ifdef cpupowerpc}
+      exeinfo, lineinfo,
+{$endif}
+
+      System.CTypes, System.Strings,
+      System.RtlConsts, System.SysConst, System.Math, System.Types,
+      System.TypInfo, System.SortBase, System.FGL, System.Classes,
+      System.CharSet, System.Character, System.GetOpts,
+      System.FPWideString,
+      System.SoftFPU, System.SoftFpuX80, System.SoftFpu128, System.UFloatX80, System.UFloat128;
+{$ELSE FPC_DOTTEDUNITS}
     uses
     uses
       si_prc,
       si_prc,
       athreads, dos, sysutils,
       athreads, dos, sysutils,
@@ -16,7 +31,7 @@ unit buildrtl;
       charset, character, getopts,
       charset, character, getopts,
       fpwidestring,
       fpwidestring,
       softfpu, sfpux80, ufloatx80, sfpu128, ufloat128;
       softfpu, sfpux80, ufloatx80, sfpu128, ufloat128;
-
+{$ENDIF FPC_DOTTEDUNITS}
   implementation
   implementation
 
 
 end.
 end.