Quellcode durchsuchen

* Dotted RTL compiles

Michael VAN CANNEYT vor 2 Jahren
Ursprung
Commit
ccfa38c68e
100 geänderte Dateien mit 8137 neuen und 2234 gelöschten Zeilen
  1. 241 224
      rtl/Makefile
  2. 2 0
      rtl/aarch64/intrinsics.pp
  3. 992 9
      rtl/aix/Makefile
  4. 6 0
      rtl/aix/termio.pp
  5. 2 0
      rtl/amicommon/athreads.pp
  6. 14 0
      rtl/amicommon/classes.pp
  7. 2 0
      rtl/amicommon/dos.pp
  8. 7 0
      rtl/amicommon/lineinfo.pp
  9. 7 0
      rtl/amicommon/sysutils.pp
  10. 730 230
      rtl/amiga/Makefile
  11. 10 35
      rtl/amiga/Makefile.fpc
  12. 992 9
      rtl/android/Makefile
  13. 6 0
      rtl/android/cwstring.pp
  14. 2 0
      rtl/android/jvm/androidr14.pas
  15. 2 0
      rtl/arm/cpu.pp
  16. 730 230
      rtl/aros/Makefile
  17. 15 36
      rtl/aros/Makefile.fpc
  18. 730 230
      rtl/atari/Makefile
  19. 12 41
      rtl/atari/Makefile.fpc
  20. 14 0
      rtl/atari/classes.pp
  21. 2 0
      rtl/atari/dos.pp
  22. 7 0
      rtl/atari/sysutils.pp
  23. 2 0
      rtl/avr/intrinsics.pp
  24. 732 230
      rtl/beos/Makefile
  25. 19 207
      rtl/beos/Makefile.fpc
  26. 6 0
      rtl/beos/baseunix.pp
  27. 11 0
      rtl/beos/bethreads.pp
  28. 16 0
      rtl/beos/classes.pp
  29. 6 0
      rtl/beos/termio.pp
  30. 13 0
      rtl/bsd/bsd.pas
  31. 11 0
      rtl/bsd/sysctl.pp
  32. 7 0
      rtl/charmaps/cp1250.pas
  33. 7 0
      rtl/charmaps/cp1251.pas
  34. 7 0
      rtl/charmaps/cp1252.pas
  35. 7 0
      rtl/charmaps/cp1253.pas
  36. 7 0
      rtl/charmaps/cp1254.pas
  37. 7 0
      rtl/charmaps/cp1255.pas
  38. 7 0
      rtl/charmaps/cp1256.pas
  39. 7 0
      rtl/charmaps/cp1257.pas
  40. 7 0
      rtl/charmaps/cp1258.pas
  41. 7 0
      rtl/charmaps/cp3021.pas
  42. 7 0
      rtl/charmaps/cp437.pas
  43. 7 0
      rtl/charmaps/cp646.pas
  44. 7 0
      rtl/charmaps/cp737.pas
  45. 7 0
      rtl/charmaps/cp775.pas
  46. 7 0
      rtl/charmaps/cp850.pas
  47. 7 0
      rtl/charmaps/cp852.pas
  48. 7 0
      rtl/charmaps/cp855.pas
  49. 7 0
      rtl/charmaps/cp856.pas
  50. 7 0
      rtl/charmaps/cp857.pas
  51. 7 0
      rtl/charmaps/cp860.pas
  52. 7 0
      rtl/charmaps/cp861.pas
  53. 7 0
      rtl/charmaps/cp862.pas
  54. 7 0
      rtl/charmaps/cp863.pas
  55. 7 0
      rtl/charmaps/cp864.pas
  56. 7 0
      rtl/charmaps/cp865.pas
  57. 7 0
      rtl/charmaps/cp866.pas
  58. 7 0
      rtl/charmaps/cp869.pas
  59. 7 0
      rtl/charmaps/cp874.pas
  60. 7 0
      rtl/charmaps/cp8859_1.pas
  61. 7 0
      rtl/charmaps/cp8859_10.pas
  62. 7 0
      rtl/charmaps/cp8859_11.pas
  63. 7 0
      rtl/charmaps/cp8859_13.pas
  64. 7 0
      rtl/charmaps/cp8859_14.pas
  65. 7 0
      rtl/charmaps/cp8859_15.pas
  66. 7 0
      rtl/charmaps/cp8859_16.pas
  67. 7 0
      rtl/charmaps/cp8859_2.pas
  68. 7 0
      rtl/charmaps/cp8859_3.pas
  69. 7 0
      rtl/charmaps/cp8859_4.pas
  70. 7 0
      rtl/charmaps/cp8859_5.pas
  71. 7 0
      rtl/charmaps/cp8859_6.pas
  72. 7 0
      rtl/charmaps/cp8859_7.pas
  73. 7 0
      rtl/charmaps/cp8859_8.pas
  74. 7 0
      rtl/charmaps/cp8859_9.pas
  75. 20 0
      rtl/charmaps/cpall.pas
  76. 7 0
      rtl/charmaps/cpkoi8_r.pas
  77. 7 0
      rtl/charmaps/cpkoi8_u.pas
  78. 735 232
      rtl/darwin/Makefile
  79. 36 235
      rtl/darwin/Makefile.fpc
  80. 6 0
      rtl/darwin/console.pp
  81. 6 0
      rtl/darwin/termio.pp
  82. 992 9
      rtl/dragonfly/Makefile
  83. 6 0
      rtl/dragonfly/console.pp
  84. 6 0
      rtl/dragonfly/termio.pp
  85. 619 119
      rtl/embedded/Makefile
  86. 7 153
      rtl/embedded/Makefile.fpc
  87. 3 1
      rtl/embedded/aarch64/gpio.pp
  88. 8 1
      rtl/embedded/aarch64/mailbox.pp
  89. 3 1
      rtl/embedded/aarch64/mmio.pp
  90. 8 1
      rtl/embedded/aarch64/raspi3.pp
  91. 8 1
      rtl/embedded/aarch64/raspiuart.pp
  92. 2 0
      rtl/embedded/arm/allwinner_a20.pp
  93. 2 0
      rtl/embedded/arm/cortexm0.pp
  94. 2 0
      rtl/embedded/arm/cortexm3.pp
  95. 2 0
      rtl/embedded/arm/cortexm4.pp
  96. 2 0
      rtl/embedded/arm/cortexm7.pp
  97. 2 0
      rtl/embedded/arm/lm3fury.pp
  98. 2 0
      rtl/embedded/arm/lm3tempest.pp
  99. 2 0
      rtl/embedded/arm/lm4f120.pp
  100. 2 0
      rtl/embedded/arm/lpc11xx.pp

+ 241 - 224
rtl/Makefile

@@ -9,6 +9,7 @@ LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
 OSNeedsComspecToRunBatch = go32v2 watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
+lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 ifneq ($(findstring darwin,$(OSTYPE)),)
 ifneq ($(findstring darwin,$(OSTYPE)),)
 inUnix=1 #darwin
 inUnix=1 #darwin
@@ -165,8 +166,20 @@ endif
 ifndef OS_TARGET
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+CPU_OS_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+ifdef SUB_TARGET
+L_SUB_TARGET=$(call lc,$(SUB_TARGET))
+FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)-$(L_SUB_TARGET)
+else
+FULL_TARGET:=$(CPU_TARGET)-$(OS_TARGET)
+endif
+CPU_OS_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifdef SUB_SOURCE
+L_SUB_SOURCE=$(call lc,$(SUB_SOURCE))
+FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)-$(L_SUB_SOURCE)
+else
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+endif
 ifeq ($(CPU_TARGET),armeb)
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 ARCH=arm
 override FPCOPT+=-Cb
 override FPCOPT+=-Cb
@@ -180,6 +193,10 @@ endif
 endif
 endif
 ifeq ($(FULL_TARGET),aarch64-embedded)
 ifeq ($(FULL_TARGET),aarch64-embedded)
 endif
 endif
+ifdef SUB_TARGET 
+FPCOPT+=-t$(SUB_TARGET)
+FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
+endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
@@ -227,11 +244,11 @@ TARGETSUFFIX=$(FULL_TARGET)
 endif
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
 endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
+ifneq ($(CPU_OS_TARGET),$(CPU_OS_SOURCE))
 CROSSCOMPILE=1
 CROSSCOMPILE=1
 endif
 endif
 ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
 ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(filter $(FULL_TARGET),$(MAKEFILETARGETS)),)
+ifeq ($(filter $(CPU_OS_TARGET),$(MAKEFILETARGETS)),)
 $(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
 $(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
 endif
 endif
 endif
 endif
@@ -249,7 +266,7 @@ ifdef BUILDFULLNATIVE
 BUILDNATIVE=1
 BUILDNATIVE=1
 export BUILDNATIVE
 export BUILDNATIVE
 endif
 endif
-export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE SUB_TARGET SUB_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE CPU_OS_TARGET CPU_OS_SOURCE
 ifdef FPCDIR
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
@@ -351,334 +368,334 @@ endif
 endif
 endif
 override PACKAGE_NAME=rtl
 override PACKAGE_NAME=rtl
 override PACKAGE_VERSION=3.3.1
 override PACKAGE_VERSION=3.3.1
-ifeq ($(FULL_TARGET),i386-linux)
+ifeq ($(CPU_OS_TARGET),i386-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),i386-go32v2)
+ifeq ($(CPU_OS_TARGET),i386-go32v2)
 override TARGET_DIRS+=go32v2
 override TARGET_DIRS+=go32v2
 endif
 endif
-ifeq ($(FULL_TARGET),i386-win32)
+ifeq ($(CPU_OS_TARGET),i386-win32)
 override TARGET_DIRS+=win32
 override TARGET_DIRS+=win32
 endif
 endif
-ifeq ($(FULL_TARGET),i386-os2)
+ifeq ($(CPU_OS_TARGET),i386-os2)
 override TARGET_DIRS+=os2
 override TARGET_DIRS+=os2
 endif
 endif
-ifeq ($(FULL_TARGET),i386-freebsd)
+ifeq ($(CPU_OS_TARGET),i386-freebsd)
 override TARGET_DIRS+=freebsd
 override TARGET_DIRS+=freebsd
 endif
 endif
-ifeq ($(FULL_TARGET),i386-beos)
+ifeq ($(CPU_OS_TARGET),i386-beos)
 override TARGET_DIRS+=beos
 override TARGET_DIRS+=beos
 endif
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
+ifeq ($(CPU_OS_TARGET),i386-haiku)
 override TARGET_DIRS+=haiku
 override TARGET_DIRS+=haiku
 endif
 endif
-ifeq ($(FULL_TARGET),i386-netbsd)
+ifeq ($(CPU_OS_TARGET),i386-netbsd)
 override TARGET_DIRS+=netbsd
 override TARGET_DIRS+=netbsd
 endif
 endif
-ifeq ($(FULL_TARGET),i386-solaris)
+ifeq ($(CPU_OS_TARGET),i386-solaris)
 override TARGET_DIRS+=solaris
 override TARGET_DIRS+=solaris
 endif
 endif
-ifeq ($(FULL_TARGET),i386-netware)
+ifeq ($(CPU_OS_TARGET),i386-netware)
 override TARGET_DIRS+=netware
 override TARGET_DIRS+=netware
 endif
 endif
-ifeq ($(FULL_TARGET),i386-openbsd)
+ifeq ($(CPU_OS_TARGET),i386-openbsd)
 override TARGET_DIRS+=openbsd
 override TARGET_DIRS+=openbsd
 endif
 endif
-ifeq ($(FULL_TARGET),i386-wdosx)
+ifeq ($(CPU_OS_TARGET),i386-wdosx)
 override TARGET_DIRS+=win32
 override TARGET_DIRS+=win32
 endif
 endif
-ifeq ($(FULL_TARGET),i386-darwin)
+ifeq ($(CPU_OS_TARGET),i386-darwin)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),i386-emx)
+ifeq ($(CPU_OS_TARGET),i386-emx)
 override TARGET_DIRS+=emx
 override TARGET_DIRS+=emx
 endif
 endif
-ifeq ($(FULL_TARGET),i386-watcom)
+ifeq ($(CPU_OS_TARGET),i386-watcom)
 override TARGET_DIRS+=watcom
 override TARGET_DIRS+=watcom
 endif
 endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
+ifeq ($(CPU_OS_TARGET),i386-netwlibc)
 override TARGET_DIRS+=netwlibc
 override TARGET_DIRS+=netwlibc
 endif
 endif
-ifeq ($(FULL_TARGET),i386-wince)
+ifeq ($(CPU_OS_TARGET),i386-wince)
 override TARGET_DIRS+=wince
 override TARGET_DIRS+=wince
 endif
 endif
-ifeq ($(FULL_TARGET),i386-embedded)
+ifeq ($(CPU_OS_TARGET),i386-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),i386-symbian)
+ifeq ($(CPU_OS_TARGET),i386-symbian)
 override TARGET_DIRS+=symbian
 override TARGET_DIRS+=symbian
 endif
 endif
-ifeq ($(FULL_TARGET),i386-nativent)
+ifeq ($(CPU_OS_TARGET),i386-nativent)
 override TARGET_DIRS+=nativent
 override TARGET_DIRS+=nativent
 endif
 endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
+ifeq ($(CPU_OS_TARGET),i386-iphonesim)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),i386-android)
+ifeq ($(CPU_OS_TARGET),i386-android)
 override TARGET_DIRS+=android
 override TARGET_DIRS+=android
 endif
 endif
-ifeq ($(FULL_TARGET),i386-aros)
+ifeq ($(CPU_OS_TARGET),i386-aros)
 override TARGET_DIRS+=aros
 override TARGET_DIRS+=aros
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-linux)
+ifeq ($(CPU_OS_TARGET),m68k-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
+ifeq ($(CPU_OS_TARGET),m68k-netbsd)
 override TARGET_DIRS+=netbsd
 override TARGET_DIRS+=netbsd
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-amiga)
+ifeq ($(CPU_OS_TARGET),m68k-amiga)
 override TARGET_DIRS+=amiga
 override TARGET_DIRS+=amiga
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-atari)
+ifeq ($(CPU_OS_TARGET),m68k-atari)
 override TARGET_DIRS+=atari
 override TARGET_DIRS+=atari
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-palmos)
+ifeq ($(CPU_OS_TARGET),m68k-palmos)
 override TARGET_DIRS+=palmos
 override TARGET_DIRS+=palmos
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-macosclassic)
+ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
 override TARGET_DIRS+=macos
 override TARGET_DIRS+=macos
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-embedded)
+ifeq ($(CPU_OS_TARGET),m68k-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-sinclairql)
+ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
 override TARGET_DIRS+=sinclairql
 override TARGET_DIRS+=sinclairql
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-linux)
+ifeq ($(CPU_OS_TARGET),powerpc-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
+ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
 override TARGET_DIRS+=netbsd
 override TARGET_DIRS+=netbsd
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
+ifeq ($(CPU_OS_TARGET),powerpc-amiga)
 override TARGET_DIRS+=amiga
 override TARGET_DIRS+=amiga
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-macosclassic)
+ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
 override TARGET_DIRS+=macos
 override TARGET_DIRS+=macos
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc-darwin)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
+ifeq ($(CPU_OS_TARGET),powerpc-morphos)
 override TARGET_DIRS+=morphos
 override TARGET_DIRS+=morphos
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-wii)
+ifeq ($(CPU_OS_TARGET),powerpc-wii)
 override TARGET_DIRS+=wii
 override TARGET_DIRS+=wii
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-aix)
+ifeq ($(CPU_OS_TARGET),powerpc-aix)
 override TARGET_DIRS+=aix
 override TARGET_DIRS+=aix
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-linux)
+ifeq ($(CPU_OS_TARGET),sparc-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
+ifeq ($(CPU_OS_TARGET),sparc-netbsd)
 override TARGET_DIRS+=netbsd
 override TARGET_DIRS+=netbsd
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-solaris)
+ifeq ($(CPU_OS_TARGET),sparc-solaris)
 override TARGET_DIRS+=solaris
 override TARGET_DIRS+=solaris
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-embedded)
+ifeq ($(CPU_OS_TARGET),sparc-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-linux)
+ifeq ($(CPU_OS_TARGET),x86_64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
+ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
 override TARGET_DIRS+=freebsd
 override TARGET_DIRS+=freebsd
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-haiku)
+ifeq ($(CPU_OS_TARGET),x86_64-haiku)
 override TARGET_DIRS+=haiku
 override TARGET_DIRS+=haiku
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
 override TARGET_DIRS+=netbsd
 override TARGET_DIRS+=netbsd
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
+ifeq ($(CPU_OS_TARGET),x86_64-solaris)
 override TARGET_DIRS+=solaris
 override TARGET_DIRS+=solaris
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
 override TARGET_DIRS+=openbsd
 override TARGET_DIRS+=openbsd
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
+ifeq ($(CPU_OS_TARGET),x86_64-darwin)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-win64)
+ifeq ($(CPU_OS_TARGET),x86_64-win64)
 override TARGET_DIRS+=win64
 override TARGET_DIRS+=win64
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
+ifeq ($(CPU_OS_TARGET),x86_64-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
+ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-android)
+ifeq ($(CPU_OS_TARGET),x86_64-android)
 override TARGET_DIRS+=android
 override TARGET_DIRS+=android
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-aros)
+ifeq ($(CPU_OS_TARGET),x86_64-aros)
 override TARGET_DIRS+=aros
 override TARGET_DIRS+=aros
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-dragonfly)
+ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
 override TARGET_DIRS+=dragonfly
 override TARGET_DIRS+=dragonfly
 endif
 endif
-ifeq ($(FULL_TARGET),arm-linux)
+ifeq ($(CPU_OS_TARGET),arm-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),arm-netbsd)
+ifeq ($(CPU_OS_TARGET),arm-netbsd)
 override TARGET_DIRS+=netbsd
 override TARGET_DIRS+=netbsd
 endif
 endif
-ifeq ($(FULL_TARGET),arm-palmos)
+ifeq ($(CPU_OS_TARGET),arm-palmos)
 override TARGET_DIRS+=palmos
 override TARGET_DIRS+=palmos
 endif
 endif
-ifeq ($(FULL_TARGET),arm-wince)
+ifeq ($(CPU_OS_TARGET),arm-wince)
 override TARGET_DIRS+=wince
 override TARGET_DIRS+=wince
 endif
 endif
-ifeq ($(FULL_TARGET),arm-gba)
+ifeq ($(CPU_OS_TARGET),arm-gba)
 override TARGET_DIRS+=gba
 override TARGET_DIRS+=gba
 endif
 endif
-ifeq ($(FULL_TARGET),arm-nds)
+ifeq ($(CPU_OS_TARGET),arm-nds)
 override TARGET_DIRS+=nds
 override TARGET_DIRS+=nds
 endif
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),arm-symbian)
+ifeq ($(CPU_OS_TARGET),arm-symbian)
 override TARGET_DIRS+=symbian
 override TARGET_DIRS+=symbian
 endif
 endif
-ifeq ($(FULL_TARGET),arm-android)
+ifeq ($(CPU_OS_TARGET),arm-android)
 override TARGET_DIRS+=android
 override TARGET_DIRS+=android
 endif
 endif
-ifeq ($(FULL_TARGET),arm-aros)
+ifeq ($(CPU_OS_TARGET),arm-aros)
 override TARGET_DIRS+=aros
 override TARGET_DIRS+=aros
 endif
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 override TARGET_DIRS+=freertos
 override TARGET_DIRS+=freertos
 endif
 endif
-ifeq ($(FULL_TARGET),arm-ios)
+ifeq ($(CPU_OS_TARGET),arm-ios)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
+ifeq ($(CPU_OS_TARGET),powerpc64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
+ifeq ($(CPU_OS_TARGET),powerpc64-aix)
 override TARGET_DIRS+=aix
 override TARGET_DIRS+=aix
 endif
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),armeb-linux)
+ifeq ($(CPU_OS_TARGET),armeb-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),armeb-embedded)
+ifeq ($(CPU_OS_TARGET),armeb-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),mips-linux)
+ifeq ($(CPU_OS_TARGET),mips-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-linux)
+ifeq ($(CPU_OS_TARGET),mipsel-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-android)
+ifeq ($(CPU_OS_TARGET),mipsel-android)
 override TARGET_DIRS+=android
 override TARGET_DIRS+=android
 endif
 endif
-ifeq ($(FULL_TARGET),mips64-linux)
+ifeq ($(CPU_OS_TARGET),mips64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),mips64el-linux)
+ifeq ($(CPU_OS_TARGET),mips64el-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),jvm-java)
+ifeq ($(CPU_OS_TARGET),jvm-java)
 override TARGET_DIRS+=java
 override TARGET_DIRS+=java
 endif
 endif
-ifeq ($(FULL_TARGET),jvm-android)
+ifeq ($(CPU_OS_TARGET),jvm-android)
 override TARGET_DIRS+=android/jvm
 override TARGET_DIRS+=android/jvm
 endif
 endif
-ifeq ($(FULL_TARGET),i8086-embedded)
+ifeq ($(CPU_OS_TARGET),i8086-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),i8086-msdos)
+ifeq ($(CPU_OS_TARGET),i8086-msdos)
 override TARGET_DIRS+=msdos
 override TARGET_DIRS+=msdos
 endif
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
+ifeq ($(CPU_OS_TARGET),i8086-win16)
 override TARGET_DIRS+=win16
 override TARGET_DIRS+=win16
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-linux)
+ifeq ($(CPU_OS_TARGET),aarch64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-freebsd)
+ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
 override TARGET_DIRS+=freebsd
 override TARGET_DIRS+=freebsd
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
+ifeq ($(CPU_OS_TARGET),aarch64-darwin)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-win64)
+ifeq ($(CPU_OS_TARGET),aarch64-win64)
 override TARGET_DIRS+=win64
 override TARGET_DIRS+=win64
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-iphonesim)
+ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-android)
+ifeq ($(CPU_OS_TARGET),aarch64-android)
 override TARGET_DIRS+=android
 override TARGET_DIRS+=android
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-ios)
+ifeq ($(CPU_OS_TARGET),aarch64-ios)
 override TARGET_DIRS+=darwin
 override TARGET_DIRS+=darwin
 endif
 endif
-ifeq ($(FULL_TARGET),wasm32-embedded)
+ifeq ($(CPU_OS_TARGET),wasm32-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),wasm32-wasi)
+ifeq ($(CPU_OS_TARGET),wasm32-wasi)
 override TARGET_DIRS+=wasi
 override TARGET_DIRS+=wasi
 endif
 endif
-ifeq ($(FULL_TARGET),sparc64-linux)
+ifeq ($(CPU_OS_TARGET),sparc64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),riscv32-linux)
+ifeq ($(CPU_OS_TARGET),riscv32-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),riscv32-embedded)
+ifeq ($(CPU_OS_TARGET),riscv32-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),riscv32-freertos)
+ifeq ($(CPU_OS_TARGET),riscv32-freertos)
 override TARGET_DIRS+=freertos
 override TARGET_DIRS+=freertos
 endif
 endif
-ifeq ($(FULL_TARGET),riscv64-linux)
+ifeq ($(CPU_OS_TARGET),riscv64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),riscv64-embedded)
+ifeq ($(CPU_OS_TARGET),riscv64-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-linux)
+ifeq ($(CPU_OS_TARGET),xtensa-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 override TARGET_DIRS+=freertos
 override TARGET_DIRS+=freertos
 endif
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(CPU_OS_TARGET),z80-embedded)
 override TARGET_DIRS+=embedded
 override TARGET_DIRS+=embedded
 endif
 endif
-ifeq ($(FULL_TARGET),z80-zxspectrum)
+ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
 override TARGET_DIRS+=zxspectrum
 override TARGET_DIRS+=zxspectrum
 endif
 endif
-ifeq ($(FULL_TARGET),z80-msxdos)
+ifeq ($(CPU_OS_TARGET),z80-msxdos)
 override TARGET_DIRS+=msxdos
 override TARGET_DIRS+=msxdos
 endif
 endif
-ifeq ($(FULL_TARGET),loongarch64-linux)
+ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_DIRS+=linux
 override TARGET_DIRS+=linux
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
@@ -2009,334 +2026,334 @@ endif
 fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
 fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
 fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
 fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
 fpc_makefiles: fpc_makefile fpc_makefile_dirs
 fpc_makefiles: fpc_makefile fpc_makefile_dirs
-ifeq ($(FULL_TARGET),i386-linux)
+ifeq ($(CPU_OS_TARGET),i386-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-go32v2)
+ifeq ($(CPU_OS_TARGET),i386-go32v2)
 TARGET_DIRS_GO32V2=1
 TARGET_DIRS_GO32V2=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-win32)
+ifeq ($(CPU_OS_TARGET),i386-win32)
 TARGET_DIRS_WIN32=1
 TARGET_DIRS_WIN32=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-os2)
+ifeq ($(CPU_OS_TARGET),i386-os2)
 TARGET_DIRS_OS2=1
 TARGET_DIRS_OS2=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-freebsd)
+ifeq ($(CPU_OS_TARGET),i386-freebsd)
 TARGET_DIRS_FREEBSD=1
 TARGET_DIRS_FREEBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-beos)
+ifeq ($(CPU_OS_TARGET),i386-beos)
 TARGET_DIRS_BEOS=1
 TARGET_DIRS_BEOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
+ifeq ($(CPU_OS_TARGET),i386-haiku)
 TARGET_DIRS_HAIKU=1
 TARGET_DIRS_HAIKU=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-netbsd)
+ifeq ($(CPU_OS_TARGET),i386-netbsd)
 TARGET_DIRS_NETBSD=1
 TARGET_DIRS_NETBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-solaris)
+ifeq ($(CPU_OS_TARGET),i386-solaris)
 TARGET_DIRS_SOLARIS=1
 TARGET_DIRS_SOLARIS=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-netware)
+ifeq ($(CPU_OS_TARGET),i386-netware)
 TARGET_DIRS_NETWARE=1
 TARGET_DIRS_NETWARE=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-openbsd)
+ifeq ($(CPU_OS_TARGET),i386-openbsd)
 TARGET_DIRS_OPENBSD=1
 TARGET_DIRS_OPENBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-wdosx)
+ifeq ($(CPU_OS_TARGET),i386-wdosx)
 TARGET_DIRS_WIN32=1
 TARGET_DIRS_WIN32=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-darwin)
+ifeq ($(CPU_OS_TARGET),i386-darwin)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-emx)
+ifeq ($(CPU_OS_TARGET),i386-emx)
 TARGET_DIRS_EMX=1
 TARGET_DIRS_EMX=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-watcom)
+ifeq ($(CPU_OS_TARGET),i386-watcom)
 TARGET_DIRS_WATCOM=1
 TARGET_DIRS_WATCOM=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
+ifeq ($(CPU_OS_TARGET),i386-netwlibc)
 TARGET_DIRS_NETWLIBC=1
 TARGET_DIRS_NETWLIBC=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-wince)
+ifeq ($(CPU_OS_TARGET),i386-wince)
 TARGET_DIRS_WINCE=1
 TARGET_DIRS_WINCE=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-embedded)
+ifeq ($(CPU_OS_TARGET),i386-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-symbian)
+ifeq ($(CPU_OS_TARGET),i386-symbian)
 TARGET_DIRS_SYMBIAN=1
 TARGET_DIRS_SYMBIAN=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-nativent)
+ifeq ($(CPU_OS_TARGET),i386-nativent)
 TARGET_DIRS_NATIVENT=1
 TARGET_DIRS_NATIVENT=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
+ifeq ($(CPU_OS_TARGET),i386-iphonesim)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-android)
+ifeq ($(CPU_OS_TARGET),i386-android)
 TARGET_DIRS_ANDROID=1
 TARGET_DIRS_ANDROID=1
 endif
 endif
-ifeq ($(FULL_TARGET),i386-aros)
+ifeq ($(CPU_OS_TARGET),i386-aros)
 TARGET_DIRS_AROS=1
 TARGET_DIRS_AROS=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-linux)
+ifeq ($(CPU_OS_TARGET),m68k-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
+ifeq ($(CPU_OS_TARGET),m68k-netbsd)
 TARGET_DIRS_NETBSD=1
 TARGET_DIRS_NETBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-amiga)
+ifeq ($(CPU_OS_TARGET),m68k-amiga)
 TARGET_DIRS_AMIGA=1
 TARGET_DIRS_AMIGA=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-atari)
+ifeq ($(CPU_OS_TARGET),m68k-atari)
 TARGET_DIRS_ATARI=1
 TARGET_DIRS_ATARI=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-palmos)
+ifeq ($(CPU_OS_TARGET),m68k-palmos)
 TARGET_DIRS_PALMOS=1
 TARGET_DIRS_PALMOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-macosclassic)
+ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
 TARGET_DIRS_MACOS=1
 TARGET_DIRS_MACOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-embedded)
+ifeq ($(CPU_OS_TARGET),m68k-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),m68k-sinclairql)
+ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
 TARGET_DIRS_SINCLAIRQL=1
 TARGET_DIRS_SINCLAIRQL=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-linux)
+ifeq ($(CPU_OS_TARGET),powerpc-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
+ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
 TARGET_DIRS_NETBSD=1
 TARGET_DIRS_NETBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
+ifeq ($(CPU_OS_TARGET),powerpc-amiga)
 TARGET_DIRS_AMIGA=1
 TARGET_DIRS_AMIGA=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-macosclassic)
+ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
 TARGET_DIRS_MACOS=1
 TARGET_DIRS_MACOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc-darwin)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
+ifeq ($(CPU_OS_TARGET),powerpc-morphos)
 TARGET_DIRS_MORPHOS=1
 TARGET_DIRS_MORPHOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-wii)
+ifeq ($(CPU_OS_TARGET),powerpc-wii)
 TARGET_DIRS_WII=1
 TARGET_DIRS_WII=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc-aix)
+ifeq ($(CPU_OS_TARGET),powerpc-aix)
 TARGET_DIRS_AIX=1
 TARGET_DIRS_AIX=1
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-linux)
+ifeq ($(CPU_OS_TARGET),sparc-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
+ifeq ($(CPU_OS_TARGET),sparc-netbsd)
 TARGET_DIRS_NETBSD=1
 TARGET_DIRS_NETBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-solaris)
+ifeq ($(CPU_OS_TARGET),sparc-solaris)
 TARGET_DIRS_SOLARIS=1
 TARGET_DIRS_SOLARIS=1
 endif
 endif
-ifeq ($(FULL_TARGET),sparc-embedded)
+ifeq ($(CPU_OS_TARGET),sparc-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-linux)
+ifeq ($(CPU_OS_TARGET),x86_64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
+ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
 TARGET_DIRS_FREEBSD=1
 TARGET_DIRS_FREEBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-haiku)
+ifeq ($(CPU_OS_TARGET),x86_64-haiku)
 TARGET_DIRS_HAIKU=1
 TARGET_DIRS_HAIKU=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
 TARGET_DIRS_NETBSD=1
 TARGET_DIRS_NETBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
+ifeq ($(CPU_OS_TARGET),x86_64-solaris)
 TARGET_DIRS_SOLARIS=1
 TARGET_DIRS_SOLARIS=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
 TARGET_DIRS_OPENBSD=1
 TARGET_DIRS_OPENBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
+ifeq ($(CPU_OS_TARGET),x86_64-darwin)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-win64)
+ifeq ($(CPU_OS_TARGET),x86_64-win64)
 TARGET_DIRS_WIN64=1
 TARGET_DIRS_WIN64=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
+ifeq ($(CPU_OS_TARGET),x86_64-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
+ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-android)
+ifeq ($(CPU_OS_TARGET),x86_64-android)
 TARGET_DIRS_ANDROID=1
 TARGET_DIRS_ANDROID=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-aros)
+ifeq ($(CPU_OS_TARGET),x86_64-aros)
 TARGET_DIRS_AROS=1
 TARGET_DIRS_AROS=1
 endif
 endif
-ifeq ($(FULL_TARGET),x86_64-dragonfly)
+ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
 TARGET_DIRS_DRAGONFLY=1
 TARGET_DIRS_DRAGONFLY=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-linux)
+ifeq ($(CPU_OS_TARGET),arm-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-netbsd)
+ifeq ($(CPU_OS_TARGET),arm-netbsd)
 TARGET_DIRS_NETBSD=1
 TARGET_DIRS_NETBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-palmos)
+ifeq ($(CPU_OS_TARGET),arm-palmos)
 TARGET_DIRS_PALMOS=1
 TARGET_DIRS_PALMOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-wince)
+ifeq ($(CPU_OS_TARGET),arm-wince)
 TARGET_DIRS_WINCE=1
 TARGET_DIRS_WINCE=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-gba)
+ifeq ($(CPU_OS_TARGET),arm-gba)
 TARGET_DIRS_GBA=1
 TARGET_DIRS_GBA=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-nds)
+ifeq ($(CPU_OS_TARGET),arm-nds)
 TARGET_DIRS_NDS=1
 TARGET_DIRS_NDS=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-symbian)
+ifeq ($(CPU_OS_TARGET),arm-symbian)
 TARGET_DIRS_SYMBIAN=1
 TARGET_DIRS_SYMBIAN=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-android)
+ifeq ($(CPU_OS_TARGET),arm-android)
 TARGET_DIRS_ANDROID=1
 TARGET_DIRS_ANDROID=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-aros)
+ifeq ($(CPU_OS_TARGET),arm-aros)
 TARGET_DIRS_AROS=1
 TARGET_DIRS_AROS=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 TARGET_DIRS_FREERTOS=1
 TARGET_DIRS_FREERTOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),arm-ios)
+ifeq ($(CPU_OS_TARGET),arm-ios)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
+ifeq ($(CPU_OS_TARGET),powerpc64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
+ifeq ($(CPU_OS_TARGET),powerpc64-aix)
 TARGET_DIRS_AIX=1
 TARGET_DIRS_AIX=1
 endif
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),armeb-linux)
+ifeq ($(CPU_OS_TARGET),armeb-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),armeb-embedded)
+ifeq ($(CPU_OS_TARGET),armeb-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),mips-linux)
+ifeq ($(CPU_OS_TARGET),mips-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-linux)
+ifeq ($(CPU_OS_TARGET),mipsel-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-android)
+ifeq ($(CPU_OS_TARGET),mipsel-android)
 TARGET_DIRS_ANDROID=1
 TARGET_DIRS_ANDROID=1
 endif
 endif
-ifeq ($(FULL_TARGET),mips64-linux)
+ifeq ($(CPU_OS_TARGET),mips64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),mips64el-linux)
+ifeq ($(CPU_OS_TARGET),mips64el-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),jvm-java)
+ifeq ($(CPU_OS_TARGET),jvm-java)
 TARGET_DIRS_JAVA=1
 TARGET_DIRS_JAVA=1
 endif
 endif
-ifeq ($(FULL_TARGET),jvm-android)
+ifeq ($(CPU_OS_TARGET),jvm-android)
 TARGET_DIRS_ANDROID/JVM=1
 TARGET_DIRS_ANDROID/JVM=1
 endif
 endif
-ifeq ($(FULL_TARGET),i8086-embedded)
+ifeq ($(CPU_OS_TARGET),i8086-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),i8086-msdos)
+ifeq ($(CPU_OS_TARGET),i8086-msdos)
 TARGET_DIRS_MSDOS=1
 TARGET_DIRS_MSDOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
+ifeq ($(CPU_OS_TARGET),i8086-win16)
 TARGET_DIRS_WIN16=1
 TARGET_DIRS_WIN16=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-linux)
+ifeq ($(CPU_OS_TARGET),aarch64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-freebsd)
+ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
 TARGET_DIRS_FREEBSD=1
 TARGET_DIRS_FREEBSD=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
+ifeq ($(CPU_OS_TARGET),aarch64-darwin)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-win64)
+ifeq ($(CPU_OS_TARGET),aarch64-win64)
 TARGET_DIRS_WIN64=1
 TARGET_DIRS_WIN64=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-iphonesim)
+ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-android)
+ifeq ($(CPU_OS_TARGET),aarch64-android)
 TARGET_DIRS_ANDROID=1
 TARGET_DIRS_ANDROID=1
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-ios)
+ifeq ($(CPU_OS_TARGET),aarch64-ios)
 TARGET_DIRS_DARWIN=1
 TARGET_DIRS_DARWIN=1
 endif
 endif
-ifeq ($(FULL_TARGET),wasm32-embedded)
+ifeq ($(CPU_OS_TARGET),wasm32-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),wasm32-wasi)
+ifeq ($(CPU_OS_TARGET),wasm32-wasi)
 TARGET_DIRS_WASI=1
 TARGET_DIRS_WASI=1
 endif
 endif
-ifeq ($(FULL_TARGET),sparc64-linux)
+ifeq ($(CPU_OS_TARGET),sparc64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),riscv32-linux)
+ifeq ($(CPU_OS_TARGET),riscv32-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),riscv32-embedded)
+ifeq ($(CPU_OS_TARGET),riscv32-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),riscv32-freertos)
+ifeq ($(CPU_OS_TARGET),riscv32-freertos)
 TARGET_DIRS_FREERTOS=1
 TARGET_DIRS_FREERTOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),riscv64-linux)
+ifeq ($(CPU_OS_TARGET),riscv64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),riscv64-embedded)
+ifeq ($(CPU_OS_TARGET),riscv64-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-linux)
+ifeq ($(CPU_OS_TARGET),xtensa-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 TARGET_DIRS_FREERTOS=1
 TARGET_DIRS_FREERTOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(CPU_OS_TARGET),z80-embedded)
 TARGET_DIRS_EMBEDDED=1
 TARGET_DIRS_EMBEDDED=1
 endif
 endif
-ifeq ($(FULL_TARGET),z80-zxspectrum)
+ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
 TARGET_DIRS_ZXSPECTRUM=1
 TARGET_DIRS_ZXSPECTRUM=1
 endif
 endif
-ifeq ($(FULL_TARGET),z80-msxdos)
+ifeq ($(CPU_OS_TARGET),z80-msxdos)
 TARGET_DIRS_MSXDOS=1
 TARGET_DIRS_MSXDOS=1
 endif
 endif
-ifeq ($(FULL_TARGET),loongarch64-linux)
+ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 TARGET_DIRS_LINUX=1
 TARGET_DIRS_LINUX=1
 endif
 endif
 ifdef TARGET_DIRS_LINUX
 ifdef TARGET_DIRS_LINUX

+ 2 - 0
rtl/aarch64/intrinsics.pp

@@ -12,7 +12,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit intrinsics;
 unit intrinsics;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 

+ 992 - 9
rtl/aix/Makefile

@@ -102,7 +102,7 @@ endif
 export ECHO
 export ECHO
 endif
 endif
 override OS_TARGET_DEFAULT=aix
 override OS_TARGET_DEFAULT=aix
-override DEFAULT_FPCDIR=../..
+override DEFAULT_FPCDIR=../.. ../..
 ifndef FPC
 ifndef FPC
 ifdef PP
 ifdef PP
 FPC=$(PP)
 FPC=$(PP)
@@ -192,43 +192,43 @@ else
 ARCH=$(CPU_TARGET)
 ARCH=$(CPU_TARGET)
 endif
 endif
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 endif
 endif
 ifdef SUB_TARGET 
 ifdef SUB_TARGET 
 FPCOPT+=-t$(SUB_TARGET)
 FPCOPT+=-t$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 endif
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 endif
 endif
@@ -369,6 +369,506 @@ endif
 endif
 endif
 override PACKAGE_NAME=rtl
 override PACKAGE_NAME=rtl
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
+ifdef FPC_DOTTEDUNITS
+AIOUNIT=NetWareApi.Aio
+ALLWINNER_A20UNIT=Embedded.Allwinner_a20
+ANDROIDR14UNIT=AndroidAPI.AndroidR14
+ATHREADSUNIT=AmigaApi.AThreads
+BASEUNIXUNIT=UnixApi.Base
+BETHREADSUNIT=BeosApi.Bethreads
+BLOCKRTLUNIT=blockrtl
+BSDUNIT=BsdApi
+CHARACTERUNIT=System.Character
+CHARSETUNIT=System.CharSet
+CLASSESUNIT=System.Classes
+CMEMUNIT=System.CMem
+COMMONUNIT=PalmApi.Common
+CONSOLEUNIT=System.Console
+CONSOLEIOUNIT=EmbeddedApi.ConsoleIO
+CORTEXM0UNIT=ARMApi.Cortexm0
+CORTEXM3UNIT=ARMApi.Cortexm3
+CORTEXM4UNIT=ARMApi.Cortexm4
+CORTEXM7UNIT=ARMApi.Cortexm7
+CP1250UNIT=System.CodePages.CP1250
+CP1251UNIT=System.CodePages.CP1251
+CP1252UNIT=System.CodePages.CP1252
+CP1253UNIT=System.CodePages.CP1253
+CP1254UNIT=System.CodePages.CP1254
+CP1255UNIT=System.CodePages.CP1255
+CP1256UNIT=System.CodePages.CP1256
+CP1257UNIT=System.CodePages.CP1257
+CP1258UNIT=System.CodePages.CP1258
+CP3021UNIT=System.CodePages.CP3021
+CP437UNIT=System.CodePages.CP437
+CP646UNIT=System.CodePages.CP646
+CP737UNIT=System.CodePages.CP737
+CP775UNIT=System.CodePages.CP775
+CP850UNIT=System.CodePages.CP850
+CP852UNIT=System.CodePages.CP852
+CP855UNIT=System.CodePages.CP855
+CP856UNIT=System.CodePages.CP856
+CP857UNIT=System.CodePages.CP857
+CP860UNIT=System.CodePages.CP860
+CP861UNIT=System.CodePages.CP861
+CP862UNIT=System.CodePages.CP862
+CP863UNIT=System.CodePages.CP863
+CP864UNIT=System.CodePages.CP864
+CP865UNIT=System.CodePages.CP865
+CP866UNIT=System.CodePages.CP866
+CP869UNIT=System.CodePages.CP869
+CP874UNIT=System.CodePages.CP874
+CP8859_1UNIT=System.CodePages.CP8859_1
+CP8859_10UNIT=System.CodePages.CP8859_10
+CP8859_11UNIT=System.CodePages.CP8859_11
+CP8859_13UNIT=System.CodePages.CP8859_13
+CP8859_14UNIT=System.CodePages.CP8859_14
+CP8859_15UNIT=System.CodePages.CP8859_15
+CP8859_16UNIT=System.CodePages.CP8859_16
+CP8859_2UNIT=System.CodePages.CP8859_2
+CP8859_3UNIT=System.CodePages.CP8859_3
+CP8859_4UNIT=System.CodePages.CP8859_4
+CP8859_5UNIT=System.CodePages.CP8859_5
+CP8859_6UNIT=System.CodePages.CP8859_6
+CP8859_7UNIT=System.CodePages.CP8859_7
+CP8859_8UNIT=System.CodePages.CP8859_8
+CP8859_9UNIT=System.CodePages.CP8859_9
+CPALLUNIT=System.CodePages.All
+CPKOI8_RUNIT=System.CodePages.CPkoi8_r
+CPKOI8_UUNIT=System.CodePages.CPkoi8_u
+CPUUNIT=System.CPU
+CTHREADSUNIT=UnixApi.CThreads
+CTYPESUNIT=System.CTypes
+CWSTRINGUNIT=UnixApi.CWString
+DDKUNIT=NTApi.Ddk
+DLUNIT=UnixApi.Dl
+DOSUNIT=TP.DOS
+DOSCALL2UNIT=OS2Api.Doscall2
+DOSCALLSUNIT=OS2Api.Doscalls
+DPMIEXCPUNIT=DOSApi.Dpmiexcp
+DXELOADUNIT=DOSApi.Dxeload
+DXETYPEUNIT=DOSApi.Dxetype
+DYNLIBSUNIT=System.DynLibs
+EMU387UNIT=DOSApi.EMU387
+EMXUNIT=DOSApi.EMX
+ERRORSUNIT=System.Errors
+ESP32UNIT=System.Esp32
+ESP8266UNIT=System.Esp8266
+ESP8266RTOS_30300UNIT=System.Esp8266rtos_30300
+ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
+ESPIDF_40100UNIT=System.Espidf_40100
+ESPIDF_40200UNIT=System.Espidf_40200
+ESPIDF_40400UNIT=System.Espidf_40400
+EXEUNIT=OS2Api.Exe
+EXEINFOUNIT=System.Exeinfo
+EXTPASUNIT=extpas
+FE310G000UNIT=EmbeddedApi.Fe310g000
+FE310G002UNIT=EmbeddedApi.Fe310g002
+FGLUNIT=System.FGL
+FPCMEMDLLUNIT=System.FPCMemDLL
+FPCYLIXUNIT=fpcylix
+FPWIDESTRINGUNIT=System.FPWideString
+FREEBSDUNIT=FreeBSDApi.FreeBSD
+GD32VF103XXUNIT=EmbeddedApi.Gd32vf103xx
+GETOPTSUNIT=System.GetOpts
+GO32UNIT=DOSApi.GO32
+GPIOUNIT=EmbeddedApi.Gpio
+HEAPMGRUNIT=EmbeddedApi.HeapMGR
+INITCUNIT=System.InitC
+INTRINSICSUNIT=System.Intrinsics
+ISO7185UNIT=iso7185
+JDK15UNIT=JavaApi.JDK15
+KBDCALLSUNIT=OS2Api.Kbdcalls
+LIBCUNIT=NetwareLibCApi.Libc
+LINEINFOUNIT=System.LineInfo
+LINUXUNIT=LinuxApi
+LINUXVCSUNIT=LinuxApi.Vcs
+LM3FURYUNIT=EmbeddedApi.Lm3fury
+LM3TEMPESTUNIT=EmbeddedApi.Lm3tempest
+LM4F120UNIT=EmbeddedApi.Lm4f120
+LNFODWRFUNIT=System.LineInfo.Dwarf
+LNFOGDBUNIT=System.LineInfo.Gdb
+LPC11XXUNIT=EmbeddedApi.Lpc11xx
+LPC122XUNIT=EmbeddedApi.Lpc122x
+LPC13XXUNIT=EmbeddedApi.Lpc13xx
+LPC1768UNIT=EmbeddedApi.Lpc1768
+LPC21X4UNIT=EmbeddedApi.Lpc21x4
+LPC8XXUNIT=EmbeddedApi.Lpc8xx
+LSTRINGSUNIT=System.LStrings
+MACOSUNIT=MacOSApi.MacOS
+MACOSTPUNIT=MacOSApi.MacOSTP
+MACUTILSUNIT=MacOSApi.MacUtils
+MAILBOXUNIT=EmbeddedApi.Mailbox
+MATHUNIT=System.Math
+MESSAGESUNIT=WinApi.Messages
+MK20D5UNIT=EmbeddedApi.Mk20d5
+MK20D7UNIT=EmbeddedApi.Mk20d7
+MK22F51212UNIT=EmbeddedApi.Mk22f51212
+MK64F12UNIT=EmbeddedApi.Mk64f12
+MMIOUNIT=EmbeddedApi.Mmio
+MMXUNIT=System.CPU.MMX
+MONCALLSUNIT=OS2Api.Moncalls
+MOUCALLSUNIT=OS2Api.Moucalls
+MSMOUSEUNIT=DOSApi.MSMouse
+MULTIBOOTUNIT=EmbeddedApi.Multiboot
+NDKUNIT=NTApi.NDK
+NDKUTILSUNIT=NTApi.NDKUtils
+NETWAREUNIT=NetwareApi.NetWare
+NEWEXEUNIT=OS2Api.Newexe
+NRF51UNIT=EmbeddedApi.Nrf51
+NRF52UNIT=EmbeddedApi.Nrf52
+NWCALLSUNIT=NetWareApi.Nwcalls
+NWNITUNIT=NetWareApi.Nwnit
+NWPREUNIT=NetWareApi.Nwpre
+NWPROTUNIT=NetWareApi.Nwprot
+NWSERVUNIT=NetWareApi.Nwserv
+NWSNUTUNIT=NetWareApi.Nwsnut
+OBJCUNIT=objc
+OBJCBASEUNIT=objcbase
+OS2DEFUNIT=OS2Api.Os2def
+PAGEMEMUNIT=System.PageMem
+PILOTUNIT=PalmApi.Pilot
+PMBIDIUNIT=OS2Api.Pmbidi
+PMBITMAPUNIT=OS2Api.Pmbitmap
+PMDEVUNIT=OS2Api.Pmdev
+PMGPIUNIT=OS2Api.Pmgpi
+PMHELPUNIT=OS2Api.Pmhelp
+PMSHLUNIT=OS2Api.Pmshl
+PMSPLUNIT=OS2Api.Pmspl
+PMSTDDLGUNIT=OS2Api.Pmstddlg
+PMWINUNIT=OS2Api.Pmwin
+PMWPUNIT=OS2Api.Pmwp
+PMWSOCKUNIT=OS2Api.Pmwsock
+PORTSUNIT=System.Ports
+POSIXUNIT=QNXApi.Posix
+PROFILEUNIT=DOSApi.Profile
+RASPI2UNIT=EmbeddedApi.Raspi2
+RASPI3UNIT=EmbeddedApi.Raspi3
+RASPIUARTUNIT=EmbeddedApi.Raspiuart
+RTLCONSTSUNIT=System.RtlConsts
+SAM3X8EUNIT=EmbeddedApi.Sam3x8e
+SAMD51P19AUNIT=EmbeddedApi.Samd51p19a
+SC32442BUNIT=EmbeddedApi .Sc32442b
+SFPU128UNIT=System.SoftFpu128
+SFPUX80UNIT=System.SoftFpuX80
+SHAREMEMUNIT=WinApi.ShareMem
+SIGNALSUNIT=WinApi.Signals
+SO32DLLUNIT=OS2Api.So32dll
+SOFTFPUUNIT=System.SoftFPU
+SORTBASEUNIT=System.SortBase
+STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
+STM32F103XEUNIT=EmbeddedApi.Stm32f103xe
+STM32F10X_CLUNIT=EmbeddedApi.Stm32f10x_cl
+STM32F10X_CONNUNIT=EmbeddedApi.Stm32f10x_conn
+STM32F10X_HDUNIT=EmbeddedApi.Stm32f10x_hd
+STM32F10X_LDUNIT=EmbeddedApi.Stm32f10x_ld
+STM32F10X_MDUNIT=EmbeddedApi.Stm32f10x_md
+STM32F10X_XLUNIT=EmbeddedApi.Stm32f10x_xl
+STM32F401XEUNIT=EmbeddedApi.Stm32f401xe
+STM32F401XXUNIT=EmbeddedApi.Stm32f401xx
+STM32F407XXUNIT=EmbeddedApi.Stm32f407xx
+STM32F411XEUNIT=EmbeddedApi.Stm32f411xe
+STM32F429UNIT=EmbeddedApi.Stm32f429
+STM32F429XXUNIT=EmbeddedApi.Stm32f429xx
+STM32F446XXUNIT=EmbeddedApi.Stm32f446xx
+STM32F745UNIT=EmbeddedApi.Stm32f745
+STM32F746UNIT=EmbeddedApi.Stm32f746
+STM32F756UNIT=EmbeddedApi.Stm32f756
+STM32G071XXUNIT=EmbeddedApi.Stm32g071xx
+STRINGSUNIT=System.Strings
+SYMBIANUNIT=SymbianApi.Symbian
+SYSALLUNIT=PalmApi.Sysall
+SYSCALLUNIT=UnixApi.SysCall
+SYSCONSTUNIT=System.SysConst
+SYSCTLUNIT=BsdApi.SysCtl
+SYSEMXUNIT=DOSApi.Sysemx
+SYSOS2UNIT=OS2Api.Sysos2
+SYSTRAPSUNIT=PalmApi.Systraps
+SYSUTILSUNIT=System.SysUtils
+TERMIOUNIT=UnixApi.TermIO
+TYPESUNIT=System.Types
+TYPINFOUNIT=System.TypInfo
+UFLOAT128UNIT=System.UFloat128
+UFLOATX80UNIT=System.UFloatX80
+UIUNIT=PalmApi.Ui
+UIQUNIT=SymbianApi.Uiq
+UIQCLASSESUNIT=SymbianApi.Uiqclasses
+UNICODEDATAUNIT=System.CodePages.unicodedata
+UNIXUNIT=UnixApi.Unix
+UNIXCPUNIT=UnixApi.CP
+UNIXTYPEUNIT=UnixApi.Types
+UNIXUTILUNIT=UnixApi.Utils
+VIOCALLSUNIT=OS2Api.Viocalls
+WASIAPIUNIT=WASIApi.WASIApi
+WASIUTILUNIT=WASIApi.WASIUtil
+WATCOMUNIT=WatcomApi.WatCom
+WEBASSEMBLYUNIT=Wasm.Api
+WIN31UNIT=WinApi.Win31
+WINDIRSUNIT=WinApi.WinDirs
+WINDOWSUNIT=WinApi.Windows
+WINPROCSUNIT=WinApi.WinProcs
+WINSYSUTUNIT=WinApi.WinSysUt
+WINTYPESUNIT=WinApi.WinTypes
+X86UNIT=System.X86
+XMC4500UNIT=EmbeddedApi.Xmc4500
+EXEINFOUNIT=System.ExeInfo
+ERRORSUNIT=UnixApi.Errors
+else
+AIOUNIT=aio
+ALLWINNER_A20UNIT=allwinner_a20
+ANDROIDR14UNIT=androidr14
+ATHREADSUNIT=athreads
+BASEUNIXUNIT=baseunix
+BETHREADSUNIT=bethreads
+BLOCKRTLUNIT=blockrtl
+BSDUNIT=bsd
+CHARACTERUNIT=character
+CHARSETUNIT=charset
+CLASSESUNIT=classes
+CMEMUNIT=cmem
+COMMONUNIT=common
+CONSOLEUNIT=console
+CONSOLEIOUNIT=consoleio
+CORTEXM0UNIT=cortexm0
+CORTEXM3UNIT=cortexm3
+CORTEXM4UNIT=cortexm4
+CORTEXM7UNIT=cortexm7
+CP1250UNIT=cp1250
+CP1251UNIT=cp1251
+CP1252UNIT=cp1252
+CP1253UNIT=cp1253
+CP1254UNIT=cp1254
+CP1255UNIT=cp1255
+CP1256UNIT=cp1256
+CP1257UNIT=cp1257
+CP1258UNIT=cp1258
+CP3021UNIT=cp3021
+CP437UNIT=cp437
+CP646UNIT=cp646
+CP737UNIT=cp737
+CP775UNIT=cp775
+CP850UNIT=cp850
+CP852UNIT=cp852
+CP855UNIT=cp855
+CP856UNIT=cp856
+CP857UNIT=cp857
+CP860UNIT=cp860
+CP861UNIT=cp861
+CP862UNIT=cp862
+CP863UNIT=cp863
+CP864UNIT=cp864
+CP865UNIT=cp865
+CP866UNIT=cp866
+CP869UNIT=cp869
+CP874UNIT=cp874
+CP8859_1UNIT=cp8859_1
+CP8859_10UNIT=cp8859_10
+CP8859_11UNIT=cp8859_11
+CP8859_13UNIT=cp8859_13
+CP8859_14UNIT=cp8859_14
+CP8859_15UNIT=cp8859_15
+CP8859_16UNIT=cp8859_16
+CP8859_2UNIT=cp8859_2
+CP8859_3UNIT=cp8859_3
+CP8859_4UNIT=cp8859_4
+CP8859_5UNIT=cp8859_5
+CP8859_6UNIT=cp8859_6
+CP8859_7UNIT=cp8859_7
+CP8859_8UNIT=cp8859_8
+CP8859_9UNIT=cp8859_9
+CPALLUNIT=cpall
+CPKOI8_RUNIT=cpkoi8_r
+CPKOI8_UUNIT=cpkoi8_u
+CPUUNIT=cpu
+CTHREADSUNIT=cthreads
+CTYPESUNIT=ctypes
+CWSTRINGUNIT=cwstring
+DDKUNIT=ddk
+DLUNIT=dl
+DOSUNIT=dos
+DOSCALL2UNIT=doscall2
+DOSCALLSUNIT=doscalls
+DPMIEXCPUNIT=dpmiexcp
+DXELOADUNIT=dxeload
+DXETYPEUNIT=dxetype
+DYNLIBSUNIT=dynlibs
+EMU387UNIT=emu387
+EMXUNIT=emx
+ERRORSUNIT=errors
+ESP32UNIT=esp32
+ESP8266UNIT=esp8266
+ESP8266RTOS_30300UNIT=esp8266rtos_30300
+ESP8266RTOS_30400UNIT=esp8266rtos_30400
+ESPIDF_40100UNIT=espidf_40100
+ESPIDF_40200UNIT=espidf_40200
+ESPIDF_40400UNIT=espidf_40400
+EXEUNIT=exe
+EXEINFOUNIT=exeinfo
+EXTPASUNIT=extpas
+FE310G000UNIT=fe310g000
+FE310G002UNIT=fe310g002
+FGLUNIT=fgl
+FPCMEMDLLUNIT=fpcmemdll
+FPCYLIXUNIT=fpcylix
+FPWIDESTRINGUNIT=fpwidestring
+FREEBSDUNIT=freebsd
+GD32VF103XXUNIT=gd32vf103xx
+GETOPTSUNIT=getopts
+GO32UNIT=go32
+GPIOUNIT=gpio
+HEAPMGRUNIT=heapmgr
+INITCUNIT=initc
+INTRINSICSUNIT=intrinsics
+ISO7185UNIT=iso7185
+JDK15UNIT=jdk15
+KBDCALLSUNIT=kbdcalls
+LIBCUNIT=libc
+LINEINFOUNIT=lineinfo
+LINUXUNIT=linux
+LINUXVCSUNIT=linuxvcs
+LM3FURYUNIT=lm3fury
+LM3TEMPESTUNIT=lm3tempest
+LM4F120UNIT=lm4f120
+LNFODWRFUNIT=lnfodwrf
+LNFOGDBUNIT=lnfogdb
+LPC11XXUNIT=lpc11xx
+LPC122XUNIT=lpc122x
+LPC13XXUNIT=lpc13xx
+LPC1768UNIT=lpc1768
+LPC21X4UNIT=lpc21x4
+LPC8XXUNIT=lpc8xx
+LSTRINGSUNIT=lstrings
+MACOSUNIT=macos
+MACOSTPUNIT=macostp
+MACUTILSUNIT=macutils
+MAILBOXUNIT=mailbox
+MATHUNIT=math
+MESSAGESUNIT=messages
+MK20D5UNIT=mk20d5
+MK20D7UNIT=mk20d7
+MK22F51212UNIT=mk22f51212
+MK64F12UNIT=mk64f12
+MMIOUNIT=mmio
+MMXUNIT=mmx
+MONCALLSUNIT=moncalls
+MOUCALLSUNIT=moucalls
+MSMOUSEUNIT=msmouse
+MULTIBOOTUNIT=multiboot
+NDKUNIT=ndk
+NDKUTILSUNIT=ndkutils
+NETWAREUNIT=netware
+NEWEXEUNIT=newexe
+NRF51UNIT=nrf51
+NRF52UNIT=nrf52
+NWCALLSUNIT=nwcalls
+NWNITUNIT=nwnit
+NWPREUNIT=nwpre
+NWPROTUNIT=nwprot
+NWSERVUNIT=nwserv
+NWSNUTUNIT=nwsnut
+OBJCUNIT=objc
+OBJCBASEUNIT=objcbase
+OS2DEFUNIT=os2def
+PAGEMEMUNIT=pagemem
+PILOTUNIT=pilot
+PMBIDIUNIT=pmbidi
+PMBITMAPUNIT=pmbitmap
+PMDEVUNIT=pmdev
+PMGPIUNIT=pmgpi
+PMHELPUNIT=pmhelp
+PMSHLUNIT=pmshl
+PMSPLUNIT=pmspl
+PMSTDDLGUNIT=pmstddlg
+PMWINUNIT=pmwin
+PMWPUNIT=pmwp
+PMWSOCKUNIT=pmwsock
+PORTSUNIT=ports
+POSIXUNIT=posix
+PROFILEUNIT=profile
+RASPI2UNIT=raspi2
+RASPI3UNIT=raspi3
+RASPIUARTUNIT=raspiuart
+RTLCONSTSUNIT=rtlconsts
+SAM3X8EUNIT=sam3x8e
+SAMD51P19AUNIT=samd51p19a
+SC32442BUNIT=sc32442b
+SFPU128UNIT=sfpu128
+SFPUX80UNIT=sfpux80
+SHAREMEMUNIT=sharemem
+SIGNALSUNIT=signals
+SO32DLLUNIT=so32dll
+SOFTFPUUNIT=softfpu
+SORTBASEUNIT=sortbase
+STM32F0XXUNIT=stm32f0xx
+STM32F103XEUNIT=stm32f103xe
+STM32F10X_CLUNIT=stm32f10x_cl
+STM32F10X_CONNUNIT=stm32f10x_conn
+STM32F10X_HDUNIT=stm32f10x_hd
+STM32F10X_LDUNIT=stm32f10x_ld
+STM32F10X_MDUNIT=stm32f10x_md
+STM32F10X_XLUNIT=stm32f10x_xl
+STM32F401XEUNIT=stm32f401xe
+STM32F401XXUNIT=stm32f401xx
+STM32F407XXUNIT=stm32f407xx
+STM32F411XEUNIT=stm32f411xe
+STM32F429UNIT=stm32f429
+STM32F429XXUNIT=stm32f429xx
+STM32F446XXUNIT=stm32f446xx
+STM32F745UNIT=stm32f745
+STM32F746UNIT=stm32f746
+STM32F756UNIT=stm32f756
+STM32G071XXUNIT=stm32g071xx
+STRINGSUNIT=strings
+SYMBIANUNIT=symbian
+SYSALLUNIT=sysall
+SYSCALLUNIT=syscall
+SYSCONSTUNIT=sysconst
+SYSCTLUNIT=sysctl
+SYSEMXUNIT=sysemx
+SYSOS2UNIT=sysos2
+SYSTRAPSUNIT=systraps
+SYSUTILSUNIT=sysutils
+TERMIOUNIT=termio
+TYPESUNIT=types
+TYPINFOUNIT=typinfo
+UFLOAT128UNIT=ufloat128
+UFLOATX80UNIT=ufloatx80
+UIUNIT=ui
+UIQUNIT=uiq
+UIQCLASSESUNIT=uiqclasses
+UNICODEDATAUNIT=unicodedata
+UNIXUNIT=unix
+UNIXCPUNIT=unixcp
+UNIXTYPEUNIT=unixtype
+UNIXUTILUNIT=unixutil
+VIOCALLSUNIT=viocalls
+WASIAPIUNIT=wasiapi
+WASIUTILUNIT=wasiutil
+WATCOMUNIT=watcom
+WEBASSEMBLYUNIT=webassembly
+WIN31UNIT=win31
+WINDIRSUNIT=windirs
+WINDOWSUNIT=windows
+WINPROCSUNIT=winprocs
+WINSYSUTUNIT=winsysut
+WINTYPESUNIT=wintypes
+X86UNIT=x86
+XMC4500UNIT=xmc4500
+endif
+ifdef FPC_DOTTEDUNITS 
+NS_SYSTEM=System.
+NS_CPUNITS=System.CodePages.
+NSDIR=$(RTL)/namespaced
+NSINC=$(NSDIR)/common
+OPT:=$(OPT) -dFPC_DOTTEDUNITS
+BASEINCLUDE=$(INC) $(PROCINC) 
+BASESOURCE=$(INC) $(PROCINC) $($(COMMONUNIT))
+endif
+CPUNITSBASE=$(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) 
+CPUNITS=$(addprefix $(NS_CPUNITS),$(CPUNITSBASE))
 RTL=..
 RTL=..
 INC=$(RTL)/inc
 INC=$(RTL)/inc
 COMMON=$(RTL)/common
 COMMON=$(RTL)/common
@@ -1393,7 +1893,7 @@ endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 endif
 endif
-override INSTALL_FPCPACKAGE=y
+override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-linux)
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
 endif
@@ -3408,6 +3908,489 @@ makefiles: fpc_makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
+ifndef OSDIR
+OSDIR=.
+endif
+ifndef PORTSDIR
+PORTSDIR=$(OSDIR)
+endif
+ifndef DYNLIBSINCDIR
+DYNLIBSINCDIR=$(OSDIR)
+endif
+ifndef INITCDIR
+INITCDIR=$(OSDIR)
+endif
+ifndef DOSDIR
+DOSDIR=$(OSDIR)
+NSDOSDIR=$(NSDIR)/$(DOSDIR)
+endif
+ifndef SYSUTILSDIR
+SYSUTILSDIR=$(OSDIR)
+endif
+ifndef NSSYSUTILSDIR
+NSSYSUTILSDIR=$(NSDIR)/$(SYSUTILSDIR)
+endif
+ifndef CLASSESDIR
+CLASSESDIR=$(OSDIR)
+endif
+ifndef NSCLASSESDIR
+NSCLASSESDIR=$(NSDIR)/$(CLASSESDIR)
+endif
+ifndef NSBSDDIR
+NSBSDDIR=$(NSDIR)/bsd
+endif
+ifdef FPC_DOTTEDUNITS
+MACPAS_OPT:=$(MACPAS_OPT) -dFPC_DOTTEDUNITS
+EXTPAS_OPT:=$(EXTPAS_OPT) -dFPC_DOTTEDUNITS
+endif
+ifndef SYSTEMUNITEXT
+SYSTEMUNITEXT=pp
+endif
+ifndef DOSUNITEXT
+DOSUNITEXT=pp
+endif
+ifndef PORTSUNITEXT
+PORTSUNITEXT=pp
+endif
+ifndef BASEUNIXDIR
+BASEUNIXDIR=$(UNIXINC)
+endif
+ifdef FPC_DOTTEDUNITS
+BLOCKRTL_OPT:=$(BLOCKRTL_OPT) -dFPC_DOTTEDUNITS
+FPEXTRES_OPT:=$(FPEXTRES_OPT) -dFPC_DOTTEDUNITS
+OBJC_OPT:=$(OBJC_OPT) -dFPC_DOTTEDUNITS
+endif
+$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).$(SYSTEMUNITEXT) $(SYSDEPS)
+	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $<
+UUCHAR_DEPS=$(INC)/uuchar.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(UUCHAR_DEPS_OS) $(UUCHAR_DEPS_CPU)
+uuchar$(PPUEXT): $(UUCHAR_DEPS)
+	$(COMPILER) $(UUCHAR_OPT) $<
+UACHAR_DEPS=$(INC)/uachar.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(UACHAR_DEPS_OS) $(UACHAR_DEPS_CPU)
+uachar$(PPUEXT): $(UACHAR_DEPS)
+	$(COMPILER) $(UACHAR_OPT) $<
+OBJPAS_DEPS= $(OBJPASDIR)/objpas.pp $(INC)/except.inc \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OBJPAS_DEPS_OS) $(OBJPAS_DEPS_SPU)  
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+	$(COMPILER) $(OBJPAS_OPT) -I$(OBJPASDIR) $<
+MACPAS_DEPS=$(INC)/macpas.pp \
+	    objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(MACPAS_DEPS_OS)  $(MACPAS_DEPS_CPU) 
+macpas$(PPUEXT) : $(MACPAS_DEPS)
+	$(COMPILER) $(MACPAS_OPT) $< 
+ISO7185_DEPS= $(INC)/$(ISO7185UNIT).pp \
+	      $(SYSTEMUNIT)$(PPUEXT) \
+	      $(ISO7185_DEPS_OS) $(ISO7185_DEPS_CPU) 
+iso7185$(PPUEXT) : $(ISO7185_DEPS)
+	$(COMPILER) $(ISO7185_OPT) $<
+EXTPAS_DEPS=$(INC)/extpas.pp \
+	    $(DOSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(EXTPAS_DEPS_OS) $(EXTPAS_DEPS_CPU)
+extpas$(PPUEXT) : $(EXTPAS_DEPS)
+	$(COMPILER) $(EXTPAS_OPT) $<
+FPINTRES_DEPS= $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT) \
+	       $(FPINTRES_DEPS_OS) $(FPINTRES_DEPS_CPU)              
+fpintres$(PPUEXT) : $(FPINTRES_DEPS)
+	$(COMPILER) $(FPINTRES_OPT) $<
+FPEXTRES_DEPS= $(INC)/fpextres.pp $(SYSTEMUNIT)$(PPUEXT) \
+	       $(FPEXTRES_DEPS_OS) $(FPEXTRES_DEPS_CPU)              
+fpextres$(PPUEXT) : $(FPEXTRES_DEPS)
+	$(COMPILER) -Sg $(FPEXTRES_OPT) $<
+HEAPTRC_DEPS=$(INC)/heaptrc.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(HEAPTRC_DEPS_OS) $(HEAPTRC_DEPS_CPU)
+heaptrc$(PPUEXT) : $(HEAPTRC_DEPS)
+	$(COMPILER) $(HEAPTRC_OPT) $<
+SOFTFPU_DEPS=$(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SOFTFPU_DEPS_OS) $(SOFTFPU_DEPS_CPU)
+softfpu$(PPUEXT) : $(SOFTFPU_DEPS) 
+	$(COMPILER) $(SOFTFPU_OPT) $<
+System.SoftFPU$(PPUEXT) : $(NSINC)/System.SoftFPU.pp $(SOFTFPU_DEPS) 
+	$(COMPILER) $(SOFTFPU_OPT) $<
+SFPUX80_DEPS=$(INC)/sfpux80.pp $(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SFPUX80_DEPS_OS) $(SFPUX80_DEPS_CPU) 
+sfpux80$(PPUEXT) : $(SFPUX80_DEPS)
+	$(COMPILER) $(SFPUX80_OPT) $<
+System.SoftFpuX80$(PPUEXT) : $(NSINC)/System.SoftFpuX80.pp  $(SFPUX80_DEPS)
+	$(COMPILER) $(SFPUX80_OPT) $<
+SFPU128_DEPS=$(INC)/sfpu128.pp $(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SFPU128_DEPS_OS) $(SFPU128_DEPS_CPU)
+sfpu128$(PPUEXT) : $(SFPU128_DEPS)
+	$(COMPILER) $(SFPUX128_OPT) $<
+System.SoftFpu128$(PPUEXT) : $(NSINC)/System.SoftFpu128.pp $(SFPU128_DEPS)
+	$(COMPILER) $(SFPUX128_OPT) $<
+UFLOATX80_DEPS=$(INC)/ufloatx80.pp \
+	       $(SFPUX80UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	       $(UFLOATX80_DEPS_OS) $(UFLOATX80_DEPS_CPU)
+ufloatx80$(PPUEXT) : $(UFLOATX80_DEPS)
+	$(COMPILER) $(UFLOATX80_OPT) $<
+System.UFloatX80$(PPUEXT) : $(NSINC)/System.UFloatX80.pp $(UFLOATX80_DEPS)
+	$(COMPILER) $(UFLOATX80_OPT) $<
+UFLOAT128_DEPS=$(INC)/ufloat128.pp \
+	       $(SFPU128UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	       $(UFLOAT128_DEPS_OS) $(UFLOAT128_DEPS_CPU)
+ufloat128$(PPUEXT) : $(UFLOAT128_DEPS)
+	$(COMPILER) $(UFLOAT128_OPT) $<
+System.UFloat128$(PPUEXT) : $(NSINC)/System.UFloat128.pp $(UFLOAT128_DEPS)
+	$(COMPILER) $(UFLOAT128_OPT) $<
+STRINGS_DEPS=$(INC)/strings.pp $(INC)/stringsi.inc $(PROCINC)/stringss.inc $(PROCINC)/strings.inc \
+	     $(SYSTEMUNIT)$(PPUEXT)  \
+	     $(STRINGS_DEPS_OS)
+strings$(PPUEXT) : $(STRINGS_DEPS)
+	$(COMPILER) $(STRINGS_OPT) $<
+System.Strings$(PPUEXT) : $(NSINC)/System.Strings.pp $(STRINGS_DEPS)
+	$(COMPILER) $(STRINGS_OPT) $<
+PORTS_DEPS=$(PORTSDIR)/ports.$(PORTSUNITEXT) \
+	   $(SYSTEMUNIT)$(PPUEXT) \
+	   $(PORTS_DEPS_OS) $(PORTS_DEPS_CPU)
+ports$(PPUEXT) : $(PORTS_DEPS) 
+	$(COMPILER) $(PORTS_OPT) $<
+System.Ports$(PPUEXT) :  $(NSINC)/System.Ports.pp $(PORTS_DEPS) 
+	$(COMPILER) $(PORTS_OPT) $<
+DYNLIBS_DEPS=$(INC)/dynlibs.pas $(OSDIR)/dynlibs.inc \
+	     objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
+	     $(DYNLIBS_DEPS_OS) $(DYNLIBS_DEPS_CPU)
+dynlibs$(PPUEXT) : $(DYNLIBS_DEPS)
+	$(COMPILER) $(DYNLIBS_OPT) $<
+System.DynLibs$(PPUEXT) : $(NSINC)/System.DynLibs.pas $(DYNLIBS_DEPS)
+	$(COMPILER) $(DYNLIBS_OPT) $<
+INITC_DEPS=$(INITCDIR)/initc.pp $(CTYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(INITC_DEPS_OS) $(INITC_DEPS_CPU)
+initc$(PPUEXT) : $(INITC_DEPS)
+	$(COMPILER) $(INITC_OPT) $<
+System.InitC$(PPUEXT) : $(NSINC)/System.InitC.pp  $(INITC_DEPS)
+	$(COMPILER) $(INITC_OPT) $<
+UNIXCP_DEPS=$(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	$(UNIXCP_DEPS_OS) $(UNIXCP_DEPS_CPU)
+unixcp$(PPUEXT) : $(UNIXCP_DEPS)
+	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
+UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
+	$(COMPILER) $(UNIXCP_OPT) $<
+LINUX_DEPS=$(OSDIR)/linux.pp \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
+linux$(PPUEXT): $(LINUX_DEPS)
+	$(COMPILER) $<
+LinuxApi$(PPUEXT): $(NSOSDIR)/LinuxApi.pp $(LINUX_DEPS) 
+	$(COMPILER) $(LINUX_OPT) $<
+LINUXVCS_DEPS=$(OSDIR)/linuxvcs.pp $(BASEUNIXUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(LINUXVCS_DEPS_OS) $(LINUXVCS_DEPS_CPU)
+linuxvcs$(PPUEXT): $(LINUXVCS_DEPS)
+	$(COMPILER) $(LINUXVCS_OPT) $<
+LinuxApi.Vcs$(PPUEXT): $(NSOSDIR)/LinuxApi.Vcs.pp $(LINUXVCS_DEPS)
+	$(COMPILER) $(LINUXVCS_OPT) $<
+FPCYLIX_DEPS=fpcylix.pp \
+	     $(CTHREADSUNIT)$(PPUEXT) $(CWSTRINGUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT) \
+	     objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(FPCYLIX_DEPS_OS)  $(FPCYLIX_DEPS_CPU)
+fpcylix$(PPUEXT) : $(FPCYLIX_DEPS)
+	$(COMPILER) $(FPCYLIX_OPT) $<
+TERMIO_DEPS=$(OSDIR)/termio.pp $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)\
+	    $(TERMIO_DEPS_OS) $(TERMIO_DEPS_CPU)
+termio$(PPUEXT) : $(TERMIO_DEPS)
+	$(COMPILER) $(TERMIO_OPT) $<
+UnixApi.TermIO$(PPUEXT) : $(NSINC)/UnixApi.TermIO.pp $(TERMIO_DEPS)
+	$(COMPILER) $(TERMIO_OPT) $<
+DOS_DEPS=$(DOSDIR)/dos.$(DOSUNITEXT)  $(INC)/filerec.inc $(INC)/textrec.inc \
+	 $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	 $(DOS_DEPS_OS) $(DOS_DEPS_CPU)
+dos$(PPUEXT): $(DOS_DEPS)
+	$(COMPILER) $(DOS_OPTS) $<
+TP.DOS$(PPUEXT): $(NSINC)/TP.DOS.pp $(DOS_DEPS) 
+	$(COMPILER) $(DOS_OPTS) $<
+SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
+	      objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
+	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
+sysutils$(PPUEXT) : $(SYSUTILS_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR)/$(SYSUTILSUNIT) $<
+System.SysUtils$(PPUEXT) : $(NSINC)/System.SysUtils.pp $(SYSUTILS_DEPS)
+	$(COMPILER) $(SYSUTILS_OPT) -Fi$(OBJPASDIR)/sysutils $<
+CLASSES_DEPS=$(CLASSESDIR)/classes.pp $(wildcard $(OBJPASDIR)/$(CLASSESUNIT)/*.inc) \
+	     $(SYSUTILSUNIT)$(PPUEXT) $(TYPINFOUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	     $(FGLUNIT)$(PPUEXT) $(TYPESUNIT)$(PPUEXT) \
+	     $(CLASSES_DEPS_OS) $(CLASSES_DEPS_CPU)
+classes$(PPUEXT) : $(CLASSES_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
+System.Classes$(PPUEXT) : $(NSINC)/System.Classes.pp $(CLASSES_DEPS) 
+	$(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
+TYPINFO_DEPS=$(OBJPASDIR)/typinfo.pp \
+	     objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	     $(TYPINFO_DEPS_OS) $(TYPINFO_DEPS_CPU)
+typinfo$(PPUEXT): $(TYPINFO_DEPS)
+	$(COMPILER) -Sg $(TYPINFO_OPT) $<
+System.TypInfo$(PPUEXT): $(NSINC)/System.TypInfo.pp $(TYPINFO_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) -Sg $(TYPINFO_OPT) $<
+CHARACTER_DEPS=$(OBJPASDIR)/character.pas \
+	       $(SYSUTILSUNIT)$(PPUEXT) objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	       $(CHARACTER_DEPS_OS) $(CHARACTER_DEPS_CPU)
+character$(PPUEXT): $(CHARACTER_DEPS)
+	$(COMPILER) $(CHARACTER_OPT) $<
+System.Character$(PPUEXT): $(NSINC)/System.Character.pas $(CHARACTER_DEPS)
+	$(COMPILER) $(CHARACTER_OPT) -Fi$(OBJPASDIR) $<
+MATH_DEPS= $(OBJPASDIR)/math.pp \
+	   objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(MATH_DEPS_OS) $(MATH_DEPS_CPU)
+math$(PPUEXT): $(MATH_DEPS)
+	$(COMPILER) $(MATH_OPT) $<
+System.Math$(PPUEXT): $(NSINC)/System.Math.pp $(MATH_DEPS)
+	$(COMPILER) $(MATH_OPT) -Fi$(OBJPASDIR)  $<
+FGL_DEPS=$(OBJPASDIR)/fgl.pp \
+	  objpas$(PPUEXT) $(TYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(SYSUTILSUNIT)$(PPUEXT) $(SORTBASEUNIT)$(PPUEXT) \
+	  $(FCL_DEPS_OS) $(FCL_DEPS_CPU)
+fgl$(PPUEXT) : $(FGL_DEPS)
+	$(COMPILER) $(FGL_OPT) $<
+System.FGL$(PPUEXT) : $(NSINC)/System.FGL.pp $(FGL_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(FGL_OPT) $<
+TYPES_DEPS=$(OBJPASDIR)/types.pp \
+	   objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(TYPES_DEPS_OS) $(TYPES_DEPS_CPU)
+types$(PPUEXT) : $(TYPES_DEPS)
+	$(COMPILER) $(TYPES_OPT) $<
+System.Types$(PPUEXT) :  $(NSINC)/System.Types.pp $(TYPES_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(TYPES_OPT) $<
+SYSCONST_DEPS=$(OBJPASDIR)/sysconst.pp \
+	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(SYSCONST_DEPS_OS) $(SYSCONST_DEPS_CPU)
+sysconst$(PPUEXT) : $(SYSCONST_DEPS)
+	$(COMPILER) $(SYSCONST_OPT) $<
+System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(RTLCONST_DEPS_OS) $(RTLCONST_DEPS_CPU)
+rtlconsts$(PPUEXT) : $(RTLCONSTS_DEPS)
+	$(COMPILER) $(RTLCONSTS_OPT) $<
+System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
+ifneq ($(findstring $(ARCH),x86_64 i386),)
+CPU_DEPS_OS:=$(CPU_DEPS_OS) $(SYSUTILSUNIT)$(PPUEXT)
+endif
+CPU_DEPS=$(PROCINC)/cpu.pp \
+	 $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	 $(CPU_DEPS_OS) $(CPU_DEPS_CPU)
+cpu$(PPUEXT) : $(CPU_DEPS)
+	$(COMPILER) $(CPU_OPT) $<
+System.CPU$(PPUEXT) : $(NSINC)/System.CPU.pp
+	$(COMPILER) $(CPU_OPT) $<
+MMX_DEPS=$(PROCINC)/mmx.pp \
+	 $(CPUUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	 $(MMX_DEPS_OS) $(MMX_DEPS_CPU) 
+mmx$(PPUEXT) : $(MMX_DEPS)
+	$(COMPILER) $(MMX_OPT) $<
+System.MMX$(PPUEXT) : $(NSINC)/System.MMX $(MMX_DEPS)
+	$(COMPILER) $(MMX_OPT) $<
+X86_DEPS = $(UNIXINC)/x86.pp \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
+x86$(PPUEXT) : $(X86_DEPS)
+	$(COMPILER) $(X86_OPT)  $<
+System.X86$(PPUEXT) : $(NSINC)/System.X86.pp $(X86_DEPS)
+	$(COMPILER) $(X86_OPT) $<
+GETOPTS_DEPS=$(INC)/getopts.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(GETOPTS_DEPS_OS) $(GETOPTS_DEPS_CPU)
+getopts$(PPUEXT) : $(GETOPTS_DEPS)
+	$(COMPILER) $(GETOPTS_OPT) $<
+System.GetOpts$(PPUEXT) : $(NSINC)/System.GetOpts.pp $(GETOPTS_DEPS)
+	$(COMPILER)  $(GETOPTS_OPT) $<
+LINEINFO_DEPS=$(INC)/lineinfo.pp \
+	      $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
+	      $(LINEINFO_DEPS_OS)  $(LINEINFO_DEPS_CPU)
+lineinfo$(PPUEXT) : $(LINEINFO_DEPS)
+	$(COMPILER) $(LINEINFO_OPT) $<
+System.LineInfo$(PPUEXT) : $(NSINC)/System.LineInfo.pp $(LINEINFO_DEPS)
+	$(COMPILER) $(LINEINFO_OPT) $<
+EXEINFO_DEPS=$(INC)/exeinfo.pp \
+	      $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(EXEINFO_DEPS_OS)  $(EXEINFO_DEPS_CPU)
+exeinfo$(PPUEXT) : $(EXEINFO_DEPS)
+	$(COMPILER) $(EXEINFO_OPT) $<
+System.ExeInfo$(PPUEXT) : $(NSINC)/System.ExeInfo.pp $(LINEINFO_DEPS)
+	$(COMPILER) $(EXEINFO_OPT) $<
+LNFODWRF_DEPS=$(INC)/lnfodwrf.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
+	      $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
+	      $(LNFODWRF_DEPS_OS) $(LNFODWRF_DEPS_CPU)
+lnfodwrf$(PPUEXT) : $(LNFODWRF_DEPS)
+	$(COMPILER) $(LNFODWRF_OPT) $<
+System.LineInfo.Dwarf$(PPUEXT) : $(NSINC)/System.LineInfo.Dwarf.pp $(LNFODWRF_DEPS)
+	$(COMPILER) $(LNFODWRF_OPT) $<
+LNFOGDB_DEPS=$(UNIXINC)/lnfogdb.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
+	      $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
+	      $(LNFOGDB_DEPS_OS) $(LNFOGDB_DEPS_CPU)
+lnfogdb$(PPUEXT) : $(LNFOGDB_DEPS)
+	$(COMPILER) $(LNFOGDB_OPT) $<
+System.LineInfo.Gdb$(PPUEXT) : $(NSINC)/System.LineInfo.Gdb.pp $(LNFOGDB_DEPS)
+	$(COMPILER) $(LNFOGDB_OPT) $<
+CHARSET_DEPS=$(INC)/charset.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(CHARSET_DEPS_OS) $(CHARSET_DEPS_CPU)
+charset$(PPUEXT) : $(CHARSET_DEPS)
+	$(COMPILER) $(CHARSET_OPT) $<
+System.CharSet$(PPUEXT) : $(NSINC)/System.CharSet.pp $(CHARSET_DEPS)
+	$(COMPILER) $(CHARSET_OPT) $< 
+CPALL_DEPS=$(RTL)/charmaps/cpall.pas \
+	  system$(PPUEXT) $(CHARSETUNIT)$(PPUEXT) \
+	  $(CPALL_DEPS_OS) $(CPALL_DEPS_CPU)
+cpall$(PPUEXT): $(CPALL_DEPS)  
+	$(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
+System.CodePages.All$(PPUEXT):  $(NSINC)/System.CodePages.All.pas $(CPALL_DEPS)
+	$(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
+FPWIDESTRING_DEPS=$(OBJPASDIR)/fpwidestring.pp \
+		  $(CHARACTERUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(CPALLUNIT)$(PPUEXT) \
+		  $(FPWIDESTRING_DEPS_OS) $(FPWIDESTRING_DEPS_CPU)
+fpwidestring$(PPUEXT): $(FPWIDESTRING_DEPS)
+	$(COMPILER) $(FPWIDESTRING_OPT) $<
+System.FPWideString$(PPUEXT): $(NSINC)/System.FPWideString.pp $(FPWIDESTRING_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(FPWIDESTRING_OPT) $<
+SORTBASE_DEPS=$(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(SORTBASE_DEPS_OS) $(SORTBASE_DEPS_CPU) 
+sortbase$(PPUEXT) : $(SORTBASE_DEPS)
+	$(COMPILER) $(SORTBASE_OPT) $<
+System.SortBase$(PPUEXT) : $(NSINC)/System.SortBase.pp $(SORTBASE_DEPS)
+	$(COMPILER) $(SORTBASE_OPT) $<
+CALLSPEC_DEPS=$(INC)/callspec.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) \
+	      $(CALLSPEC_DEPS_OS) $(CALLSPEC_DEPS_CPU) 
+callspec$(PPUEXT) : $(CALLSPEC_DEPS)
+	$(COMPILER) $(CALLSPEC_OPT) $<
+System.CallSpec$(PPUEXT) : $(NSINC)/System.CallSpec.pp $(CALLSPEC_DEPS)
+	$(COMPILER) $(CALLSPEC_OPT) $<
+CMEM_DEPS=$(INC)/cmem.pp \
+	  $(SYSTEMUNIT)$(PPUEXT) \
+	  $(CMEM_DEPS_OS) $(CMEM_DEPS_CPU)
+cmem$(PPUEXT) : $(CMEM_DEPS)
+	$(COMPILER) $(CMEM_OPT) $<
+System.CMem$(PPUEXT) : $(NSINC)/System.CMem.pp $(CMEM_DEPS)
+	$(COMPILER) $(CMEM_OPT) $<
+BASEUNIX_DEPS=$(BASEUNIXDIR)/baseunix.pp  $(UNIXINC)/ctypes.inc  \
+	      $(UNIXINC)/bunxh.inc $(UNIXINC)/gensigset.inc $(OSDIR)/ptypes.inc $(OSDIR)/errno.inc \
+	      $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(BASEUNIX_DEPS_OS) $(BASEUNIX_DEPS_CPU) 
+baseunix$(PPUEXT): $(BASEUNIX_DEPS)
+	$(COMPILER) $(BASEUNIX_OPT) $<
+UnixApi.Base$(PPUEXT): $(NSINC)/UnixApi.Base.pp $(BASEUNIX_DEPS) 
+	$(COMPILER) $(BASEUNIX_OPT) $<
+UNIX_DEPS=$(UNIXINC)/unix.pp \
+	 $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	 $(UNIXUTILUNIT)$(PPUEXT) \
+	 $(INC)/textrec.inc $(INC)/filerec.inc  $(UNIXINC)/timezone.inc \
+	 $(OSDIR)/unxconst.inc $(OSDIR)/unxfunc.inc \
+	 $(UNIX_DEPS_OS) $(UNIX_DEPS_CPU)
+unix$(PPUEXT): $(UNIX_DEPS)
+	$(COMPILER) $(UNIX_OPT) $<
+UnixApi.Unix$(PPUEXT) : $(NSINC)/UnixApi.Unix.pp $(UNIX_DEPS)
+	$(COMPILER) $(UNIX_OPT) $<
+SYSCALL_DEPS=$(UNIXINC)/syscall.pp \
+	     $(SYSTEMUNIT)$(PPUEXT)\
+	     $(SYSCALL_DEPS_OS) $(SYSCALL_DEPS_CPU)
+syscall$(PPUEXT) : $(SYSCALL_DEPS)
+	$(COMPILER) $(SYSCALL_OPT) $<
+UnixApi.SysCall$(PPUEXT) : $(NSINC)/UnixApi.SysCall.pp $(SYSCALL_DEPS) 
+	$(COMPILER) $(SYSCALL_OPT) $<
+UNIXUTIL_DEPS=$(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc\
+	     $(SYSTEMUNIT)$(PPUEXT)\
+	     $(UNIXUTIL_DEPS_OS)
+unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
+	$(COMPILER) $(UNIXUTIL_OPT) $<
+UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
+	$(COMPILER) $(UNIXUTIL_OPT) $<
+UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
+unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
+	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
+UnixApi.Types$(PPUEXT) : $(NSINC)/UnixApi.Types.pp $(UNIXTYPE_DEPS)
+	$(COMPILER) $(UNIXTYPE_OPT) $<
+DL_DEPS=$(UNIXINC)/dl.pp \
+	$(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	$(DL_DEPS_OS) $(DL_DEPS_CPU)
+dl$(PPUEXT) : $(DL_DEPS)
+	$(COMPILER) $(DL_OPT) $<
+UnixApi.Dl$(PPUEXT) : $(NSINC)/UnixApi.Dl.pp $(DL_DEPS)
+	$(COMPILER) $(DL_OPT) $<
+ERRORS_DEPS=$(UNIXINC)/errors.pp \
+	    $(STRINGSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(ERRORS_DEPS_OS) $(ERRORS_DEPS_CPU)
+errors$(PPUEXT) : $(ERRORS_DEPS)
+	$(COMPILER) $(ERRORS_OPT) $<
+UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
+	$(COMPILER) $(ERRORS_OPT) $<
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
+	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
+	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
+cthreads$(PPUEXT) : $(CTHREADS_DEPS)
+	$(COMPILER) $(CTHREADS_OPT) $<
+UnixApi.CThreads$(PPUEXT) : $(NSINC)/UnixApi.CThreads.pp $(CTHREADS_DEPS)
+	$(COMPILER) $(CTHREADS_OPT) $<
+CWSTRING_DEPS=$(UNIXINC)/cwstring.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	      $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	      $(DYNLIBSUNIT)$(PPUEXT) $(UNIXCPUNIT)$(PPUEXT) \
+	      $(CWSTRING_DEPS_OS) $(CWSTRING_DEPS_CPU) 
+cwstring$(PPUEXT) : $(CWSTRING_DEPS)
+	$(COMPILER) $(CWSTRING_OPT) $<
+UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
+	$(COMPILER) $(CWSTRING_OPT) $<
+CTYPES_DEPS=$(INC)/ctypes.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
+ctypes$(PPUEXT) : $(CTYPES_DEPS) 
+	$(COMPILER) $(CTYPES_OPT) $<
+System.CTypes$(PPUEXT) : $(NSINC)/System.CTypes.pp $(CTYPES_DEPS) 
+	$(COMPILER) $(CTYPES_OPT) $<
+OBJC_DEPS=$(INC)/objc.pp $(INC)/objc.pp $(INC)/objc1.inc $(INC)/objcnf.inc \
+	  $(SYSTEMUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+	  $(OBJC_DEPS_OS) $(OBJC_DEPS_CPU)
+objc$(PPUEXT) : $(OBJC_DEPS)
+	$(COMPILER) $(OBJC_OPT) $<
+OBJCBASE_DEPS=$(INC)/objcbase.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(OBJCUNIT)$(PPUEXT) \
+	      $(OBJCBASE_DEPS_OS) $(OBJCBASE_DEPS_CPU)
+objcbase$(PPUEXT) : $(OBJCBASE_DEPS)
+	$(COMPILER) $(OBJCBASE_OPT) $<
+BLOCKRTL_DEPS=$(INC)/blockrtl.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	      $(BLOCKRTL_DEPS_OS) $(BLOCKRTL_DEPS_CPU)
+blockrtl$(PPUEXT) : $(BLOCKRTL_DEPS)
+	$(COMPILER) $(BLOCKRTL_OPT) $<
+WINDOWS_DEPS=windows.pp $(SYSTEMUNIT)$(PPUEXT) \
+	     $(WINDOWS_DEPS_OS) $(WINDOWS_DEPS_CPU)
+windows$(PPUEXT): $(WINDOWS_DEPS)
+	$(COMPILER) $(WINDOWS_OPT) $<
+WinApi.Windows$(PPUEXT): $(NSOSDIR)/WinApi.Windows.pp $(WINDOWS_DEPS)
+	$(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDOWS_OPT) $<
+WINDIRS_DEPS=windirs.pp $(WINDOWSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(WINDIRS_DEPS_OS) $(WINDIRS_DEPS_CPU)
+windirs$(PPUEXT): $(WINDIRS_DEPS)
+	$(COMPILER) $(WINDIRS_OPT) $<
+WinApi.WinDirs$(PPUEXT): $(NSOSDIR)/WinApi.WinDirs.pp $(WINDIRS_DEPS)
+	$(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDIRS_OPT) $<
+SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
+sysctl$(PPUEXT) : $(SYSCTL_DEPS)
+	$(COMPILER) $(SYSCTL_OPT) $<
+BsdApi.SysCtl$(PPUEXT) : $(NSBSDDIR)/BsdApi.SysCtl.pp $(SYSCTL_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
+BSD_DEPS=$(BSDINC)/bsd.pas $(INITCUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
+	 $(BSD_DEPS_OS) $(BSD_DEPS_CPU)
+bsd$(PPUEXT): $(BSD_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
+BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
 .NOTPARALLEL:
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 6 - 0
rtl/aix/termio.pp

@@ -14,11 +14,17 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit termio;
 unit termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 {$inline on}
 {$inline on}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Types,UnixApi.Base,System.CTypes;          // load base UnixApi.Unix typing
+{$ELSE FPC_DOTTEDUNITS}
 Uses UnixType,BaseUnix,ctypes;          // load base unix typing
 Uses UnixType,BaseUnix,ctypes;          // load base unix typing
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 // load types + consts
 // load types + consts
 
 

+ 2 - 0
rtl/amicommon/athreads.pp

@@ -15,7 +15,9 @@
  **********************************************************************}
  **********************************************************************}
 
 
 {$mode objfpc}
 {$mode objfpc}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit athreads;
 unit athreads;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 14 - 0
rtl/amicommon/classes.pp

@@ -23,10 +23,23 @@
 { determine the type of the resource/form file }
 { determine the type of the resource/form file }
 {$define Win16Res}
 {$define Win16Res}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Classes;
 unit Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils,
+  System.RtlConsts,
+  System.Types,
+  System.SortBase,
+{$ifdef FPC_TESTGENERICS}
+  System.FGL,
+{$endif}
+  System.TypInfo;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   sysutils,
   sysutils,
   rtlconsts,
   rtlconsts,
@@ -36,6 +49,7 @@ uses
   fgl,
   fgl,
 {$endif}
 {$endif}
   typinfo;
   typinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$i classesh.inc}
 {$i classesh.inc}
 
 

+ 2 - 0
rtl/amicommon/dos.pp

@@ -20,7 +20,9 @@
  **********************************************************************}
  **********************************************************************}
 {$INLINE ON}
 {$INLINE ON}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Dos;
 unit Dos;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {--------------------------------------------------------------------}
 {--------------------------------------------------------------------}
 { LEFT TO DO:                                                        }
 { LEFT TO DO:                                                        }

+ 7 - 0
rtl/amicommon/lineinfo.pp

@@ -17,7 +17,9 @@
   This unit should not be compiled in objfpc mode, since this would make it
   This unit should not be compiled in objfpc mode, since this would make it
   dependent on objpas unit.
   dependent on objpas unit.
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lineinfo;
 unit lineinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -43,8 +45,13 @@ var
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.ExeInfo,System.Strings;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   exeinfo,strings;
   exeinfo,strings;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 const
 const
   N_Function    = $24;
   N_Function    = $24;

+ 7 - 0
rtl/amicommon/sysutils.pp

@@ -19,7 +19,9 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit sysutils;
 unit sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -60,8 +62,13 @@ function DiskFree(Drive: AnsiString): Int64;
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  TP.DOS, System.SysConst;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   dos, sysconst;
   dos, sysconst;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$DEFINE FPC_FEXPAND_VOLUMES} (* Full paths begin with drive specification *)
 {$DEFINE FPC_FEXPAND_VOLUMES} (* Full paths begin with drive specification *)
 {$DEFINE FPC_FEXPAND_DRIVESEP_IS_ROOT}
 {$DEFINE FPC_FEXPAND_DRIVESEP_IS_ROOT}

Datei-Diff unterdrückt, da er zu groß ist
+ 730 - 230
rtl/amiga/Makefile


+ 10 - 35
rtl/amiga/Makefile.fpc

@@ -7,17 +7,16 @@ main=rtl
 
 
 [target]
 [target]
 loaders=$(LOADERS)
 loaders=$(LOADERS)
-units=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
-implicitunits=$(SYSINITUNITS) $(EXEUNITS) athreads dos sysutils \
-      ctypes strings rtlconsts sysconst math types \
-      typinfo sortbase fgl classes charset character getopts fpwidestring \
-      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
-      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
-      cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 \
-      cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 \
-      cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u \
-      unicodedata \
-      softfpu sfpux80 ufloatx80 sfpu128 ufloat128
+units=$(SYSTEMUNIT) $(RESUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl $(CPALLUNIT)
+implicitunits=$(SYSINITUNITS) $(EXEUNITS) athreads $(DOSUNIT) $(SYSUTILSUNIT) \
+      $(CTYPESUNIT) $(STRINGSUNIT) $(RTLCONSTSUNIT) $(MATHUNIT) $(TYPESUNIT) \
+      $(TYPINFOUNIT) $(SORTBASEUNIT)  $(FGLUNIT) $(CLASSESUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(FPWIDESTRINGUNIT) \
+      $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) $(UNICODEDATAUNIT)  \
+      $(UFLOAT128UNIT)  $(UFLOATX80UNIT) $(SFPU128UNIT) $(SFPUX80UNIT) $(SOFTFPUUNIT) 
 
 
 
 
 rsts=math rtlconsts typinfo classes sysconst
 rsts=math rtlconsts typinfo classes sysconst
@@ -100,33 +99,9 @@ prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 # Base Units (System, strings, os-dependent-base-unit)
 # Base Units (System, strings, os-dependent-base-unit)
 #
 #
 
 
-$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
-        $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
-
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/uuchar.pp
-
-objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
-
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) buildrtl$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp
-
-iso7185$(PPUEXT) : $(INC)/iso7185.pp buildrtl$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/iso7185.pp
-
-extpas$(PPUEXT) : $(INC)/extpas.pp buildrtl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/extpas.pp
-
 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
 
 
 $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
 $(RESUNIT)$(PPUEXT) : $(INC)/$(RESUNIT).pp $(SYSTEMUNIT)$(PPUEXT)
         $(COMPILER) -Sg $(INC)/$(RESUNIT).pp
         $(COMPILER) -Sg $(INC)/$(RESUNIT).pp
 
 
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
-

+ 992 - 9
rtl/android/Makefile

@@ -102,7 +102,7 @@ endif
 export ECHO
 export ECHO
 endif
 endif
 override OS_TARGET_DEFAULT=android
 override OS_TARGET_DEFAULT=android
-override DEFAULT_FPCDIR=../..
+override DEFAULT_FPCDIR=../.. ../..
 ifndef FPC
 ifndef FPC
 ifdef PP
 ifdef PP
 FPC=$(PP)
 FPC=$(PP)
@@ -192,43 +192,43 @@ else
 ARCH=$(CPU_TARGET)
 ARCH=$(CPU_TARGET)
 endif
 endif
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 endif
 endif
 ifdef SUB_TARGET 
 ifdef SUB_TARGET 
 FPCOPT+=-t$(SUB_TARGET)
 FPCOPT+=-t$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 endif
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 endif
 endif
@@ -369,6 +369,506 @@ endif
 endif
 endif
 override PACKAGE_NAME=rtl
 override PACKAGE_NAME=rtl
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
+ifdef FPC_DOTTEDUNITS
+AIOUNIT=NetWareApi.Aio
+ALLWINNER_A20UNIT=Embedded.Allwinner_a20
+ANDROIDR14UNIT=AndroidAPI.AndroidR14
+ATHREADSUNIT=AmigaApi.AThreads
+BASEUNIXUNIT=UnixApi.Base
+BETHREADSUNIT=BeosApi.Bethreads
+BLOCKRTLUNIT=blockrtl
+BSDUNIT=BsdApi
+CHARACTERUNIT=System.Character
+CHARSETUNIT=System.CharSet
+CLASSESUNIT=System.Classes
+CMEMUNIT=System.CMem
+COMMONUNIT=PalmApi.Common
+CONSOLEUNIT=System.Console
+CONSOLEIOUNIT=EmbeddedApi.ConsoleIO
+CORTEXM0UNIT=ARMApi.Cortexm0
+CORTEXM3UNIT=ARMApi.Cortexm3
+CORTEXM4UNIT=ARMApi.Cortexm4
+CORTEXM7UNIT=ARMApi.Cortexm7
+CP1250UNIT=System.CodePages.CP1250
+CP1251UNIT=System.CodePages.CP1251
+CP1252UNIT=System.CodePages.CP1252
+CP1253UNIT=System.CodePages.CP1253
+CP1254UNIT=System.CodePages.CP1254
+CP1255UNIT=System.CodePages.CP1255
+CP1256UNIT=System.CodePages.CP1256
+CP1257UNIT=System.CodePages.CP1257
+CP1258UNIT=System.CodePages.CP1258
+CP3021UNIT=System.CodePages.CP3021
+CP437UNIT=System.CodePages.CP437
+CP646UNIT=System.CodePages.CP646
+CP737UNIT=System.CodePages.CP737
+CP775UNIT=System.CodePages.CP775
+CP850UNIT=System.CodePages.CP850
+CP852UNIT=System.CodePages.CP852
+CP855UNIT=System.CodePages.CP855
+CP856UNIT=System.CodePages.CP856
+CP857UNIT=System.CodePages.CP857
+CP860UNIT=System.CodePages.CP860
+CP861UNIT=System.CodePages.CP861
+CP862UNIT=System.CodePages.CP862
+CP863UNIT=System.CodePages.CP863
+CP864UNIT=System.CodePages.CP864
+CP865UNIT=System.CodePages.CP865
+CP866UNIT=System.CodePages.CP866
+CP869UNIT=System.CodePages.CP869
+CP874UNIT=System.CodePages.CP874
+CP8859_1UNIT=System.CodePages.CP8859_1
+CP8859_10UNIT=System.CodePages.CP8859_10
+CP8859_11UNIT=System.CodePages.CP8859_11
+CP8859_13UNIT=System.CodePages.CP8859_13
+CP8859_14UNIT=System.CodePages.CP8859_14
+CP8859_15UNIT=System.CodePages.CP8859_15
+CP8859_16UNIT=System.CodePages.CP8859_16
+CP8859_2UNIT=System.CodePages.CP8859_2
+CP8859_3UNIT=System.CodePages.CP8859_3
+CP8859_4UNIT=System.CodePages.CP8859_4
+CP8859_5UNIT=System.CodePages.CP8859_5
+CP8859_6UNIT=System.CodePages.CP8859_6
+CP8859_7UNIT=System.CodePages.CP8859_7
+CP8859_8UNIT=System.CodePages.CP8859_8
+CP8859_9UNIT=System.CodePages.CP8859_9
+CPALLUNIT=System.CodePages.All
+CPKOI8_RUNIT=System.CodePages.CPkoi8_r
+CPKOI8_UUNIT=System.CodePages.CPkoi8_u
+CPUUNIT=System.CPU
+CTHREADSUNIT=UnixApi.CThreads
+CTYPESUNIT=System.CTypes
+CWSTRINGUNIT=UnixApi.CWString
+DDKUNIT=NTApi.Ddk
+DLUNIT=UnixApi.Dl
+DOSUNIT=TP.DOS
+DOSCALL2UNIT=OS2Api.Doscall2
+DOSCALLSUNIT=OS2Api.Doscalls
+DPMIEXCPUNIT=DOSApi.Dpmiexcp
+DXELOADUNIT=DOSApi.Dxeload
+DXETYPEUNIT=DOSApi.Dxetype
+DYNLIBSUNIT=System.DynLibs
+EMU387UNIT=DOSApi.EMU387
+EMXUNIT=DOSApi.EMX
+ERRORSUNIT=System.Errors
+ESP32UNIT=System.Esp32
+ESP8266UNIT=System.Esp8266
+ESP8266RTOS_30300UNIT=System.Esp8266rtos_30300
+ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
+ESPIDF_40100UNIT=System.Espidf_40100
+ESPIDF_40200UNIT=System.Espidf_40200
+ESPIDF_40400UNIT=System.Espidf_40400
+EXEUNIT=OS2Api.Exe
+EXEINFOUNIT=System.Exeinfo
+EXTPASUNIT=extpas
+FE310G000UNIT=EmbeddedApi.Fe310g000
+FE310G002UNIT=EmbeddedApi.Fe310g002
+FGLUNIT=System.FGL
+FPCMEMDLLUNIT=System.FPCMemDLL
+FPCYLIXUNIT=fpcylix
+FPWIDESTRINGUNIT=System.FPWideString
+FREEBSDUNIT=FreeBSDApi.FreeBSD
+GD32VF103XXUNIT=EmbeddedApi.Gd32vf103xx
+GETOPTSUNIT=System.GetOpts
+GO32UNIT=DOSApi.GO32
+GPIOUNIT=EmbeddedApi.Gpio
+HEAPMGRUNIT=EmbeddedApi.HeapMGR
+INITCUNIT=System.InitC
+INTRINSICSUNIT=System.Intrinsics
+ISO7185UNIT=iso7185
+JDK15UNIT=JavaApi.JDK15
+KBDCALLSUNIT=OS2Api.Kbdcalls
+LIBCUNIT=NetwareLibCApi.Libc
+LINEINFOUNIT=System.LineInfo
+LINUXUNIT=LinuxApi
+LINUXVCSUNIT=LinuxApi.Vcs
+LM3FURYUNIT=EmbeddedApi.Lm3fury
+LM3TEMPESTUNIT=EmbeddedApi.Lm3tempest
+LM4F120UNIT=EmbeddedApi.Lm4f120
+LNFODWRFUNIT=System.LineInfo.Dwarf
+LNFOGDBUNIT=System.LineInfo.Gdb
+LPC11XXUNIT=EmbeddedApi.Lpc11xx
+LPC122XUNIT=EmbeddedApi.Lpc122x
+LPC13XXUNIT=EmbeddedApi.Lpc13xx
+LPC1768UNIT=EmbeddedApi.Lpc1768
+LPC21X4UNIT=EmbeddedApi.Lpc21x4
+LPC8XXUNIT=EmbeddedApi.Lpc8xx
+LSTRINGSUNIT=System.LStrings
+MACOSUNIT=MacOSApi.MacOS
+MACOSTPUNIT=MacOSApi.MacOSTP
+MACUTILSUNIT=MacOSApi.MacUtils
+MAILBOXUNIT=EmbeddedApi.Mailbox
+MATHUNIT=System.Math
+MESSAGESUNIT=WinApi.Messages
+MK20D5UNIT=EmbeddedApi.Mk20d5
+MK20D7UNIT=EmbeddedApi.Mk20d7
+MK22F51212UNIT=EmbeddedApi.Mk22f51212
+MK64F12UNIT=EmbeddedApi.Mk64f12
+MMIOUNIT=EmbeddedApi.Mmio
+MMXUNIT=System.CPU.MMX
+MONCALLSUNIT=OS2Api.Moncalls
+MOUCALLSUNIT=OS2Api.Moucalls
+MSMOUSEUNIT=DOSApi.MSMouse
+MULTIBOOTUNIT=EmbeddedApi.Multiboot
+NDKUNIT=NTApi.NDK
+NDKUTILSUNIT=NTApi.NDKUtils
+NETWAREUNIT=NetwareApi.NetWare
+NEWEXEUNIT=OS2Api.Newexe
+NRF51UNIT=EmbeddedApi.Nrf51
+NRF52UNIT=EmbeddedApi.Nrf52
+NWCALLSUNIT=NetWareApi.Nwcalls
+NWNITUNIT=NetWareApi.Nwnit
+NWPREUNIT=NetWareApi.Nwpre
+NWPROTUNIT=NetWareApi.Nwprot
+NWSERVUNIT=NetWareApi.Nwserv
+NWSNUTUNIT=NetWareApi.Nwsnut
+OBJCUNIT=objc
+OBJCBASEUNIT=objcbase
+OS2DEFUNIT=OS2Api.Os2def
+PAGEMEMUNIT=System.PageMem
+PILOTUNIT=PalmApi.Pilot
+PMBIDIUNIT=OS2Api.Pmbidi
+PMBITMAPUNIT=OS2Api.Pmbitmap
+PMDEVUNIT=OS2Api.Pmdev
+PMGPIUNIT=OS2Api.Pmgpi
+PMHELPUNIT=OS2Api.Pmhelp
+PMSHLUNIT=OS2Api.Pmshl
+PMSPLUNIT=OS2Api.Pmspl
+PMSTDDLGUNIT=OS2Api.Pmstddlg
+PMWINUNIT=OS2Api.Pmwin
+PMWPUNIT=OS2Api.Pmwp
+PMWSOCKUNIT=OS2Api.Pmwsock
+PORTSUNIT=System.Ports
+POSIXUNIT=QNXApi.Posix
+PROFILEUNIT=DOSApi.Profile
+RASPI2UNIT=EmbeddedApi.Raspi2
+RASPI3UNIT=EmbeddedApi.Raspi3
+RASPIUARTUNIT=EmbeddedApi.Raspiuart
+RTLCONSTSUNIT=System.RtlConsts
+SAM3X8EUNIT=EmbeddedApi.Sam3x8e
+SAMD51P19AUNIT=EmbeddedApi.Samd51p19a
+SC32442BUNIT=EmbeddedApi .Sc32442b
+SFPU128UNIT=System.SoftFpu128
+SFPUX80UNIT=System.SoftFpuX80
+SHAREMEMUNIT=WinApi.ShareMem
+SIGNALSUNIT=WinApi.Signals
+SO32DLLUNIT=OS2Api.So32dll
+SOFTFPUUNIT=System.SoftFPU
+SORTBASEUNIT=System.SortBase
+STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
+STM32F103XEUNIT=EmbeddedApi.Stm32f103xe
+STM32F10X_CLUNIT=EmbeddedApi.Stm32f10x_cl
+STM32F10X_CONNUNIT=EmbeddedApi.Stm32f10x_conn
+STM32F10X_HDUNIT=EmbeddedApi.Stm32f10x_hd
+STM32F10X_LDUNIT=EmbeddedApi.Stm32f10x_ld
+STM32F10X_MDUNIT=EmbeddedApi.Stm32f10x_md
+STM32F10X_XLUNIT=EmbeddedApi.Stm32f10x_xl
+STM32F401XEUNIT=EmbeddedApi.Stm32f401xe
+STM32F401XXUNIT=EmbeddedApi.Stm32f401xx
+STM32F407XXUNIT=EmbeddedApi.Stm32f407xx
+STM32F411XEUNIT=EmbeddedApi.Stm32f411xe
+STM32F429UNIT=EmbeddedApi.Stm32f429
+STM32F429XXUNIT=EmbeddedApi.Stm32f429xx
+STM32F446XXUNIT=EmbeddedApi.Stm32f446xx
+STM32F745UNIT=EmbeddedApi.Stm32f745
+STM32F746UNIT=EmbeddedApi.Stm32f746
+STM32F756UNIT=EmbeddedApi.Stm32f756
+STM32G071XXUNIT=EmbeddedApi.Stm32g071xx
+STRINGSUNIT=System.Strings
+SYMBIANUNIT=SymbianApi.Symbian
+SYSALLUNIT=PalmApi.Sysall
+SYSCALLUNIT=UnixApi.SysCall
+SYSCONSTUNIT=System.SysConst
+SYSCTLUNIT=BsdApi.SysCtl
+SYSEMXUNIT=DOSApi.Sysemx
+SYSOS2UNIT=OS2Api.Sysos2
+SYSTRAPSUNIT=PalmApi.Systraps
+SYSUTILSUNIT=System.SysUtils
+TERMIOUNIT=UnixApi.TermIO
+TYPESUNIT=System.Types
+TYPINFOUNIT=System.TypInfo
+UFLOAT128UNIT=System.UFloat128
+UFLOATX80UNIT=System.UFloatX80
+UIUNIT=PalmApi.Ui
+UIQUNIT=SymbianApi.Uiq
+UIQCLASSESUNIT=SymbianApi.Uiqclasses
+UNICODEDATAUNIT=System.CodePages.unicodedata
+UNIXUNIT=UnixApi.Unix
+UNIXCPUNIT=UnixApi.CP
+UNIXTYPEUNIT=UnixApi.Types
+UNIXUTILUNIT=UnixApi.Utils
+VIOCALLSUNIT=OS2Api.Viocalls
+WASIAPIUNIT=WASIApi.WASIApi
+WASIUTILUNIT=WASIApi.WASIUtil
+WATCOMUNIT=WatcomApi.WatCom
+WEBASSEMBLYUNIT=Wasm.Api
+WIN31UNIT=WinApi.Win31
+WINDIRSUNIT=WinApi.WinDirs
+WINDOWSUNIT=WinApi.Windows
+WINPROCSUNIT=WinApi.WinProcs
+WINSYSUTUNIT=WinApi.WinSysUt
+WINTYPESUNIT=WinApi.WinTypes
+X86UNIT=System.X86
+XMC4500UNIT=EmbeddedApi.Xmc4500
+EXEINFOUNIT=System.ExeInfo
+ERRORSUNIT=UnixApi.Errors
+else
+AIOUNIT=aio
+ALLWINNER_A20UNIT=allwinner_a20
+ANDROIDR14UNIT=androidr14
+ATHREADSUNIT=athreads
+BASEUNIXUNIT=baseunix
+BETHREADSUNIT=bethreads
+BLOCKRTLUNIT=blockrtl
+BSDUNIT=bsd
+CHARACTERUNIT=character
+CHARSETUNIT=charset
+CLASSESUNIT=classes
+CMEMUNIT=cmem
+COMMONUNIT=common
+CONSOLEUNIT=console
+CONSOLEIOUNIT=consoleio
+CORTEXM0UNIT=cortexm0
+CORTEXM3UNIT=cortexm3
+CORTEXM4UNIT=cortexm4
+CORTEXM7UNIT=cortexm7
+CP1250UNIT=cp1250
+CP1251UNIT=cp1251
+CP1252UNIT=cp1252
+CP1253UNIT=cp1253
+CP1254UNIT=cp1254
+CP1255UNIT=cp1255
+CP1256UNIT=cp1256
+CP1257UNIT=cp1257
+CP1258UNIT=cp1258
+CP3021UNIT=cp3021
+CP437UNIT=cp437
+CP646UNIT=cp646
+CP737UNIT=cp737
+CP775UNIT=cp775
+CP850UNIT=cp850
+CP852UNIT=cp852
+CP855UNIT=cp855
+CP856UNIT=cp856
+CP857UNIT=cp857
+CP860UNIT=cp860
+CP861UNIT=cp861
+CP862UNIT=cp862
+CP863UNIT=cp863
+CP864UNIT=cp864
+CP865UNIT=cp865
+CP866UNIT=cp866
+CP869UNIT=cp869
+CP874UNIT=cp874
+CP8859_1UNIT=cp8859_1
+CP8859_10UNIT=cp8859_10
+CP8859_11UNIT=cp8859_11
+CP8859_13UNIT=cp8859_13
+CP8859_14UNIT=cp8859_14
+CP8859_15UNIT=cp8859_15
+CP8859_16UNIT=cp8859_16
+CP8859_2UNIT=cp8859_2
+CP8859_3UNIT=cp8859_3
+CP8859_4UNIT=cp8859_4
+CP8859_5UNIT=cp8859_5
+CP8859_6UNIT=cp8859_6
+CP8859_7UNIT=cp8859_7
+CP8859_8UNIT=cp8859_8
+CP8859_9UNIT=cp8859_9
+CPALLUNIT=cpall
+CPKOI8_RUNIT=cpkoi8_r
+CPKOI8_UUNIT=cpkoi8_u
+CPUUNIT=cpu
+CTHREADSUNIT=cthreads
+CTYPESUNIT=ctypes
+CWSTRINGUNIT=cwstring
+DDKUNIT=ddk
+DLUNIT=dl
+DOSUNIT=dos
+DOSCALL2UNIT=doscall2
+DOSCALLSUNIT=doscalls
+DPMIEXCPUNIT=dpmiexcp
+DXELOADUNIT=dxeload
+DXETYPEUNIT=dxetype
+DYNLIBSUNIT=dynlibs
+EMU387UNIT=emu387
+EMXUNIT=emx
+ERRORSUNIT=errors
+ESP32UNIT=esp32
+ESP8266UNIT=esp8266
+ESP8266RTOS_30300UNIT=esp8266rtos_30300
+ESP8266RTOS_30400UNIT=esp8266rtos_30400
+ESPIDF_40100UNIT=espidf_40100
+ESPIDF_40200UNIT=espidf_40200
+ESPIDF_40400UNIT=espidf_40400
+EXEUNIT=exe
+EXEINFOUNIT=exeinfo
+EXTPASUNIT=extpas
+FE310G000UNIT=fe310g000
+FE310G002UNIT=fe310g002
+FGLUNIT=fgl
+FPCMEMDLLUNIT=fpcmemdll
+FPCYLIXUNIT=fpcylix
+FPWIDESTRINGUNIT=fpwidestring
+FREEBSDUNIT=freebsd
+GD32VF103XXUNIT=gd32vf103xx
+GETOPTSUNIT=getopts
+GO32UNIT=go32
+GPIOUNIT=gpio
+HEAPMGRUNIT=heapmgr
+INITCUNIT=initc
+INTRINSICSUNIT=intrinsics
+ISO7185UNIT=iso7185
+JDK15UNIT=jdk15
+KBDCALLSUNIT=kbdcalls
+LIBCUNIT=libc
+LINEINFOUNIT=lineinfo
+LINUXUNIT=linux
+LINUXVCSUNIT=linuxvcs
+LM3FURYUNIT=lm3fury
+LM3TEMPESTUNIT=lm3tempest
+LM4F120UNIT=lm4f120
+LNFODWRFUNIT=lnfodwrf
+LNFOGDBUNIT=lnfogdb
+LPC11XXUNIT=lpc11xx
+LPC122XUNIT=lpc122x
+LPC13XXUNIT=lpc13xx
+LPC1768UNIT=lpc1768
+LPC21X4UNIT=lpc21x4
+LPC8XXUNIT=lpc8xx
+LSTRINGSUNIT=lstrings
+MACOSUNIT=macos
+MACOSTPUNIT=macostp
+MACUTILSUNIT=macutils
+MAILBOXUNIT=mailbox
+MATHUNIT=math
+MESSAGESUNIT=messages
+MK20D5UNIT=mk20d5
+MK20D7UNIT=mk20d7
+MK22F51212UNIT=mk22f51212
+MK64F12UNIT=mk64f12
+MMIOUNIT=mmio
+MMXUNIT=mmx
+MONCALLSUNIT=moncalls
+MOUCALLSUNIT=moucalls
+MSMOUSEUNIT=msmouse
+MULTIBOOTUNIT=multiboot
+NDKUNIT=ndk
+NDKUTILSUNIT=ndkutils
+NETWAREUNIT=netware
+NEWEXEUNIT=newexe
+NRF51UNIT=nrf51
+NRF52UNIT=nrf52
+NWCALLSUNIT=nwcalls
+NWNITUNIT=nwnit
+NWPREUNIT=nwpre
+NWPROTUNIT=nwprot
+NWSERVUNIT=nwserv
+NWSNUTUNIT=nwsnut
+OBJCUNIT=objc
+OBJCBASEUNIT=objcbase
+OS2DEFUNIT=os2def
+PAGEMEMUNIT=pagemem
+PILOTUNIT=pilot
+PMBIDIUNIT=pmbidi
+PMBITMAPUNIT=pmbitmap
+PMDEVUNIT=pmdev
+PMGPIUNIT=pmgpi
+PMHELPUNIT=pmhelp
+PMSHLUNIT=pmshl
+PMSPLUNIT=pmspl
+PMSTDDLGUNIT=pmstddlg
+PMWINUNIT=pmwin
+PMWPUNIT=pmwp
+PMWSOCKUNIT=pmwsock
+PORTSUNIT=ports
+POSIXUNIT=posix
+PROFILEUNIT=profile
+RASPI2UNIT=raspi2
+RASPI3UNIT=raspi3
+RASPIUARTUNIT=raspiuart
+RTLCONSTSUNIT=rtlconsts
+SAM3X8EUNIT=sam3x8e
+SAMD51P19AUNIT=samd51p19a
+SC32442BUNIT=sc32442b
+SFPU128UNIT=sfpu128
+SFPUX80UNIT=sfpux80
+SHAREMEMUNIT=sharemem
+SIGNALSUNIT=signals
+SO32DLLUNIT=so32dll
+SOFTFPUUNIT=softfpu
+SORTBASEUNIT=sortbase
+STM32F0XXUNIT=stm32f0xx
+STM32F103XEUNIT=stm32f103xe
+STM32F10X_CLUNIT=stm32f10x_cl
+STM32F10X_CONNUNIT=stm32f10x_conn
+STM32F10X_HDUNIT=stm32f10x_hd
+STM32F10X_LDUNIT=stm32f10x_ld
+STM32F10X_MDUNIT=stm32f10x_md
+STM32F10X_XLUNIT=stm32f10x_xl
+STM32F401XEUNIT=stm32f401xe
+STM32F401XXUNIT=stm32f401xx
+STM32F407XXUNIT=stm32f407xx
+STM32F411XEUNIT=stm32f411xe
+STM32F429UNIT=stm32f429
+STM32F429XXUNIT=stm32f429xx
+STM32F446XXUNIT=stm32f446xx
+STM32F745UNIT=stm32f745
+STM32F746UNIT=stm32f746
+STM32F756UNIT=stm32f756
+STM32G071XXUNIT=stm32g071xx
+STRINGSUNIT=strings
+SYMBIANUNIT=symbian
+SYSALLUNIT=sysall
+SYSCALLUNIT=syscall
+SYSCONSTUNIT=sysconst
+SYSCTLUNIT=sysctl
+SYSEMXUNIT=sysemx
+SYSOS2UNIT=sysos2
+SYSTRAPSUNIT=systraps
+SYSUTILSUNIT=sysutils
+TERMIOUNIT=termio
+TYPESUNIT=types
+TYPINFOUNIT=typinfo
+UFLOAT128UNIT=ufloat128
+UFLOATX80UNIT=ufloatx80
+UIUNIT=ui
+UIQUNIT=uiq
+UIQCLASSESUNIT=uiqclasses
+UNICODEDATAUNIT=unicodedata
+UNIXUNIT=unix
+UNIXCPUNIT=unixcp
+UNIXTYPEUNIT=unixtype
+UNIXUTILUNIT=unixutil
+VIOCALLSUNIT=viocalls
+WASIAPIUNIT=wasiapi
+WASIUTILUNIT=wasiutil
+WATCOMUNIT=watcom
+WEBASSEMBLYUNIT=webassembly
+WIN31UNIT=win31
+WINDIRSUNIT=windirs
+WINDOWSUNIT=windows
+WINPROCSUNIT=winprocs
+WINSYSUTUNIT=winsysut
+WINTYPESUNIT=wintypes
+X86UNIT=x86
+XMC4500UNIT=xmc4500
+endif
+ifdef FPC_DOTTEDUNITS 
+NS_SYSTEM=System.
+NS_CPUNITS=System.CodePages.
+NSDIR=$(RTL)/namespaced
+NSINC=$(NSDIR)/common
+OPT:=$(OPT) -dFPC_DOTTEDUNITS
+BASEINCLUDE=$(INC) $(PROCINC) 
+BASESOURCE=$(INC) $(PROCINC) $($(COMMONUNIT))
+endif
+CPUNITSBASE=$(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) 
+CPUNITS=$(addprefix $(NS_CPUNITS),$(CPUNITSBASE))
 RTL=..
 RTL=..
 INC=$(RTL)/inc
 INC=$(RTL)/inc
 COMMON=$(RTL)/common
 COMMON=$(RTL)/common
@@ -2056,7 +2556,7 @@ endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override CLEAN_UNITS+=syslinux linux
 override CLEAN_UNITS+=syslinux linux
 endif
 endif
-override INSTALL_FPCPACKAGE=y
+override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-linux)
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 endif
 endif
@@ -4432,6 +4932,489 @@ makefiles: fpc_makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
+ifndef OSDIR
+OSDIR=.
+endif
+ifndef PORTSDIR
+PORTSDIR=$(OSDIR)
+endif
+ifndef DYNLIBSINCDIR
+DYNLIBSINCDIR=$(OSDIR)
+endif
+ifndef INITCDIR
+INITCDIR=$(OSDIR)
+endif
+ifndef DOSDIR
+DOSDIR=$(OSDIR)
+NSDOSDIR=$(NSDIR)/$(DOSDIR)
+endif
+ifndef SYSUTILSDIR
+SYSUTILSDIR=$(OSDIR)
+endif
+ifndef NSSYSUTILSDIR
+NSSYSUTILSDIR=$(NSDIR)/$(SYSUTILSDIR)
+endif
+ifndef CLASSESDIR
+CLASSESDIR=$(OSDIR)
+endif
+ifndef NSCLASSESDIR
+NSCLASSESDIR=$(NSDIR)/$(CLASSESDIR)
+endif
+ifndef NSBSDDIR
+NSBSDDIR=$(NSDIR)/bsd
+endif
+ifdef FPC_DOTTEDUNITS
+MACPAS_OPT:=$(MACPAS_OPT) -dFPC_DOTTEDUNITS
+EXTPAS_OPT:=$(EXTPAS_OPT) -dFPC_DOTTEDUNITS
+endif
+ifndef SYSTEMUNITEXT
+SYSTEMUNITEXT=pp
+endif
+ifndef DOSUNITEXT
+DOSUNITEXT=pp
+endif
+ifndef PORTSUNITEXT
+PORTSUNITEXT=pp
+endif
+ifndef BASEUNIXDIR
+BASEUNIXDIR=$(UNIXINC)
+endif
+ifdef FPC_DOTTEDUNITS
+BLOCKRTL_OPT:=$(BLOCKRTL_OPT) -dFPC_DOTTEDUNITS
+FPEXTRES_OPT:=$(FPEXTRES_OPT) -dFPC_DOTTEDUNITS
+OBJC_OPT:=$(OBJC_OPT) -dFPC_DOTTEDUNITS
+endif
+$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).$(SYSTEMUNITEXT) $(SYSDEPS)
+	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $<
+UUCHAR_DEPS=$(INC)/uuchar.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(UUCHAR_DEPS_OS) $(UUCHAR_DEPS_CPU)
+uuchar$(PPUEXT): $(UUCHAR_DEPS)
+	$(COMPILER) $(UUCHAR_OPT) $<
+UACHAR_DEPS=$(INC)/uachar.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(UACHAR_DEPS_OS) $(UACHAR_DEPS_CPU)
+uachar$(PPUEXT): $(UACHAR_DEPS)
+	$(COMPILER) $(UACHAR_OPT) $<
+OBJPAS_DEPS= $(OBJPASDIR)/objpas.pp $(INC)/except.inc \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OBJPAS_DEPS_OS) $(OBJPAS_DEPS_SPU)  
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+	$(COMPILER) $(OBJPAS_OPT) -I$(OBJPASDIR) $<
+MACPAS_DEPS=$(INC)/macpas.pp \
+	    objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(MACPAS_DEPS_OS)  $(MACPAS_DEPS_CPU) 
+macpas$(PPUEXT) : $(MACPAS_DEPS)
+	$(COMPILER) $(MACPAS_OPT) $< 
+ISO7185_DEPS= $(INC)/$(ISO7185UNIT).pp \
+	      $(SYSTEMUNIT)$(PPUEXT) \
+	      $(ISO7185_DEPS_OS) $(ISO7185_DEPS_CPU) 
+iso7185$(PPUEXT) : $(ISO7185_DEPS)
+	$(COMPILER) $(ISO7185_OPT) $<
+EXTPAS_DEPS=$(INC)/extpas.pp \
+	    $(DOSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(EXTPAS_DEPS_OS) $(EXTPAS_DEPS_CPU)
+extpas$(PPUEXT) : $(EXTPAS_DEPS)
+	$(COMPILER) $(EXTPAS_OPT) $<
+FPINTRES_DEPS= $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT) \
+	       $(FPINTRES_DEPS_OS) $(FPINTRES_DEPS_CPU)              
+fpintres$(PPUEXT) : $(FPINTRES_DEPS)
+	$(COMPILER) $(FPINTRES_OPT) $<
+FPEXTRES_DEPS= $(INC)/fpextres.pp $(SYSTEMUNIT)$(PPUEXT) \
+	       $(FPEXTRES_DEPS_OS) $(FPEXTRES_DEPS_CPU)              
+fpextres$(PPUEXT) : $(FPEXTRES_DEPS)
+	$(COMPILER) -Sg $(FPEXTRES_OPT) $<
+HEAPTRC_DEPS=$(INC)/heaptrc.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(HEAPTRC_DEPS_OS) $(HEAPTRC_DEPS_CPU)
+heaptrc$(PPUEXT) : $(HEAPTRC_DEPS)
+	$(COMPILER) $(HEAPTRC_OPT) $<
+SOFTFPU_DEPS=$(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SOFTFPU_DEPS_OS) $(SOFTFPU_DEPS_CPU)
+softfpu$(PPUEXT) : $(SOFTFPU_DEPS) 
+	$(COMPILER) $(SOFTFPU_OPT) $<
+System.SoftFPU$(PPUEXT) : $(NSINC)/System.SoftFPU.pp $(SOFTFPU_DEPS) 
+	$(COMPILER) $(SOFTFPU_OPT) $<
+SFPUX80_DEPS=$(INC)/sfpux80.pp $(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SFPUX80_DEPS_OS) $(SFPUX80_DEPS_CPU) 
+sfpux80$(PPUEXT) : $(SFPUX80_DEPS)
+	$(COMPILER) $(SFPUX80_OPT) $<
+System.SoftFpuX80$(PPUEXT) : $(NSINC)/System.SoftFpuX80.pp  $(SFPUX80_DEPS)
+	$(COMPILER) $(SFPUX80_OPT) $<
+SFPU128_DEPS=$(INC)/sfpu128.pp $(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SFPU128_DEPS_OS) $(SFPU128_DEPS_CPU)
+sfpu128$(PPUEXT) : $(SFPU128_DEPS)
+	$(COMPILER) $(SFPUX128_OPT) $<
+System.SoftFpu128$(PPUEXT) : $(NSINC)/System.SoftFpu128.pp $(SFPU128_DEPS)
+	$(COMPILER) $(SFPUX128_OPT) $<
+UFLOATX80_DEPS=$(INC)/ufloatx80.pp \
+	       $(SFPUX80UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	       $(UFLOATX80_DEPS_OS) $(UFLOATX80_DEPS_CPU)
+ufloatx80$(PPUEXT) : $(UFLOATX80_DEPS)
+	$(COMPILER) $(UFLOATX80_OPT) $<
+System.UFloatX80$(PPUEXT) : $(NSINC)/System.UFloatX80.pp $(UFLOATX80_DEPS)
+	$(COMPILER) $(UFLOATX80_OPT) $<
+UFLOAT128_DEPS=$(INC)/ufloat128.pp \
+	       $(SFPU128UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	       $(UFLOAT128_DEPS_OS) $(UFLOAT128_DEPS_CPU)
+ufloat128$(PPUEXT) : $(UFLOAT128_DEPS)
+	$(COMPILER) $(UFLOAT128_OPT) $<
+System.UFloat128$(PPUEXT) : $(NSINC)/System.UFloat128.pp $(UFLOAT128_DEPS)
+	$(COMPILER) $(UFLOAT128_OPT) $<
+STRINGS_DEPS=$(INC)/strings.pp $(INC)/stringsi.inc $(PROCINC)/stringss.inc $(PROCINC)/strings.inc \
+	     $(SYSTEMUNIT)$(PPUEXT)  \
+	     $(STRINGS_DEPS_OS)
+strings$(PPUEXT) : $(STRINGS_DEPS)
+	$(COMPILER) $(STRINGS_OPT) $<
+System.Strings$(PPUEXT) : $(NSINC)/System.Strings.pp $(STRINGS_DEPS)
+	$(COMPILER) $(STRINGS_OPT) $<
+PORTS_DEPS=$(PORTSDIR)/ports.$(PORTSUNITEXT) \
+	   $(SYSTEMUNIT)$(PPUEXT) \
+	   $(PORTS_DEPS_OS) $(PORTS_DEPS_CPU)
+ports$(PPUEXT) : $(PORTS_DEPS) 
+	$(COMPILER) $(PORTS_OPT) $<
+System.Ports$(PPUEXT) :  $(NSINC)/System.Ports.pp $(PORTS_DEPS) 
+	$(COMPILER) $(PORTS_OPT) $<
+DYNLIBS_DEPS=$(INC)/dynlibs.pas $(OSDIR)/dynlibs.inc \
+	     objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
+	     $(DYNLIBS_DEPS_OS) $(DYNLIBS_DEPS_CPU)
+dynlibs$(PPUEXT) : $(DYNLIBS_DEPS)
+	$(COMPILER) $(DYNLIBS_OPT) $<
+System.DynLibs$(PPUEXT) : $(NSINC)/System.DynLibs.pas $(DYNLIBS_DEPS)
+	$(COMPILER) $(DYNLIBS_OPT) $<
+INITC_DEPS=$(INITCDIR)/initc.pp $(CTYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(INITC_DEPS_OS) $(INITC_DEPS_CPU)
+initc$(PPUEXT) : $(INITC_DEPS)
+	$(COMPILER) $(INITC_OPT) $<
+System.InitC$(PPUEXT) : $(NSINC)/System.InitC.pp  $(INITC_DEPS)
+	$(COMPILER) $(INITC_OPT) $<
+UNIXCP_DEPS=$(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	$(UNIXCP_DEPS_OS) $(UNIXCP_DEPS_CPU)
+unixcp$(PPUEXT) : $(UNIXCP_DEPS)
+	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
+UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
+	$(COMPILER) $(UNIXCP_OPT) $<
+LINUX_DEPS=$(OSDIR)/linux.pp \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
+linux$(PPUEXT): $(LINUX_DEPS)
+	$(COMPILER) $<
+LinuxApi$(PPUEXT): $(NSOSDIR)/LinuxApi.pp $(LINUX_DEPS) 
+	$(COMPILER) $(LINUX_OPT) $<
+LINUXVCS_DEPS=$(OSDIR)/linuxvcs.pp $(BASEUNIXUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(LINUXVCS_DEPS_OS) $(LINUXVCS_DEPS_CPU)
+linuxvcs$(PPUEXT): $(LINUXVCS_DEPS)
+	$(COMPILER) $(LINUXVCS_OPT) $<
+LinuxApi.Vcs$(PPUEXT): $(NSOSDIR)/LinuxApi.Vcs.pp $(LINUXVCS_DEPS)
+	$(COMPILER) $(LINUXVCS_OPT) $<
+FPCYLIX_DEPS=fpcylix.pp \
+	     $(CTHREADSUNIT)$(PPUEXT) $(CWSTRINGUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT) \
+	     objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(FPCYLIX_DEPS_OS)  $(FPCYLIX_DEPS_CPU)
+fpcylix$(PPUEXT) : $(FPCYLIX_DEPS)
+	$(COMPILER) $(FPCYLIX_OPT) $<
+TERMIO_DEPS=$(OSDIR)/termio.pp $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)\
+	    $(TERMIO_DEPS_OS) $(TERMIO_DEPS_CPU)
+termio$(PPUEXT) : $(TERMIO_DEPS)
+	$(COMPILER) $(TERMIO_OPT) $<
+UnixApi.TermIO$(PPUEXT) : $(NSINC)/UnixApi.TermIO.pp $(TERMIO_DEPS)
+	$(COMPILER) $(TERMIO_OPT) $<
+DOS_DEPS=$(DOSDIR)/dos.$(DOSUNITEXT)  $(INC)/filerec.inc $(INC)/textrec.inc \
+	 $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	 $(DOS_DEPS_OS) $(DOS_DEPS_CPU)
+dos$(PPUEXT): $(DOS_DEPS)
+	$(COMPILER) $(DOS_OPTS) $<
+TP.DOS$(PPUEXT): $(NSINC)/TP.DOS.pp $(DOS_DEPS) 
+	$(COMPILER) $(DOS_OPTS) $<
+SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
+	      objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
+	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
+sysutils$(PPUEXT) : $(SYSUTILS_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR)/$(SYSUTILSUNIT) $<
+System.SysUtils$(PPUEXT) : $(NSINC)/System.SysUtils.pp $(SYSUTILS_DEPS)
+	$(COMPILER) $(SYSUTILS_OPT) -Fi$(OBJPASDIR)/sysutils $<
+CLASSES_DEPS=$(CLASSESDIR)/classes.pp $(wildcard $(OBJPASDIR)/$(CLASSESUNIT)/*.inc) \
+	     $(SYSUTILSUNIT)$(PPUEXT) $(TYPINFOUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	     $(FGLUNIT)$(PPUEXT) $(TYPESUNIT)$(PPUEXT) \
+	     $(CLASSES_DEPS_OS) $(CLASSES_DEPS_CPU)
+classes$(PPUEXT) : $(CLASSES_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
+System.Classes$(PPUEXT) : $(NSINC)/System.Classes.pp $(CLASSES_DEPS) 
+	$(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
+TYPINFO_DEPS=$(OBJPASDIR)/typinfo.pp \
+	     objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	     $(TYPINFO_DEPS_OS) $(TYPINFO_DEPS_CPU)
+typinfo$(PPUEXT): $(TYPINFO_DEPS)
+	$(COMPILER) -Sg $(TYPINFO_OPT) $<
+System.TypInfo$(PPUEXT): $(NSINC)/System.TypInfo.pp $(TYPINFO_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) -Sg $(TYPINFO_OPT) $<
+CHARACTER_DEPS=$(OBJPASDIR)/character.pas \
+	       $(SYSUTILSUNIT)$(PPUEXT) objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	       $(CHARACTER_DEPS_OS) $(CHARACTER_DEPS_CPU)
+character$(PPUEXT): $(CHARACTER_DEPS)
+	$(COMPILER) $(CHARACTER_OPT) $<
+System.Character$(PPUEXT): $(NSINC)/System.Character.pas $(CHARACTER_DEPS)
+	$(COMPILER) $(CHARACTER_OPT) -Fi$(OBJPASDIR) $<
+MATH_DEPS= $(OBJPASDIR)/math.pp \
+	   objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(MATH_DEPS_OS) $(MATH_DEPS_CPU)
+math$(PPUEXT): $(MATH_DEPS)
+	$(COMPILER) $(MATH_OPT) $<
+System.Math$(PPUEXT): $(NSINC)/System.Math.pp $(MATH_DEPS)
+	$(COMPILER) $(MATH_OPT) -Fi$(OBJPASDIR)  $<
+FGL_DEPS=$(OBJPASDIR)/fgl.pp \
+	  objpas$(PPUEXT) $(TYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(SYSUTILSUNIT)$(PPUEXT) $(SORTBASEUNIT)$(PPUEXT) \
+	  $(FCL_DEPS_OS) $(FCL_DEPS_CPU)
+fgl$(PPUEXT) : $(FGL_DEPS)
+	$(COMPILER) $(FGL_OPT) $<
+System.FGL$(PPUEXT) : $(NSINC)/System.FGL.pp $(FGL_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(FGL_OPT) $<
+TYPES_DEPS=$(OBJPASDIR)/types.pp \
+	   objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(TYPES_DEPS_OS) $(TYPES_DEPS_CPU)
+types$(PPUEXT) : $(TYPES_DEPS)
+	$(COMPILER) $(TYPES_OPT) $<
+System.Types$(PPUEXT) :  $(NSINC)/System.Types.pp $(TYPES_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(TYPES_OPT) $<
+SYSCONST_DEPS=$(OBJPASDIR)/sysconst.pp \
+	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(SYSCONST_DEPS_OS) $(SYSCONST_DEPS_CPU)
+sysconst$(PPUEXT) : $(SYSCONST_DEPS)
+	$(COMPILER) $(SYSCONST_OPT) $<
+System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(RTLCONST_DEPS_OS) $(RTLCONST_DEPS_CPU)
+rtlconsts$(PPUEXT) : $(RTLCONSTS_DEPS)
+	$(COMPILER) $(RTLCONSTS_OPT) $<
+System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
+ifneq ($(findstring $(ARCH),x86_64 i386),)
+CPU_DEPS_OS:=$(CPU_DEPS_OS) $(SYSUTILSUNIT)$(PPUEXT)
+endif
+CPU_DEPS=$(PROCINC)/cpu.pp \
+	 $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	 $(CPU_DEPS_OS) $(CPU_DEPS_CPU)
+cpu$(PPUEXT) : $(CPU_DEPS)
+	$(COMPILER) $(CPU_OPT) $<
+System.CPU$(PPUEXT) : $(NSINC)/System.CPU.pp
+	$(COMPILER) $(CPU_OPT) $<
+MMX_DEPS=$(PROCINC)/mmx.pp \
+	 $(CPUUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	 $(MMX_DEPS_OS) $(MMX_DEPS_CPU) 
+mmx$(PPUEXT) : $(MMX_DEPS)
+	$(COMPILER) $(MMX_OPT) $<
+System.MMX$(PPUEXT) : $(NSINC)/System.MMX $(MMX_DEPS)
+	$(COMPILER) $(MMX_OPT) $<
+X86_DEPS = $(UNIXINC)/x86.pp \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
+x86$(PPUEXT) : $(X86_DEPS)
+	$(COMPILER) $(X86_OPT)  $<
+System.X86$(PPUEXT) : $(NSINC)/System.X86.pp $(X86_DEPS)
+	$(COMPILER) $(X86_OPT) $<
+GETOPTS_DEPS=$(INC)/getopts.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(GETOPTS_DEPS_OS) $(GETOPTS_DEPS_CPU)
+getopts$(PPUEXT) : $(GETOPTS_DEPS)
+	$(COMPILER) $(GETOPTS_OPT) $<
+System.GetOpts$(PPUEXT) : $(NSINC)/System.GetOpts.pp $(GETOPTS_DEPS)
+	$(COMPILER)  $(GETOPTS_OPT) $<
+LINEINFO_DEPS=$(INC)/lineinfo.pp \
+	      $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
+	      $(LINEINFO_DEPS_OS)  $(LINEINFO_DEPS_CPU)
+lineinfo$(PPUEXT) : $(LINEINFO_DEPS)
+	$(COMPILER) $(LINEINFO_OPT) $<
+System.LineInfo$(PPUEXT) : $(NSINC)/System.LineInfo.pp $(LINEINFO_DEPS)
+	$(COMPILER) $(LINEINFO_OPT) $<
+EXEINFO_DEPS=$(INC)/exeinfo.pp \
+	      $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(EXEINFO_DEPS_OS)  $(EXEINFO_DEPS_CPU)
+exeinfo$(PPUEXT) : $(EXEINFO_DEPS)
+	$(COMPILER) $(EXEINFO_OPT) $<
+System.ExeInfo$(PPUEXT) : $(NSINC)/System.ExeInfo.pp $(LINEINFO_DEPS)
+	$(COMPILER) $(EXEINFO_OPT) $<
+LNFODWRF_DEPS=$(INC)/lnfodwrf.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
+	      $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
+	      $(LNFODWRF_DEPS_OS) $(LNFODWRF_DEPS_CPU)
+lnfodwrf$(PPUEXT) : $(LNFODWRF_DEPS)
+	$(COMPILER) $(LNFODWRF_OPT) $<
+System.LineInfo.Dwarf$(PPUEXT) : $(NSINC)/System.LineInfo.Dwarf.pp $(LNFODWRF_DEPS)
+	$(COMPILER) $(LNFODWRF_OPT) $<
+LNFOGDB_DEPS=$(UNIXINC)/lnfogdb.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
+	      $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
+	      $(LNFOGDB_DEPS_OS) $(LNFOGDB_DEPS_CPU)
+lnfogdb$(PPUEXT) : $(LNFOGDB_DEPS)
+	$(COMPILER) $(LNFOGDB_OPT) $<
+System.LineInfo.Gdb$(PPUEXT) : $(NSINC)/System.LineInfo.Gdb.pp $(LNFOGDB_DEPS)
+	$(COMPILER) $(LNFOGDB_OPT) $<
+CHARSET_DEPS=$(INC)/charset.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(CHARSET_DEPS_OS) $(CHARSET_DEPS_CPU)
+charset$(PPUEXT) : $(CHARSET_DEPS)
+	$(COMPILER) $(CHARSET_OPT) $<
+System.CharSet$(PPUEXT) : $(NSINC)/System.CharSet.pp $(CHARSET_DEPS)
+	$(COMPILER) $(CHARSET_OPT) $< 
+CPALL_DEPS=$(RTL)/charmaps/cpall.pas \
+	  system$(PPUEXT) $(CHARSETUNIT)$(PPUEXT) \
+	  $(CPALL_DEPS_OS) $(CPALL_DEPS_CPU)
+cpall$(PPUEXT): $(CPALL_DEPS)  
+	$(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
+System.CodePages.All$(PPUEXT):  $(NSINC)/System.CodePages.All.pas $(CPALL_DEPS)
+	$(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
+FPWIDESTRING_DEPS=$(OBJPASDIR)/fpwidestring.pp \
+		  $(CHARACTERUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(CPALLUNIT)$(PPUEXT) \
+		  $(FPWIDESTRING_DEPS_OS) $(FPWIDESTRING_DEPS_CPU)
+fpwidestring$(PPUEXT): $(FPWIDESTRING_DEPS)
+	$(COMPILER) $(FPWIDESTRING_OPT) $<
+System.FPWideString$(PPUEXT): $(NSINC)/System.FPWideString.pp $(FPWIDESTRING_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(FPWIDESTRING_OPT) $<
+SORTBASE_DEPS=$(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(SORTBASE_DEPS_OS) $(SORTBASE_DEPS_CPU) 
+sortbase$(PPUEXT) : $(SORTBASE_DEPS)
+	$(COMPILER) $(SORTBASE_OPT) $<
+System.SortBase$(PPUEXT) : $(NSINC)/System.SortBase.pp $(SORTBASE_DEPS)
+	$(COMPILER) $(SORTBASE_OPT) $<
+CALLSPEC_DEPS=$(INC)/callspec.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) \
+	      $(CALLSPEC_DEPS_OS) $(CALLSPEC_DEPS_CPU) 
+callspec$(PPUEXT) : $(CALLSPEC_DEPS)
+	$(COMPILER) $(CALLSPEC_OPT) $<
+System.CallSpec$(PPUEXT) : $(NSINC)/System.CallSpec.pp $(CALLSPEC_DEPS)
+	$(COMPILER) $(CALLSPEC_OPT) $<
+CMEM_DEPS=$(INC)/cmem.pp \
+	  $(SYSTEMUNIT)$(PPUEXT) \
+	  $(CMEM_DEPS_OS) $(CMEM_DEPS_CPU)
+cmem$(PPUEXT) : $(CMEM_DEPS)
+	$(COMPILER) $(CMEM_OPT) $<
+System.CMem$(PPUEXT) : $(NSINC)/System.CMem.pp $(CMEM_DEPS)
+	$(COMPILER) $(CMEM_OPT) $<
+BASEUNIX_DEPS=$(BASEUNIXDIR)/baseunix.pp  $(UNIXINC)/ctypes.inc  \
+	      $(UNIXINC)/bunxh.inc $(UNIXINC)/gensigset.inc $(OSDIR)/ptypes.inc $(OSDIR)/errno.inc \
+	      $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(BASEUNIX_DEPS_OS) $(BASEUNIX_DEPS_CPU) 
+baseunix$(PPUEXT): $(BASEUNIX_DEPS)
+	$(COMPILER) $(BASEUNIX_OPT) $<
+UnixApi.Base$(PPUEXT): $(NSINC)/UnixApi.Base.pp $(BASEUNIX_DEPS) 
+	$(COMPILER) $(BASEUNIX_OPT) $<
+UNIX_DEPS=$(UNIXINC)/unix.pp \
+	 $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	 $(UNIXUTILUNIT)$(PPUEXT) \
+	 $(INC)/textrec.inc $(INC)/filerec.inc  $(UNIXINC)/timezone.inc \
+	 $(OSDIR)/unxconst.inc $(OSDIR)/unxfunc.inc \
+	 $(UNIX_DEPS_OS) $(UNIX_DEPS_CPU)
+unix$(PPUEXT): $(UNIX_DEPS)
+	$(COMPILER) $(UNIX_OPT) $<
+UnixApi.Unix$(PPUEXT) : $(NSINC)/UnixApi.Unix.pp $(UNIX_DEPS)
+	$(COMPILER) $(UNIX_OPT) $<
+SYSCALL_DEPS=$(UNIXINC)/syscall.pp \
+	     $(SYSTEMUNIT)$(PPUEXT)\
+	     $(SYSCALL_DEPS_OS) $(SYSCALL_DEPS_CPU)
+syscall$(PPUEXT) : $(SYSCALL_DEPS)
+	$(COMPILER) $(SYSCALL_OPT) $<
+UnixApi.SysCall$(PPUEXT) : $(NSINC)/UnixApi.SysCall.pp $(SYSCALL_DEPS) 
+	$(COMPILER) $(SYSCALL_OPT) $<
+UNIXUTIL_DEPS=$(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc\
+	     $(SYSTEMUNIT)$(PPUEXT)\
+	     $(UNIXUTIL_DEPS_OS)
+unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
+	$(COMPILER) $(UNIXUTIL_OPT) $<
+UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
+	$(COMPILER) $(UNIXUTIL_OPT) $<
+UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
+unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
+	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
+UnixApi.Types$(PPUEXT) : $(NSINC)/UnixApi.Types.pp $(UNIXTYPE_DEPS)
+	$(COMPILER) $(UNIXTYPE_OPT) $<
+DL_DEPS=$(UNIXINC)/dl.pp \
+	$(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	$(DL_DEPS_OS) $(DL_DEPS_CPU)
+dl$(PPUEXT) : $(DL_DEPS)
+	$(COMPILER) $(DL_OPT) $<
+UnixApi.Dl$(PPUEXT) : $(NSINC)/UnixApi.Dl.pp $(DL_DEPS)
+	$(COMPILER) $(DL_OPT) $<
+ERRORS_DEPS=$(UNIXINC)/errors.pp \
+	    $(STRINGSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(ERRORS_DEPS_OS) $(ERRORS_DEPS_CPU)
+errors$(PPUEXT) : $(ERRORS_DEPS)
+	$(COMPILER) $(ERRORS_OPT) $<
+UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
+	$(COMPILER) $(ERRORS_OPT) $<
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
+	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
+	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
+cthreads$(PPUEXT) : $(CTHREADS_DEPS)
+	$(COMPILER) $(CTHREADS_OPT) $<
+UnixApi.CThreads$(PPUEXT) : $(NSINC)/UnixApi.CThreads.pp $(CTHREADS_DEPS)
+	$(COMPILER) $(CTHREADS_OPT) $<
+CWSTRING_DEPS=$(UNIXINC)/cwstring.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	      $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	      $(DYNLIBSUNIT)$(PPUEXT) $(UNIXCPUNIT)$(PPUEXT) \
+	      $(CWSTRING_DEPS_OS) $(CWSTRING_DEPS_CPU) 
+cwstring$(PPUEXT) : $(CWSTRING_DEPS)
+	$(COMPILER) $(CWSTRING_OPT) $<
+UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
+	$(COMPILER) $(CWSTRING_OPT) $<
+CTYPES_DEPS=$(INC)/ctypes.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
+ctypes$(PPUEXT) : $(CTYPES_DEPS) 
+	$(COMPILER) $(CTYPES_OPT) $<
+System.CTypes$(PPUEXT) : $(NSINC)/System.CTypes.pp $(CTYPES_DEPS) 
+	$(COMPILER) $(CTYPES_OPT) $<
+OBJC_DEPS=$(INC)/objc.pp $(INC)/objc.pp $(INC)/objc1.inc $(INC)/objcnf.inc \
+	  $(SYSTEMUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+	  $(OBJC_DEPS_OS) $(OBJC_DEPS_CPU)
+objc$(PPUEXT) : $(OBJC_DEPS)
+	$(COMPILER) $(OBJC_OPT) $<
+OBJCBASE_DEPS=$(INC)/objcbase.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(OBJCUNIT)$(PPUEXT) \
+	      $(OBJCBASE_DEPS_OS) $(OBJCBASE_DEPS_CPU)
+objcbase$(PPUEXT) : $(OBJCBASE_DEPS)
+	$(COMPILER) $(OBJCBASE_OPT) $<
+BLOCKRTL_DEPS=$(INC)/blockrtl.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	      $(BLOCKRTL_DEPS_OS) $(BLOCKRTL_DEPS_CPU)
+blockrtl$(PPUEXT) : $(BLOCKRTL_DEPS)
+	$(COMPILER) $(BLOCKRTL_OPT) $<
+WINDOWS_DEPS=windows.pp $(SYSTEMUNIT)$(PPUEXT) \
+	     $(WINDOWS_DEPS_OS) $(WINDOWS_DEPS_CPU)
+windows$(PPUEXT): $(WINDOWS_DEPS)
+	$(COMPILER) $(WINDOWS_OPT) $<
+WinApi.Windows$(PPUEXT): $(NSOSDIR)/WinApi.Windows.pp $(WINDOWS_DEPS)
+	$(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDOWS_OPT) $<
+WINDIRS_DEPS=windirs.pp $(WINDOWSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(WINDIRS_DEPS_OS) $(WINDIRS_DEPS_CPU)
+windirs$(PPUEXT): $(WINDIRS_DEPS)
+	$(COMPILER) $(WINDIRS_OPT) $<
+WinApi.WinDirs$(PPUEXT): $(NSOSDIR)/WinApi.WinDirs.pp $(WINDIRS_DEPS)
+	$(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDIRS_OPT) $<
+SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
+sysctl$(PPUEXT) : $(SYSCTL_DEPS)
+	$(COMPILER) $(SYSCTL_OPT) $<
+BsdApi.SysCtl$(PPUEXT) : $(NSBSDDIR)/BsdApi.SysCtl.pp $(SYSCTL_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
+BSD_DEPS=$(BSDINC)/bsd.pas $(INITCUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
+	 $(BSD_DEPS_OS) $(BSD_DEPS_CPU)
+bsd$(PPUEXT): $(BSD_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
+BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
 .NOTPARALLEL:
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 6 - 0
rtl/android/cwstring.pp

@@ -17,7 +17,9 @@
 {$inline on}
 {$inline on}
 {$implicitexceptions off}
 {$implicitexceptions off}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cwstring;
 unit cwstring;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -25,7 +27,11 @@ procedure SetCWidestringManager;
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses System.DynLibs;
+{$ELSE FPC_DOTTEDUNITS}
 uses dynlibs;
 uses dynlibs;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 type
 type
   UErrorCode = SizeInt;
   UErrorCode = SizeInt;

+ 2 - 0
rtl/android/jvm/androidr14.pas

@@ -1,5 +1,7 @@
 { Imports for Java packages/classes: android., java., javax., junit., org. }
 { Imports for Java packages/classes: android., java., javax., junit., org. }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit androidr14;
 unit androidr14;
+{$ENDIF FPC_DOTTEDUNITS}
 {$mode delphi}
 {$mode delphi}
 
 
 interface
 interface

+ 2 - 0
rtl/arm/cpu.pp

@@ -14,7 +14,9 @@
 
 
  **********************************************************************}
  **********************************************************************}
 {$mode objfpc}
 {$mode objfpc}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cpu;
 unit cpu;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifdef symbian}
 {$ifdef symbian}
   {$define NO_ELF_SUPPORT}
   {$define NO_ELF_SUPPORT}

Datei-Diff unterdrückt, da er zu groß ist
+ 730 - 230
rtl/aros/Makefile


+ 15 - 36
rtl/aros/Makefile.fpc

@@ -7,20 +7,21 @@ main=rtl
 
 
 [target]
 [target]
 loaders=$(LOADERS)
 loaders=$(LOADERS)
-units=$(SYSTEMUNIT) heaptrc uuchar objpas macpas iso7185 extpas buildrtl cpall
-implicitunits=$(SYSINITUNITS) athreads dos sysutils \
-      ctypes strings rtlconsts sysconst math types \
-      typinfo sortbase fgl classes charset character getopts \
-      fpwidestring fpintres exeinfo $(CPU_UNITS) \
-      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
-      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
-      cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 \
-      cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 \
-      cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u \
-      unicodedata \
-      softfpu sfpux80 ufloatx80 sfpu128 ufloat128
-
-rsts=math rtlconsts typinfo classes sysconst
+units=$(SYSTEMUNIT) heaptrc uuchar objpas $(ISO7185UNIT) $(EXTPASUNIT) $(STRINGSUNIT) buildrtl $(CPALLUNIT) 
+implicitunits=$(SYSINITUNITS) athreads $(DOSUNIT) \
+      $(CTYPESUNIT)  $(STRINGSUNIT) $(RTLCONSTSUNIT) $(SYSCONSTUNIT) $(TYPESUNIT) $(CPALLUNIT) \
+      $(FPWIDESTRINGUNIT) $(CHARACTERUNIT) \
+      $(CHARSETUNIT) $(GETOPTSUNIT)  \
+      $(EXEINFOUNIT)  $(CPU_UNITS) \
+      $(SYSUTILSUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPINFOUNIT)  \
+      $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) $(UNICODEDATAUNIT)\
+      $(SOFTFPUUNIT) $(SFPUX8080UNIT) $(UFLOATX80UNIT) $(SPFU128UNIT)       $(UFLOAT128UNIT)
+
+rsts= $(MATHUNIT) $(TYPINFOUNIT) $(RTLCONSTSUNIT) $(CLASSESUNIT) $(SYSCONSTUNIT)
 
 
 [require]
 [require]
 nortl=y
 nortl=y
@@ -97,29 +98,7 @@ prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 # Base Units (System, strings, os-dependent-base-unit)
 # Base Units (System, strings, os-dependent-base-unit)
 #
 #
 
 
-$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
-        $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
-
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/uuchar.pp
-
-objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
-
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) buildrtl$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp
-
-iso7185$(PPUEXT) : $(INC)/iso7185.pp buildrtl$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/iso7185.pp
-
-extpas$(PPUEXT) : $(INC)/extpas.pp buildrtl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/extpas.pp
 
 
 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$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl
         $(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(OBJPASDIR)/classes -Fu$(PROCINC) -Fu$(AMIINC) -I$(INC) -Fu$(INC) -Fu$(OBJPASDIR) buildrtl
 
 
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas

Datei-Diff unterdrückt, da er zu groß ist
+ 730 - 230
rtl/atari/Makefile


+ 12 - 41
rtl/atari/Makefile.fpc

@@ -7,21 +7,18 @@ main=rtl
 
 
 [target]
 [target]
 loaders=$(LOADERS)
 loaders=$(LOADERS)
-units=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl cpall
-# extpas
-implicitunits=si_prc sysutils dos \
-      ctypes strings rtlconsts sysconst math types \
-      typinfo sortbase fgl classes charset character getopts fpwidestring \
-      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
-      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
-      cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 \
-      cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 \
-      cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u \
-      unicodedata \
-      softfpu sfpux80 ufloatx80 sfpu128 ufloat128
-
-
-rsts=math rtlconsts typinfo classes sysconst
+units=$(SYSTEMUNIT) fpextres uuchar objpas macpas iso7185 buildrtl $(CPALLUNIT)
+implicitunits=si_prc $(DOSUNIT) $(SYSUTILSUNIT) \
+      $(CTYPESUNIT) $(STRINGSUNIT) $(RTLCONSTSUNIT) $(MATHUNIT) $(TYPESUNIT) \
+      $(TYPINFOUNIT) $(SORTBASEUNIT)  $(FGLUNIT) $(CLASSESUNIT) $(CHARSETUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) $(FPWIDESTRINGUNIT) \
+      $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) $(UNICODEDATAUNIT)  \
+      $(UFLOAT128UNIT)  $(UFLOATX80UNIT) $(SFPU128UNIT) $(SFPUX80UNIT) $(SOFTFPUUNIT) 
+
+rsts=$(MATHUNIT) $(RTLCONSTSUNIT) $(TYPINFOUNIT) $(CLASSESUNIT) $(SYSCONSTUNIT)
 
 
 [require]
 [require]
 nortl=y
 nortl=y
@@ -80,32 +77,6 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 # Base Units (System, strings, os-dependent-base-unit)
 # Base Units (System, strings, os-dependent-base-unit)
 #
 #
 
 
-$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
-        $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg @rtl.cfg $(SYSTEMUNIT).pp $(REDIR)
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
-
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/uuchar.pp
-
-objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
-
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) buildrtl$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp
-
-iso7185$(PPUEXT) : $(INC)/iso7185.pp buildrtl$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/iso7185.pp
-
-extpas$(PPUEXT) : $(INC)/extpas.pp buildrtl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) $(INC)/extpas.pp
-
 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
 
 
-fpextres$(PPUEXT) : $(INC)/fpextres.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/fpextres.pp
-
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) objpas$(PPUEXT) heaptrc$(PPUEXT)
-        $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas

+ 14 - 0
rtl/atari/classes.pp

@@ -23,10 +23,23 @@
 { determine the type of the resource/form file }
 { determine the type of the resource/form file }
 {$define Win16Res}
 {$define Win16Res}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Classes;
 unit Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils,
+  System.RtlConsts,
+  System.Types,
+  System.SortBase,
+{$ifdef FPC_TESTGENERICS}
+  System.FGL,
+{$endif}
+  System.TypInfo;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   sysutils,
   sysutils,
   rtlconsts,
   rtlconsts,
@@ -36,6 +49,7 @@ uses
   fgl,
   fgl,
 {$endif}
 {$endif}
   typinfo;
   typinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$i classesh.inc}
 {$i classesh.inc}
 
 

+ 2 - 0
rtl/atari/dos.pp

@@ -13,7 +13,9 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit dos;
 unit dos;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 7 - 0
rtl/atari/sysutils.pp

@@ -13,7 +13,9 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit sysutils;
 unit sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -47,8 +49,13 @@ interface
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+{  TP.DOS,} System.SysConst;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
 {  dos,} sysconst;
 {  dos,} sysconst;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *)
 {$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *)
 {$DEFINE FPC_FEXPAND_DRIVES} (* Full paths begin with drive specification *)
 {$DEFINE FPC_FEXPAND_DRIVES} (* Full paths begin with drive specification *)

+ 2 - 0
rtl/avr/intrinsics.pp

@@ -11,7 +11,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit intrinsics;
 unit intrinsics;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 

Datei-Diff unterdrückt, da er zu groß ist
+ 732 - 230
rtl/beos/Makefile


+ 19 - 207
rtl/beos/Makefile.fpc

@@ -7,24 +7,24 @@ main=rtl
 
 
 [target]
 [target]
 loaders=prt0 cprt0 func dllprt
 loaders=prt0 cprt0 func dllprt
-units=system uuchar baseunix unixtype ctypes objpas macpas iso7185 extpas strings \
-      errors dos dl cthreads \
-      sysconst sysutils \
-      types charset cpall typinfo sortbase classes fgl math \
-      cpu mmx getopts heaptrc lineinfo lnfodwrf \
-      rtlconsts syscall unix unixutil termio initc \
-      character fpwidestring unicodedata \
-      cmem \
-      dynlibs cwstring unixcp \
-      softfpu sfpux80 ufloatx80 sfpu128 ufloat128
+units=system uuchar $(BASEUNIXUNIT) $(UNIXTYPEUNIT) $(CTYPESUNIT) objpas macpas iso7185 extpas $(STRINGSUNIT) \
+      $(ERRORSUNIT) $(DOSUNIT) $(DLUNIT) $(CTHREADSUNIIT) \ 
+      $(SYSCONSTUNIT) $(SYSUTILSUNIT) \
+      $(TYPESUNIT) $(CHARSETUNIT) $(CPALLUNIT) $(TYPINFOUNIT)  $(SORTBASEUNIT) $(CLASSESUNIT) $(FGLUNIT) $(MATHUNIT) \
+      $(CPUUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) $(LINEINFOUNIT) $(LNFODWRFUNIT) \
+      $(RTLCONSTUNIT) $(SYSCALLUNIT) $(UNIXUNIT) $(UNIXUTILUNIT) $(TERMIOUNIT) $(INITCUNIT) \
+      $(UNIXCPUNIT)  $(CHARACTERUNIT) $(FPWIDESTRINGUNIT) \
+      $(CMEMUNIT) \
+      $(DYNLIBSUNIT) $(CWSTRINGUNIT) \
+      $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU218UNIT)  $(UFLOAT128UNIT)
 #      beos
 #      beos
 rsts=math typinfo sysconst rtlconsts 
 rsts=math typinfo sysconst rtlconsts 
 implicitunits=exeinfo \
 implicitunits=exeinfo \
-      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
-      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
-      cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 \
-      cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 \
-      cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u
+              $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+              $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \ 
+              $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+              $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+              $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPkoi8_rUNIT) $(CPkoi8_uUNIT) $(UNICODEDATAUNIT)
 
 
 [require]
 [require]
 nortl=y
 nortl=y
@@ -58,9 +58,9 @@ RTL=..
 INC=$(RTL)/inc
 INC=$(RTL)/inc
 PROCINC=$(RTL)/$(CPU_TARGET)
 PROCINC=$(RTL)/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 UNIXINC=$(RTL)/unix
-
 UNITPREFIX=rtl
 UNITPREFIX=rtl
-
+SYSTEMUNIT=system
+BASEUNIXDIR=.
 # Use new feature from 1.0.5 version
 # Use new feature from 1.0.5 version
 # that generates release PPU files
 # that generates release PPU files
 # which will not be recompiled
 # which will not be recompiled
@@ -88,9 +88,10 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu
 include $(PROCINC)/makefile.cpu
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 
 
+
 # Put system unit dependencies together.
 # Put system unit dependencies together.
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
-SYSTEMUNIT=system
+
 
 
 #
 #
 # Loaders
 # Loaders
@@ -108,192 +109,3 @@ func$(OEXT) : $(CPU_TARGET)/func.as
 dllprt$(OEXT) : $(CPU_TARGET)/dllprt.as
 dllprt$(OEXT) : $(CPU_TARGET)/dllprt.as
         $(AS) -o $(UNITTARGETDIRPREFIX)dllprt$(OEXT) $(CPU_TARGET)/dllprt.as
         $(AS) -o $(UNITTARGETDIRPREFIX)dllprt$(OEXT) $(CPU_TARGET)/dllprt.as
 
 
-#
-# system Units (system, Objpas, Strings)
-#
-
-system$(PPUEXT) : system.pp $(SYSDEPS) $(UNIXINC)/sysunixh.inc
-        $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp
-
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
-
-objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
-
-dateutils$(PPUEXT): $(OBJPASDIR)/dateutils.pp baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) types$(PPUEXT)
-	$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutils.pp
-
-strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
-                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
-                   $(SYSTEMUNIT)$(PPUEXT)
-
-iso7185$(PPUEXT) : $(INC)/iso7185.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/iso7185.pp
-
-extpas$(PPUEXT) : $(INC)/extpas.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/extpas.pp
-
-#
-# system Dependent Units
-#
-
-# beos$(PPUEXT) : beos.pp $(SYSTEMUNIT)$(PPUEXT)
-
-baseunix$(PPUEXT) : $(UNIXINC)/unixtype.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Fi$(UNIXINC) -Fu$(UNIXINC) baseunix.pp
-
-unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-                 sysconst.inc $(UNIXINC)/timezone.inc \
-                 baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-
-linux$(PPUEXT) : baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-
-unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
-        $(COMPILER) $(UNIXINC)/unixcp.pp
-        
-#
-# TP7 Compatible RTL Units
-#
-
-# dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-#               beos$(PPUEXT) system$(PPUEXT)
-
-dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-               unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(INC) -Fu$(INC) $(UNIXINC)/dos.pp
-                       
-crt$(PPUEXT) : crt.pp $(INC)/textrec.inc termio.pp system$(PPUEXT)
-        $(COMPILER) $(UNIXINC)/crt.pp $(REDIR)
-
-video$(PPUEXT) : video.pp $(INC)/textrec.inc termio.pp system$(PPUEXT)
-        $(COMPILER) -Fu$(UNIXINC) $(UNIXINC)/video.pp $(REDIR)
-        
-keyboard$(PPUEXT) : $(UNIXINC)/keyboard.pp mouse$(PPUEXT) $(INC)/textrec.inc termio.pp system$(PPUEXT)
-        $(COMPILER) $(UNIXINC)/keyboard.pp $(REDIR) -dNOGPM
-
-                       
-objects$(PPUEXT) : $(INC)/objects.pp system$(PPUEXT)
-
-#
-# Delphi Compatible Units
-#
-
-sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-                    objpas$(PPUEXT) sysconst$(PPUEXT) system$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/sysutils -Fi$(UNIXINC) $(UNIXINC)/sysutils.pp
-
-classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-                   sysutils$(PPUEXT) typinfo$(PPUEXT) types$(PPUEXT) rtlconsts$(PPUEXT) sortbase$(PPUEXT) system$(PPUEXT)
-#                   systhrd$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR) -Fi$(OBJPASDIR)/classes classes.pp
-
-fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT) sortbase$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/fgl.pp
-
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
-        $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
-
-math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/math.pp
-
-gettext$(PPUEXT): $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/gettext.pp
-
-varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
-                    $(OBJPASDIR)/varutilh.inc varutils.pp
-				$(COMPILER) -Fi$(OBJPASDIR) $(UNIXINC)/varutils.pp
-
-fmtbcd$(PPUEXT) : $(OBJPASDIR)/fmtbcd.pp objpas$(PPUEXT) sysutils$(PPUEXT) variants$(PPUEXT) classes$(PPUEXT) system$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/fmtbcd.pp
-
-types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-       	$(COMPILER) $(OBJPASDIR)/types.pp
-
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/sysconst.pp
-
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-         $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
-
-#
-# Mac Pascal Model
-#
-
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp $(REDIR)
-        
-#
-# Other system-independent RTL Units
-#
-
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp system$(PPUEXT)
-
-mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) system$(PPUEXT)
-
-getopts$(PPUEXT) : $(INC)/getopts.pp system$(PPUEXT)
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp system$(PPUEXT)
-        $(COMPILER) $(INC)/heaptrc.pp
-
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp system$(PPUEXT)
-
-lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT)
-
-charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
-
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
-        $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
-
-character$(PPUEXT): $(OBJPASDIR)/character.pas sysutils$(PPUEXT) objpas$(PPUEXT) rtlconsts$(PPUEXT) unicodedata$(PPUEXT) system$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/character.pas
-
-fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp charset$(PPUEXT) unixcp$(PPUEXT) system$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
-
-unicodedata$(PPUEXT) : $(OBJPASDIR)/unicodedata.pas system$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/unicodedata.pas
-
-ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) math$(PPUEXT)
-
-#
-# Other system-dependent RTL Units
-#
-
-termio$(PPUEXT) : baseunix$(PPUEXT)
-
-mouse$(PPUEXT) : baseunix$(PPUEXT) video$(PPUEXT)
-        $(COMPILER) $(UNIXINC)/mouse.pp $(REDIR) -dNOGPM
-
-dl$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT)
-
-
-dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
-
-cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
-
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
-
-variants$(PPUEXT) : $(INC)/variants.pp sysutils$(PPUEXT) sysconst$(PPUEXT) varutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) math$(PPUEXT)
-        $(COMPILER) -Fi$(INC) $(INC)/variants.pp
-
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT)
-
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
-
-sortbase$(PPUEXT) : $(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/sortbase.pp
-
-softfpu$(PPUEXT) : $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) $<
-
-sfpux80$(PPUEXT) : $(INC)/sfpux80.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) $<
-
-sfpu128$(PPUEXT) : $(INC)/sfpu128.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) $<
-
-ufloatx80$(PPUEXT) : $(INC)/ufloatx80.pp sfpux80$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-ufloat128$(PPUEXT) : $(INC)/ufloat128.pp sfpu128$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<

+ 6 - 0
rtl/beos/baseunix.pp

@@ -12,12 +12,18 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 
  **********************************************************************}
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit BaseUnix;
 Unit BaseUnix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 Interface
 Interface
 {$modeswitch out}
 {$modeswitch out}
 {$inline on}
 {$inline on}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Types;
+{$ELSE FPC_DOTTEDUNITS}
 Uses UnixType;
 Uses UnixType;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$i osdefs.inc}       { Compile time defines }
 {$i osdefs.inc}       { Compile time defines }
 
 

+ 11 - 0
rtl/beos/bethreads.pp

@@ -15,7 +15,9 @@
  **********************************************************************}
  **********************************************************************}
 {$mode objfpc}
 {$mode objfpc}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit bethreads;
 unit bethreads;
+{$ENDIF FPC_DOTTEDUNITS}
 interface
 interface
 {$S-}
 {$S-}
 
 
@@ -23,12 +25,21 @@ Procedure SetBeThreadManager;
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses
+  systhrds,
+  UnixApi.Base,
+  UnixApi.Unix,
+  UnixApi.Types,
+  System.SysUtils;
+{$ELSE FPC_DOTTEDUNITS}
 Uses
 Uses
   systhrds,
   systhrds,
   BaseUnix,
   BaseUnix,
   unix,
   unix,
   unixtype,
   unixtype,
   sysutils;
   sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {*****************************************************************************
 {*****************************************************************************
                              Generic overloaded
                              Generic overloaded

+ 16 - 0
rtl/beos/classes.pp

@@ -23,23 +23,39 @@
 { determine the type of the resource/form file }
 { determine the type of the resource/form file }
 {$define Win16Res}
 {$define Win16Res}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Classes;
 unit Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.SysUtils,
+  System.RtlConsts,
+  System.Types,  
+  System.TypInfo,
+  System.SortBase;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   sysutils,
   sysutils,
   rtlconsts,
   rtlconsts,
   types,  
   types,  
   typinfo,
   typinfo,
   sortbase;
   sortbase;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$i classesh.inc}
 {$i classesh.inc}
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Base,UnixApi.Unix;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   baseunix,unix;
   baseunix,unix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 { OS - independent class implementations are in /inc directory. }
 { OS - independent class implementations are in /inc directory. }
 {$i classes.inc}
 {$i classes.inc}

+ 6 - 0
rtl/beos/termio.pp

@@ -14,11 +14,17 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit termio;
 unit termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Base;          // load base UnixApi.Unix typing
+{$ELSE FPC_DOTTEDUNITS}
 Uses BaseUnix;          // load base unix typing
 Uses BaseUnix;          // load base unix typing
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 // load types + consts
 // load types + consts
 
 

+ 13 - 0
rtl/bsd/bsd.pas

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit BSD;
 Unit BSD;
+{$ENDIF FPC_DOTTEDUNITS}
 {
 {
    This file is part of the Free Pascal run time library.
    This file is part of the Free Pascal run time library.
    (c) 2005 by Marco van de Voort member of the 
    (c) 2005 by Marco van de Voort member of the 
@@ -29,9 +31,15 @@ Unit BSD;
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  {$IFDEF FPC_USE_LIBC} System.InitC, {$endif}
+  UnixApi.Unix;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   {$IFDEF FPC_USE_LIBC} initc, {$endif}
   {$IFDEF FPC_USE_LIBC} initc, {$endif}
   Unix;
   Unix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 const
 const
   EVFILT_READ     = -1;
   EVFILT_READ     = -1;
@@ -113,8 +121,13 @@ procedure EV_SET(kevp: PKEvent; const aIdent: PtrUInt; const aFilter: cshort;
 implementation
 implementation
 
 
 {$IFNDEF FPC_USE_LIBC}
 {$IFNDEF FPC_USE_LIBC}
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.SysCall;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   SysCall;
   SysCall;
+{$ENDIF FPC_DOTTEDUNITS}
 {$endif}
 {$endif}
 
 
 procedure EV_SET(kevp: PKEvent; const aIdent: PtrUInt; const aFilter: cshort; const aFlags: cushort;
 procedure EV_SET(kevp: PKEvent; const aIdent: PtrUInt; const aFilter: cshort; const aFlags: cushort;

+ 11 - 0
rtl/bsd/sysctl.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit sysctl;
 Unit sysctl;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {
 {
    This file is part of the Free Pascal run time library.
    This file is part of the Free Pascal run time library.
@@ -18,8 +20,13 @@ Unit sysctl;
 
 
 Interface
 Interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Types;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   unixtype;
   unixtype;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$ifndef FPC_USE_LIBC}
 {$ifndef FPC_USE_LIBC}
 {$define FPC_USE_SYSCALL}
 {$define FPC_USE_SYSCALL}
@@ -101,7 +108,11 @@ function FPsysctlnametomib (Name: PAnsiChar; mibp:pcint;sizep:psize_t):cint;
 Implementation
 Implementation
 
 
 {$ifndef FPC_USE_LIBC}
 {$ifndef FPC_USE_LIBC}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.SysCall;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Syscall;
 Uses Syscall;
+{$ENDIF FPC_DOTTEDUNITS}
 {$ENDIF}
 {$ENDIF}
 
 
 {$ifndef FPC_USE_LIBC}
 {$ifndef FPC_USE_LIBC}

+ 7 - 0
rtl/charmaps/cp1250.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1250;
 unit cp1250;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1251.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1251;
 unit cp1251;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1252.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1252;
 unit cp1252;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1253.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1253;
 unit cp1253;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1254.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1254;
 unit cp1254;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1255.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1255;
 unit cp1255;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1256.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1256;
 unit cp1256;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1257.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1257;
 unit cp1257;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp1258.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1258;
 unit cp1258;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp3021.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp3021;
 unit cp3021;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp437.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp437;
 unit cp437;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp646.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp646;
 unit cp646;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..127] of tunicodecharmapping = (
      map : array[0..127] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp737.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp737;
 unit cp737;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp775.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp775;
 unit cp775;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp850.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp850;
 unit cp850;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp852.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp852;
 unit cp852;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp855.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp855;
 unit cp855;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp856.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp856;
 unit cp856;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp857.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp857;
 unit cp857;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp860.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp860;
 unit cp860;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp861.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp861;
 unit cp861;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp862.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp862;
 unit cp862;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp863.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp863;
 unit cp863;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp864.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp864;
 unit cp864;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp865.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp865;
 unit cp865;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp866.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp866;
 unit cp866;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp869.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp869;
 unit cp869;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp874.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp874;
 unit cp874;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_1.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_1;
 unit cp8859_1;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_10.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_10;
 unit cp8859_10;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_11.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_11;
 unit cp8859_11;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..251] of tunicodecharmapping = (
      map : array[0..251] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_13.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_13;
 unit cp8859_13;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_14.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_14;
 unit cp8859_14;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_15.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_15;
 unit cp8859_15;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_16.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_16;
 unit cp8859_16;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_2.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_2;
 unit cp8859_2;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_3.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_3;
 unit cp8859_3;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_4.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_4;
 unit cp8859_4;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_5.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_5;
 unit cp8859_5;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_6.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_6;
 unit cp8859_6;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..242] of tunicodecharmapping = (
      map : array[0..242] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_7.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_7;
 unit cp8859_7;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..254] of tunicodecharmapping = (
      map : array[0..254] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_8.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_8;
 unit cp8859_8;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..254] of tunicodecharmapping = (
      map : array[0..254] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cp8859_9.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_9;
 unit cp8859_9;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 20 - 0
rtl/charmaps/cpall.pas

@@ -1,7 +1,26 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cpall;
 unit cpall;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  { cyrillic code pages }
+  System.CodePages.CP1251,System.CodePages.CP855,System.CodePages.CP866,System.CodePages.CP8859_5,System.CodePages.CP3021,System.CodePages.CPkoi8_r,System.CodePages.CPkoi8_u,
+  { greek code pages }
+  System.CodePages.CP1253,System.CodePages.CP737,System.CodePages.CP869,System.CodePages.CP8859_7,
+  { other code pages }
+  System.CodePages.CP8859_1,System.CodePages.CP850,System.CodePages.CP437,System.CodePages.CP1252,System.CodePages.CP646,System.CodePages.CP775,
+  System.CodePages.CP874,System.CodePages.CP856,System.CodePages.CP857,System.CodePages.CP860,System.CodePages.CP861,System.CodePages.CP862,System.CodePages.CP863,System.CodePages.CP864,System.CodePages.CP865,
+{$ifndef cpu16}
+  { these are too big for a 16-bit System.CPU }
+  {  cp932,cp936,cp949,cp950, -> to rtl-unicode}
+{$endif not cpu16}
+  System.CodePages.CP1250,System.CodePages.CP1254,System.CodePages.CP1255,System.CodePages.CP1256,System.CodePages.CP1257,System.CodePages.CP1258,System.CodePages.CP852,System.CodePages.CP8859_2,System.CodePages.CP8859_3,System.CodePages.CP8859_4,
+  System.CodePages.CP8859_6,System.CodePages.CP8859_8,System.CodePages.CP8859_9,System.CodePages.CP8859_10,System.CodePages.CP8859_11,System.CodePages.CP8859_13,System.CodePages.CP8859_14,System.CodePages.CP8859_15,
+  System.CodePages.CP8859_16;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
   { cyrillic code pages }
   { cyrillic code pages }
   cp1251,cp855,cp866,cp8859_5,cp3021,cpkoi8_r,cpkoi8_u,
   cp1251,cp855,cp866,cp8859_5,cp3021,cpkoi8_r,cpkoi8_u,
@@ -17,6 +36,7 @@ uses
   cp1250,cp1254,cp1255,cp1256,cp1257,cp1258,cp852,cp8859_2,cp8859_3,cp8859_4,
   cp1250,cp1254,cp1255,cp1256,cp1257,cp1258,cp852,cp8859_2,cp8859_3,cp8859_4,
   cp8859_6,cp8859_8,cp8859_9,cp8859_10,cp8859_11,cp8859_13,cp8859_14,cp8859_15,
   cp8859_6,cp8859_8,cp8859_9,cp8859_10,cp8859_11,cp8859_13,cp8859_14,cp8859_15,
   cp8859_16;
   cp8859_16;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 
 
 implementation
 implementation

+ 7 - 0
rtl/charmaps/cpkoi8_r.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cpkoi8_r;
 unit cpkoi8_r;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

+ 7 - 0
rtl/charmaps/cpkoi8_u.pas

@@ -1,12 +1,19 @@
 { This is an automatically created file, so don't edit it }
 { This is an automatically created file, so don't edit it }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cpkoi8_u;
 unit cpkoi8_u;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 
   implementation
   implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
   uses
      charset;
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   const
   const
      map : array[0..255] of tunicodecharmapping = (
      map : array[0..255] of tunicodecharmapping = (

Datei-Diff unterdrückt, da er zu groß ist
+ 735 - 232
rtl/darwin/Makefile


+ 36 - 235
rtl/darwin/Makefile.fpc

@@ -8,23 +8,23 @@ main=rtl
 # disabled units: serial
 # disabled units: serial
 [target]
 [target]
 loaders=
 loaders=
-units=$(SYSTEMUNIT) sysinit uuchar unixtype ctypes objpas macpas iso7185 extpas \
-      strings sysctl baseunix unixutil \
-      unix initc cmem dynlibs $(CPU_UNITS) \
-      dos dl blockrtl \
-      sysutils typinfo sortbase fgl classes math types \
-      charset cpall character getopts heaptrc lineinfo lnfodwrf lnfogdb \
-      errors termio \
-      sysconst cthreads rtlconsts cwstring bsd fpwidestring \
-      fpintres fpextres objc objcbase unixcp \
-      softfpu sfpux80 ufloatx80 sfpu128 ufloat128
-implicitunits=exeinfo \
-      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
-      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
-      cp863 cp864 cp865 cp866 cp869 cp874 cp3021 cp8859_1 cp8859_2 cp8859_3 cp8859_4 \
-      cp8859_5 cp8859_6 cp8859_7 cp8859_8 cp8859_9 cp8859_10 cp8859_11 \
-      cp8859_13 cp8859_14 cp8859_15 cp8859_16 cpkoi8_r cpkoi8_u \
-      unicodedata
+units=$(SYSTEMUNIT) sysinit uuchar $(UNIXTYPEUNIT) $(CTYPESUNIT) objpas macpas $(ISO7185UNIT) extpas \
+      $(STRINGSUNIT) $(SYSCTLUNIT) $(BASEUNIXUNIT) $(UNIXUTILUNIT) \
+      $(UNIXUNIT) $(INITCUNIT) $(CMEMUNIT) $(DYNLIBSUNIT) $(CPU_UNITS) \
+      $(DOSUNIT) $(DLUNIT) $(BLOCKRTLUNIT) \
+      $(TYPINFOUNIT) $(SORTBASEUNIT) $(FGLUNIT) $(CLASSESUNIT) $(MATHUNIT) $(TYPESUNIT) \
+      $(CHARSETUNIT) $(CPALLUNIT) $(CHARACTERUNIT) $(GETOPTSUNIT) heaptrc $(LINEINFOUNIT) $(LNFODWRFUNIT) $(LNFOGDBUNIT) \
+      $(ERRORSUNIT) $(TERMIOUNIT) \
+      $(SYSCONSTUNIT) $(CTHREADSUNIT) $(RTLCONSTSUNIT) $(CWSTRINGUNIT) $(BSDUNIT) $(SYSUTILSUNIT) $(FPWIDESTRINGUNIT) \
+      fpintres fpextres $(OBJCUNIT) $(OBJCBASEUNIT) $(UNIXCPUNIT) \
+      $(SOFTFPUUNIT) $(SFPUX80UNIT) $(UFLOATX80UNIT) $(SFPU128UNIT) $(UFLOAT128UNIT)
+implicitunits=$(EXEINFOUNIT) \
+      $(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) \
+      $(UNICODEDATAUNIT)
 
 
 rsts=math typinfo classes sysconst rtlconsts
 rsts=math typinfo classes sysconst rtlconsts
 
 
@@ -46,20 +46,20 @@ sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 [lib]
 [lib]
 libname=libfprtl.so
 libname=libfprtl.so
 libversion=2.0.0
 libversion=2.0.0
-libunits=$(SYSTEMUNIT) objpas strings \
-      unix  \
-      dos crt objects  \
-      sysutils typinfo math \
-      cpu mmx getopts heaptrc \
-      errors
+libunits=$(SYSTEMUNIT) $(OBJPASUNIT) $(STRINGSUNIT) \
+      $(UNIXUNIT)  \
+      $(DOSUNIT) $(CRTUNIT) $(OBJECTSUNIT)  \
+      $(SYSUTILSUNIT) $(TYPINFOUNIT) $(MATHUNIT) \
+      $(CPUUNIT) $(MMXUNIT) $(GETOPTSUNIT) $(HEAPTRCUNIT) \
+      $(ERRORSUNIT)
 
 
 [prerules]
 [prerules]
 ifeq ($(CPU_TARGET),i386)
 ifeq ($(CPU_TARGET),i386)
-CPU_UNITS=mmx cpu
+CPU_UNITS=$(MMXUNIT) $(CPUUNIT)
 endif
 endif
 
 
 ifeq ($(ARCH),x86_64)
 ifeq ($(ARCH),x86_64)
-CPU_UNITS=cpu
+CPU_UNITS=$(CPUUNIT)
 endif
 endif
 
 
 RTL=..
 RTL=..
@@ -71,6 +71,10 @@ BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
 OSPROCINC=$(RTL)/darwin/$(CPU_TARGET)
 OSPROCINC=$(RTL)/darwin/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 UNIXINC=$(RTL)/unix
 UNITPREFIX=rtl
 UNITPREFIX=rtl
+INITCDIR=$(UNIXINC)
+
+SYSUTILS_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT)
+BASEUNIX_DEPS_OS=$(SYSCTLUNIT)$(PPUEXT)
 
 
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
 SYSTEMUNIT=system
 SYSTEMUNIT=system
@@ -123,219 +127,16 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS) $(OSPROCINC)/sighnd.inc $(OSPROCINC)/sig_cpu
 # System Units (System, Objpas, Strings)
 # System Units (System, Objpas, Strings)
 #
 #
 
 
-$(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp $(SYSDEPS)
-        $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
-
-sysinit$(PPUEXT) : sysinit.pas $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-uuchar$(PPUEXT): $(INC)/uuchar.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-fpintres$(PPUEXT): $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-fpextres$(PPUEXT): $(INC)/fpextres.pp $(SYSTEMUNIT)$(PPUEXT) baseunix$(PPUEXT)
-	$(COMPILER) $<
-
-iso7185$(PPUEXT): $(INC)/iso7185.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/iso7185.pp
-
-extpas$(PPUEXT) : $(INC)/extpas.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/extpas.pp
-
-objpas$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
-
-strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
-                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
-                   $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-objc$(PPUEXT) : $(INC)/objc.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT) unixtype$(PPUEXT) $(INC)/objc.pp $(INC)/objc1.inc $(INC)/objcnf.inc
-	$(COMPILER) $<
-
-objcbase$(PPUEXT) : $(INC)/objcbase.pp $(SYSTEMUNIT)$(PPUEXT) $(INC)/objcbase.pp objc$(PPUEXT)
-	$(COMPILER) $<
-
-blockrtl$(PPUEXT) : $(INC)/blockrtl.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) initc$(PPUEXT) ctypes$(PPUEXT) $(INC)/blockrtl.pp
-	$(COMPILER) $<
-
-#
-# System Dependent Units
-#
-
-baseunix$(PPUEXT) : $(UNIXINC)/baseunix.pp unixtype$(PPUEXT) sysctl$(PPUEXT) errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
-  signal.inc $(UNIXINC)/bunxh.inc \
-  $(BSDINC)/bunxsysc.inc \
-  $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
-  $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-unixtype$(PPUEXT) : $(UNIXINC)/unixtype.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXINC)/unixtype.pp ptypes.inc $(UNIXINC)/ctypes.inc $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-unix$(PPUEXT) : $(UNIXINC)/unix.pp unixtype$(PPUEXT) baseunix$(PPUEXT) unixutil$(PPUEXT) strings$(PPUEXT) $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
-                 unxconst.inc $(UNIXINC)/timezone.inc \
-                 unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-unixutil$(PPUEXT) : $(UNIXINC)/unixutil.pp  baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-dynlibs$(PPUEXT) : $(INC)/dynlibs.pas dl$(PPUEXT) objpas$(PPUEXT) rtlconsts$(PPUEXT) sysutils$(PPUEXT) sysconst$(PPUEXT)
-	$(COMPILER) $<
-
-ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT)
-	$(COMPILER) $<
-
-unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
-        $(COMPILER) $(UNIXINC)/unixcp.pp
-
-#
-# TP7 Compatible RTL Units
-#
-
-dos$(PPUEXT) : $(UNIXINC)/dos.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) unix$(PPUEXT) $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
-               unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-
-#
-# Graph
-#
-
-#
-# Delphi Compatible Units
-#
-
-sysutils$(PPUEXT) : objpas$(PPUEXT) initc$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT) $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-                    unixtype$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
-
-classes$(PPUEXT) : sysutils$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) typinfo$(PPUEXT) unix$(PPUEXT) $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-                   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT) sortbase$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
-
-typinfo$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconsts$(PPUEXT)
-        $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
-
-# let it depend on buildcollations to prevent simultaneous building of unicodedata
-character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/character.pas
-
-math$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/math.pp
-
-gettext$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/gettext.pp objpas$(PPUEXT) sysutils$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/gettext.pp
-
-types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/types.pp
-
-fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT) sortbase$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/fgl.pp
-
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/sysconst.pp
-
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
-
-#
-# Mac Pascal Model
-#
-
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp $(REDIR)
 
 
-#
-# Other system-independent RTL Units
-#
-ifneq ($(findstring $(ARCH),x86_64 i386),)
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
-else
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-endif
-	$(COMPILER) $<
+SYSTEMUNIT_DEPS=$(BSDINC)/$(SYSTEMUNIT).pp $(SYSDEPS)\
+                $(SYSTEMUNIT_DEPS_OS) $(SYSTEMUNIT_DEPS_CPU)
 
 
-mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
+$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT_DEPS)
+	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $<
 
 
-getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/heaptrc.pp
-
-exeinfo$(PPUEXT) : $(INC)/exeinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) ctypes$(PPUEXT) dl$(PPUEXT) baseunix$(PPUEXT)
-	$(COMPILER) $<
 
 
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) exeinfo$(PPUEXT) sysutils$(PPUEXT)
-	$(COMPILER) $<
-
-lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT) exeinfo$(PPUEXT) lineinfo$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) ctypes$(PPUEXT)
-	$(COMPILER) $<
-
-lnfogdb$(PPUEXT) : $(UNIXINC)/lnfogdb.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT)
-	$(COMPILER) $<
-
-charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
-	$(COMPILER) $<
-
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
-	$(COMPILER) $<
-
-fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
-	$(COMPILER) $<
-
-#
-# Other system-dependent RTL Units
-#
-
-termio$(PPUEXT) : termio.pp baseunix$(PPUEXT)
-	$(COMPILER) $<
-
-dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT)
-	$(COMPILER) $<
-
-errors$(PPUEXT) : $(UNIXINC)/errors.pp unixtype$(PPUEXT) strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) strings$(PPUEXT)
-	$(COMPILER) $<
-
-cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) unixtype$(PPUEXT)
-	$(COMPILER) $<
-
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp unix$(PPUEXT) unixtype$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-initc$(PPUEXT) : $(UNIXINC)/initc.pp $(SYSTEMUNIT)$(PPUEXT) ctypes$(PPUEXT)
-	$(COMPILER) $<
-
-# console$(PPUEXT) : baseunix$(PPUEXT) termio$(PPUEXT)
-
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT) unixcp$(PPUEXT)
-	$(COMPILER) $<
-
-bsd$(PPUEXT) : $(BSDINC)/bsd.pas initc$(PPUEXT) unix$(PPUEXT)
-	$(COMPILER) $<
-
-sortbase$(PPUEXT) : $(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/sortbase.pp
-
-softfpu$(PPUEXT) : $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) $<
-
-sfpux80$(PPUEXT) : $(INC)/sfpux80.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) $<
-
-sfpu128$(PPUEXT) : $(INC)/sfpu128.pp $(INC)/softfpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
-	$(COMPILER) $<
-
-ufloatx80$(PPUEXT) : $(INC)/ufloatx80.pp sfpux80$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
+SYSINIT_DEPS=sysinit.pas $(SYSTEMUNIT)$(PPUEXT)\
+             $(SYSINIT_DEPS_OS) $(SYSINIT_DEPS_CPU)
 
 
-ufloat128$(PPUEXT) : $(INC)/ufloat128.pp sfpu128$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+sysinit$(PPUEXT) : $(SYSINIT_DEPS)
 	$(COMPILER) $<
 	$(COMPILER) $<

+ 6 - 0
rtl/darwin/console.pp

@@ -22,7 +22,9 @@
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 }
 }
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit console;
 unit console;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$packrecords C}
 {$packrecords C}
 
 
@@ -1822,7 +1824,11 @@ function physicalconsole(fd:longint) : boolean;
 
 
 IMPLEMENTATION
 IMPLEMENTATION
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Base,UnixApi.TermIO;
+{$ELSE FPC_DOTTEDUNITS}
 Uses BaseUnix,termio;
 Uses BaseUnix,termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 function physicalconsole(fd:longint) : boolean;
 function physicalconsole(fd:longint) : boolean;
 
 

+ 6 - 0
rtl/darwin/termio.pp

@@ -14,12 +14,18 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit termio;
 unit termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 {$inline on}
 {$inline on}
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Base;          // load base UnixApi.Unix typing
+{$ELSE FPC_DOTTEDUNITS}
 Uses BaseUnix;          // load base unix typing
 Uses BaseUnix;          // load base unix typing
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 // load types + consts
 // load types + consts
 
 

+ 992 - 9
rtl/dragonfly/Makefile

@@ -102,7 +102,7 @@ endif
 export ECHO
 export ECHO
 endif
 endif
 override OS_TARGET_DEFAULT=dragonfly
 override OS_TARGET_DEFAULT=dragonfly
-override DEFAULT_FPCDIR=../..
+override DEFAULT_FPCDIR=../.. ../..
 ifndef FPC
 ifndef FPC
 ifdef PP
 ifdef PP
 FPC=$(PP)
 FPC=$(PP)
@@ -192,43 +192,43 @@ else
 ARCH=$(CPU_TARGET)
 ARCH=$(CPU_TARGET)
 endif
 endif
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 endif
 endif
 ifdef SUB_TARGET 
 ifdef SUB_TARGET 
 FPCOPT+=-t$(SUB_TARGET)
 FPCOPT+=-t$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 endif
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 override FPCOPT+=-Cp$(SUBARCH)
 endif
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 ifeq ($(SUBARCH),)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 endif
 endif
@@ -369,6 +369,506 @@ endif
 endif
 endif
 override PACKAGE_NAME=rtl
 override PACKAGE_NAME=rtl
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
+ifdef FPC_DOTTEDUNITS
+AIOUNIT=NetWareApi.Aio
+ALLWINNER_A20UNIT=Embedded.Allwinner_a20
+ANDROIDR14UNIT=AndroidAPI.AndroidR14
+ATHREADSUNIT=AmigaApi.AThreads
+BASEUNIXUNIT=UnixApi.Base
+BETHREADSUNIT=BeosApi.Bethreads
+BLOCKRTLUNIT=blockrtl
+BSDUNIT=BsdApi
+CHARACTERUNIT=System.Character
+CHARSETUNIT=System.CharSet
+CLASSESUNIT=System.Classes
+CMEMUNIT=System.CMem
+COMMONUNIT=PalmApi.Common
+CONSOLEUNIT=System.Console
+CONSOLEIOUNIT=EmbeddedApi.ConsoleIO
+CORTEXM0UNIT=ARMApi.Cortexm0
+CORTEXM3UNIT=ARMApi.Cortexm3
+CORTEXM4UNIT=ARMApi.Cortexm4
+CORTEXM7UNIT=ARMApi.Cortexm7
+CP1250UNIT=System.CodePages.CP1250
+CP1251UNIT=System.CodePages.CP1251
+CP1252UNIT=System.CodePages.CP1252
+CP1253UNIT=System.CodePages.CP1253
+CP1254UNIT=System.CodePages.CP1254
+CP1255UNIT=System.CodePages.CP1255
+CP1256UNIT=System.CodePages.CP1256
+CP1257UNIT=System.CodePages.CP1257
+CP1258UNIT=System.CodePages.CP1258
+CP3021UNIT=System.CodePages.CP3021
+CP437UNIT=System.CodePages.CP437
+CP646UNIT=System.CodePages.CP646
+CP737UNIT=System.CodePages.CP737
+CP775UNIT=System.CodePages.CP775
+CP850UNIT=System.CodePages.CP850
+CP852UNIT=System.CodePages.CP852
+CP855UNIT=System.CodePages.CP855
+CP856UNIT=System.CodePages.CP856
+CP857UNIT=System.CodePages.CP857
+CP860UNIT=System.CodePages.CP860
+CP861UNIT=System.CodePages.CP861
+CP862UNIT=System.CodePages.CP862
+CP863UNIT=System.CodePages.CP863
+CP864UNIT=System.CodePages.CP864
+CP865UNIT=System.CodePages.CP865
+CP866UNIT=System.CodePages.CP866
+CP869UNIT=System.CodePages.CP869
+CP874UNIT=System.CodePages.CP874
+CP8859_1UNIT=System.CodePages.CP8859_1
+CP8859_10UNIT=System.CodePages.CP8859_10
+CP8859_11UNIT=System.CodePages.CP8859_11
+CP8859_13UNIT=System.CodePages.CP8859_13
+CP8859_14UNIT=System.CodePages.CP8859_14
+CP8859_15UNIT=System.CodePages.CP8859_15
+CP8859_16UNIT=System.CodePages.CP8859_16
+CP8859_2UNIT=System.CodePages.CP8859_2
+CP8859_3UNIT=System.CodePages.CP8859_3
+CP8859_4UNIT=System.CodePages.CP8859_4
+CP8859_5UNIT=System.CodePages.CP8859_5
+CP8859_6UNIT=System.CodePages.CP8859_6
+CP8859_7UNIT=System.CodePages.CP8859_7
+CP8859_8UNIT=System.CodePages.CP8859_8
+CP8859_9UNIT=System.CodePages.CP8859_9
+CPALLUNIT=System.CodePages.All
+CPKOI8_RUNIT=System.CodePages.CPkoi8_r
+CPKOI8_UUNIT=System.CodePages.CPkoi8_u
+CPUUNIT=System.CPU
+CTHREADSUNIT=UnixApi.CThreads
+CTYPESUNIT=System.CTypes
+CWSTRINGUNIT=UnixApi.CWString
+DDKUNIT=NTApi.Ddk
+DLUNIT=UnixApi.Dl
+DOSUNIT=TP.DOS
+DOSCALL2UNIT=OS2Api.Doscall2
+DOSCALLSUNIT=OS2Api.Doscalls
+DPMIEXCPUNIT=DOSApi.Dpmiexcp
+DXELOADUNIT=DOSApi.Dxeload
+DXETYPEUNIT=DOSApi.Dxetype
+DYNLIBSUNIT=System.DynLibs
+EMU387UNIT=DOSApi.EMU387
+EMXUNIT=DOSApi.EMX
+ERRORSUNIT=System.Errors
+ESP32UNIT=System.Esp32
+ESP8266UNIT=System.Esp8266
+ESP8266RTOS_30300UNIT=System.Esp8266rtos_30300
+ESP8266RTOS_30400UNIT=System.Esp8266rtos_30400
+ESPIDF_40100UNIT=System.Espidf_40100
+ESPIDF_40200UNIT=System.Espidf_40200
+ESPIDF_40400UNIT=System.Espidf_40400
+EXEUNIT=OS2Api.Exe
+EXEINFOUNIT=System.Exeinfo
+EXTPASUNIT=extpas
+FE310G000UNIT=EmbeddedApi.Fe310g000
+FE310G002UNIT=EmbeddedApi.Fe310g002
+FGLUNIT=System.FGL
+FPCMEMDLLUNIT=System.FPCMemDLL
+FPCYLIXUNIT=fpcylix
+FPWIDESTRINGUNIT=System.FPWideString
+FREEBSDUNIT=FreeBSDApi.FreeBSD
+GD32VF103XXUNIT=EmbeddedApi.Gd32vf103xx
+GETOPTSUNIT=System.GetOpts
+GO32UNIT=DOSApi.GO32
+GPIOUNIT=EmbeddedApi.Gpio
+HEAPMGRUNIT=EmbeddedApi.HeapMGR
+INITCUNIT=System.InitC
+INTRINSICSUNIT=System.Intrinsics
+ISO7185UNIT=iso7185
+JDK15UNIT=JavaApi.JDK15
+KBDCALLSUNIT=OS2Api.Kbdcalls
+LIBCUNIT=NetwareLibCApi.Libc
+LINEINFOUNIT=System.LineInfo
+LINUXUNIT=LinuxApi
+LINUXVCSUNIT=LinuxApi.Vcs
+LM3FURYUNIT=EmbeddedApi.Lm3fury
+LM3TEMPESTUNIT=EmbeddedApi.Lm3tempest
+LM4F120UNIT=EmbeddedApi.Lm4f120
+LNFODWRFUNIT=System.LineInfo.Dwarf
+LNFOGDBUNIT=System.LineInfo.Gdb
+LPC11XXUNIT=EmbeddedApi.Lpc11xx
+LPC122XUNIT=EmbeddedApi.Lpc122x
+LPC13XXUNIT=EmbeddedApi.Lpc13xx
+LPC1768UNIT=EmbeddedApi.Lpc1768
+LPC21X4UNIT=EmbeddedApi.Lpc21x4
+LPC8XXUNIT=EmbeddedApi.Lpc8xx
+LSTRINGSUNIT=System.LStrings
+MACOSUNIT=MacOSApi.MacOS
+MACOSTPUNIT=MacOSApi.MacOSTP
+MACUTILSUNIT=MacOSApi.MacUtils
+MAILBOXUNIT=EmbeddedApi.Mailbox
+MATHUNIT=System.Math
+MESSAGESUNIT=WinApi.Messages
+MK20D5UNIT=EmbeddedApi.Mk20d5
+MK20D7UNIT=EmbeddedApi.Mk20d7
+MK22F51212UNIT=EmbeddedApi.Mk22f51212
+MK64F12UNIT=EmbeddedApi.Mk64f12
+MMIOUNIT=EmbeddedApi.Mmio
+MMXUNIT=System.CPU.MMX
+MONCALLSUNIT=OS2Api.Moncalls
+MOUCALLSUNIT=OS2Api.Moucalls
+MSMOUSEUNIT=DOSApi.MSMouse
+MULTIBOOTUNIT=EmbeddedApi.Multiboot
+NDKUNIT=NTApi.NDK
+NDKUTILSUNIT=NTApi.NDKUtils
+NETWAREUNIT=NetwareApi.NetWare
+NEWEXEUNIT=OS2Api.Newexe
+NRF51UNIT=EmbeddedApi.Nrf51
+NRF52UNIT=EmbeddedApi.Nrf52
+NWCALLSUNIT=NetWareApi.Nwcalls
+NWNITUNIT=NetWareApi.Nwnit
+NWPREUNIT=NetWareApi.Nwpre
+NWPROTUNIT=NetWareApi.Nwprot
+NWSERVUNIT=NetWareApi.Nwserv
+NWSNUTUNIT=NetWareApi.Nwsnut
+OBJCUNIT=objc
+OBJCBASEUNIT=objcbase
+OS2DEFUNIT=OS2Api.Os2def
+PAGEMEMUNIT=System.PageMem
+PILOTUNIT=PalmApi.Pilot
+PMBIDIUNIT=OS2Api.Pmbidi
+PMBITMAPUNIT=OS2Api.Pmbitmap
+PMDEVUNIT=OS2Api.Pmdev
+PMGPIUNIT=OS2Api.Pmgpi
+PMHELPUNIT=OS2Api.Pmhelp
+PMSHLUNIT=OS2Api.Pmshl
+PMSPLUNIT=OS2Api.Pmspl
+PMSTDDLGUNIT=OS2Api.Pmstddlg
+PMWINUNIT=OS2Api.Pmwin
+PMWPUNIT=OS2Api.Pmwp
+PMWSOCKUNIT=OS2Api.Pmwsock
+PORTSUNIT=System.Ports
+POSIXUNIT=QNXApi.Posix
+PROFILEUNIT=DOSApi.Profile
+RASPI2UNIT=EmbeddedApi.Raspi2
+RASPI3UNIT=EmbeddedApi.Raspi3
+RASPIUARTUNIT=EmbeddedApi.Raspiuart
+RTLCONSTSUNIT=System.RtlConsts
+SAM3X8EUNIT=EmbeddedApi.Sam3x8e
+SAMD51P19AUNIT=EmbeddedApi.Samd51p19a
+SC32442BUNIT=EmbeddedApi .Sc32442b
+SFPU128UNIT=System.SoftFpu128
+SFPUX80UNIT=System.SoftFpuX80
+SHAREMEMUNIT=WinApi.ShareMem
+SIGNALSUNIT=WinApi.Signals
+SO32DLLUNIT=OS2Api.So32dll
+SOFTFPUUNIT=System.SoftFPU
+SORTBASEUNIT=System.SortBase
+STM32F0XXUNIT=EmbeddedApi.Stm32f0xx
+STM32F103XEUNIT=EmbeddedApi.Stm32f103xe
+STM32F10X_CLUNIT=EmbeddedApi.Stm32f10x_cl
+STM32F10X_CONNUNIT=EmbeddedApi.Stm32f10x_conn
+STM32F10X_HDUNIT=EmbeddedApi.Stm32f10x_hd
+STM32F10X_LDUNIT=EmbeddedApi.Stm32f10x_ld
+STM32F10X_MDUNIT=EmbeddedApi.Stm32f10x_md
+STM32F10X_XLUNIT=EmbeddedApi.Stm32f10x_xl
+STM32F401XEUNIT=EmbeddedApi.Stm32f401xe
+STM32F401XXUNIT=EmbeddedApi.Stm32f401xx
+STM32F407XXUNIT=EmbeddedApi.Stm32f407xx
+STM32F411XEUNIT=EmbeddedApi.Stm32f411xe
+STM32F429UNIT=EmbeddedApi.Stm32f429
+STM32F429XXUNIT=EmbeddedApi.Stm32f429xx
+STM32F446XXUNIT=EmbeddedApi.Stm32f446xx
+STM32F745UNIT=EmbeddedApi.Stm32f745
+STM32F746UNIT=EmbeddedApi.Stm32f746
+STM32F756UNIT=EmbeddedApi.Stm32f756
+STM32G071XXUNIT=EmbeddedApi.Stm32g071xx
+STRINGSUNIT=System.Strings
+SYMBIANUNIT=SymbianApi.Symbian
+SYSALLUNIT=PalmApi.Sysall
+SYSCALLUNIT=UnixApi.SysCall
+SYSCONSTUNIT=System.SysConst
+SYSCTLUNIT=BsdApi.SysCtl
+SYSEMXUNIT=DOSApi.Sysemx
+SYSOS2UNIT=OS2Api.Sysos2
+SYSTRAPSUNIT=PalmApi.Systraps
+SYSUTILSUNIT=System.SysUtils
+TERMIOUNIT=UnixApi.TermIO
+TYPESUNIT=System.Types
+TYPINFOUNIT=System.TypInfo
+UFLOAT128UNIT=System.UFloat128
+UFLOATX80UNIT=System.UFloatX80
+UIUNIT=PalmApi.Ui
+UIQUNIT=SymbianApi.Uiq
+UIQCLASSESUNIT=SymbianApi.Uiqclasses
+UNICODEDATAUNIT=System.CodePages.unicodedata
+UNIXUNIT=UnixApi.Unix
+UNIXCPUNIT=UnixApi.CP
+UNIXTYPEUNIT=UnixApi.Types
+UNIXUTILUNIT=UnixApi.Utils
+VIOCALLSUNIT=OS2Api.Viocalls
+WASIAPIUNIT=WASIApi.WASIApi
+WASIUTILUNIT=WASIApi.WASIUtil
+WATCOMUNIT=WatcomApi.WatCom
+WEBASSEMBLYUNIT=Wasm.Api
+WIN31UNIT=WinApi.Win31
+WINDIRSUNIT=WinApi.WinDirs
+WINDOWSUNIT=WinApi.Windows
+WINPROCSUNIT=WinApi.WinProcs
+WINSYSUTUNIT=WinApi.WinSysUt
+WINTYPESUNIT=WinApi.WinTypes
+X86UNIT=System.X86
+XMC4500UNIT=EmbeddedApi.Xmc4500
+EXEINFOUNIT=System.ExeInfo
+ERRORSUNIT=UnixApi.Errors
+else
+AIOUNIT=aio
+ALLWINNER_A20UNIT=allwinner_a20
+ANDROIDR14UNIT=androidr14
+ATHREADSUNIT=athreads
+BASEUNIXUNIT=baseunix
+BETHREADSUNIT=bethreads
+BLOCKRTLUNIT=blockrtl
+BSDUNIT=bsd
+CHARACTERUNIT=character
+CHARSETUNIT=charset
+CLASSESUNIT=classes
+CMEMUNIT=cmem
+COMMONUNIT=common
+CONSOLEUNIT=console
+CONSOLEIOUNIT=consoleio
+CORTEXM0UNIT=cortexm0
+CORTEXM3UNIT=cortexm3
+CORTEXM4UNIT=cortexm4
+CORTEXM7UNIT=cortexm7
+CP1250UNIT=cp1250
+CP1251UNIT=cp1251
+CP1252UNIT=cp1252
+CP1253UNIT=cp1253
+CP1254UNIT=cp1254
+CP1255UNIT=cp1255
+CP1256UNIT=cp1256
+CP1257UNIT=cp1257
+CP1258UNIT=cp1258
+CP3021UNIT=cp3021
+CP437UNIT=cp437
+CP646UNIT=cp646
+CP737UNIT=cp737
+CP775UNIT=cp775
+CP850UNIT=cp850
+CP852UNIT=cp852
+CP855UNIT=cp855
+CP856UNIT=cp856
+CP857UNIT=cp857
+CP860UNIT=cp860
+CP861UNIT=cp861
+CP862UNIT=cp862
+CP863UNIT=cp863
+CP864UNIT=cp864
+CP865UNIT=cp865
+CP866UNIT=cp866
+CP869UNIT=cp869
+CP874UNIT=cp874
+CP8859_1UNIT=cp8859_1
+CP8859_10UNIT=cp8859_10
+CP8859_11UNIT=cp8859_11
+CP8859_13UNIT=cp8859_13
+CP8859_14UNIT=cp8859_14
+CP8859_15UNIT=cp8859_15
+CP8859_16UNIT=cp8859_16
+CP8859_2UNIT=cp8859_2
+CP8859_3UNIT=cp8859_3
+CP8859_4UNIT=cp8859_4
+CP8859_5UNIT=cp8859_5
+CP8859_6UNIT=cp8859_6
+CP8859_7UNIT=cp8859_7
+CP8859_8UNIT=cp8859_8
+CP8859_9UNIT=cp8859_9
+CPALLUNIT=cpall
+CPKOI8_RUNIT=cpkoi8_r
+CPKOI8_UUNIT=cpkoi8_u
+CPUUNIT=cpu
+CTHREADSUNIT=cthreads
+CTYPESUNIT=ctypes
+CWSTRINGUNIT=cwstring
+DDKUNIT=ddk
+DLUNIT=dl
+DOSUNIT=dos
+DOSCALL2UNIT=doscall2
+DOSCALLSUNIT=doscalls
+DPMIEXCPUNIT=dpmiexcp
+DXELOADUNIT=dxeload
+DXETYPEUNIT=dxetype
+DYNLIBSUNIT=dynlibs
+EMU387UNIT=emu387
+EMXUNIT=emx
+ERRORSUNIT=errors
+ESP32UNIT=esp32
+ESP8266UNIT=esp8266
+ESP8266RTOS_30300UNIT=esp8266rtos_30300
+ESP8266RTOS_30400UNIT=esp8266rtos_30400
+ESPIDF_40100UNIT=espidf_40100
+ESPIDF_40200UNIT=espidf_40200
+ESPIDF_40400UNIT=espidf_40400
+EXEUNIT=exe
+EXEINFOUNIT=exeinfo
+EXTPASUNIT=extpas
+FE310G000UNIT=fe310g000
+FE310G002UNIT=fe310g002
+FGLUNIT=fgl
+FPCMEMDLLUNIT=fpcmemdll
+FPCYLIXUNIT=fpcylix
+FPWIDESTRINGUNIT=fpwidestring
+FREEBSDUNIT=freebsd
+GD32VF103XXUNIT=gd32vf103xx
+GETOPTSUNIT=getopts
+GO32UNIT=go32
+GPIOUNIT=gpio
+HEAPMGRUNIT=heapmgr
+INITCUNIT=initc
+INTRINSICSUNIT=intrinsics
+ISO7185UNIT=iso7185
+JDK15UNIT=jdk15
+KBDCALLSUNIT=kbdcalls
+LIBCUNIT=libc
+LINEINFOUNIT=lineinfo
+LINUXUNIT=linux
+LINUXVCSUNIT=linuxvcs
+LM3FURYUNIT=lm3fury
+LM3TEMPESTUNIT=lm3tempest
+LM4F120UNIT=lm4f120
+LNFODWRFUNIT=lnfodwrf
+LNFOGDBUNIT=lnfogdb
+LPC11XXUNIT=lpc11xx
+LPC122XUNIT=lpc122x
+LPC13XXUNIT=lpc13xx
+LPC1768UNIT=lpc1768
+LPC21X4UNIT=lpc21x4
+LPC8XXUNIT=lpc8xx
+LSTRINGSUNIT=lstrings
+MACOSUNIT=macos
+MACOSTPUNIT=macostp
+MACUTILSUNIT=macutils
+MAILBOXUNIT=mailbox
+MATHUNIT=math
+MESSAGESUNIT=messages
+MK20D5UNIT=mk20d5
+MK20D7UNIT=mk20d7
+MK22F51212UNIT=mk22f51212
+MK64F12UNIT=mk64f12
+MMIOUNIT=mmio
+MMXUNIT=mmx
+MONCALLSUNIT=moncalls
+MOUCALLSUNIT=moucalls
+MSMOUSEUNIT=msmouse
+MULTIBOOTUNIT=multiboot
+NDKUNIT=ndk
+NDKUTILSUNIT=ndkutils
+NETWAREUNIT=netware
+NEWEXEUNIT=newexe
+NRF51UNIT=nrf51
+NRF52UNIT=nrf52
+NWCALLSUNIT=nwcalls
+NWNITUNIT=nwnit
+NWPREUNIT=nwpre
+NWPROTUNIT=nwprot
+NWSERVUNIT=nwserv
+NWSNUTUNIT=nwsnut
+OBJCUNIT=objc
+OBJCBASEUNIT=objcbase
+OS2DEFUNIT=os2def
+PAGEMEMUNIT=pagemem
+PILOTUNIT=pilot
+PMBIDIUNIT=pmbidi
+PMBITMAPUNIT=pmbitmap
+PMDEVUNIT=pmdev
+PMGPIUNIT=pmgpi
+PMHELPUNIT=pmhelp
+PMSHLUNIT=pmshl
+PMSPLUNIT=pmspl
+PMSTDDLGUNIT=pmstddlg
+PMWINUNIT=pmwin
+PMWPUNIT=pmwp
+PMWSOCKUNIT=pmwsock
+PORTSUNIT=ports
+POSIXUNIT=posix
+PROFILEUNIT=profile
+RASPI2UNIT=raspi2
+RASPI3UNIT=raspi3
+RASPIUARTUNIT=raspiuart
+RTLCONSTSUNIT=rtlconsts
+SAM3X8EUNIT=sam3x8e
+SAMD51P19AUNIT=samd51p19a
+SC32442BUNIT=sc32442b
+SFPU128UNIT=sfpu128
+SFPUX80UNIT=sfpux80
+SHAREMEMUNIT=sharemem
+SIGNALSUNIT=signals
+SO32DLLUNIT=so32dll
+SOFTFPUUNIT=softfpu
+SORTBASEUNIT=sortbase
+STM32F0XXUNIT=stm32f0xx
+STM32F103XEUNIT=stm32f103xe
+STM32F10X_CLUNIT=stm32f10x_cl
+STM32F10X_CONNUNIT=stm32f10x_conn
+STM32F10X_HDUNIT=stm32f10x_hd
+STM32F10X_LDUNIT=stm32f10x_ld
+STM32F10X_MDUNIT=stm32f10x_md
+STM32F10X_XLUNIT=stm32f10x_xl
+STM32F401XEUNIT=stm32f401xe
+STM32F401XXUNIT=stm32f401xx
+STM32F407XXUNIT=stm32f407xx
+STM32F411XEUNIT=stm32f411xe
+STM32F429UNIT=stm32f429
+STM32F429XXUNIT=stm32f429xx
+STM32F446XXUNIT=stm32f446xx
+STM32F745UNIT=stm32f745
+STM32F746UNIT=stm32f746
+STM32F756UNIT=stm32f756
+STM32G071XXUNIT=stm32g071xx
+STRINGSUNIT=strings
+SYMBIANUNIT=symbian
+SYSALLUNIT=sysall
+SYSCALLUNIT=syscall
+SYSCONSTUNIT=sysconst
+SYSCTLUNIT=sysctl
+SYSEMXUNIT=sysemx
+SYSOS2UNIT=sysos2
+SYSTRAPSUNIT=systraps
+SYSUTILSUNIT=sysutils
+TERMIOUNIT=termio
+TYPESUNIT=types
+TYPINFOUNIT=typinfo
+UFLOAT128UNIT=ufloat128
+UFLOATX80UNIT=ufloatx80
+UIUNIT=ui
+UIQUNIT=uiq
+UIQCLASSESUNIT=uiqclasses
+UNICODEDATAUNIT=unicodedata
+UNIXUNIT=unix
+UNIXCPUNIT=unixcp
+UNIXTYPEUNIT=unixtype
+UNIXUTILUNIT=unixutil
+VIOCALLSUNIT=viocalls
+WASIAPIUNIT=wasiapi
+WASIUTILUNIT=wasiutil
+WATCOMUNIT=watcom
+WEBASSEMBLYUNIT=webassembly
+WIN31UNIT=win31
+WINDIRSUNIT=windirs
+WINDOWSUNIT=windows
+WINPROCSUNIT=winprocs
+WINSYSUTUNIT=winsysut
+WINTYPESUNIT=wintypes
+X86UNIT=x86
+XMC4500UNIT=xmc4500
+endif
+ifdef FPC_DOTTEDUNITS 
+NS_SYSTEM=System.
+NS_CPUNITS=System.CodePages.
+NSDIR=$(RTL)/namespaced
+NSINC=$(NSDIR)/common
+OPT:=$(OPT) -dFPC_DOTTEDUNITS
+BASEINCLUDE=$(INC) $(PROCINC) 
+BASESOURCE=$(INC) $(PROCINC) $($(COMMONUNIT))
+endif
+CPUNITSBASE=$(CP1250UNIT) $(CP1251UNIT) $(CP1252UNIT) $(CP1253UNIT) $(CP1254UNIT) $(CP1255UNIT) $(CP1256UNIT) $(CP1257UNIT) $(CP1258UNIT) \
+      $(CP437UNIT) $(CP646UNIT) $(CP737UNIT) $(CP775UNIT) $(CP850UNIT) $(CP852UNIT) $(CP855UNIT) $(CP856UNIT) $(CP857UNIT) $(CP860UNIT) $(CP861UNIT) $(CP862UNIT) \
+      $(CP863UNIT) $(CP864UNIT) $(CP865UNIT) $(CP866UNIT) $(CP869UNIT) $(CP874UNIT) $(CP3021UNIT) $(CP8859_1UNIT) $(CP8859_2UNIT) $(CP8859_3UNIT) $(CP8859_4UNIT) \
+      $(CP8859_5UNIT) $(CP8859_6UNIT) $(CP8859_7UNIT) $(CP8859_8UNIT) $(CP8859_9UNIT) $(CP8859_10UNIT) $(CP8859_11UNIT) \
+      $(CP8859_13UNIT) $(CP8859_14UNIT) $(CP8859_15UNIT) $(CP8859_16UNIT) $(CPKOI8_RUNIT) $(CPKOI8_UUNIT) 
+CPUNITS=$(addprefix $(NS_CPUNITS),$(CPUNITSBASE))
 RTL=..
 RTL=..
 INC=$(RTL)/inc
 INC=$(RTL)/inc
 COMMON=$(RTL)/common
 COMMON=$(RTL)/common
@@ -1725,7 +2225,7 @@ endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_RSTS+=math typinfo classes sysconst
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
 endif
-override INSTALL_FPCPACKAGE=y y
+override INSTALL_FPCPACKAGE=y y y
 ifeq ($(CPU_OS_TARGET),i386-linux)
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
 endif
@@ -3767,6 +4267,489 @@ makefiles: fpc_makefiles
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
+ifndef OSDIR
+OSDIR=.
+endif
+ifndef PORTSDIR
+PORTSDIR=$(OSDIR)
+endif
+ifndef DYNLIBSINCDIR
+DYNLIBSINCDIR=$(OSDIR)
+endif
+ifndef INITCDIR
+INITCDIR=$(OSDIR)
+endif
+ifndef DOSDIR
+DOSDIR=$(OSDIR)
+NSDOSDIR=$(NSDIR)/$(DOSDIR)
+endif
+ifndef SYSUTILSDIR
+SYSUTILSDIR=$(OSDIR)
+endif
+ifndef NSSYSUTILSDIR
+NSSYSUTILSDIR=$(NSDIR)/$(SYSUTILSDIR)
+endif
+ifndef CLASSESDIR
+CLASSESDIR=$(OSDIR)
+endif
+ifndef NSCLASSESDIR
+NSCLASSESDIR=$(NSDIR)/$(CLASSESDIR)
+endif
+ifndef NSBSDDIR
+NSBSDDIR=$(NSDIR)/bsd
+endif
+ifdef FPC_DOTTEDUNITS
+MACPAS_OPT:=$(MACPAS_OPT) -dFPC_DOTTEDUNITS
+EXTPAS_OPT:=$(EXTPAS_OPT) -dFPC_DOTTEDUNITS
+endif
+ifndef SYSTEMUNITEXT
+SYSTEMUNITEXT=pp
+endif
+ifndef DOSUNITEXT
+DOSUNITEXT=pp
+endif
+ifndef PORTSUNITEXT
+PORTSUNITEXT=pp
+endif
+ifndef BASEUNIXDIR
+BASEUNIXDIR=$(UNIXINC)
+endif
+ifdef FPC_DOTTEDUNITS
+BLOCKRTL_OPT:=$(BLOCKRTL_OPT) -dFPC_DOTTEDUNITS
+FPEXTRES_OPT:=$(FPEXTRES_OPT) -dFPC_DOTTEDUNITS
+OBJC_OPT:=$(OBJC_OPT) -dFPC_DOTTEDUNITS
+endif
+$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).$(SYSTEMUNITEXT) $(SYSDEPS)
+	$(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $<
+UUCHAR_DEPS=$(INC)/uuchar.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(UUCHAR_DEPS_OS) $(UUCHAR_DEPS_CPU)
+uuchar$(PPUEXT): $(UUCHAR_DEPS)
+	$(COMPILER) $(UUCHAR_OPT) $<
+UACHAR_DEPS=$(INC)/uachar.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(UACHAR_DEPS_OS) $(UACHAR_DEPS_CPU)
+uachar$(PPUEXT): $(UACHAR_DEPS)
+	$(COMPILER) $(UACHAR_OPT) $<
+OBJPAS_DEPS= $(OBJPASDIR)/objpas.pp $(INC)/except.inc \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(OBJPAS_DEPS_OS) $(OBJPAS_DEPS_SPU)  
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+	$(COMPILER) $(OBJPAS_OPT) -I$(OBJPASDIR) $<
+MACPAS_DEPS=$(INC)/macpas.pp \
+	    objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(MACPAS_DEPS_OS)  $(MACPAS_DEPS_CPU) 
+macpas$(PPUEXT) : $(MACPAS_DEPS)
+	$(COMPILER) $(MACPAS_OPT) $< 
+ISO7185_DEPS= $(INC)/$(ISO7185UNIT).pp \
+	      $(SYSTEMUNIT)$(PPUEXT) \
+	      $(ISO7185_DEPS_OS) $(ISO7185_DEPS_CPU) 
+iso7185$(PPUEXT) : $(ISO7185_DEPS)
+	$(COMPILER) $(ISO7185_OPT) $<
+EXTPAS_DEPS=$(INC)/extpas.pp \
+	    $(DOSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(EXTPAS_DEPS_OS) $(EXTPAS_DEPS_CPU)
+extpas$(PPUEXT) : $(EXTPAS_DEPS)
+	$(COMPILER) $(EXTPAS_OPT) $<
+FPINTRES_DEPS= $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT) \
+	       $(FPINTRES_DEPS_OS) $(FPINTRES_DEPS_CPU)              
+fpintres$(PPUEXT) : $(FPINTRES_DEPS)
+	$(COMPILER) $(FPINTRES_OPT) $<
+FPEXTRES_DEPS= $(INC)/fpextres.pp $(SYSTEMUNIT)$(PPUEXT) \
+	       $(FPEXTRES_DEPS_OS) $(FPEXTRES_DEPS_CPU)              
+fpextres$(PPUEXT) : $(FPEXTRES_DEPS)
+	$(COMPILER) -Sg $(FPEXTRES_OPT) $<
+HEAPTRC_DEPS=$(INC)/heaptrc.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(HEAPTRC_DEPS_OS) $(HEAPTRC_DEPS_CPU)
+heaptrc$(PPUEXT) : $(HEAPTRC_DEPS)
+	$(COMPILER) $(HEAPTRC_OPT) $<
+SOFTFPU_DEPS=$(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SOFTFPU_DEPS_OS) $(SOFTFPU_DEPS_CPU)
+softfpu$(PPUEXT) : $(SOFTFPU_DEPS) 
+	$(COMPILER) $(SOFTFPU_OPT) $<
+System.SoftFPU$(PPUEXT) : $(NSINC)/System.SoftFPU.pp $(SOFTFPU_DEPS) 
+	$(COMPILER) $(SOFTFPU_OPT) $<
+SFPUX80_DEPS=$(INC)/sfpux80.pp $(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SFPUX80_DEPS_OS) $(SFPUX80_DEPS_CPU) 
+sfpux80$(PPUEXT) : $(SFPUX80_DEPS)
+	$(COMPILER) $(SFPUX80_OPT) $<
+System.SoftFpuX80$(PPUEXT) : $(NSINC)/System.SoftFpuX80.pp  $(SFPUX80_DEPS)
+	$(COMPILER) $(SFPUX80_OPT) $<
+SFPU128_DEPS=$(INC)/sfpu128.pp $(INC)/softfpu.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(SFPU128_DEPS_OS) $(SFPU128_DEPS_CPU)
+sfpu128$(PPUEXT) : $(SFPU128_DEPS)
+	$(COMPILER) $(SFPUX128_OPT) $<
+System.SoftFpu128$(PPUEXT) : $(NSINC)/System.SoftFpu128.pp $(SFPU128_DEPS)
+	$(COMPILER) $(SFPUX128_OPT) $<
+UFLOATX80_DEPS=$(INC)/ufloatx80.pp \
+	       $(SFPUX80UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	       $(UFLOATX80_DEPS_OS) $(UFLOATX80_DEPS_CPU)
+ufloatx80$(PPUEXT) : $(UFLOATX80_DEPS)
+	$(COMPILER) $(UFLOATX80_OPT) $<
+System.UFloatX80$(PPUEXT) : $(NSINC)/System.UFloatX80.pp $(UFLOATX80_DEPS)
+	$(COMPILER) $(UFLOATX80_OPT) $<
+UFLOAT128_DEPS=$(INC)/ufloat128.pp \
+	       $(SFPU128UNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	       $(UFLOAT128_DEPS_OS) $(UFLOAT128_DEPS_CPU)
+ufloat128$(PPUEXT) : $(UFLOAT128_DEPS)
+	$(COMPILER) $(UFLOAT128_OPT) $<
+System.UFloat128$(PPUEXT) : $(NSINC)/System.UFloat128.pp $(UFLOAT128_DEPS)
+	$(COMPILER) $(UFLOAT128_OPT) $<
+STRINGS_DEPS=$(INC)/strings.pp $(INC)/stringsi.inc $(PROCINC)/stringss.inc $(PROCINC)/strings.inc \
+	     $(SYSTEMUNIT)$(PPUEXT)  \
+	     $(STRINGS_DEPS_OS)
+strings$(PPUEXT) : $(STRINGS_DEPS)
+	$(COMPILER) $(STRINGS_OPT) $<
+System.Strings$(PPUEXT) : $(NSINC)/System.Strings.pp $(STRINGS_DEPS)
+	$(COMPILER) $(STRINGS_OPT) $<
+PORTS_DEPS=$(PORTSDIR)/ports.$(PORTSUNITEXT) \
+	   $(SYSTEMUNIT)$(PPUEXT) \
+	   $(PORTS_DEPS_OS) $(PORTS_DEPS_CPU)
+ports$(PPUEXT) : $(PORTS_DEPS) 
+	$(COMPILER) $(PORTS_OPT) $<
+System.Ports$(PPUEXT) :  $(NSINC)/System.Ports.pp $(PORTS_DEPS) 
+	$(COMPILER) $(PORTS_OPT) $<
+DYNLIBS_DEPS=$(INC)/dynlibs.pas $(OSDIR)/dynlibs.inc \
+	     objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
+	     $(DYNLIBS_DEPS_OS) $(DYNLIBS_DEPS_CPU)
+dynlibs$(PPUEXT) : $(DYNLIBS_DEPS)
+	$(COMPILER) $(DYNLIBS_OPT) $<
+System.DynLibs$(PPUEXT) : $(NSINC)/System.DynLibs.pas $(DYNLIBS_DEPS)
+	$(COMPILER) $(DYNLIBS_OPT) $<
+INITC_DEPS=$(INITCDIR)/initc.pp $(CTYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(INITC_DEPS_OS) $(INITC_DEPS_CPU)
+initc$(PPUEXT) : $(INITC_DEPS)
+	$(COMPILER) $(INITC_OPT) $<
+System.InitC$(PPUEXT) : $(NSINC)/System.InitC.pp  $(INITC_DEPS)
+	$(COMPILER) $(INITC_OPT) $<
+UNIXCP_DEPS=$(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	$(UNIXCP_DEPS_OS) $(UNIXCP_DEPS_CPU)
+unixcp$(PPUEXT) : $(UNIXCP_DEPS)
+	$(COMPILER) $(UNIXCP_OPT) $(UNIXINC)/unixcp.pp
+UnixApi.CP$(PPUEXT) : $(NSINC)/UnixApi.CP.pp $(UNIXCP_DEPS)
+	$(COMPILER) $(UNIXCP_OPT) $<
+LINUX_DEPS=$(OSDIR)/linux.pp \
+	   $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(LINUX_DEPS_OS) $(LINUX_DEPS_CPU)
+linux$(PPUEXT): $(LINUX_DEPS)
+	$(COMPILER) $<
+LinuxApi$(PPUEXT): $(NSOSDIR)/LinuxApi.pp $(LINUX_DEPS) 
+	$(COMPILER) $(LINUX_OPT) $<
+LINUXVCS_DEPS=$(OSDIR)/linuxvcs.pp $(BASEUNIXUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(LINUXVCS_DEPS_OS) $(LINUXVCS_DEPS_CPU)
+linuxvcs$(PPUEXT): $(LINUXVCS_DEPS)
+	$(COMPILER) $(LINUXVCS_OPT) $<
+LinuxApi.Vcs$(PPUEXT): $(NSOSDIR)/LinuxApi.Vcs.pp $(LINUXVCS_DEPS)
+	$(COMPILER) $(LINUXVCS_OPT) $<
+FPCYLIX_DEPS=fpcylix.pp \
+	     $(CTHREADSUNIT)$(PPUEXT) $(CWSTRINGUNIT)$(PPUEXT) $(DYNLIBSUNIT)$(PPUEXT) \
+	     objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(FPCYLIX_DEPS_OS)  $(FPCYLIX_DEPS_CPU)
+fpcylix$(PPUEXT) : $(FPCYLIX_DEPS)
+	$(COMPILER) $(FPCYLIX_OPT) $<
+TERMIO_DEPS=$(OSDIR)/termio.pp $(BASEUNIXUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)\
+	    $(TERMIO_DEPS_OS) $(TERMIO_DEPS_CPU)
+termio$(PPUEXT) : $(TERMIO_DEPS)
+	$(COMPILER) $(TERMIO_OPT) $<
+UnixApi.TermIO$(PPUEXT) : $(NSINC)/UnixApi.TermIO.pp $(TERMIO_DEPS)
+	$(COMPILER) $(TERMIO_OPT) $<
+DOS_DEPS=$(DOSDIR)/dos.$(DOSUNITEXT)  $(INC)/filerec.inc $(INC)/textrec.inc \
+	 $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	 $(DOS_DEPS_OS) $(DOS_DEPS_CPU)
+dos$(PPUEXT): $(DOS_DEPS)
+	$(COMPILER) $(DOS_OPTS) $<
+TP.DOS$(PPUEXT): $(NSINC)/TP.DOS.pp $(DOS_DEPS) 
+	$(COMPILER) $(DOS_OPTS) $<
+SYSUTILS_UNIX_DEPS=$(UNIXUNIT)$(PPUEXT) $(ERRORSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(SYSCALLUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+		   $(UNIXUTILUNIT)$(PPUEXT)  $(INITCUNIT)$(PPUEXT)
+SYSUTILS_DEPS=$(SYSUTILSDIR)/sysutils.pp $(wildcard $(OBJPASDIR)/$(SYSUTILSUNIT)/*.inc) \
+	      objpas$(PPUEXT) $(SYSCONSTUNIT)$(PPUEXT) \
+	      $(SYSUTILS_DEPS_OS) $(SYSUTILS_DEPS_CPU)
+sysutils$(PPUEXT) : $(SYSUTILS_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR)/$(SYSUTILSUNIT) $<
+System.SysUtils$(PPUEXT) : $(NSINC)/System.SysUtils.pp $(SYSUTILS_DEPS)
+	$(COMPILER) $(SYSUTILS_OPT) -Fi$(OBJPASDIR)/sysutils $<
+CLASSES_DEPS=$(CLASSESDIR)/classes.pp $(wildcard $(OBJPASDIR)/$(CLASSESUNIT)/*.inc) \
+	     $(SYSUTILSUNIT)$(PPUEXT) $(TYPINFOUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	     $(FGLUNIT)$(PPUEXT) $(TYPESUNIT)$(PPUEXT) \
+	     $(CLASSES_DEPS_OS) $(CLASSES_DEPS_CPU)
+classes$(PPUEXT) : $(CLASSES_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
+System.Classes$(PPUEXT) : $(NSINC)/System.Classes.pp $(CLASSES_DEPS) 
+	$(COMPILER) -Fi$(OBJPASDIR)/classes $(CLASSES_OPT) $<
+TYPINFO_DEPS=$(OBJPASDIR)/typinfo.pp \
+	     objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	     $(TYPINFO_DEPS_OS) $(TYPINFO_DEPS_CPU)
+typinfo$(PPUEXT): $(TYPINFO_DEPS)
+	$(COMPILER) -Sg $(TYPINFO_OPT) $<
+System.TypInfo$(PPUEXT): $(NSINC)/System.TypInfo.pp $(TYPINFO_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) -Sg $(TYPINFO_OPT) $<
+CHARACTER_DEPS=$(OBJPASDIR)/character.pas \
+	       $(SYSUTILSUNIT)$(PPUEXT) objpas$(PPUEXT) $(RTLCONSTSUNIT)$(PPUEXT) \
+	       $(CHARACTER_DEPS_OS) $(CHARACTER_DEPS_CPU)
+character$(PPUEXT): $(CHARACTER_DEPS)
+	$(COMPILER) $(CHARACTER_OPT) $<
+System.Character$(PPUEXT): $(NSINC)/System.Character.pas $(CHARACTER_DEPS)
+	$(COMPILER) $(CHARACTER_OPT) -Fi$(OBJPASDIR) $<
+MATH_DEPS= $(OBJPASDIR)/math.pp \
+	   objpas$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(MATH_DEPS_OS) $(MATH_DEPS_CPU)
+math$(PPUEXT): $(MATH_DEPS)
+	$(COMPILER) $(MATH_OPT) $<
+System.Math$(PPUEXT): $(NSINC)/System.Math.pp $(MATH_DEPS)
+	$(COMPILER) $(MATH_OPT) -Fi$(OBJPASDIR)  $<
+FGL_DEPS=$(OBJPASDIR)/fgl.pp \
+	  objpas$(PPUEXT) $(TYPESUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(SYSUTILSUNIT)$(PPUEXT) $(SORTBASEUNIT)$(PPUEXT) \
+	  $(FCL_DEPS_OS) $(FCL_DEPS_CPU)
+fgl$(PPUEXT) : $(FGL_DEPS)
+	$(COMPILER) $(FGL_OPT) $<
+System.FGL$(PPUEXT) : $(NSINC)/System.FGL.pp $(FGL_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(FGL_OPT) $<
+TYPES_DEPS=$(OBJPASDIR)/types.pp \
+	   objpas$(PPUEXT) $(MATHUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	   $(TYPES_DEPS_OS) $(TYPES_DEPS_CPU)
+types$(PPUEXT) : $(TYPES_DEPS)
+	$(COMPILER) $(TYPES_OPT) $<
+System.Types$(PPUEXT) :  $(NSINC)/System.Types.pp $(TYPES_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(TYPES_OPT) $<
+SYSCONST_DEPS=$(OBJPASDIR)/sysconst.pp \
+	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(SYSCONST_DEPS_OS) $(SYSCONST_DEPS_CPU)
+sysconst$(PPUEXT) : $(SYSCONST_DEPS)
+	$(COMPILER) $(SYSCONST_OPT) $<
+System.SysConst$(PPUEXT) :  $(NSINC)/System.SysConst.pp $(SYSCONST_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(SYSCONST_OPT) $<
+RTLCONSTS_DEPS=$(OBJPASDIR)/rtlconsts.pp \
+	      objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(RTLCONST_DEPS_OS) $(RTLCONST_DEPS_CPU)
+rtlconsts$(PPUEXT) : $(RTLCONSTS_DEPS)
+	$(COMPILER) $(RTLCONSTS_OPT) $<
+System.RtlConsts$(PPUEXT) : $(NSINC)/System.RtlConsts.pp $(RTLCONSTS_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(RTLCONSTS_OPT) $<
+ifneq ($(findstring $(ARCH),x86_64 i386),)
+CPU_DEPS_OS:=$(CPU_DEPS_OS) $(SYSUTILSUNIT)$(PPUEXT)
+endif
+CPU_DEPS=$(PROCINC)/cpu.pp \
+	 $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	 $(CPU_DEPS_OS) $(CPU_DEPS_CPU)
+cpu$(PPUEXT) : $(CPU_DEPS)
+	$(COMPILER) $(CPU_OPT) $<
+System.CPU$(PPUEXT) : $(NSINC)/System.CPU.pp
+	$(COMPILER) $(CPU_OPT) $<
+MMX_DEPS=$(PROCINC)/mmx.pp \
+	 $(CPUUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	 $(MMX_DEPS_OS) $(MMX_DEPS_CPU) 
+mmx$(PPUEXT) : $(MMX_DEPS)
+	$(COMPILER) $(MMX_OPT) $<
+System.MMX$(PPUEXT) : $(NSINC)/System.MMX $(MMX_DEPS)
+	$(COMPILER) $(MMX_OPT) $<
+X86_DEPS = $(UNIXINC)/x86.pp \
+	  $(BASEUNIXUNIT)$(PPUEXT) $(SYSCALLUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	  $(X86_DEPS_OS) $(X86_DEPS_CPU)
+x86$(PPUEXT) : $(X86_DEPS)
+	$(COMPILER) $(X86_OPT)  $<
+System.X86$(PPUEXT) : $(NSINC)/System.X86.pp $(X86_DEPS)
+	$(COMPILER) $(X86_OPT) $<
+GETOPTS_DEPS=$(INC)/getopts.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) \
+	     $(GETOPTS_DEPS_OS) $(GETOPTS_DEPS_CPU)
+getopts$(PPUEXT) : $(GETOPTS_DEPS)
+	$(COMPILER) $(GETOPTS_OPT) $<
+System.GetOpts$(PPUEXT) : $(NSINC)/System.GetOpts.pp $(GETOPTS_DEPS)
+	$(COMPILER)  $(GETOPTS_OPT) $<
+LINEINFO_DEPS=$(INC)/lineinfo.pp \
+	      $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(SYSUTILSUNIT)$(PPUEXT) \
+	      $(LINEINFO_DEPS_OS)  $(LINEINFO_DEPS_CPU)
+lineinfo$(PPUEXT) : $(LINEINFO_DEPS)
+	$(COMPILER) $(LINEINFO_OPT) $<
+System.LineInfo$(PPUEXT) : $(NSINC)/System.LineInfo.pp $(LINEINFO_DEPS)
+	$(COMPILER) $(LINEINFO_OPT) $<
+EXEINFO_DEPS=$(INC)/exeinfo.pp \
+	      $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(EXEINFO_DEPS_OS)  $(EXEINFO_DEPS_CPU)
+exeinfo$(PPUEXT) : $(EXEINFO_DEPS)
+	$(COMPILER) $(EXEINFO_OPT) $<
+System.ExeInfo$(PPUEXT) : $(NSINC)/System.ExeInfo.pp $(LINEINFO_DEPS)
+	$(COMPILER) $(EXEINFO_OPT) $<
+LNFODWRF_DEPS=$(INC)/lnfodwrf.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
+	      $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
+	      $(LNFODWRF_DEPS_OS) $(LNFODWRF_DEPS_CPU)
+lnfodwrf$(PPUEXT) : $(LNFODWRF_DEPS)
+	$(COMPILER) $(LNFODWRF_OPT) $<
+System.LineInfo.Dwarf$(PPUEXT) : $(NSINC)/System.LineInfo.Dwarf.pp $(LNFODWRF_DEPS)
+	$(COMPILER) $(LNFODWRF_OPT) $<
+LNFOGDB_DEPS=$(UNIXINC)/lnfogdb.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(STRINGSUNIT)$(PPUEXT) $(LINEINFOUNIT)$(PPUEXT) \
+	      $(SYSUTILSUNIT)$(PPUEXT) $(EXEINFOUNIT)$(PPUEXT) \
+	      $(LNFOGDB_DEPS_OS) $(LNFOGDB_DEPS_CPU)
+lnfogdb$(PPUEXT) : $(LNFOGDB_DEPS)
+	$(COMPILER) $(LNFOGDB_OPT) $<
+System.LineInfo.Gdb$(PPUEXT) : $(NSINC)/System.LineInfo.Gdb.pp $(LNFOGDB_DEPS)
+	$(COMPILER) $(LNFOGDB_OPT) $<
+CHARSET_DEPS=$(INC)/charset.pp \
+	     $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) \
+	     $(CHARSET_DEPS_OS) $(CHARSET_DEPS_CPU)
+charset$(PPUEXT) : $(CHARSET_DEPS)
+	$(COMPILER) $(CHARSET_OPT) $<
+System.CharSet$(PPUEXT) : $(NSINC)/System.CharSet.pp $(CHARSET_DEPS)
+	$(COMPILER) $(CHARSET_OPT) $< 
+CPALL_DEPS=$(RTL)/charmaps/cpall.pas \
+	  system$(PPUEXT) $(CHARSETUNIT)$(PPUEXT) \
+	  $(CPALL_DEPS_OS) $(CPALL_DEPS_CPU)
+cpall$(PPUEXT): $(CPALL_DEPS)  
+	$(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
+System.CodePages.All$(PPUEXT):  $(NSINC)/System.CodePages.All.pas $(CPALL_DEPS)
+	$(COMPILER) $(CPALL_OPT) -Fu$(INC) -Fi$(RTL)/charmaps $<
+FPWIDESTRING_DEPS=$(OBJPASDIR)/fpwidestring.pp \
+		  $(CHARACTERUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(CPALLUNIT)$(PPUEXT) \
+		  $(FPWIDESTRING_DEPS_OS) $(FPWIDESTRING_DEPS_CPU)
+fpwidestring$(PPUEXT): $(FPWIDESTRING_DEPS)
+	$(COMPILER) $(FPWIDESTRING_OPT) $<
+System.FPWideString$(PPUEXT): $(NSINC)/System.FPWideString.pp $(FPWIDESTRING_DEPS)
+	$(COMPILER) -Fi$(OBJPASDIR) $(FPWIDESTRING_OPT) $<
+SORTBASE_DEPS=$(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(SORTBASE_DEPS_OS) $(SORTBASE_DEPS_CPU) 
+sortbase$(PPUEXT) : $(SORTBASE_DEPS)
+	$(COMPILER) $(SORTBASE_OPT) $<
+System.SortBase$(PPUEXT) : $(NSINC)/System.SortBase.pp $(SORTBASE_DEPS)
+	$(COMPILER) $(SORTBASE_OPT) $<
+CALLSPEC_DEPS=$(INC)/callspec.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) \
+	      $(CALLSPEC_DEPS_OS) $(CALLSPEC_DEPS_CPU) 
+callspec$(PPUEXT) : $(CALLSPEC_DEPS)
+	$(COMPILER) $(CALLSPEC_OPT) $<
+System.CallSpec$(PPUEXT) : $(NSINC)/System.CallSpec.pp $(CALLSPEC_DEPS)
+	$(COMPILER) $(CALLSPEC_OPT) $<
+CMEM_DEPS=$(INC)/cmem.pp \
+	  $(SYSTEMUNIT)$(PPUEXT) \
+	  $(CMEM_DEPS_OS) $(CMEM_DEPS_CPU)
+cmem$(PPUEXT) : $(CMEM_DEPS)
+	$(COMPILER) $(CMEM_OPT) $<
+System.CMem$(PPUEXT) : $(NSINC)/System.CMem.pp $(CMEM_DEPS)
+	$(COMPILER) $(CMEM_OPT) $<
+BASEUNIX_DEPS=$(BASEUNIXDIR)/baseunix.pp  $(UNIXINC)/ctypes.inc  \
+	      $(UNIXINC)/bunxh.inc $(UNIXINC)/gensigset.inc $(OSDIR)/ptypes.inc $(OSDIR)/errno.inc \
+	      $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	      $(BASEUNIX_DEPS_OS) $(BASEUNIX_DEPS_CPU) 
+baseunix$(PPUEXT): $(BASEUNIX_DEPS)
+	$(COMPILER) $(BASEUNIX_OPT) $<
+UnixApi.Base$(PPUEXT): $(NSINC)/UnixApi.Base.pp $(BASEUNIX_DEPS) 
+	$(COMPILER) $(BASEUNIX_OPT) $<
+UNIX_DEPS=$(UNIXINC)/unix.pp \
+	 $(STRINGSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	 $(UNIXUTILUNIT)$(PPUEXT) \
+	 $(INC)/textrec.inc $(INC)/filerec.inc  $(UNIXINC)/timezone.inc \
+	 $(OSDIR)/unxconst.inc $(OSDIR)/unxfunc.inc \
+	 $(UNIX_DEPS_OS) $(UNIX_DEPS_CPU)
+unix$(PPUEXT): $(UNIX_DEPS)
+	$(COMPILER) $(UNIX_OPT) $<
+UnixApi.Unix$(PPUEXT) : $(NSINC)/UnixApi.Unix.pp $(UNIX_DEPS)
+	$(COMPILER) $(UNIX_OPT) $<
+SYSCALL_DEPS=$(UNIXINC)/syscall.pp \
+	     $(SYSTEMUNIT)$(PPUEXT)\
+	     $(SYSCALL_DEPS_OS) $(SYSCALL_DEPS_CPU)
+syscall$(PPUEXT) : $(SYSCALL_DEPS)
+	$(COMPILER) $(SYSCALL_OPT) $<
+UnixApi.SysCall$(PPUEXT) : $(NSINC)/UnixApi.SysCall.pp $(SYSCALL_DEPS) 
+	$(COMPILER) $(SYSCALL_OPT) $<
+UNIXUTIL_DEPS=$(UNIXINC)/unixutil.pp $(INC)/textrec.inc $(INC)/filerec.inc\
+	     $(SYSTEMUNIT)$(PPUEXT)\
+	     $(UNIXUTIL_DEPS_OS)
+unixutil$(PPUEXT) : $(UNIXUTIL_DEPS)
+	$(COMPILER) $(UNIXUTIL_OPT) $<
+UnixApi.Utils$(PPUEXT) : $(NSINC)/UnixApi.Utils.pp $(UNIXUTIL_DEPS) 
+	$(COMPILER) $(UNIXUTIL_OPT) $<
+UNIXTYPE_DEPS=$(UNIXINC)/unixtype.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(OSDIR)/ptypes.inc $(UNIXINC)/ctypes.inc \
+	      $(UNIXTYPE_DEPS_OS) $(UNIXTYPE_DEPS_CPU)
+unixtype$(PPUEXT) : $(UNIXTYPE_DEPS)
+	$(COMPILER) $(UNIXTYPE_OPT) $(UNIXINC)/unixtype.pp
+UnixApi.Types$(PPUEXT) : $(NSINC)/UnixApi.Types.pp $(UNIXTYPE_DEPS)
+	$(COMPILER) $(UNIXTYPE_OPT) $<
+DL_DEPS=$(UNIXINC)/dl.pp \
+	$(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	$(DL_DEPS_OS) $(DL_DEPS_CPU)
+dl$(PPUEXT) : $(DL_DEPS)
+	$(COMPILER) $(DL_OPT) $<
+UnixApi.Dl$(PPUEXT) : $(NSINC)/UnixApi.Dl.pp $(DL_DEPS)
+	$(COMPILER) $(DL_OPT) $<
+ERRORS_DEPS=$(UNIXINC)/errors.pp \
+	    $(STRINGSUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	    $(ERRORS_DEPS_OS) $(ERRORS_DEPS_CPU)
+errors$(PPUEXT) : $(ERRORS_DEPS)
+	$(COMPILER) $(ERRORS_OPT) $<
+UnixApi.Errors$(PPUEXT) : $(NSINC)/UnixApi.Errors.pp $(ERRORS_DEPS)
+	$(COMPILER) $(ERRORS_OPT) $<
+CTHREADS_DEPS=$(UNIXINC)/cthreads.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
+	      $(BASEUNIXUNIT)$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(DLUNIT)$(PPUEXT) \
+	      $(CTHREADS_DEPS_OS) $(CTHREADS_DEPS_CPU)
+cthreads$(PPUEXT) : $(CTHREADS_DEPS)
+	$(COMPILER) $(CTHREADS_OPT) $<
+UnixApi.CThreads$(PPUEXT) : $(NSINC)/UnixApi.CThreads.pp $(CTHREADS_DEPS)
+	$(COMPILER) $(CTHREADS_OPT) $<
+CWSTRING_DEPS=$(UNIXINC)/cwstring.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(BASEUNIXUNIT)$(PPUEXT) \
+	      $(UNIXUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	      $(DYNLIBSUNIT)$(PPUEXT) $(UNIXCPUNIT)$(PPUEXT) \
+	      $(CWSTRING_DEPS_OS) $(CWSTRING_DEPS_CPU) 
+cwstring$(PPUEXT) : $(CWSTRING_DEPS)
+	$(COMPILER) $(CWSTRING_OPT) $<
+UnixApi.CWString$(PPUEXT) : $(NSINC)/UnixApi.CWString.pp $(CWSTRING_DEPS)
+	$(COMPILER) $(CWSTRING_OPT) $<
+CTYPES_DEPS=$(INC)/ctypes.pp \
+	    $(SYSTEMUNIT)$(PPUEXT) \
+	    $(CTYPES_DEPS_OS) $(CTYPES_DEPS_CPU)
+ctypes$(PPUEXT) : $(CTYPES_DEPS) 
+	$(COMPILER) $(CTYPES_OPT) $<
+System.CTypes$(PPUEXT) : $(NSINC)/System.CTypes.pp $(CTYPES_DEPS) 
+	$(COMPILER) $(CTYPES_OPT) $<
+OBJC_DEPS=$(INC)/objc.pp $(INC)/objc.pp $(INC)/objc1.inc $(INC)/objcnf.inc \
+	  $(SYSTEMUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+	  $(OBJC_DEPS_OS) $(OBJC_DEPS_CPU)
+objc$(PPUEXT) : $(OBJC_DEPS)
+	$(COMPILER) $(OBJC_OPT) $<
+OBJCBASE_DEPS=$(INC)/objcbase.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) $(OBJCUNIT)$(PPUEXT) \
+	      $(OBJCBASE_DEPS_OS) $(OBJCBASE_DEPS_CPU)
+objcbase$(PPUEXT) : $(OBJCBASE_DEPS)
+	$(COMPILER) $(OBJCBASE_OPT) $<
+BLOCKRTL_DEPS=$(INC)/blockrtl.pp \
+	      $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) $(INITCUNIT)$(PPUEXT) $(CTYPESUNIT)$(PPUEXT) \
+	      $(BLOCKRTL_DEPS_OS) $(BLOCKRTL_DEPS_CPU)
+blockrtl$(PPUEXT) : $(BLOCKRTL_DEPS)
+	$(COMPILER) $(BLOCKRTL_OPT) $<
+WINDOWS_DEPS=windows.pp $(SYSTEMUNIT)$(PPUEXT) \
+	     $(WINDOWS_DEPS_OS) $(WINDOWS_DEPS_CPU)
+windows$(PPUEXT): $(WINDOWS_DEPS)
+	$(COMPILER) $(WINDOWS_OPT) $<
+WinApi.Windows$(PPUEXT): $(NSOSDIR)/WinApi.Windows.pp $(WINDOWS_DEPS)
+	$(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDOWS_OPT) $<
+WINDIRS_DEPS=windirs.pp $(WINDOWSUNIT)$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) \
+	     $(WINDIRS_DEPS_OS) $(WINDIRS_DEPS_CPU)
+windirs$(PPUEXT): $(WINDIRS_DEPS)
+	$(COMPILER) $(WINDIRS_OPT) $<
+WinApi.WinDirs$(PPUEXT): $(NSOSDIR)/WinApi.WinDirs.pp $(WINDIRS_DEPS)
+	$(COMPILER) -Fi$(WININC) -Fi$(WINDIR) $(WINDIRS_OPT) $<
+SYSCTL_DEPS=$(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) $(UNIXTYPEUNIT)$(PPUEXT) \
+	    $(SYSCTL_DEPS_OS) $(SYSCTL_DEPS_CPU)
+sysctl$(PPUEXT) : $(SYSCTL_DEPS)
+	$(COMPILER) $(SYSCTL_OPT) $<
+BsdApi.SysCtl$(PPUEXT) : $(NSBSDDIR)/BsdApi.SysCtl.pp $(SYSCTL_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
+BSD_DEPS=$(BSDINC)/bsd.pas $(INITCUNIT)$(PPUEXT) $(UNIXUNIT)$(PPUEXT) \
+	 $(BSD_DEPS_OS) $(BSD_DEPS_CPU)
+bsd$(PPUEXT): $(BSD_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
+BsdApi$(PPUEXT): $(NSBSDDIR)/BsdApi.pp $(BSD_DEPS)
+	$(COMPILER) $(BSD_OPT) $<
 .NOTPARALLEL:
 .NOTPARALLEL:
 include $(INC)/makefile.inc
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 6 - 0
rtl/dragonfly/console.pp

@@ -22,7 +22,9 @@
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 }
 }
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 UNIT Console;
 UNIT Console;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$packrecords C}
 {$packrecords C}
 
 
@@ -1822,7 +1824,11 @@ function physicalconsole(fd:longint) : boolean;
 
 
 IMPLEMENTATION
 IMPLEMENTATION
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Base,UnixApi.TermIO;
+{$ELSE FPC_DOTTEDUNITS}
 Uses BaseUnix,termio;
 Uses BaseUnix,termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 function physicalconsole(fd:longint) : boolean;
 function physicalconsole(fd:longint) : boolean;
 
 

+ 6 - 0
rtl/dragonfly/termio.pp

@@ -14,11 +14,17 @@
 
 
  **********************************************************************}
  **********************************************************************}
 
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit termio;
 unit termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 {$inline on}
 {$inline on}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Base;          // load base UnixApi.Unix typing
+{$ELSE FPC_DOTTEDUNITS}
 Uses BaseUnix;          // load base unix typing
 Uses BaseUnix;          // load base unix typing
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 // load types + consts
 // load types + consts
 
 

Datei-Diff unterdrückt, da er zu groß ist
+ 619 - 119
rtl/embedded/Makefile


+ 7 - 153
rtl/embedded/Makefile.fpc

@@ -12,12 +12,14 @@ loaders=$(LOADERS)
 # not all targets include enough features to build all units so
 # not all targets include enough features to build all units so
 # the common units which are not compiled for all CPUs are stored in
 # the common units which are not compiled for all CPUs are stored in
 # CPU_SPECIFIC_COMMON_UNITS
 # CPU_SPECIFIC_COMMON_UNITS
-units=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas strings heapmgr consoleio sortbase $(CPU_SPECIFIC_COMMON_UNITS) \
+units=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas iso7185 extpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS) \
 # macpas iso7185 strings
 # macpas iso7185 strings
-       dos \
-       ctypes \
-       charset cpall \
-       sysconst
+       $(STRINGSUNIT) \
+       $(SORTBASEUNIT) \
+       $(DOSUNIT) \
+       $(CTYPESUNIT) \
+       $(CHARSETUNIT) $(CPALLUNIT) \
+       $(SYSCONSTUNIT)
 #implicitunits=exeinfo \
 #implicitunits=exeinfo \
 #      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
 #      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
 #      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
 #      cp437 cp646 cp737 cp775 cp850 cp852 cp855 cp856 cp857 cp860 cp861 cp862 \
@@ -284,129 +286,12 @@ startup$(OEXT) : $(CPU_TARGET)/startup.s
 $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS) $(INC)/softfpu.pp
 $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS) $(INC)/softfpu.pp
         $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp @system.cfg $(REDIR)
         $(COMPILER) $(FPC_SYSTEM_OPT) -Us -Sg $(SYSTEMUNIT).pp @system.cfg $(REDIR)
 
 
-uuchar$(PPUEXT): $(INC)/uuchar.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
-
-strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
-                   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
-                   $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $<
-
-
-#
-# System Dependent Units
-#
-
-#ports$(PPUEXT) : ports.pas objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-#        $(COMPILER) $<
-
-#doscalls$(PPUEXT) : doscalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-#        $(COMPILER) $<
-
 consoleio$(PPUEXT) : consoleio.pp $(SYSTEMUNIT)$(PPUEXT)
 consoleio$(PPUEXT) : consoleio.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 	$(COMPILER) $<
 
 
 heapmgr$(PPUEXT) : heapmgr.pp $(SYSTEMUNIT)$(PPUEXT)
 heapmgr$(PPUEXT) : heapmgr.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 	$(COMPILER) $<
 
 
-
-#
-# TP7 Compatible RTL Units
-#
-
-dos$(PPUEXT) : dos.pp $(INC)/fexpand.inc $(INC)/filerec.inc $(INC)/textrec.inc $(INC)/dosh.inc $(INC)/dos.inc objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $<
-
-#crt$(PPUEXT) : crt.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
-#        $(COMPILER) $<
-
-objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $<
-
-#printer$(PPUEXT) : printer.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
-#        $(COMPILER) $<
-
-#graph$(PPUEXT) : graph.pp
-#        $(COMPILER) $<
-
-#
-# Delphi Compatible Units
-#
-
-sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
-                    objpas$(PPUEXT) sysconst$(PPUEXT) heapmgr$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
-
-classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
-                   sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) sortbase$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
-
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) sysutils$(PPUEXT) rtlconsts$(PPUEXT)
-        $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
-
-math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
-
-varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
-                    $(OBJPASDIR)/varutilh.inc varutils.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) varutils.pp $(REDIR)
-
-fmtbcd$(PPUEXT) : $(OBJPASDIR)/fmtbcd.pp objpas$(PPUEXT) sysutils$(PPUEXT) variants$(PPUEXT) classes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/fmtbcd.pp
-
-types$(PPUEXT) : $(OBJPASDIR)/types.pp math$(PPUEXT) objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/types.pp
-
-rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp $(OBJPASDIR)/rtlconst.inc objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
-
-sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(OBJPASDIR)/sysconst.pp
-
-fgl$(PPUEXT): $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT) sortbase$(PPUEXT)
-        $(COMPILER) -Sg $(OBJPASDIR)/fgl.pp $(REDIR)
-
-dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
-
-#
-# Mac Pascal Model
-#
-
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/macpas.pp $(REDIR)
-
-#
-# Other system-independent RTL Units
-#
-
-ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
-
-lineinfo$(PPUEXT) : $(INC)/lineinfo.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/lineinfo.pp
-
-charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $<
-
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
-        $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
-
-iso7185$(PPUEXT) : $(INC)/iso7185.pp $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/iso7185.pp
-
-extpas$(PPUEXT) : $(INC)/extpas.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-        $(COMPILER) $(INC)/extpas.pp
-
 #
 #
 # Unit specific rules
 # Unit specific rules
 #
 #
@@ -424,37 +309,6 @@ $(foreach unit,$(CPU_UNITS),$(eval $(call CPU_UNITS_RULE,$(unit))))
 $(addsuffix $(PPUEXT),$(CPU_UNITS)):
 $(addsuffix $(PPUEXT),$(CPU_UNITS)):
 	$(COMPILER) -g $<
 	$(COMPILER) -g $<
 
 
-#
-# Other $(SYSTEMUNIT)-dependent RTL Units
-#
-
-errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/errors.pp
-
-callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/callspec.pp
-
-cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/cmem.pp
-
-cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT) unix$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) initc$(PPUEXT) dl$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/cthreads.pp
-
-cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT) unixcp$(PPUEXT)
-	$(COMPILER) $(UNIXINC)/cwstring.pp
-
-ctypes$(PPUEXT) :  $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/ctypes.pp
-
-fpcylix$(PPUEXT) : fpcylix.pp cthreads$(PPUEXT) cwstring$(PPUEXT) dynlibs$(PPUEXT) objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) fpcylix.pp
-
-intrinsics$(PPUEXT) : $(PROCINC)/intrinsics.pp $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(PROCINC)/intrinsics.pp
-
-sortbase$(PPUEXT) : $(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-	$(COMPILER) $(INC)/sortbase.pp
-
 # AVR specific units
 # AVR specific units
 
 
 avrsim$(PPUEXT): $(ARCH)/avrsim.pp heapmgr$(PPUEXT) consoleio$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 avrsim$(PPUEXT): $(ARCH)/avrsim.pp heapmgr$(PPUEXT) consoleio$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)

+ 3 - 1
rtl/embedded/aarch64/gpio.pp

@@ -19,7 +19,9 @@
 
 
  ****************************************************************************
  ****************************************************************************
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit gpio;
 unit gpio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -47,4 +49,4 @@ const
 
 
 implementation
 implementation
 
 
-end.
+end.

+ 8 - 1
rtl/embedded/aarch64/mailbox.pp

@@ -19,7 +19,9 @@
 
 
  ****************************************************************************
  ****************************************************************************
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit mailbox;
 unit mailbox;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -66,8 +68,13 @@ function MailboxCall(BaseAddr: DWord; Channel: DWord): DWord;
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+    EmbeddedApi.mmio;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
     mmio;
     mmio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 function MailboxCall(BaseAddr: DWord; Channel: DWord): DWord;
 function MailboxCall(BaseAddr: DWord; Channel: DWord): DWord;
 var
 var
@@ -107,4 +114,4 @@ begin
     MailboxCall := 0;
     MailboxCall := 0;
 end;
 end;
 
 
-end.
+end.

+ 3 - 1
rtl/embedded/aarch64/mmio.pp

@@ -19,7 +19,9 @@
 
 
  ****************************************************************************
  ****************************************************************************
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit mmio;
 unit mmio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 
@@ -73,4 +75,4 @@ begin
     GET64 := p^;
     GET64 := p^;
 end;
 end;
 
 
-end.
+end.

+ 8 - 1
rtl/embedded/aarch64/raspi3.pp

@@ -19,7 +19,9 @@
 
 
  ****************************************************************************
  ****************************************************************************
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit raspi3;
 unit raspi3;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$goto on}
 {$goto on}
 {$INLINE ON}
 {$INLINE ON}
@@ -28,8 +30,13 @@ interface
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+    EmbeddedApi.ConsoleIO, EmbeddedApi.mmio, EmbeddedApi.mailbox, EmbeddedApi.raspiuart, EmbeddedApi.gpio;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
     consoleio, mmio, mailbox, raspiuart, gpio;
     consoleio, mmio, mailbox, raspiuart, gpio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 procedure _FPC_haltproc; assembler; nostackframe; public name '_haltproc';
 procedure _FPC_haltproc; assembler; nostackframe; public name '_haltproc';
 asm
 asm
@@ -113,4 +120,4 @@ begin
     OpenIO(ErrOutput, @RaspiWrite, @RaspiRead, fmOutput, nil);
     OpenIO(ErrOutput, @RaspiWrite, @RaspiRead, fmOutput, nil);
     OpenIO(StdOut, @RaspiWrite, @RaspiRead, fmOutput, nil);
     OpenIO(StdOut, @RaspiWrite, @RaspiRead, fmOutput, nil);
     OpenIO(StdErr, @RaspiWrite, @RaspiRead, fmOutput, nil);
     OpenIO(StdErr, @RaspiWrite, @RaspiRead, fmOutput, nil);
-end.
+end.

+ 8 - 1
rtl/embedded/aarch64/raspiuart.pp

@@ -19,7 +19,9 @@
 
 
  ****************************************************************************
  ****************************************************************************
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit raspiuart;
 unit raspiuart;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {-
 {-
     The Raspberry Pi 3 and 4 use an ARM PL011 UART, but requires
     The Raspberry Pi 3 and 4 use an ARM PL011 UART, but requires
@@ -37,8 +39,13 @@ procedure UARTFlush(BaseAddr: DWord);
 
 
 implementation
 implementation
 
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+    EmbeddedApi.mailbox, EmbeddedApi.mmio, EmbeddedApi.gpio;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 uses
     mailbox, mmio, gpio;
     mailbox, mmio, gpio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 const
 const
     { UART offsets from PeripheralBase }
     { UART offsets from PeripheralBase }
@@ -135,4 +142,4 @@ begin
     PUT32(BaseAddr + UART0_LCRH, (1 shl 4));
     PUT32(BaseAddr + UART0_LCRH, (1 shl 4));
 end;
 end;
 
 
-end.
+end.

+ 2 - 0
rtl/embedded/arm/allwinner_a20.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit allwinner_a20;
 unit allwinner_a20;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 {$goto on}
 {$goto on}
 
 

+ 2 - 0
rtl/embedded/arm/cortexm0.pp

@@ -3,7 +3,9 @@
  Created by Jeppe Johansen 2012 - [email protected]
  Created by Jeppe Johansen 2012 - [email protected]
  Modified for M0 by Michael Ring 2013 - [email protected]
  Modified for M0 by Michael Ring 2013 - [email protected]
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cortexm0;
 unit cortexm0;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 2 - 0
rtl/embedded/arm/cortexm3.pp

@@ -3,7 +3,9 @@
 
 
  Created by Jeppe Johansen 2012 - [email protected]
  Created by Jeppe Johansen 2012 - [email protected]
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cortexm3;
 unit cortexm3;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 2 - 0
rtl/embedded/arm/cortexm4.pp

@@ -3,7 +3,9 @@
 
 
  Created by Jeppe Johansen 2012 - [email protected]
  Created by Jeppe Johansen 2012 - [email protected]
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cortexm4;
 unit cortexm4;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 2 - 0
rtl/embedded/arm/cortexm7.pp

@@ -3,7 +3,9 @@
 
 
  Created by Jeppe Johansen 2015 - [email protected]
  Created by Jeppe Johansen 2015 - [email protected]
 }
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cortexm7;
 unit cortexm7;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 2 - 0
rtl/embedded/arm/lm3fury.pp

@@ -5,7 +5,9 @@ Geoffrey Barton 2010 08 01  [email protected]
 based on stm32f103 created by Jeppe Johansen 2009 - [email protected]
 based on stm32f103 created by Jeppe Johansen 2009 - [email protected]
 }
 }
 {$goto on}
 {$goto on}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lm3fury;
 unit lm3fury;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
   interface
   interface
 
 

+ 2 - 0
rtl/embedded/arm/lm3tempest.pp

@@ -5,7 +5,9 @@ Geoffrey Barton 2010 08 01  [email protected]
 based on stm32f103 created by Jeppe Johansen 2009 - [email protected]
 based on stm32f103 created by Jeppe Johansen 2009 - [email protected]
 }
 }
 {$goto on}
 {$goto on}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lm3tempest;
 unit lm3tempest;
+{$ENDIF FPC_DOTTEDUNITS}
 {$define highspeedports}
 {$define highspeedports}
   interface
   interface
 
 

+ 2 - 0
rtl/embedded/arm/lm4f120.pp

@@ -1,5 +1,7 @@
 {$goto on}
 {$goto on}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lm4f120;
 unit lm4f120;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 interface
 interface
 
 

+ 2 - 0
rtl/embedded/arm/lpc11xx.pp

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lpc11xx;
 unit lpc11xx;
+{$ENDIF FPC_DOTTEDUNITS}
 {$goto on}
 {$goto on}
 {$define lpc11xx}
 {$define lpc11xx}
 
 

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.