Browse Source

Add CPU_UNITS for arm and i386 symbian

Pierre Muller 2 years ago
parent
commit
ba9e93cde6
2 changed files with 147 additions and 112 deletions
  1. 126 111
      rtl/symbian/Makefile
  2. 21 1
      rtl/symbian/Makefile.fpc

+ 126 - 111
rtl/symbian/Makefile

@@ -362,338 +362,344 @@ UIQINC=./uiqinc
 UNITPREFIX=rtl
 SYSTEMUNIT=system
 OBJPASDIR=$(RTL)/objpas
+ifeq ($(ARCH),i386)
+CPU_UNITS=cpu mmx
+endif
+ifeq ($(ARCH),arm)
+CPU_UNITS=cpu
+endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-aros)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-macosclassic)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),m68k-sinclairql)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-macosclassic)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-haiku)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-iphonesim)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-android)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-aros)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),x86_64-dragonfly)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-netbsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-aros)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-freertos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),arm-ios)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),mips64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),mips64el-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i8086-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i8086-win16)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-freebsd)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-darwin)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-win64)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-iphonesim)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-android)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),aarch64-ios)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),wasm32-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),wasm32-wasi)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),sparc64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),riscv32-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),riscv32-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),riscv32-freertos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),riscv64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),riscv64-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),xtensa-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),xtensa-freertos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),z80-embedded)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),z80-zxspectrum)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),z80-msxdos)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),z80-amstradcpc)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),loongarch64-linux)
-override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
+override TARGET_UNITS+=system uuchar objpas sysconst sysutils math rtlconsts character fpwidestring unicodedata fgl $(CPU_UNITS) dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
@@ -3091,3 +3097,12 @@ unicodedata$(PPUEXT) : $(OBJPASDIR)/unicodedata.pas system$(PPUEXT)
 	$(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/unicodedata.pas
 sortbase$(PPUEXT) : $(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
+ifneq ($(findstring $(ARCH),i386),)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) objpas$(PPUEXT)
+	$(COMPILER) $(PROCINC)/cpu.pp
+else
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
+	$(COMPILER) $(PROCINC)/cpu.pp
+endif
+mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	$(COMPILER) $(PROCINC)/mmx.pp

+ 21 - 1
rtl/symbian/Makefile.fpc

@@ -9,7 +9,7 @@ main=rtl
 # macpas and iso7185 units rely on sysutils unit, not yet handled here
 # extpas unit relies on dos unit, not yet handled
 units=system uuchar objpas sysconst sysutils math rtlconsts \
-      character fpwidestring unicodedata fgl \
+      character fpwidestring unicodedata fgl $(CPU_UNITS) \
       dos iso7185 extpas typinfo types sortbase classes macpas buildrtl
 implicitunits=ctypes strings symbian
 
@@ -42,6 +42,15 @@ SYSTEMUNIT=system
 
 OBJPASDIR=$(RTL)/objpas
 
+ifeq ($(ARCH),i386)
+CPU_UNITS=cpu mmx
+endif
+
+ifeq ($(ARCH),arm)
+CPU_UNITS=cpu
+endif
+
+
 [rules]
 .NOTPARALLEL:
 SYSTEMPPU=$(addsuffix $(PPUEXT),system)
@@ -132,3 +141,14 @@ unicodedata$(PPUEXT) : $(OBJPASDIR)/unicodedata.pas system$(PPUEXT)
 sortbase$(PPUEXT) : $(INC)/sortbase.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
 	$(COMPILER) $<
 
+ifneq ($(findstring $(ARCH),i386),)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) objpas$(PPUEXT)
+	$(COMPILER) $(PROCINC)/cpu.pp
+else
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT)
+	$(COMPILER) $(PROCINC)/cpu.pp
+endif
+
+mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+	$(COMPILER) $(PROCINC)/mmx.pp
+