Prechádzať zdrojové kódy

* regenerated Makefiles

florian 3 rokov pred
rodič
commit
1be628fc54
100 zmenil súbory, kde vykonal 2437 pridanie a 383 odobranie
  1. 20 4
      Makefile
  2. 20 4
      compiler/Makefile
  3. 19 3
      compiler/utils/Makefile
  4. 20 4
      installer/Makefile
  5. 29 3
      packages/Makefile
  6. 20 4
      packages/a52/Makefile
  7. 20 4
      packages/ami-extra/Makefile
  8. 20 4
      packages/amunits/Makefile
  9. 20 4
      packages/arosunits/Makefile
  10. 20 4
      packages/aspell/Makefile
  11. 20 4
      packages/bfd/Makefile
  12. 20 4
      packages/bzip2/Makefile
  13. 20 4
      packages/cairo/Makefile
  14. 20 4
      packages/cdrom/Makefile
  15. 19 3
      packages/cdrom/examples/Makefile
  16. 20 4
      packages/chm/Makefile
  17. 20 4
      packages/cocoaint/Makefile
  18. 20 4
      packages/dblib/Makefile
  19. 20 4
      packages/dbus/Makefile
  20. 19 3
      packages/dbus/examples/Makefile
  21. 20 4
      packages/dts/Makefile
  22. 20 4
      packages/fastcgi/Makefile
  23. 20 4
      packages/fcl-async/Makefile
  24. 20 4
      packages/fcl-base/Makefile
  25. 19 3
      packages/fcl-base/examples/Makefile
  26. 20 4
      packages/fcl-db/Makefile
  27. 42 4
      packages/fcl-db/src/base/Makefile
  28. 38 4
      packages/fcl-db/src/codegen/Makefile
  29. 39 4
      packages/fcl-db/src/datadict/Makefile
  30. 44 4
      packages/fcl-db/src/dbase/Makefile
  31. 39 4
      packages/fcl-db/src/export/Makefile
  32. 33 4
      packages/fcl-db/src/json/Makefile
  33. 38 4
      packages/fcl-db/src/memds/Makefile
  34. 36 4
      packages/fcl-db/src/paradox/Makefile
  35. 35 4
      packages/fcl-db/src/sdf/Makefile
  36. 41 4
      packages/fcl-db/src/sql/Makefile
  37. 38 4
      packages/fcl-db/src/sqldb/Makefile
  38. 36 4
      packages/fcl-db/src/sqldb/interbase/Makefile
  39. 35 4
      packages/fcl-db/src/sqldb/mssql/Makefile
  40. 39 4
      packages/fcl-db/src/sqldb/mysql/Makefile
  41. 36 4
      packages/fcl-db/src/sqldb/odbc/Makefile
  42. 39 4
      packages/fcl-db/src/sqldb/oracle/Makefile
  43. 39 4
      packages/fcl-db/src/sqldb/postgres/Makefile
  44. 36 4
      packages/fcl-db/src/sqldb/sqlite/Makefile
  45. 33 4
      packages/fcl-db/src/sqlite/Makefile
  46. 19 3
      packages/fcl-db/tests/Makefile
  47. 20 4
      packages/fcl-extra/Makefile
  48. 19 3
      packages/fcl-extra/examples/Makefile
  49. 20 4
      packages/fcl-fpcunit/Makefile
  50. 37 4
      packages/fcl-fpcunit/src/exampletests/Makefile
  51. 37 4
      packages/fcl-fpcunit/src/tests/Makefile
  52. 20 4
      packages/fcl-hash/Makefile
  53. 20 4
      packages/fcl-image/Makefile
  54. 19 3
      packages/fcl-image/examples/Makefile
  55. 20 4
      packages/fcl-js/Makefile
  56. 20 4
      packages/fcl-json/Makefile
  57. 20 4
      packages/fcl-mustache/Makefile
  58. 20 4
      packages/fcl-net/Makefile
  59. 19 3
      packages/fcl-net/examples/Makefile
  60. 20 4
      packages/fcl-passrc/Makefile
  61. 20 4
      packages/fcl-pdf/Makefile
  62. 20 4
      packages/fcl-process/Makefile
  63. 20 4
      packages/fcl-registry/Makefile
  64. 19 3
      packages/fcl-registry/tests/Makefile
  65. 20 4
      packages/fcl-report/Makefile
  66. 20 4
      packages/fcl-res/Makefile
  67. 20 4
      packages/fcl-sdo/Makefile
  68. 20 4
      packages/fcl-sound/Makefile
  69. 20 4
      packages/fcl-stl/Makefile
  70. 20 4
      packages/fcl-web/Makefile
  71. 44 4
      packages/fcl-web/src/base/Makefile
  72. 37 4
      packages/fcl-web/src/jsonrpc/Makefile
  73. 38 4
      packages/fcl-web/src/webdata/Makefile
  74. 20 4
      packages/fcl-xml/Makefile
  75. 20 4
      packages/fftw/Makefile
  76. 20 4
      packages/fpgtk/Makefile
  77. 19 3
      packages/fpgtk/examples/Makefile
  78. 20 4
      packages/fpindexer/Makefile
  79. 20 4
      packages/fpmkunit/Makefile
  80. 20 4
      packages/fppkg/Makefile
  81. 20 4
      packages/fuse/Makefile
  82. 20 4
      packages/fv/Makefile
  83. 19 3
      packages/fv/examples/Makefile
  84. 20 4
      packages/gdbint/Makefile
  85. 20 4
      packages/gdbm/Makefile
  86. 19 3
      packages/gdbm/examples/Makefile
  87. 20 4
      packages/ggi/Makefile
  88. 19 3
      packages/ggi/examples/Makefile
  89. 20 4
      packages/gitlab/Makefile
  90. 20 4
      packages/gmp/Makefile
  91. 19 3
      packages/gmp/examples/Makefile
  92. 20 4
      packages/gnome1/Makefile
  93. 20 4
      packages/gnutls/Makefile
  94. 20 4
      packages/googleapi/Makefile
  95. 20 4
      packages/graph/Makefile
  96. 20 4
      packages/gtk1/Makefile
  97. 19 3
      packages/gtk1/examples/Makefile
  98. 19 3
      packages/gtk1/examples/tutorial/Makefile
  99. 35 4
      packages/gtk1/src/gtkgl/Makefile
  100. 20 4
      packages/gtk2/Makefile

+ 20 - 4
Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1362,9 +1378,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -1879,7 +1895,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
compiler/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -3118,9 +3134,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -4089,7 +4105,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
compiler/utils/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -2159,9 +2175,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
installer/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1316,9 +1332,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -4066,7 +4082,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 29 - 3
packages/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -359,6 +375,12 @@ endif
 ifdef CPU_TARGET
 FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
 endif
+ifdef SUBARCH
+FPC_TARGETOPT+=--subarch=$(SUBARCH)
+endif
+ifdef ABI
+FPC_TARGETOPT+=--abi=$(ABI)
+endif
 FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
 LOCALFPMAKE=./fpmake$(SRCEXEEXT)
 PACKAGEDIR_FPMKUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fpmkunit/Makefile.fpc,$(PACKAGESDIR))))))
@@ -904,9 +926,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -1898,6 +1920,10 @@ include fpcmake.loc
 endif
 override FPCOPT:=$(filter-out -FU%,$(FPCOPT))
 override FPCOPT:=$(filter-out -FE%,$(FPCOPT))
+override FPCOPT:=$(filter-out -Cp%,$(FPCOPT))
+override FPCOPT:=$(filter-out -P%,$(FPCOPT))
+override FPCOPT:=$(filter-out -T%,$(FPCOPT))
+override FPCOPT:=$(filter-out -Ca%,$(FPCOPT))
 override FPCOPT:=$(filter-out $(addprefix -Fu,$(COMPILER_UNITDIR)),$(FPCOPT))# Compose general fpmake-parameters
 ifdef FPMAKEOPT
 FPMAKE_OPT+=$(FPMAKEOPT)

+ 20 - 4
packages/a52/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/ami-extra/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/amunits/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/arosunits/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/aspell/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/bfd/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/bzip2/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/cairo/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/cdrom/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/cdrom/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/chm/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/cocoaint/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/dblib/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/dbus/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/dbus/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/dts/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fastcgi/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-async/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-base/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fcl-base/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fcl-db/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 42 - 4
packages/fcl-db/src/base/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -620,6 +636,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
 endif
@@ -1257,6 +1279,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1575,6 +1600,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_UNITDIR+=../dbase
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_UNITDIR+=../dbase
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_UNITDIR+=../dbase
 endif
@@ -2145,9 +2173,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3288,6 +3316,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 38 - 4
packages/fcl-db/src/codegen/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2879,6 +2904,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 39 - 4
packages/fcl-db/src/datadict/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb  fpddodbc fpddsqlite3
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff  fpddfb fpddpq fpddodbc fpddsqlite3
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3183,6 +3208,16 @@ REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_ODBC=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 44 - 4
packages/fcl-db/src/dbase/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -627,6 +643,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=dbf
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=dbf
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=dbf
 endif
@@ -945,6 +964,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_EXAMPLES+=testdbf
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_EXAMPLES+=testdbf
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_EXAMPLES+=testdbf
 endif
@@ -1263,6 +1285,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override CLEAN_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
 endif
@@ -1581,6 +1606,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override INSTALL_UNITS+=dbf_collate dbf_common dbf_cursor dbf_dbffile dbf_fields dbf_idxcur dbf_idxfile dbf_lang dbf_memo dbf_parser dbf_pgfile dbf_prscore dbf_prsdef dbf_prssupp dbf_str
 endif
@@ -1900,6 +1928,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2 -Sh
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2 -Sh
 endif
@@ -2470,9 +2501,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3523,6 +3554,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 39 - 4
packages/fcl-db/src/export/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2969,6 +2994,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 33 - 4
packages/fcl-db/src/json/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpjsondataset extjsdataset
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpjsondataset extjsdataset
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpjsondataset extjsdataset
 endif
@@ -1190,9 +1209,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2333,6 +2352,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-JSON=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 38 - 4
packages/fcl-db/src/memds/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=memds
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=memds
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=memds
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=memds
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=memds
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=memds
 endif
@@ -1255,6 +1277,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_EXAMPLES+=testpop testopen testld testcp
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_EXAMPLES+=testpop testopen testld testcp
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2879,6 +2904,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 36 - 4
packages/fcl-db/src/paradox/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=paradox
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=paradox
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=paradox
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=paradox
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=paradox
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=paradox
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2651,6 +2673,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_PXLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_PXLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 35 - 4
packages/fcl-db/src/sdf/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=sdfdata
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=sdfdata
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=sdfdata
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_EXAMPLES+=testsdf testfix
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_EXAMPLES+=testsdf testfix
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2561,6 +2583,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 41 - 4
packages/fcl-db/src/sql/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1574,6 +1599,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_UNITDIR+=../dbase
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_UNITDIR+=../dbase
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_UNITDIR+=../dbase
 endif
@@ -2144,9 +2172,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3197,6 +3225,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 38 - 4
packages/fcl-db/src/sqldb/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -745,6 +761,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=sqldb
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=sqldb
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=sqldb
 endif
@@ -1063,6 +1082,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=sqldb
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=sqldb
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=sqldb
 endif
@@ -1382,6 +1404,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1952,9 +1977,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3256,6 +3281,15 @@ REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_DBLIB=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 36 - 4
packages/fcl-db/src/sqldb/interbase/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=ibconnection fbadmin  fbeventmonitor
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=ibconnection fbadmin  fbeventmonitor
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=ibconnection fbadmin  fbeventmonitor
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2651,6 +2673,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_IBASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_IBASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 35 - 4
packages/fcl-db/src/sqldb/mssql/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=mssqlconn
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=mssqlconn
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=mssqlconn
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2561,6 +2583,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_DBLIB=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_DBLIB=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 39 - 4
packages/fcl-db/src/sqldb/mysql/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn mysql80conn
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn mysql80conn
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn mysql80conn
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn mysql80conn
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn mysql80conn
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn mysql57conn mysql80conn
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2969,6 +2994,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_MYSQL=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 36 - 4
packages/fcl-db/src/sqldb/odbc/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=odbcconn
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=odbcconn
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=odbcconn
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2651,6 +2673,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_ODBC=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ODBC=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 39 - 4
packages/fcl-db/src/sqldb/oracle/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=oracleconnection
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=oracleconnection
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=oracleconnection
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=oracleconnection
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2969,6 +2994,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_ORACLE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 39 - 4
packages/fcl-db/src/sqldb/postgres/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=pqconnection pqeventmonitor
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=pqconnection pqeventmonitor
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=pqconnection pqeventmonitor
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=pqconnection
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=pqconnection
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=pqconnection
 endif
@@ -1256,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1826,9 +1851,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2969,6 +2994,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_POSTGRES=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 36 - 4
packages/fcl-db/src/sqldb/sqlite/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=sqlite3conn
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=sqlite3conn
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=sqlite3conn
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2651,6 +2673,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 33 - 4
packages/fcl-db/src/sqlite/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
 endif
@@ -1190,9 +1209,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2333,6 +2352,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_SQLITE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 19 - 3
packages/fcl-db/tests/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1514,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fcl-extra/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fcl-extra/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -990,9 +1006,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fcl-fpcunit/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 37 - 4
packages/fcl-fpcunit/src/exampletests/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpcunittests  money  moneytest testmockobject
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpcunittests  money  moneytest testmockobject
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpcunittests  money  moneytest testmockobject
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2741,6 +2763,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-FPCUNIT=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 37 - 4
packages/fcl-fpcunit/src/tests/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=asserttest frameworktest suitetest
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=asserttest frameworktest suitetest
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=asserttest frameworktest suitetest
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1508,9 +1530,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2741,6 +2763,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-FPCUNIT=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 20 - 4
packages/fcl-hash/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -904,9 +920,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2941,7 +2957,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-image/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fcl-image/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fcl-js/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-json/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-mustache/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -904,9 +920,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2941,7 +2957,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-net/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fcl-net/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1833,9 +1849,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fcl-passrc/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-pdf/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -904,9 +920,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2651,7 +2667,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-process/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -904,9 +920,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -1781,7 +1797,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-registry/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fcl-registry/tests/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1193,9 +1209,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fcl-report/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2917,7 +2933,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-res/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-sdo/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-sound/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-stl/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fcl-web/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 44 - 4
packages/fcl-web/src/base/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -620,6 +636,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb webutil fpdatasetform cgiapp ezcgi fpapache webpage fcgigate fphttpserver fphttpclient custhttpapp fphttpapp fpwebfile fpapache24  custfcgi fpfcgi
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb webutil fpdatasetform cgiapp ezcgi fpapache webpage fcgigate fphttpserver fphttpclient custhttpapp fphttpapp fpwebfile fpapache24
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb webutil fpdatasetform cgiapp ezcgi fpapache webpage fcgigate fphttpserver fphttpclient custhttpapp fphttpapp fpwebfile fpapache24
 endif
@@ -938,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
 endif
@@ -1257,6 +1279,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1827,9 +1852,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3427,6 +3452,21 @@ REQUIRE_PACKAGES_FASTCGI=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_HTTPD24=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_HTTPD22=1
+REQUIRE_PACKAGES_FASTCGI=1
+REQUIRE_PACKAGES_FCL-NET=1
+REQUIRE_PACKAGES_HTTPD24=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 37 - 4
packages/fcl-web/src/jsonrpc/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -620,6 +636,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpjsonrpc  webjsonrpc fpextdirect
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpjsonrpc  webjsonrpc fpextdirect
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpjsonrpc  webjsonrpc fpextdirect
 endif
@@ -939,6 +958,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1509,9 +1531,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2742,6 +2764,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-JSON=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 38 - 4
packages/fcl-web/src/webdata/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -620,6 +636,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
 endif
@@ -939,6 +958,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1509,9 +1531,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2832,6 +2854,18 @@ REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
 REQUIRE_PACKAGES_FCL-JSON=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 20 - 4
packages/fcl-xml/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fftw/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fpgtk/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fpgtk/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1512,9 +1528,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/fpindexer/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fpmkunit/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -920,9 +936,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2377,7 +2393,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fppkg/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fuse/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/fv/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/fv/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1511,9 +1527,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/gdbint/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/gdbm/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/gdbm/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/ggi/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/ggi/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/gitlab/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -3062,7 +3078,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/gmp/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/gmp/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1191,9 +1207,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 20 - 4
packages/gnome1/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/gnutls/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2627,7 +2643,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/googleapi/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/graph/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 20 - 4
packages/gtk1/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

+ 19 - 3
packages/gtk1/examples/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -1833,9 +1849,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 19 - 3
packages/gtk1/examples/tutorial/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -870,9 +886,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif

+ 35 - 4
packages/gtk1/src/gtkgl/Makefile

@@ -2,7 +2,7 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-netbsd m68k-amiga m68k-atari m68k-palmos m68k-macosclassic m68k-embedded m68k-sinclairql powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macosclassic powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-haiku x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-iphonesim x86_64-android x86_64-aros x86_64-dragonfly arm-linux arm-netbsd arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android arm-aros arm-freertos arm-ios powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android mips64el-linux jvm-java jvm-android i8086-embedded i8086-msdos i8086-win16 aarch64-linux aarch64-freebsd aarch64-darwin aarch64-win64 aarch64-embedded aarch64-android aarch64-ios wasm32-embedded wasm32-wasi sparc64-linux riscv32-linux riscv32-embedded riscv64-linux riscv64-embedded xtensa-linux xtensa-embedded xtensa-freertos z80-embedded z80-zxspectrum z80-msxdos z80-amstradcpc
 BSDs = freebsd netbsd openbsd darwin dragonfly
 UNIXs = linux $(BSDs) solaris qnx haiku aix
 LIMIT83fs = go32v2 os2 emx watcom msdos win16 atari
@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -619,6 +635,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_UNITS+=gtkglarea
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_UNITS+=gtkglarea
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_UNITS+=gtkglarea
 endif
@@ -937,6 +956,9 @@ endif
 ifeq ($(FULL_TARGET),aarch64-win64)
 override TARGET_EXAMPLES+=gtkgldemo
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 override TARGET_EXAMPLES+=gtkgldemo
 endif
@@ -1510,9 +1532,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2563,6 +2585,15 @@ REQUIRE_PACKAGES_LIBTAR=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_OPENGL=1
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_LIBTAR=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
 ifeq ($(FULL_TARGET),aarch64-android)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 20 - 4
packages/gtk2/Makefile

@@ -167,6 +167,12 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(ABI),)
+ABI:=default
+else
+override FPCOPT+=-Ca$(ABI)
+endif
+SUBARCH_ABI_SUFFIX=
 ifeq ($(CPU_TARGET),armeb)
 ARCH=arm
 override FPCOPT+=-Cb
@@ -174,27 +180,37 @@ else
 ifeq ($(CPU_TARGET),armel)
 ARCH=arm
 override FPCOPT+=-CaEABI
+override ABI:=eabi
 else
 ARCH=$(CPU_TARGET)
 endif
 endif
+ifeq ($(FULL_TARGET),aarch64-embedded)
+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)
 endif
 override FPCOPT+=-Cp$(SUBARCH)
+ifeq ($(ABI),)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
+else
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)-$(ABI)
+endif
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_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)
+SUBARCH_ABI_SUFFIX=-$(SUBARCH)
 endif
 ifeq ($(FULL_TARGET),xtensa-embedded)
 ifeq ($(SUBARCH),)
@@ -221,7 +237,7 @@ else
 ifneq ($(filter $(OS_TARGET),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 else
-TARGETSUFFIX=$(FULL_TARGET)
+TARGETSUFFIX=$(FULL_TARGET)$(SUBARCH_ABI_SUFFIX)
 endif
 SOURCESUFFIX=$(FULL_SOURCE)
 endif
@@ -880,9 +896,9 @@ ZIPSOURCESUFFIX=.source
 ZIPEXAMPLESUFFIX=.examples
 ifdef CROSSCOMPILE
 ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
+ZIPCROSSPREFIX=$(TARGETSUFFIX)
 else
-ZIPSUFFIX=.$(TARGETSUFFIX)
+ZIPSUFFIX=.$(TARGETSUFFIX)$(FILESUFFIX)
 ZIPCROSSPREFIX=
 endif
 endif
@@ -2482,7 +2498,7 @@ ZIPNAME=$(PACKAGE_NAME)
 endif
 endif
 ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)-$(ZIPNAME)$(ZIPSUFFIX)
 endif
 ifndef ZIPTARGET
 ifdef DIST_ZIPTARGET

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov