Michael VAN CANNEYT 2 роки тому
батько
коміт
ccfa38c68e
100 змінених файлів з 8137 додано та 2234 видалено
  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
 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)))
 ifneq ($(findstring darwin,$(OSTYPE)),)
 inUnix=1 #darwin
@@ -165,8 +166,20 @@ endif
 ifndef OS_TARGET
 OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 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)
+endif
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -180,6 +193,10 @@ endif
 endif
 ifeq ($(FULL_TARGET),aarch64-embedded)
 endif
+ifdef SUB_TARGET 
+FPCOPT+=-t$(SUB_TARGET)
+FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
+endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 $(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
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
+ifneq ($(CPU_OS_TARGET),$(CPU_OS_SOURCE))
 CROSSCOMPILE=1
 endif
 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)
 endif
 endif
@@ -249,7 +266,7 @@ ifdef BUILDFULLNATIVE
 BUILDNATIVE=1
 export BUILDNATIVE
 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
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl)),)
@@ -351,334 +368,334 @@ endif
 endif
 override PACKAGE_NAME=rtl
 override PACKAGE_VERSION=3.3.1
-ifeq ($(FULL_TARGET),i386-linux)
+ifeq ($(CPU_OS_TARGET),i386-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),i386-go32v2)
+ifeq ($(CPU_OS_TARGET),i386-go32v2)
 override TARGET_DIRS+=go32v2
 endif
-ifeq ($(FULL_TARGET),i386-win32)
+ifeq ($(CPU_OS_TARGET),i386-win32)
 override TARGET_DIRS+=win32
 endif
-ifeq ($(FULL_TARGET),i386-os2)
+ifeq ($(CPU_OS_TARGET),i386-os2)
 override TARGET_DIRS+=os2
 endif
-ifeq ($(FULL_TARGET),i386-freebsd)
+ifeq ($(CPU_OS_TARGET),i386-freebsd)
 override TARGET_DIRS+=freebsd
 endif
-ifeq ($(FULL_TARGET),i386-beos)
+ifeq ($(CPU_OS_TARGET),i386-beos)
 override TARGET_DIRS+=beos
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
+ifeq ($(CPU_OS_TARGET),i386-haiku)
 override TARGET_DIRS+=haiku
 endif
-ifeq ($(FULL_TARGET),i386-netbsd)
+ifeq ($(CPU_OS_TARGET),i386-netbsd)
 override TARGET_DIRS+=netbsd
 endif
-ifeq ($(FULL_TARGET),i386-solaris)
+ifeq ($(CPU_OS_TARGET),i386-solaris)
 override TARGET_DIRS+=solaris
 endif
-ifeq ($(FULL_TARGET),i386-netware)
+ifeq ($(CPU_OS_TARGET),i386-netware)
 override TARGET_DIRS+=netware
 endif
-ifeq ($(FULL_TARGET),i386-openbsd)
+ifeq ($(CPU_OS_TARGET),i386-openbsd)
 override TARGET_DIRS+=openbsd
 endif
-ifeq ($(FULL_TARGET),i386-wdosx)
+ifeq ($(CPU_OS_TARGET),i386-wdosx)
 override TARGET_DIRS+=win32
 endif
-ifeq ($(FULL_TARGET),i386-darwin)
+ifeq ($(CPU_OS_TARGET),i386-darwin)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),i386-emx)
+ifeq ($(CPU_OS_TARGET),i386-emx)
 override TARGET_DIRS+=emx
 endif
-ifeq ($(FULL_TARGET),i386-watcom)
+ifeq ($(CPU_OS_TARGET),i386-watcom)
 override TARGET_DIRS+=watcom
 endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
+ifeq ($(CPU_OS_TARGET),i386-netwlibc)
 override TARGET_DIRS+=netwlibc
 endif
-ifeq ($(FULL_TARGET),i386-wince)
+ifeq ($(CPU_OS_TARGET),i386-wince)
 override TARGET_DIRS+=wince
 endif
-ifeq ($(FULL_TARGET),i386-embedded)
+ifeq ($(CPU_OS_TARGET),i386-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),i386-symbian)
+ifeq ($(CPU_OS_TARGET),i386-symbian)
 override TARGET_DIRS+=symbian
 endif
-ifeq ($(FULL_TARGET),i386-nativent)
+ifeq ($(CPU_OS_TARGET),i386-nativent)
 override TARGET_DIRS+=nativent
 endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
+ifeq ($(CPU_OS_TARGET),i386-iphonesim)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),i386-android)
+ifeq ($(CPU_OS_TARGET),i386-android)
 override TARGET_DIRS+=android
 endif
-ifeq ($(FULL_TARGET),i386-aros)
+ifeq ($(CPU_OS_TARGET),i386-aros)
 override TARGET_DIRS+=aros
 endif
-ifeq ($(FULL_TARGET),m68k-linux)
+ifeq ($(CPU_OS_TARGET),m68k-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
+ifeq ($(CPU_OS_TARGET),m68k-netbsd)
 override TARGET_DIRS+=netbsd
 endif
-ifeq ($(FULL_TARGET),m68k-amiga)
+ifeq ($(CPU_OS_TARGET),m68k-amiga)
 override TARGET_DIRS+=amiga
 endif
-ifeq ($(FULL_TARGET),m68k-atari)
+ifeq ($(CPU_OS_TARGET),m68k-atari)
 override TARGET_DIRS+=atari
 endif
-ifeq ($(FULL_TARGET),m68k-palmos)
+ifeq ($(CPU_OS_TARGET),m68k-palmos)
 override TARGET_DIRS+=palmos
 endif
-ifeq ($(FULL_TARGET),m68k-macosclassic)
+ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
 override TARGET_DIRS+=macos
 endif
-ifeq ($(FULL_TARGET),m68k-embedded)
+ifeq ($(CPU_OS_TARGET),m68k-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),m68k-sinclairql)
+ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
 override TARGET_DIRS+=sinclairql
 endif
-ifeq ($(FULL_TARGET),powerpc-linux)
+ifeq ($(CPU_OS_TARGET),powerpc-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
+ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
 override TARGET_DIRS+=netbsd
 endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
+ifeq ($(CPU_OS_TARGET),powerpc-amiga)
 override TARGET_DIRS+=amiga
 endif
-ifeq ($(FULL_TARGET),powerpc-macosclassic)
+ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
 override TARGET_DIRS+=macos
 endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc-darwin)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
+ifeq ($(CPU_OS_TARGET),powerpc-morphos)
 override TARGET_DIRS+=morphos
 endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),powerpc-wii)
+ifeq ($(CPU_OS_TARGET),powerpc-wii)
 override TARGET_DIRS+=wii
 endif
-ifeq ($(FULL_TARGET),powerpc-aix)
+ifeq ($(CPU_OS_TARGET),powerpc-aix)
 override TARGET_DIRS+=aix
 endif
-ifeq ($(FULL_TARGET),sparc-linux)
+ifeq ($(CPU_OS_TARGET),sparc-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
+ifeq ($(CPU_OS_TARGET),sparc-netbsd)
 override TARGET_DIRS+=netbsd
 endif
-ifeq ($(FULL_TARGET),sparc-solaris)
+ifeq ($(CPU_OS_TARGET),sparc-solaris)
 override TARGET_DIRS+=solaris
 endif
-ifeq ($(FULL_TARGET),sparc-embedded)
+ifeq ($(CPU_OS_TARGET),sparc-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),x86_64-linux)
+ifeq ($(CPU_OS_TARGET),x86_64-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
+ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
 override TARGET_DIRS+=freebsd
 endif
-ifeq ($(FULL_TARGET),x86_64-haiku)
+ifeq ($(CPU_OS_TARGET),x86_64-haiku)
 override TARGET_DIRS+=haiku
 endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
 override TARGET_DIRS+=netbsd
 endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
+ifeq ($(CPU_OS_TARGET),x86_64-solaris)
 override TARGET_DIRS+=solaris
 endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
 override TARGET_DIRS+=openbsd
 endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
+ifeq ($(CPU_OS_TARGET),x86_64-darwin)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),x86_64-win64)
+ifeq ($(CPU_OS_TARGET),x86_64-win64)
 override TARGET_DIRS+=win64
 endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
+ifeq ($(CPU_OS_TARGET),x86_64-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
+ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),x86_64-android)
+ifeq ($(CPU_OS_TARGET),x86_64-android)
 override TARGET_DIRS+=android
 endif
-ifeq ($(FULL_TARGET),x86_64-aros)
+ifeq ($(CPU_OS_TARGET),x86_64-aros)
 override TARGET_DIRS+=aros
 endif
-ifeq ($(FULL_TARGET),x86_64-dragonfly)
+ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
 override TARGET_DIRS+=dragonfly
 endif
-ifeq ($(FULL_TARGET),arm-linux)
+ifeq ($(CPU_OS_TARGET),arm-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),arm-netbsd)
+ifeq ($(CPU_OS_TARGET),arm-netbsd)
 override TARGET_DIRS+=netbsd
 endif
-ifeq ($(FULL_TARGET),arm-palmos)
+ifeq ($(CPU_OS_TARGET),arm-palmos)
 override TARGET_DIRS+=palmos
 endif
-ifeq ($(FULL_TARGET),arm-wince)
+ifeq ($(CPU_OS_TARGET),arm-wince)
 override TARGET_DIRS+=wince
 endif
-ifeq ($(FULL_TARGET),arm-gba)
+ifeq ($(CPU_OS_TARGET),arm-gba)
 override TARGET_DIRS+=gba
 endif
-ifeq ($(FULL_TARGET),arm-nds)
+ifeq ($(CPU_OS_TARGET),arm-nds)
 override TARGET_DIRS+=nds
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),arm-symbian)
+ifeq ($(CPU_OS_TARGET),arm-symbian)
 override TARGET_DIRS+=symbian
 endif
-ifeq ($(FULL_TARGET),arm-android)
+ifeq ($(CPU_OS_TARGET),arm-android)
 override TARGET_DIRS+=android
 endif
-ifeq ($(FULL_TARGET),arm-aros)
+ifeq ($(CPU_OS_TARGET),arm-aros)
 override TARGET_DIRS+=aros
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 override TARGET_DIRS+=freertos
 endif
-ifeq ($(FULL_TARGET),arm-ios)
+ifeq ($(CPU_OS_TARGET),arm-ios)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
+ifeq ($(CPU_OS_TARGET),powerpc64-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
+ifeq ($(CPU_OS_TARGET),powerpc64-aix)
 override TARGET_DIRS+=aix
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),armeb-linux)
+ifeq ($(CPU_OS_TARGET),armeb-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),armeb-embedded)
+ifeq ($(CPU_OS_TARGET),armeb-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),mips-linux)
+ifeq ($(CPU_OS_TARGET),mips-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),mipsel-linux)
+ifeq ($(CPU_OS_TARGET),mipsel-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),mipsel-android)
+ifeq ($(CPU_OS_TARGET),mipsel-android)
 override TARGET_DIRS+=android
 endif
-ifeq ($(FULL_TARGET),mips64-linux)
+ifeq ($(CPU_OS_TARGET),mips64-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),mips64el-linux)
+ifeq ($(CPU_OS_TARGET),mips64el-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),jvm-java)
+ifeq ($(CPU_OS_TARGET),jvm-java)
 override TARGET_DIRS+=java
 endif
-ifeq ($(FULL_TARGET),jvm-android)
+ifeq ($(CPU_OS_TARGET),jvm-android)
 override TARGET_DIRS+=android/jvm
 endif
-ifeq ($(FULL_TARGET),i8086-embedded)
+ifeq ($(CPU_OS_TARGET),i8086-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),i8086-msdos)
+ifeq ($(CPU_OS_TARGET),i8086-msdos)
 override TARGET_DIRS+=msdos
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
+ifeq ($(CPU_OS_TARGET),i8086-win16)
 override TARGET_DIRS+=win16
 endif
-ifeq ($(FULL_TARGET),aarch64-linux)
+ifeq ($(CPU_OS_TARGET),aarch64-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),aarch64-freebsd)
+ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
 override TARGET_DIRS+=freebsd
 endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
+ifeq ($(CPU_OS_TARGET),aarch64-darwin)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),aarch64-win64)
+ifeq ($(CPU_OS_TARGET),aarch64-win64)
 override TARGET_DIRS+=win64
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),aarch64-iphonesim)
+ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),aarch64-android)
+ifeq ($(CPU_OS_TARGET),aarch64-android)
 override TARGET_DIRS+=android
 endif
-ifeq ($(FULL_TARGET),aarch64-ios)
+ifeq ($(CPU_OS_TARGET),aarch64-ios)
 override TARGET_DIRS+=darwin
 endif
-ifeq ($(FULL_TARGET),wasm32-embedded)
+ifeq ($(CPU_OS_TARGET),wasm32-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),wasm32-wasi)
+ifeq ($(CPU_OS_TARGET),wasm32-wasi)
 override TARGET_DIRS+=wasi
 endif
-ifeq ($(FULL_TARGET),sparc64-linux)
+ifeq ($(CPU_OS_TARGET),sparc64-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),riscv32-linux)
+ifeq ($(CPU_OS_TARGET),riscv32-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),riscv32-embedded)
+ifeq ($(CPU_OS_TARGET),riscv32-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),riscv32-freertos)
+ifeq ($(CPU_OS_TARGET),riscv32-freertos)
 override TARGET_DIRS+=freertos
 endif
-ifeq ($(FULL_TARGET),riscv64-linux)
+ifeq ($(CPU_OS_TARGET),riscv64-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),riscv64-embedded)
+ifeq ($(CPU_OS_TARGET),riscv64-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),xtensa-linux)
+ifeq ($(CPU_OS_TARGET),xtensa-linux)
 override TARGET_DIRS+=linux
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 override TARGET_DIRS+=freertos
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(CPU_OS_TARGET),z80-embedded)
 override TARGET_DIRS+=embedded
 endif
-ifeq ($(FULL_TARGET),z80-zxspectrum)
+ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
 override TARGET_DIRS+=zxspectrum
 endif
-ifeq ($(FULL_TARGET),z80-msxdos)
+ifeq ($(CPU_OS_TARGET),z80-msxdos)
 override TARGET_DIRS+=msxdos
 endif
-ifeq ($(FULL_TARGET),loongarch64-linux)
+ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_DIRS+=linux
 endif
 override INSTALL_FPCPACKAGE=y
@@ -2009,334 +2026,334 @@ endif
 fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
 fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
 fpc_makefiles: fpc_makefile fpc_makefile_dirs
-ifeq ($(FULL_TARGET),i386-linux)
+ifeq ($(CPU_OS_TARGET),i386-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),i386-go32v2)
+ifeq ($(CPU_OS_TARGET),i386-go32v2)
 TARGET_DIRS_GO32V2=1
 endif
-ifeq ($(FULL_TARGET),i386-win32)
+ifeq ($(CPU_OS_TARGET),i386-win32)
 TARGET_DIRS_WIN32=1
 endif
-ifeq ($(FULL_TARGET),i386-os2)
+ifeq ($(CPU_OS_TARGET),i386-os2)
 TARGET_DIRS_OS2=1
 endif
-ifeq ($(FULL_TARGET),i386-freebsd)
+ifeq ($(CPU_OS_TARGET),i386-freebsd)
 TARGET_DIRS_FREEBSD=1
 endif
-ifeq ($(FULL_TARGET),i386-beos)
+ifeq ($(CPU_OS_TARGET),i386-beos)
 TARGET_DIRS_BEOS=1
 endif
-ifeq ($(FULL_TARGET),i386-haiku)
+ifeq ($(CPU_OS_TARGET),i386-haiku)
 TARGET_DIRS_HAIKU=1
 endif
-ifeq ($(FULL_TARGET),i386-netbsd)
+ifeq ($(CPU_OS_TARGET),i386-netbsd)
 TARGET_DIRS_NETBSD=1
 endif
-ifeq ($(FULL_TARGET),i386-solaris)
+ifeq ($(CPU_OS_TARGET),i386-solaris)
 TARGET_DIRS_SOLARIS=1
 endif
-ifeq ($(FULL_TARGET),i386-netware)
+ifeq ($(CPU_OS_TARGET),i386-netware)
 TARGET_DIRS_NETWARE=1
 endif
-ifeq ($(FULL_TARGET),i386-openbsd)
+ifeq ($(CPU_OS_TARGET),i386-openbsd)
 TARGET_DIRS_OPENBSD=1
 endif
-ifeq ($(FULL_TARGET),i386-wdosx)
+ifeq ($(CPU_OS_TARGET),i386-wdosx)
 TARGET_DIRS_WIN32=1
 endif
-ifeq ($(FULL_TARGET),i386-darwin)
+ifeq ($(CPU_OS_TARGET),i386-darwin)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),i386-emx)
+ifeq ($(CPU_OS_TARGET),i386-emx)
 TARGET_DIRS_EMX=1
 endif
-ifeq ($(FULL_TARGET),i386-watcom)
+ifeq ($(CPU_OS_TARGET),i386-watcom)
 TARGET_DIRS_WATCOM=1
 endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
+ifeq ($(CPU_OS_TARGET),i386-netwlibc)
 TARGET_DIRS_NETWLIBC=1
 endif
-ifeq ($(FULL_TARGET),i386-wince)
+ifeq ($(CPU_OS_TARGET),i386-wince)
 TARGET_DIRS_WINCE=1
 endif
-ifeq ($(FULL_TARGET),i386-embedded)
+ifeq ($(CPU_OS_TARGET),i386-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),i386-symbian)
+ifeq ($(CPU_OS_TARGET),i386-symbian)
 TARGET_DIRS_SYMBIAN=1
 endif
-ifeq ($(FULL_TARGET),i386-nativent)
+ifeq ($(CPU_OS_TARGET),i386-nativent)
 TARGET_DIRS_NATIVENT=1
 endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
+ifeq ($(CPU_OS_TARGET),i386-iphonesim)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),i386-android)
+ifeq ($(CPU_OS_TARGET),i386-android)
 TARGET_DIRS_ANDROID=1
 endif
-ifeq ($(FULL_TARGET),i386-aros)
+ifeq ($(CPU_OS_TARGET),i386-aros)
 TARGET_DIRS_AROS=1
 endif
-ifeq ($(FULL_TARGET),m68k-linux)
+ifeq ($(CPU_OS_TARGET),m68k-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
+ifeq ($(CPU_OS_TARGET),m68k-netbsd)
 TARGET_DIRS_NETBSD=1
 endif
-ifeq ($(FULL_TARGET),m68k-amiga)
+ifeq ($(CPU_OS_TARGET),m68k-amiga)
 TARGET_DIRS_AMIGA=1
 endif
-ifeq ($(FULL_TARGET),m68k-atari)
+ifeq ($(CPU_OS_TARGET),m68k-atari)
 TARGET_DIRS_ATARI=1
 endif
-ifeq ($(FULL_TARGET),m68k-palmos)
+ifeq ($(CPU_OS_TARGET),m68k-palmos)
 TARGET_DIRS_PALMOS=1
 endif
-ifeq ($(FULL_TARGET),m68k-macosclassic)
+ifeq ($(CPU_OS_TARGET),m68k-macosclassic)
 TARGET_DIRS_MACOS=1
 endif
-ifeq ($(FULL_TARGET),m68k-embedded)
+ifeq ($(CPU_OS_TARGET),m68k-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),m68k-sinclairql)
+ifeq ($(CPU_OS_TARGET),m68k-sinclairql)
 TARGET_DIRS_SINCLAIRQL=1
 endif
-ifeq ($(FULL_TARGET),powerpc-linux)
+ifeq ($(CPU_OS_TARGET),powerpc-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
+ifeq ($(CPU_OS_TARGET),powerpc-netbsd)
 TARGET_DIRS_NETBSD=1
 endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
+ifeq ($(CPU_OS_TARGET),powerpc-amiga)
 TARGET_DIRS_AMIGA=1
 endif
-ifeq ($(FULL_TARGET),powerpc-macosclassic)
+ifeq ($(CPU_OS_TARGET),powerpc-macosclassic)
 TARGET_DIRS_MACOS=1
 endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc-darwin)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
+ifeq ($(CPU_OS_TARGET),powerpc-morphos)
 TARGET_DIRS_MORPHOS=1
 endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),powerpc-wii)
+ifeq ($(CPU_OS_TARGET),powerpc-wii)
 TARGET_DIRS_WII=1
 endif
-ifeq ($(FULL_TARGET),powerpc-aix)
+ifeq ($(CPU_OS_TARGET),powerpc-aix)
 TARGET_DIRS_AIX=1
 endif
-ifeq ($(FULL_TARGET),sparc-linux)
+ifeq ($(CPU_OS_TARGET),sparc-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
+ifeq ($(CPU_OS_TARGET),sparc-netbsd)
 TARGET_DIRS_NETBSD=1
 endif
-ifeq ($(FULL_TARGET),sparc-solaris)
+ifeq ($(CPU_OS_TARGET),sparc-solaris)
 TARGET_DIRS_SOLARIS=1
 endif
-ifeq ($(FULL_TARGET),sparc-embedded)
+ifeq ($(CPU_OS_TARGET),sparc-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),x86_64-linux)
+ifeq ($(CPU_OS_TARGET),x86_64-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
+ifeq ($(CPU_OS_TARGET),x86_64-freebsd)
 TARGET_DIRS_FREEBSD=1
 endif
-ifeq ($(FULL_TARGET),x86_64-haiku)
+ifeq ($(CPU_OS_TARGET),x86_64-haiku)
 TARGET_DIRS_HAIKU=1
 endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-netbsd)
 TARGET_DIRS_NETBSD=1
 endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
+ifeq ($(CPU_OS_TARGET),x86_64-solaris)
 TARGET_DIRS_SOLARIS=1
 endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
+ifeq ($(CPU_OS_TARGET),x86_64-openbsd)
 TARGET_DIRS_OPENBSD=1
 endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
+ifeq ($(CPU_OS_TARGET),x86_64-darwin)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),x86_64-win64)
+ifeq ($(CPU_OS_TARGET),x86_64-win64)
 TARGET_DIRS_WIN64=1
 endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
+ifeq ($(CPU_OS_TARGET),x86_64-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),x86_64-iphonesim)
+ifeq ($(CPU_OS_TARGET),x86_64-iphonesim)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),x86_64-android)
+ifeq ($(CPU_OS_TARGET),x86_64-android)
 TARGET_DIRS_ANDROID=1
 endif
-ifeq ($(FULL_TARGET),x86_64-aros)
+ifeq ($(CPU_OS_TARGET),x86_64-aros)
 TARGET_DIRS_AROS=1
 endif
-ifeq ($(FULL_TARGET),x86_64-dragonfly)
+ifeq ($(CPU_OS_TARGET),x86_64-dragonfly)
 TARGET_DIRS_DRAGONFLY=1
 endif
-ifeq ($(FULL_TARGET),arm-linux)
+ifeq ($(CPU_OS_TARGET),arm-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),arm-netbsd)
+ifeq ($(CPU_OS_TARGET),arm-netbsd)
 TARGET_DIRS_NETBSD=1
 endif
-ifeq ($(FULL_TARGET),arm-palmos)
+ifeq ($(CPU_OS_TARGET),arm-palmos)
 TARGET_DIRS_PALMOS=1
 endif
-ifeq ($(FULL_TARGET),arm-wince)
+ifeq ($(CPU_OS_TARGET),arm-wince)
 TARGET_DIRS_WINCE=1
 endif
-ifeq ($(FULL_TARGET),arm-gba)
+ifeq ($(CPU_OS_TARGET),arm-gba)
 TARGET_DIRS_GBA=1
 endif
-ifeq ($(FULL_TARGET),arm-nds)
+ifeq ($(CPU_OS_TARGET),arm-nds)
 TARGET_DIRS_NDS=1
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),arm-symbian)
+ifeq ($(CPU_OS_TARGET),arm-symbian)
 TARGET_DIRS_SYMBIAN=1
 endif
-ifeq ($(FULL_TARGET),arm-android)
+ifeq ($(CPU_OS_TARGET),arm-android)
 TARGET_DIRS_ANDROID=1
 endif
-ifeq ($(FULL_TARGET),arm-aros)
+ifeq ($(CPU_OS_TARGET),arm-aros)
 TARGET_DIRS_AROS=1
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 TARGET_DIRS_FREERTOS=1
 endif
-ifeq ($(FULL_TARGET),arm-ios)
+ifeq ($(CPU_OS_TARGET),arm-ios)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
+ifeq ($(CPU_OS_TARGET),powerpc64-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
+ifeq ($(CPU_OS_TARGET),powerpc64-darwin)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
+ifeq ($(CPU_OS_TARGET),powerpc64-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
+ifeq ($(CPU_OS_TARGET),powerpc64-aix)
 TARGET_DIRS_AIX=1
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),armeb-linux)
+ifeq ($(CPU_OS_TARGET),armeb-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),armeb-embedded)
+ifeq ($(CPU_OS_TARGET),armeb-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),mips-linux)
+ifeq ($(CPU_OS_TARGET),mips-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),mipsel-linux)
+ifeq ($(CPU_OS_TARGET),mipsel-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),mipsel-android)
+ifeq ($(CPU_OS_TARGET),mipsel-android)
 TARGET_DIRS_ANDROID=1
 endif
-ifeq ($(FULL_TARGET),mips64-linux)
+ifeq ($(CPU_OS_TARGET),mips64-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),mips64el-linux)
+ifeq ($(CPU_OS_TARGET),mips64el-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),jvm-java)
+ifeq ($(CPU_OS_TARGET),jvm-java)
 TARGET_DIRS_JAVA=1
 endif
-ifeq ($(FULL_TARGET),jvm-android)
+ifeq ($(CPU_OS_TARGET),jvm-android)
 TARGET_DIRS_ANDROID/JVM=1
 endif
-ifeq ($(FULL_TARGET),i8086-embedded)
+ifeq ($(CPU_OS_TARGET),i8086-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),i8086-msdos)
+ifeq ($(CPU_OS_TARGET),i8086-msdos)
 TARGET_DIRS_MSDOS=1
 endif
-ifeq ($(FULL_TARGET),i8086-win16)
+ifeq ($(CPU_OS_TARGET),i8086-win16)
 TARGET_DIRS_WIN16=1
 endif
-ifeq ($(FULL_TARGET),aarch64-linux)
+ifeq ($(CPU_OS_TARGET),aarch64-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),aarch64-freebsd)
+ifeq ($(CPU_OS_TARGET),aarch64-freebsd)
 TARGET_DIRS_FREEBSD=1
 endif
-ifeq ($(FULL_TARGET),aarch64-darwin)
+ifeq ($(CPU_OS_TARGET),aarch64-darwin)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),aarch64-win64)
+ifeq ($(CPU_OS_TARGET),aarch64-win64)
 TARGET_DIRS_WIN64=1
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),aarch64-iphonesim)
+ifeq ($(CPU_OS_TARGET),aarch64-iphonesim)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),aarch64-android)
+ifeq ($(CPU_OS_TARGET),aarch64-android)
 TARGET_DIRS_ANDROID=1
 endif
-ifeq ($(FULL_TARGET),aarch64-ios)
+ifeq ($(CPU_OS_TARGET),aarch64-ios)
 TARGET_DIRS_DARWIN=1
 endif
-ifeq ($(FULL_TARGET),wasm32-embedded)
+ifeq ($(CPU_OS_TARGET),wasm32-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),wasm32-wasi)
+ifeq ($(CPU_OS_TARGET),wasm32-wasi)
 TARGET_DIRS_WASI=1
 endif
-ifeq ($(FULL_TARGET),sparc64-linux)
+ifeq ($(CPU_OS_TARGET),sparc64-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),riscv32-linux)
+ifeq ($(CPU_OS_TARGET),riscv32-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),riscv32-embedded)
+ifeq ($(CPU_OS_TARGET),riscv32-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),riscv32-freertos)
+ifeq ($(CPU_OS_TARGET),riscv32-freertos)
 TARGET_DIRS_FREERTOS=1
 endif
-ifeq ($(FULL_TARGET),riscv64-linux)
+ifeq ($(CPU_OS_TARGET),riscv64-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),riscv64-embedded)
+ifeq ($(CPU_OS_TARGET),riscv64-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),xtensa-linux)
+ifeq ($(CPU_OS_TARGET),xtensa-linux)
 TARGET_DIRS_LINUX=1
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 TARGET_DIRS_FREERTOS=1
 endif
-ifeq ($(FULL_TARGET),z80-embedded)
+ifeq ($(CPU_OS_TARGET),z80-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
-ifeq ($(FULL_TARGET),z80-zxspectrum)
+ifeq ($(CPU_OS_TARGET),z80-zxspectrum)
 TARGET_DIRS_ZXSPECTRUM=1
 endif
-ifeq ($(FULL_TARGET),z80-msxdos)
+ifeq ($(CPU_OS_TARGET),z80-msxdos)
 TARGET_DIRS_MSXDOS=1
 endif
-ifeq ($(FULL_TARGET),loongarch64-linux)
+ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 TARGET_DIRS_LINUX=1
 endif
 ifdef TARGET_DIRS_LINUX

+ 2 - 0
rtl/aarch64/intrinsics.pp

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

+ 992 - 9
rtl/aix/Makefile

@@ -102,7 +102,7 @@ endif
 export ECHO
 endif
 override OS_TARGET_DEFAULT=aix
-override DEFAULT_FPCDIR=../..
+override DEFAULT_FPCDIR=../.. ../..
 ifndef FPC
 ifdef PP
 FPC=$(PP)
@@ -192,43 +192,43 @@ else
 ARCH=$(CPU_TARGET)
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 endif
 ifdef SUB_TARGET 
 FPCOPT+=-t$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 endif
@@ -369,6 +369,506 @@ endif
 endif
 override PACKAGE_NAME=rtl
 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=..
 INC=$(RTL)/inc
 COMMON=$(RTL)/common
@@ -1393,7 +1893,7 @@ endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_RSTS+=math typinfo classes sysconst rtlconst
 endif
-override INSTALL_FPCPACKAGE=y
+override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
@@ -3408,6 +3908,489 @@ makefiles: fpc_makefiles
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 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:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 6 - 0
rtl/aix/termio.pp

@@ -14,11 +14,17 @@
 
  **********************************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit termio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 {$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
+{$ENDIF FPC_DOTTEDUNITS}
 
 // load types + consts
 

+ 2 - 0
rtl/amicommon/athreads.pp

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

+ 14 - 0
rtl/amicommon/classes.pp

@@ -23,10 +23,23 @@
 { determine the type of the resource/form file }
 {$define Win16Res}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 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
   sysutils,
   rtlconsts,
@@ -36,6 +49,7 @@ uses
   fgl,
 {$endif}
   typinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$i classesh.inc}
 

+ 2 - 0
rtl/amicommon/dos.pp

@@ -20,7 +20,9 @@
  **********************************************************************}
 {$INLINE ON}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Dos;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {--------------------------------------------------------------------}
 { 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
   dependent on objpas unit.
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lineinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 
@@ -43,8 +45,13 @@ var
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  System.ExeInfo,System.Strings;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   exeinfo,strings;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
   N_Function    = $24;

+ 7 - 0
rtl/amicommon/sysutils.pp

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

Різницю між файлами не показано, бо вона завелика
+ 730 - 230
rtl/amiga/Makefile


+ 10 - 35
rtl/amiga/Makefile.fpc

@@ -7,17 +7,16 @@ main=rtl
 
 [target]
 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
@@ -100,33 +99,9 @@ prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 # 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)
         $(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)
         $(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
 endif
 override OS_TARGET_DEFAULT=android
-override DEFAULT_FPCDIR=../..
+override DEFAULT_FPCDIR=../.. ../..
 ifndef FPC
 ifdef PP
 FPC=$(PP)
@@ -192,43 +192,43 @@ else
 ARCH=$(CPU_TARGET)
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 endif
 ifdef SUB_TARGET 
 FPCOPT+=-t$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 endif
@@ -369,6 +369,506 @@ endif
 endif
 override PACKAGE_NAME=rtl
 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=..
 INC=$(RTL)/inc
 COMMON=$(RTL)/common
@@ -2056,7 +2556,7 @@ endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override CLEAN_UNITS+=syslinux linux
 endif
-override INSTALL_FPCPACKAGE=y
+override INSTALL_FPCPACKAGE=y y
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
 endif
@@ -4432,6 +4932,489 @@ makefiles: fpc_makefiles
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 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:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 6 - 0
rtl/android/cwstring.pp

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

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

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

+ 2 - 0
rtl/arm/cpu.pp

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

Різницю між файлами не показано, бо вона завелика
+ 730 - 230
rtl/aros/Makefile


+ 15 - 36
rtl/aros/Makefile.fpc

@@ -7,20 +7,21 @@ main=rtl
 
 [target]
 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]
 nortl=y
@@ -97,29 +98,7 @@ prt0$(OEXT) : $(CPU_TARGET)/prt0.as
 # 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)
         $(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

Різницю між файлами не показано, бо вона завелика
+ 730 - 230
rtl/atari/Makefile


+ 12 - 41
rtl/atari/Makefile.fpc

@@ -7,21 +7,18 @@ main=rtl
 
 [target]
 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]
 nortl=y
@@ -80,32 +77,6 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 # 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)
         $(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 }
 {$define Win16Res}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit Classes;
+{$ENDIF FPC_DOTTEDUNITS}
 
 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
   sysutils,
   rtlconsts,
@@ -36,6 +49,7 @@ uses
   fgl,
 {$endif}
   typinfo;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$i classesh.inc}
 

+ 2 - 0
rtl/atari/dos.pp

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

+ 7 - 0
rtl/atari/sysutils.pp

@@ -13,7 +13,9 @@
 
  **********************************************************************}
 
+{$IFNDEF FPC_DOTTEDUNITS}
 unit sysutils;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 
@@ -47,8 +49,13 @@ interface
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+{  TP.DOS,} System.SysConst;
+{$ELSE FPC_DOTTEDUNITS}
 uses
 {  dos,} sysconst;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *)
 {$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.
 
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit intrinsics;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 

Різницю між файлами не показано, бо вона завелика
+ 732 - 230
rtl/beos/Makefile


+ 19 - 207
rtl/beos/Makefile.fpc

@@ -7,24 +7,24 @@ main=rtl
 
 [target]
 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
 rsts=math typinfo sysconst rtlconsts 
 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]
 nortl=y
@@ -58,9 +58,9 @@ RTL=..
 INC=$(RTL)/inc
 PROCINC=$(RTL)/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
-
 UNITPREFIX=rtl
-
+SYSTEMUNIT=system
+BASEUNIXDIR=.
 # Use new feature from 1.0.5 version
 # that generates release PPU files
 # which will not be recompiled
@@ -88,9 +88,10 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
 include $(PROCINC)/makefile.cpu
 SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 
+
 # Put system unit dependencies together.
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
-SYSTEMUNIT=system
+
 
 #
 # Loaders
@@ -108,192 +109,3 @@ func$(OEXT) : $(CPU_TARGET)/func.as
 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.
 
  **********************************************************************}
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit BaseUnix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 Interface
 {$modeswitch out}
 {$inline on}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.Types;
+{$ELSE FPC_DOTTEDUNITS}
 Uses UnixType;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$i osdefs.inc}       { Compile time defines }
 

+ 11 - 0
rtl/beos/bethreads.pp

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

+ 16 - 0
rtl/beos/classes.pp

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

+ 6 - 0
rtl/beos/termio.pp

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

+ 13 - 0
rtl/bsd/bsd.pas

@@ -1,4 +1,6 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 Unit BSD;
+{$ENDIF FPC_DOTTEDUNITS}
 {
    This file is part of the Free Pascal run time library.
    (c) 2005 by Marco van de Voort member of the 
@@ -29,9 +31,15 @@ Unit BSD;
 
 interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  {$IFDEF FPC_USE_LIBC} System.InitC, {$endif}
+  UnixApi.Unix;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   {$IFDEF FPC_USE_LIBC} initc, {$endif}
   Unix;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
   EVFILT_READ     = -1;
@@ -113,8 +121,13 @@ procedure EV_SET(kevp: PKEvent; const aIdent: PtrUInt; const aFilter: cshort;
 implementation
 
 {$IFNDEF FPC_USE_LIBC}
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.SysCall;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   SysCall;
+{$ENDIF FPC_DOTTEDUNITS}
 {$endif}
 
 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;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {
    This file is part of the Free Pascal run time library.
@@ -18,8 +20,13 @@ Unit sysctl;
 
 Interface
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+  UnixApi.Types;
+{$ELSE FPC_DOTTEDUNITS}
 uses
   unixtype;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$ifndef FPC_USE_LIBC}
 {$define FPC_USE_SYSCALL}
@@ -101,7 +108,11 @@ function FPsysctlnametomib (Name: PAnsiChar; mibp:pcint;sizep:psize_t):cint;
 Implementation
 
 {$ifndef FPC_USE_LIBC}
+{$IFDEF FPC_DOTTEDUNITS}
+Uses UnixApi.SysCall;
+{$ELSE FPC_DOTTEDUNITS}
 Uses Syscall;
+{$ENDIF FPC_DOTTEDUNITS}
 {$ENDIF}
 
 {$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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1250;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1251;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1252;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1253;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1254;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1255;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1256;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1257;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp1258;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp3021;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp437;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp646;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp737;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp775;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp850;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp852;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp855;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp856;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp857;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp860;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp861;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp862;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp863;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp864;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp865;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp866;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp869;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp874;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_1;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_10;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_11;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_13;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_14;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_15;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_16;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_2;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_3;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_4;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_5;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_6;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_7;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_8;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      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 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cp8859_9;
+{$ENDIF FPC_DOTTEDUNITS}
 
   interface
 
   implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+  uses
+     System.CharSet;
+{$ELSE FPC_DOTTEDUNITS}
   uses
      charset;
+{$ENDIF FPC_DOTTEDUNITS}
 
   const
      map : array[0..255] of tunicodecharmapping = (

+ 20 - 0
rtl/charmaps/cpall.pas

@@ -1,7 +1,26 @@
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cpall;
+{$ENDIF FPC_DOTTEDUNITS}
 
 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
   { cyrillic code pages }
   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,
   cp8859_6,cp8859_8,cp8859_9,cp8859_10,cp8859_11,cp8859_13,cp8859_14,cp8859_15,
   cp8859_16;
+{$ENDIF FPC_DOTTEDUNITS}
 
 
 implementation

+ 7 - 0
rtl/charmaps/cpkoi8_r.pas

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

Різницю між файлами не показано, бо вона завелика
+ 735 - 232
rtl/darwin/Makefile


+ 36 - 235
rtl/darwin/Makefile.fpc

@@ -8,23 +8,23 @@ main=rtl
 # disabled units: serial
 [target]
 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
 
@@ -46,20 +46,20 @@ sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 [lib]
 libname=libfprtl.so
 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]
 ifeq ($(CPU_TARGET),i386)
-CPU_UNITS=mmx cpu
+CPU_UNITS=$(MMXUNIT) $(CPUUNIT)
 endif
 
 ifeq ($(ARCH),x86_64)
-CPU_UNITS=cpu
+CPU_UNITS=$(CPUUNIT)
 endif
 
 RTL=..
@@ -71,6 +71,10 @@ BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
 OSPROCINC=$(RTL)/darwin/$(CPU_TARGET)
 UNIXINC=$(RTL)/unix
 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)),)
 SYSTEMUNIT=system
@@ -123,219 +127,16 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS) $(OSPROCINC)/sighnd.inc $(OSPROCINC)/sig_cpu
 # 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) $<

+ 6 - 0
rtl/darwin/console.pp

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

+ 6 - 0
rtl/darwin/termio.pp

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

+ 992 - 9
rtl/dragonfly/Makefile

@@ -102,7 +102,7 @@ endif
 export ECHO
 endif
 override OS_TARGET_DEFAULT=dragonfly
-override DEFAULT_FPCDIR=../..
+override DEFAULT_FPCDIR=../.. ../..
 ifndef FPC
 ifdef PP
 FPC=$(PP)
@@ -192,43 +192,43 @@ else
 ARCH=$(CPU_TARGET)
 endif
 endif
-ifeq ($(FULL_TARGET),aarch64-embedded)
+ifeq ($(CPU_OS_TARGET),aarch64-embedded)
 endif
 ifdef SUB_TARGET 
 FPCOPT+=-t$(SUB_TARGET)
 FPMAKE_OPT+=--subtarget=$(SUB_TARGET)
 endif
-ifeq ($(FULL_TARGET),arm-embedded)
+ifeq ($(CPU_OS_TARGET),arm-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t or SUBARCH=armv7m) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),avr-embedded)
+ifeq ($(CPU_OS_TARGET),avr-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for avr-embedded, a sub-architecture (e.g. SUBARCH=avr25 or SUBARCH=avr35) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),mipsel-embedded)
+ifeq ($(CPU_OS_TARGET),mipsel-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for mipsel-embedded, a sub-architecture (e.g. SUBARCH=pic32mx) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),xtensa-embedded)
+ifeq ($(CPU_OS_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-embedded, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),xtensa-freertos)
+ifeq ($(CPU_OS_TARGET),xtensa-freertos)
 ifeq ($(SUBARCH),)
 $(error When compiling for xtensa-freertos, a sub-architecture (e.g. SUBARCH=lx106 or SUBARCH=lx6) must be defined)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
 endif
-ifeq ($(FULL_TARGET),arm-freertos)
+ifeq ($(CPU_OS_TARGET),arm-freertos)
 ifeq ($(SUBARCH),)
 $(error When compiling for arm-freertos, a sub-architecture (e.g. SUBARCH=armv6m or SUBARCH=armv7em) must be defined)
 endif
@@ -369,6 +369,506 @@ endif
 endif
 override PACKAGE_NAME=rtl
 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=..
 INC=$(RTL)/inc
 COMMON=$(RTL)/common
@@ -1725,7 +2225,7 @@ endif
 ifeq ($(CPU_OS_TARGET),loongarch64-linux)
 override TARGET_RSTS+=math typinfo classes sysconst
 endif
-override INSTALL_FPCPACKAGE=y y
+override INSTALL_FPCPACKAGE=y y y
 ifeq ($(CPU_OS_TARGET),i386-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -3767,6 +4267,489 @@ makefiles: fpc_makefiles
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 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:
 include $(INC)/makefile.inc
 SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))

+ 6 - 0
rtl/dragonfly/console.pp

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

+ 6 - 0
rtl/dragonfly/termio.pp

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

Різницю між файлами не показано, бо вона завелика
+ 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
 # the common units which are not compiled for all CPUs are stored in
 # 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
-       dos \
-       ctypes \
-       charset cpall \
-       sysconst
+       $(STRINGSUNIT) \
+       $(SORTBASEUNIT) \
+       $(DOSUNIT) \
+       $(CTYPESUNIT) \
+       $(CHARSETUNIT) $(CPALLUNIT) \
+       $(SYSCONSTUNIT)
 #implicitunits=exeinfo \
 #      cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
 #      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
         $(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)
 	$(COMPILER) $<
 
 heapmgr$(PPUEXT) : heapmgr.pp $(SYSTEMUNIT)$(PPUEXT)
 	$(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
 #
@@ -424,37 +309,6 @@ $(foreach unit,$(CPU_UNITS),$(eval $(call CPU_UNITS_RULE,$(unit))))
 $(addsuffix $(PPUEXT),$(CPU_UNITS)):
 	$(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
 
 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;
+{$ENDIF FPC_DOTTEDUNITS}
 
 interface
 
@@ -47,4 +49,4 @@ const
 
 implementation
 
-end.
+end.

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

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

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

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

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

@@ -19,7 +19,9 @@
 
  ****************************************************************************
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit raspi3;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {$goto on}
 {$INLINE ON}
@@ -28,8 +30,13 @@ interface
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+    EmbeddedApi.ConsoleIO, EmbeddedApi.mmio, EmbeddedApi.mailbox, EmbeddedApi.raspiuart, EmbeddedApi.gpio;
+{$ELSE FPC_DOTTEDUNITS}
 uses
     consoleio, mmio, mailbox, raspiuart, gpio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 procedure _FPC_haltproc; assembler; nostackframe; public name '_haltproc';
 asm
@@ -113,4 +120,4 @@ begin
     OpenIO(ErrOutput, @RaspiWrite, @RaspiRead, fmOutput, nil);
     OpenIO(StdOut, @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;
+{$ENDIF FPC_DOTTEDUNITS}
 
 {-
     The Raspberry Pi 3 and 4 use an ARM PL011 UART, but requires
@@ -37,8 +39,13 @@ procedure UARTFlush(BaseAddr: DWord);
 
 implementation
 
+{$IFDEF FPC_DOTTEDUNITS}
+uses
+    EmbeddedApi.mailbox, EmbeddedApi.mmio, EmbeddedApi.gpio;
+{$ELSE FPC_DOTTEDUNITS}
 uses
     mailbox, mmio, gpio;
+{$ENDIF FPC_DOTTEDUNITS}
 
 const
     { UART offsets from PeripheralBase }
@@ -135,4 +142,4 @@ begin
     PUT32(BaseAddr + UART0_LCRH, (1 shl 4));
 end;
 
-end.
+end.

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

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

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

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

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

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

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

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

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

@@ -3,7 +3,9 @@
 
  Created by Jeppe Johansen 2015 - [email protected]
 }
+{$IFNDEF FPC_DOTTEDUNITS}
 unit cortexm7;
+{$ENDIF FPC_DOTTEDUNITS}
 
 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]
 }
 {$goto on}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lm3fury;
+{$ENDIF FPC_DOTTEDUNITS}
 
   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]
 }
 {$goto on}
+{$IFNDEF FPC_DOTTEDUNITS}
 unit lm3tempest;
+{$ENDIF FPC_DOTTEDUNITS}
 {$define highspeedports}
   interface
 

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

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

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

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

Деякі файли не було показано, через те що забагато файлів було змінено