Przeglądaj źródła

- initial support for the android/arm target in the compiler; resulting .so's can be used for Android/ARM app development.
- basic rtl support using system calls
- fp(c)make/fppkg/makefile support

todo:
- revisit systems/t_android.pas: mostly duplicate with t_linux.pas, containing
lots of unnecessary code
- revisit rtl changes
- android ndk header translation import
- better app build/packaging support
- android/x86 support

git-svn-id: branches/targetandroid@21061 -

tom_at_work 13 lat temu
rodzic
commit
acbc94e0fd
76 zmienionych plików z 2914 dodań i 287 usunięć
  1. 41 2
      Makefile
  2. 80 2
      compiler/Makefile
  3. 2 2
      compiler/aggas.pas
  4. 3 0
      compiler/arm/cputarg.pas
  5. 3 0
      compiler/compiler.pas
  6. 2 1
      compiler/systems.inc
  7. 5 0
      compiler/systems.pas
  8. 53 2
      compiler/utils/Makefile
  9. 2 1
      compiler/utils/ppudump.pp
  10. 83 2
      ide/Makefile
  11. 53 2
      ide/compiler/Makefile
  12. 53 2
      installer/Makefile
  13. 17 2
      packages/Makefile
  14. 27 3
      packages/fpmkunit/Makefile
  15. 1 1
      packages/fpmkunit/Makefile.fpc
  16. 4 3
      packages/fpmkunit/src/fpmkunit.pp
  17. 2 2
      packages/fppkg/src/fpmkunitsrc.inc
  18. 1 1
      packages/gnome1/fpmake.pp
  19. 1 1
      packages/gtk1/fpmake.pp
  20. 1 1
      packages/gtk2/fpmake.pp
  21. 1 1
      packages/imlib/fpmake.pp
  22. 1 1
      packages/opengl/fpmake.pp
  23. 1 1
      packages/sdl/fpmake.pp
  24. 71 2
      rtl/Makefile
  25. 1 0
      rtl/Makefile.fpc
  26. 44 2
      rtl/aix/Makefile
  27. 53 2
      rtl/amiga/Makefile
  28. 71 2
      rtl/beos/Makefile
  29. 53 2
      rtl/darwin/Makefile
  30. 35 2
      rtl/embedded/Makefile
  31. 62 2
      rtl/emx/Makefile
  32. 62 2
      rtl/freebsd/Makefile
  33. 44 2
      rtl/gba/Makefile
  34. 62 2
      rtl/go32v2/Makefile
  35. 71 2
      rtl/haiku/Makefile
  36. 80 2
      rtl/linux/Makefile
  37. 35 2
      rtl/macos/Makefile
  38. 53 2
      rtl/morphos/Makefile
  39. 44 2
      rtl/nativent/Makefile
  40. 44 2
      rtl/nds/Makefile
  41. 62 2
      rtl/netbsd/Makefile
  42. 62 2
      rtl/netware/Makefile
  43. 62 2
      rtl/netwlibc/Makefile
  44. 62 2
      rtl/openbsd/Makefile
  45. 62 2
      rtl/os2/Makefile
  46. 53 2
      rtl/palmos/Makefile
  47. 53 2
      rtl/solaris/Makefile
  48. 44 2
      rtl/symbian/Makefile
  49. 2 2
      rtl/unix/cwstring.pp
  50. 1 1
      rtl/unix/initc.pp
  51. 12 12
      rtl/unix/ipc.pp
  52. 1 2
      rtl/unix/unix.pp
  53. 35 2
      rtl/wii/Makefile
  54. 62 2
      rtl/win32/Makefile
  55. 62 2
      rtl/win64/Makefile
  56. 44 2
      rtl/wince/Makefile
  57. 98 2
      utils/Makefile
  58. 26 2
      utils/dxegen/Makefile
  59. 59 2
      utils/fpcm/Makefile
  60. 143 134
      utils/fpcm/fpcmake.inc
  61. 9 1
      utils/fpcm/fpcmake.ini
  62. 5 4
      utils/fpcm/fpcmmain.pp
  63. 41 2
      utils/fpcmkcfg/Makefile
  64. 11 11
      utils/fpcmkcfg/fppkg.inc
  65. 50 2
      utils/fpcres/Makefile
  66. 50 2
      utils/fpcreslipo/Makefile
  67. 77 2
      utils/fpdoc/Makefile
  68. 62 2
      utils/fpmc/Makefile
  69. 29 2
      utils/fppkg/Makefile
  70. 1 1
      utils/fppkg/fppkg.pp
  71. 35 2
      utils/fprcp/Makefile
  72. 44 2
      utils/h2pas/Makefile
  73. 47 2
      utils/importtl/Makefile
  74. 47 2
      utils/instantfpc/Makefile
  75. 26 2
      utils/rmwait/Makefile
  76. 53 2
      utils/tply/Makefile

+ 41 - 2
Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: help
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -522,6 +522,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_DIRS+=compiler rtl utils packages ide installer
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_DIRS+=compiler rtl utils packages ide installer
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_DIRS+=compiler rtl utils packages ide installer
 endif
@@ -582,6 +585,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_DIRS+=compiler rtl utils packages ide installer
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=compiler rtl utils packages ide installer
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=compiler rtl utils packages ide installer
 endif
@@ -603,6 +609,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_DIRS+=compiler rtl utils packages ide installer
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_DIRS+=compiler rtl utils packages ide installer
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_DIRS+=compiler rtl utils packages ide installer
 endif
@@ -838,6 +847,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -2020,6 +2035,14 @@ TARGET_DIRS_PACKAGES=1
 TARGET_DIRS_IDE=1
 TARGET_DIRS_INSTALLER=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_COMPILER=1
 TARGET_DIRS_RTL=1
@@ -2180,6 +2203,14 @@ TARGET_DIRS_PACKAGES=1
 TARGET_DIRS_IDE=1
 TARGET_DIRS_INSTALLER=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_COMPILER=1
 TARGET_DIRS_RTL=1
@@ -2236,6 +2267,14 @@ TARGET_DIRS_PACKAGES=1
 TARGET_DIRS_IDE=1
 TARGET_DIRS_INSTALLER=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 TARGET_DIRS_COMPILER=1
 TARGET_DIRS_RTL=1

+ 80 - 2
compiler/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -567,6 +567,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_DIRS+=utils
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_DIRS+=utils
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_DIRS+=utils
 endif
@@ -627,6 +630,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_DIRS+=utils
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=utils
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=utils
 endif
@@ -648,6 +654,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_DIRS+=utils
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_DIRS+=utils
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_DIRS+=utils
 endif
@@ -771,6 +780,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=pp
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=pp
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=pp
 endif
@@ -831,6 +843,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=pp
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=pp
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=pp
 endif
@@ -852,6 +867,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=pp
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=pp
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=pp
 endif
@@ -976,6 +994,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
 endif
@@ -1036,6 +1057,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
 endif
@@ -1057,6 +1081,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
 endif
@@ -1180,6 +1207,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
@@ -1240,6 +1270,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
@@ -1261,6 +1294,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
 endif
@@ -1384,6 +1420,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1444,6 +1483,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1465,6 +1507,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1588,6 +1633,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
@@ -1648,6 +1696,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
@@ -1669,6 +1720,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
 endif
@@ -1903,6 +1957,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -2391,6 +2451,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -2451,6 +2514,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -2472,6 +2538,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -3226,6 +3295,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 TARGET_DIRS_UTILS=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+TARGET_DIRS_UTILS=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_UTILS=1
 endif
@@ -3286,6 +3358,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 TARGET_DIRS_UTILS=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_UTILS=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_UTILS=1
 endif
@@ -3307,6 +3382,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 TARGET_DIRS_UTILS=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+TARGET_DIRS_UTILS=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 TARGET_DIRS_UTILS=1
 endif

+ 2 - 2
compiler/aggas.pas

@@ -829,7 +829,7 @@ implementation
                            else
                              asmwriteln(Tai_datablock(hp).sym.name);
                          end;
-                       if (target_info.system <> system_arm_linux) then
+                       if ((target_info.system <> system_arm_linux) and (target_info.system <> system_arm_android)) then
                          sepChar := '@'
                        else
                          sepChar := '%';
@@ -1218,7 +1218,7 @@ implementation
                  end
                else
                  begin
-                   if (target_info.system <> system_arm_linux) then
+                   if ((target_info.system <> system_arm_linux) and (target_info.system <> system_arm_android)) then
                      sepChar := '@'
                    else
                      sepChar := '#';

+ 3 - 0
compiler/arm/cputarg.pas

@@ -35,6 +35,9 @@ implementation
              Targets
 **************************************}
 
+    {$ifndef NOTARGETANDROID}
+      ,t_android
+    {$endif}
     {$ifndef NOTARGETLINUX}
       ,t_linux
     {$endif}

+ 3 - 0
compiler/compiler.pas

@@ -58,6 +58,9 @@ uses
 {$ifdef amiga}
   ,i_amiga
 {$endif amiga}
+{$ifdef android}
+  ,i_android
+{$endif android}
 {$ifdef atari}
   ,i_atari
 {$endif atari}

+ 2 - 1
compiler/systems.inc

@@ -150,7 +150,8 @@
              system_x86_64_openbsd,     { 71 }
              system_x86_64_netbsd,      { 72 }
              system_powerpc_aix,        { 73 }
-             system_powerpc64_aix       { 74 }
+             system_powerpc64_aix,      { 74 }
+             system_arm_android         { 75 }
        );
 
      type

+ 5 - 0
compiler/systems.pas

@@ -215,6 +215,7 @@ interface
        system_any = system_none;
 
        systems_wince = [system_arm_wince,system_i386_wince];
+       systems_android = [system_arm_android];
        systems_linux = [system_i386_linux,system_x86_64_linux,system_powerpc_linux,system_powerpc64_linux,
                        system_arm_linux,system_sparc_linux,system_alpha_linux,system_m68k_linux,
                        system_x86_6432_linux,system_mips_linux,system_mipsel_linux];
@@ -867,6 +868,10 @@ begin
       {$define default_target_set}
       default_target(system_arm_linux);
     {$endif}
+    {$ifdef android}
+      {$define default_target_set}
+      default_target(system_arm_android);
+    {$endif}
     {$ifdef darwin}
       {$define default_target_set}
       default_target(system_arm_darwin);

+ 53 - 2
compiler/utils/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove fpcsubst mkarmins mkx86ins
 endif
@@ -613,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=ppu crc usubst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=ppu crc usubst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=ppu crc usubst
 endif
@@ -673,6 +685,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=ppu crc usubst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=ppu crc usubst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=ppu crc usubst
 endif
@@ -694,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=ppu crc usubst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=ppu crc usubst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=ppu crc usubst
 endif
@@ -818,6 +836,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_UNITDIR+=..
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_UNITDIR+=..
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_UNITDIR+=..
 endif
@@ -878,6 +899,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_UNITDIR+=..
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_UNITDIR+=..
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_UNITDIR+=..
 endif
@@ -899,6 +923,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_UNITDIR+=..
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_UNITDIR+=..
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_UNITDIR+=..
 endif
@@ -1022,6 +1049,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=..
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=..
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=..
 endif
@@ -1082,6 +1112,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=..
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=..
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=..
 endif
@@ -1103,6 +1136,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=..
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=..
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=..
 endif
@@ -1339,6 +1375,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1827,6 +1869,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1887,6 +1932,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1908,6 +1956,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 2 - 1
compiler/utils/ppudump.pp

@@ -151,7 +151,8 @@ const
   { 71 }  'OpenBSD-x86-64',
   { 72 }  'NetBSD-x86-64',
   { 73 }  'AIX-powerpc',
-  { 74 }  'AIX-powerpc64'
+  { 74 }  'AIX-powerpc64',
+  { 75 }  'Android-arm'
   );
 
 const

+ 83 - 2
ide/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -479,6 +479,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_DIRS+=compiler
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_DIRS+=compiler
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_DIRS+=compiler
 endif
@@ -539,6 +542,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_DIRS+=compiler
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=compiler
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=compiler
 endif
@@ -560,6 +566,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_DIRS+=compiler
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_DIRS+=compiler
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_DIRS+=compiler
 endif
@@ -683,6 +692,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fp
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fp
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fp
 endif
@@ -743,6 +755,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fp
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fp
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fp
 endif
@@ -764,6 +779,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fp
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fp
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fp
 endif
@@ -889,6 +907,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -949,6 +970,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -970,6 +994,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -1235,6 +1262,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -2114,6 +2147,19 @@ REQUIRE_PACKAGES_CHM=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_GDBINT=1
+REQUIRE_PACKAGES_REGEXPR=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2374,6 +2420,19 @@ REQUIRE_PACKAGES_CHM=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_GDBINT=1
+REQUIRE_PACKAGES_REGEXPR=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2465,6 +2524,19 @@ REQUIRE_PACKAGES_CHM=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_GDBINT=1
+REQUIRE_PACKAGES_REGEXPR=1
+REQUIRE_PACKAGES_CHM=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -3663,6 +3735,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 TARGET_DIRS_COMPILER=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+TARGET_DIRS_COMPILER=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_COMPILER=1
 endif
@@ -3723,6 +3798,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 TARGET_DIRS_COMPILER=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_COMPILER=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_COMPILER=1
 endif
@@ -3744,6 +3822,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 TARGET_DIRS_COMPILER=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+TARGET_DIRS_COMPILER=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 TARGET_DIRS_COMPILER=1
 endif

+ 53 - 2
ide/compiler/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -436,6 +436,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=compunit
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=compunit
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=compunit
 endif
@@ -496,6 +499,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=compunit
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=compunit
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=compunit
 endif
@@ -517,6 +523,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=compunit
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=compunit
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=compunit
 endif
@@ -641,6 +650,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
@@ -701,6 +713,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
@@ -722,6 +737,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_OPTIONS+=-Ur -dNOCATCH
 endif
@@ -845,6 +863,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
 endif
@@ -905,6 +926,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
 endif
@@ -926,6 +950,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
 endif
@@ -1049,6 +1076,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
@@ -1109,6 +1139,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
@@ -1130,6 +1163,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
 endif
@@ -1364,6 +1400,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1852,6 +1894,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1912,6 +1957,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1933,6 +1981,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 53 - 2
installer/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -459,6 +459,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=scroll insthelp
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=scroll insthelp
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=scroll insthelp
 endif
@@ -519,6 +522,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=scroll insthelp
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=scroll insthelp
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=scroll insthelp
 endif
@@ -540,6 +546,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=scroll insthelp
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=scroll insthelp
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=scroll insthelp
 endif
@@ -703,6 +712,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_UNITDIR+=../ide
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_UNITDIR+=../ide
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_UNITDIR+=../ide
 endif
@@ -763,6 +775,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_UNITDIR+=../ide
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_UNITDIR+=../ide
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_UNITDIR+=../ide
 endif
@@ -784,6 +799,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_UNITDIR+=../ide
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_UNITDIR+=../ide
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_UNITDIR+=../ide
 endif
@@ -1018,6 +1036,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1740,6 +1764,15 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FV=1
 REQUIRE_PACKAGES_UNZIP=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1920,6 +1953,15 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FV=1
 REQUIRE_PACKAGES_UNZIP=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1983,6 +2025,15 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FV=1
 REQUIRE_PACKAGES_UNZIP=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 17 - 2
packages/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -548,6 +548,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1036,6 +1042,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1096,6 +1105,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1117,6 +1129,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 27 - 3
packages/fpmkunit/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -314,7 +314,7 @@ UNIT_PROCESS=
 ifneq ($(findstring $(OS_SOURCE),win32 win64),)
 UNIT_PROCESS+=-Fi../fcl-process/src/win
 endif
-ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix),)
+ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix android),)
 UNIT_PROCESS+=-Fi../fcl-process/src/unix
 endif
 ifneq ($(findstring $(OS_SOURCE),os2 emx),)
@@ -564,6 +564,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1169,6 +1175,12 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1289,6 +1301,12 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1331,6 +1349,12 @@ REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 1 - 1
packages/fpmkunit/Makefile.fpc

@@ -38,7 +38,7 @@ UNIT_PROCESS=
 ifneq ($(findstring $(OS_SOURCE),win32 win64),)
 UNIT_PROCESS+=-Fi../fcl-process/src/win
 endif
-ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix),)
+ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix android),)
 UNIT_PROCESS+=-Fi../fcl-process/src/unix
 endif
 ifneq ($(findstring $(OS_SOURCE),os2 emx),)

+ 4 - 3
packages/fpmkunit/src/fpmkunit.pp

@@ -84,7 +84,7 @@ Type
     amiga,atari, solaris, qnx, netware, openbsd,wdosx,
     palmos,macos,darwin,emx,watcom,morphos,netwlibc,
     win64,wince,gba,nds,embedded,symbian,haiku,iphonesim,
-    aix
+    aix,android
   );
   TOSes = Set of TOS;
 
@@ -135,7 +135,7 @@ Const
 
   AllOSes = [Low(TOS)..High(TOS)];
   AllCPUs = [Low(TCPU)..High(TCPU)];
-  AllUnixOSes  = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Solaris,Haiku,iphonesim,aix];
+  AllUnixOSes  = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Solaris,Haiku,iphonesim,aix,Android];
   AllBSDOSes      = [FreeBSD,NetBSD,OpenBSD,Darwin,iphonesim];
   AllWindowsOSes  = [Win32,Win64,WinCE];
   AllLimit83fsOses= [go32v2,os2,emx,watcom];
@@ -176,7 +176,8 @@ Const
     { symbian } ( false, true,  false, false, false, false, true,  false, false, false, false, false),
     { haiku }   ( false, true,  false, false, false, false, false, false, false, false, false, false),
     { iphonesim}( false, true,  false, false, false, false, false, false, false, false, false, false),
-    { aix    }  ( false, false, false, true,  false, false, false, true,  false, false, false, false)
+    { aix    }  ( false, false, false, true,  false, false, false, true,  false, false, false, false),
+    { android  }( false, false, false, false, false, false, true,  false, false, false, false, false)
   );
 
   // Useful

+ 2 - 2
packages/fppkg/src/fpmkunitsrc.inc

@@ -1,7 +1,7 @@
 {$ifdef Delphi}
 const fpmkunitsrc : array[0..809] of string[240]=(
 {$else Delphi}
-const fpmkunitsrc : array[0..809,1..240] of char=(
+const fpmkunitsrc : array[0..809,1..250] of char=(
 {$endif Delphi}
   '{'#013#010+
   '    This file is part of the Free Pascal Makefile Package'#013#010+
@@ -136,7 +136,7 @@ const fpmkunitsrc : array[0..809,1..240] of char=(
   '  AllOSes = [Low(TOS)..High(TOS)];'#013#010+
   '  AllCPUs = [Low(TCPU)..High(TCPU)];'#013#010+
   '  AllUnixOSes  = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Sol','ar'+
-  'is,Haiku,iphonesim];'#013#010+
+  'is,Haiku,iphonesim,Android];'#013#010+
   '  AllBSDOSes      = [FreeBSD,NetBSD,OpenBSD,Darwin,iphonesim];'#013#010+
   '  AllWindowsOSes  = [Win32,Win64,WinCE];'#013#010+
   '  AllLimit83fsOses= [go32v2,os2,emx,watcom];'#013#010+

+ 1 - 1
packages/gnome1/fpmake.pp

@@ -17,7 +17,7 @@ begin
     P.Directory:='gnome1';
 {$endif ALLPACKAGES}
     P.Version:='2.7.1';
-    P.OSes:=AllUnixOSes-[darwin,iphonesim];
+    P.OSes:=AllUnixOSes-[darwin,iphonesim,Android];
     if Defaults.CPU<>arm then
       P.OSes := P.OSes + [darwin];
 

+ 1 - 1
packages/gtk1/fpmake.pp

@@ -24,7 +24,7 @@ begin
     P.Description := 'Header to the GTK widgetset (v1).';
     P.NeedLibC:= true;  // true for headers that indirectly link to libc?
 
-    P.OSes:=AllUnixOSes+[Win32,Win64,OS2,EMX]-[darwin,iphonesim];
+    P.OSes:=AllUnixOSes+[Win32,Win64,OS2,EMX]-[darwin,iphonesim,Android];
     if Defaults.CPU<>arm then
       P.OSes := P.OSes + [darwin];
 

+ 1 - 1
packages/gtk2/fpmake.pp

@@ -18,7 +18,7 @@ begin
 {$endif ALLPACKAGES}
     P.Version:='2.7.1';
     P.SupportBuildModes := [bmOneByOne];
-    P.OSes:=AllUnixOSes+[Win32,Win64]-[darwin,iphonesim];
+    P.OSes:=AllUnixOSes+[Win32,Win64]-[darwin,iphonesim,Android];
     if Defaults.CPU<>arm then
       P.OSes := P.OSes + [darwin];
 

+ 1 - 1
packages/imlib/fpmake.pp

@@ -25,7 +25,7 @@ begin
     P.Description := 'Headers to imlib, an efficient bitmap manipulation program';
     P.NeedLibC:= true;  // true for headers that indirectly link to libc?
 
-    P.OSes:=AllUnixOSes+[OS2,EMX]-[darwin,iphonesim];
+    P.OSes:=AllUnixOSes+[OS2,EMX]-[darwin,iphonesim,Android];
     if Defaults.CPU<>arm then
       P.OSes := P.OSes + [darwin];
 

+ 1 - 1
packages/opengl/fpmake.pp

@@ -17,7 +17,7 @@ begin
     P.Directory:='opengl';
 {$endif ALLPACKAGES}
     P.Version:='2.7.1';
-    P.OSes:=AllUnixOSes+[Win32,Win64];
+    P.OSes:=AllUnixOSes+[Win32,Win64]-[Android];
 
     P.Dependencies.Add('x11',AllUnixOSes-[darwin,iphonesim]);
     if Defaults.CPU<>arm then

+ 1 - 1
packages/sdl/fpmake.pp

@@ -23,7 +23,7 @@ begin
     P.Dependencies.Add('pthreads',AllUnixOSes);
     if Defaults.CPU=arm then
        P.OSes := P.OSes - [darwin];
-    P.OSes := P.OSes - [iphonesim,os2,emx,go32v2,watcom];
+    P.OSes := P.OSes - [iphonesim,os2,emx,go32v2,watcom,Android];
 
     T:=P.Targets.AddUnit('logger.pas');
       with T.Dependencies do

+ 71 - 2
rtl/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -399,6 +399,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_DIRS+=aix
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_DIRS+=android
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_DIRS+=linux
 endif
@@ -459,6 +462,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_DIRS+=symbian
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=android
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=linux
 endif
@@ -480,6 +486,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_DIRS+=embedded
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_DIRS+=android
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_DIRS+=linux
 endif
@@ -716,6 +725,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1691,6 +1706,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 TARGET_DIRS_AIX=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+TARGET_DIRS_ANDROID=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_LINUX=1
 endif
@@ -1751,6 +1769,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 TARGET_DIRS_SYMBIAN=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_ANDROID=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_LINUX=1
 endif
@@ -1772,6 +1793,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 TARGET_DIRS_EMBEDDED=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+TARGET_DIRS_ANDROID=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 TARGET_DIRS_LINUX=1
 endif
@@ -2858,6 +2882,51 @@ aix:
 	$(MAKE) -C aix all
 .PHONY: aix_all aix_debug aix_smart aix_release aix_units aix_examples aix_shared aix_install aix_sourceinstall aix_exampleinstall aix_distinstall aix_zipinstall aix_zipsourceinstall aix_zipexampleinstall aix_zipdistinstall aix_clean aix_distclean aix_cleanall aix_info aix_makefiles aix
 endif
+ifdef TARGET_DIRS_ANDROID
+android_all:
+	$(MAKE) -C android all
+android_debug:
+	$(MAKE) -C android debug
+android_smart:
+	$(MAKE) -C android smart
+android_release:
+	$(MAKE) -C android release
+android_units:
+	$(MAKE) -C android units
+android_examples:
+	$(MAKE) -C android examples
+android_shared:
+	$(MAKE) -C android shared
+android_install:
+	$(MAKE) -C android install
+android_sourceinstall:
+	$(MAKE) -C android sourceinstall
+android_exampleinstall:
+	$(MAKE) -C android exampleinstall
+android_distinstall:
+	$(MAKE) -C android distinstall
+android_zipinstall:
+	$(MAKE) -C android zipinstall
+android_zipsourceinstall:
+	$(MAKE) -C android zipsourceinstall
+android_zipexampleinstall:
+	$(MAKE) -C android zipexampleinstall
+android_zipdistinstall:
+	$(MAKE) -C android zipdistinstall
+android_clean:
+	$(MAKE) -C android clean
+android_distclean:
+	$(MAKE) -C android distclean
+android_cleanall:
+	$(MAKE) -C android cleanall
+android_info:
+	$(MAKE) -C android info
+android_makefiles:
+	$(MAKE) -C android makefiles
+android:
+	$(MAKE) -C android all
+.PHONY: android_all android_debug android_smart android_release android_units android_examples android_shared android_install android_sourceinstall android_exampleinstall android_distinstall android_zipinstall android_zipsourceinstall android_zipexampleinstall android_zipdistinstall android_clean android_distclean android_cleanall android_info android_makefiles android
+endif
 ifdef TARGET_DIRS_WIN64
 win64_all:
 	$(MAKE) -C win64 all

+ 1 - 0
rtl/Makefile.fpc

@@ -7,6 +7,7 @@ name=rtl
 version=2.7.1
 
 [target]
+dirs_android=android
 dirs_linux=linux
 dirs_win32=win32
 dirs_wince=wince

+ 44 - 2
rtl/aix/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -437,6 +437,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
@@ -497,6 +500,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
@@ -518,6 +524,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem crt printer lnfogdb sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
@@ -641,6 +650,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
@@ -701,6 +713,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
@@ -722,6 +737,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
@@ -846,6 +864,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
@@ -906,6 +927,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
@@ -927,6 +951,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
 endif
@@ -1050,6 +1077,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
@@ -1110,6 +1140,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
@@ -1131,6 +1164,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
@@ -1365,6 +1401,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 53 - 2
rtl/amiga/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc sysutils fgl classes strutils math typinfo varutils fmtbcd charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil objects
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -832,6 +850,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
@@ -892,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
@@ -913,6 +937,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
 endif
@@ -1241,6 +1277,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
@@ -1301,6 +1340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
@@ -1322,6 +1364,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
 endif
@@ -1556,6 +1601,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 71 - 2
rtl/beos/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -832,6 +850,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
@@ -892,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
@@ -913,6 +937,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
@@ -1036,6 +1063,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
@@ -1096,6 +1126,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
@@ -1117,6 +1150,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils
 endif
@@ -1241,6 +1277,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
@@ -1301,6 +1340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
@@ -1322,6 +1364,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
 endif
@@ -1445,6 +1490,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
@@ -1505,6 +1553,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
@@ -1526,6 +1577,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
 endif
@@ -1649,6 +1703,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1709,6 +1766,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1730,6 +1790,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1964,6 +2027,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 53 - 2
rtl/darwin/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -442,6 +442,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
 endif
@@ -502,6 +505,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
 endif
@@ -523,6 +529,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem matrix dynlibs $(CPU_UNITS) dos dl objects printer sockets sysutils typinfo fgl classes math varutils types charset character ucomplex getopts heaptrc lineinfo lnfodwrf lnfogdb errors ipc terminfo termio video crt mouse keyboard  variants dateutils convutils stdconvs sysconst cthreads strutils rtlconsts cwstring bsd fmtbcd fpintres fpextres clocale objc objcbase
 endif
@@ -646,6 +655,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -706,6 +718,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -727,6 +742,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -850,6 +868,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
 endif
@@ -910,6 +931,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
 endif
@@ -931,6 +955,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconsts
 endif
@@ -1055,6 +1082,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -1115,6 +1145,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -1136,6 +1169,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -1259,6 +1295,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
@@ -1319,6 +1358,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
@@ -1340,6 +1382,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
@@ -1574,6 +1619,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 35 - 2
rtl/embedded/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -443,6 +443,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
 endif
@@ -503,6 +506,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
 endif
@@ -524,6 +530,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) objpas heapmgr consoleio # macpas iso7185 strings
 endif
@@ -648,6 +657,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -708,6 +720,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -729,6 +744,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -852,6 +870,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
@@ -912,6 +933,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
@@ -933,6 +957,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
 endif
@@ -1167,6 +1194,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/emx/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -428,6 +428,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
 endif
@@ -488,6 +491,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
 endif
@@ -509,6 +515,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils classes fgl math typinfo varutils winsock fmtbcd charset ucomplex cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil ctypes
 endif
@@ -632,6 +641,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -692,6 +704,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -713,6 +728,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -836,6 +854,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 prt1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 prt1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 prt1
 endif
@@ -896,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 prt1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 prt1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 prt1
 endif
@@ -917,6 +941,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 prt1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 prt1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 prt1
 endif
@@ -1040,6 +1067,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
 endif
@@ -1100,6 +1130,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
 endif
@@ -1121,6 +1154,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil
 endif
@@ -1245,6 +1281,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
@@ -1305,6 +1344,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
@@ -1326,6 +1368,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
@@ -1449,6 +1494,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
@@ -1509,6 +1557,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
@@ -1530,6 +1581,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
 endif
@@ -1764,6 +1818,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/freebsd/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -440,6 +440,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
@@ -500,6 +503,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
@@ -521,6 +527,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd freebsd video mouse keyboard console serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
@@ -644,6 +653,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -704,6 +716,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -725,6 +740,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -848,6 +866,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
@@ -908,6 +929,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
@@ -929,6 +953,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
 endif
@@ -1052,6 +1079,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
@@ -1112,6 +1142,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
@@ -1133,6 +1166,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
@@ -1257,6 +1293,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -1317,6 +1356,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -1338,6 +1380,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
 endif
@@ -1461,6 +1506,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
@@ -1521,6 +1569,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
@@ -1542,6 +1593,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
 endif
@@ -1776,6 +1830,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 44 - 2
rtl/gba/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings objects sysutils strutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -833,6 +851,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -893,6 +914,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -914,6 +938,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1352,6 +1388,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/go32v2/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -428,6 +428,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
 endif
@@ -488,6 +491,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
 endif
@@ -509,6 +515,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos crt objects printer cmem sysutils classes math typinfo matrix cpu mmx ucomplex getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset varutils video mouse keyboard variants vesamode types fmtbcd sysconst rtlconst dateutil convutil strutils stdconvs
 endif
@@ -632,6 +641,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -692,6 +704,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -713,6 +728,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -836,6 +854,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
@@ -896,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
@@ -917,6 +941,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 exceptn fpu
 endif
@@ -1040,6 +1067,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
 endif
@@ -1100,6 +1130,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
 endif
@@ -1121,6 +1154,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutil sysconst
 endif
@@ -1245,6 +1281,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1305,6 +1344,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1326,6 +1368,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1449,6 +1494,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1509,6 +1557,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1530,6 +1581,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1764,6 +1818,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 71 - 2
rtl/haiku/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -425,6 +425,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
 endif
@@ -485,6 +488,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
 endif
@@ -506,6 +512,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl objects sysconst sysutils types charset ucomplex typinfo classes fgl math varutils cpu mmx getopts heaptrc lineinfo lnfodwrf variants rtlconsts syscall unix unixutil strutils termio initc cmem crt video mouse keyboard dateutils fmtbcd sockets dynlibs cwstring cthreads convutils stdconvs fpintres clocale
 endif
@@ -629,6 +638,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -689,6 +701,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -710,6 +725,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -833,6 +851,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
@@ -893,6 +914,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
@@ -914,6 +938,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 cprt0 func dllprt
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts dateutils stdconvs
 endif
@@ -1242,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
@@ -1302,6 +1341,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
@@ -1323,6 +1365,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
 endif
@@ -1446,6 +1491,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
@@ -1506,6 +1554,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
@@ -1527,6 +1578,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
 endif
@@ -1650,6 +1704,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1710,6 +1767,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1731,6 +1791,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1965,6 +2028,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 80 - 2
rtl/linux/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -442,6 +442,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
 endif
@@ -502,6 +505,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
 endif
@@ -523,6 +529,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) unixtype ctypes baseunix strings objpas macpas iso7185 syscall unixutil fpintres heaptrc lineinfo lnfodwrf termio unix linux initc cmem $(CPU_UNITS) crt printer linuxvcs sysutils typinfo math matrix varutils charset character ucomplex getopts errors sockets gpm ipc serial terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst fmtbcd cthreads classes fgl convutils stdconvs strutils rtlconsts dos objects cwstring fpcylix clocale
 endif
@@ -646,6 +655,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -706,6 +718,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -727,6 +742,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -850,6 +868,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -910,6 +931,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -931,6 +955,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -1054,6 +1081,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
 endif
@@ -1114,6 +1144,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
 endif
@@ -1135,6 +1168,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants sysconst rtlconsts stdconvs
 endif
@@ -1258,6 +1294,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=syslinux linux
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=syslinux linux
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=syslinux linux
 endif
@@ -1318,6 +1357,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=syslinux linux
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=syslinux linux
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=syslinux linux
 endif
@@ -1339,6 +1381,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=syslinux linux
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=syslinux linux
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=syslinux linux
 endif
@@ -1463,6 +1508,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
@@ -1523,6 +1571,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
@@ -1544,6 +1595,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
 endif
@@ -1667,6 +1721,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
@@ -1727,6 +1784,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
@@ -1748,6 +1808,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
 endif
@@ -1871,6 +1934,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1931,6 +1997,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -1952,6 +2021,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_TARGETDIR+=.
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_TARGETDIR+=.
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_TARGETDIR+=.
 endif
@@ -2187,6 +2259,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 35 - 2
rtl/macos/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -427,6 +427,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
 endif
@@ -487,6 +490,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
 endif
@@ -508,6 +514,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos objects matrix cmem charset ctypes
 endif
@@ -632,6 +641,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -692,6 +704,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -713,6 +728,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -836,6 +854,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -896,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -917,6 +941,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1151,6 +1178,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 53 - 2
rtl/morphos/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl strutils math typinfo varutils charset ucomplex getopts matrix fmtbcd variants types rtlconsts sysconst dateutil objects exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm video mouse keyboard sockets clipboard datatypes asl ahi tinygl get9 muihelper
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -832,6 +850,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
@@ -892,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
@@ -913,6 +937,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math rtlconsts varutils typinfo variants classes sysconst dateutil
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1241,6 +1277,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1301,6 +1340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1322,6 +1364,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1556,6 +1601,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 44 - 2
rtl/nativent/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -433,6 +433,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system objpas iso7185 buildrtl
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system objpas iso7185 buildrtl
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system objpas iso7185 buildrtl
 endif
@@ -493,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system objpas iso7185 buildrtl
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system objpas iso7185 buildrtl
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system objpas iso7185 buildrtl
 endif
@@ -514,6 +520,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system objpas iso7185 buildrtl
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system objpas iso7185 buildrtl
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system objpas iso7185 buildrtl
 endif
@@ -637,6 +646,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -697,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -718,6 +733,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings matrix rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs $(CPU_UNITS) charset ucomplex getopts fmtbcd #rsts=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -842,6 +860,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
@@ -902,6 +923,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
@@ -923,6 +947,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
 endif
@@ -1046,6 +1073,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1106,6 +1136,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1127,6 +1160,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1361,6 +1397,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 44 - 2
rtl/nds/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
 endif
@@ -833,6 +851,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -893,6 +914,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -914,6 +938,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1352,6 +1388,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/netbsd/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -438,6 +438,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
@@ -498,6 +501,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
@@ -519,6 +525,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes objpas macpas iso7185 strings syscall sysctl  baseunix unixutil character unix rtlconsts initc cmem matrix dl termio  printer sysutils varutils math variants typinfo types classes fgl fmtbcd dynlibs $(CPU_UNITS) charset ucomplex crt getopts heaptrc lnfodwrf lineinfo errors sockets ipc terminfo bsd video mouse keyboard serial dateutils sysconst cthreads strutils convutils stdconvs dos objects cwstring fpintres clocale
 endif
@@ -642,6 +651,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -702,6 +714,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -723,6 +738,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -846,6 +864,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -906,6 +927,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -927,6 +951,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -1050,6 +1077,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
@@ -1110,6 +1140,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
@@ -1131,6 +1164,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst
 endif
@@ -1255,6 +1291,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
@@ -1315,6 +1354,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
@@ -1336,6 +1378,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
@@ -1459,6 +1504,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
@@ -1519,6 +1567,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
@@ -1540,6 +1591,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
@@ -1774,6 +1828,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/netware/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -432,6 +432,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
@@ -492,6 +495,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
@@ -513,6 +519,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard cmem dynlibs sockets aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
 endif
@@ -636,6 +645,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -696,6 +708,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -717,6 +732,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -840,6 +858,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=nwpre prelude
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=nwpre prelude
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=nwpre prelude
 endif
@@ -900,6 +921,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=nwpre prelude
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=nwpre prelude
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=nwpre prelude
 endif
@@ -921,6 +945,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=nwpre prelude
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=nwpre prelude
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=nwpre prelude
 endif
@@ -1044,6 +1071,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
 endif
@@ -1104,6 +1134,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
 endif
@@ -1125,6 +1158,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils variants typinfo classes dateutils sysconst convutils rtlconsts
 endif
@@ -1249,6 +1285,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1309,6 +1348,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1330,6 +1372,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1453,6 +1498,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1513,6 +1561,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1534,6 +1585,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1768,6 +1822,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/netwlibc/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -425,6 +425,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
 endif
@@ -485,6 +488,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
 endif
@@ -506,6 +512,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings lineinfo lnfodwrf winsock heaptrc matrix nwsnut libc dos crt objects sysconst initc sysutils types typinfo fgl classes fmtbcd cpu mmx getopts dateutils strutils convutils charset ucomplex variants rtlconsts math varutils freebidi utf8bidi mouse video keyboard dynlibs cmem sockets ctypes
 endif
@@ -629,6 +638,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -689,6 +701,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -710,6 +725,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -833,6 +851,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
@@ -893,6 +914,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
@@ -914,6 +938,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils variants convutils typinfo classes dateutils sysconst rtlconsts system
 endif
@@ -1242,6 +1278,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1302,6 +1341,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1323,6 +1365,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1446,6 +1491,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1506,6 +1554,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1527,6 +1578,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1761,6 +1815,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/openbsd/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -441,6 +441,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
 endif
@@ -501,6 +504,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
 endif
@@ -522,6 +528,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos crt objects printer matrix rtlconsts sysutils fgl classes fmtbcd typinfo math varutils charset ucomplex getopts heaptrc lineinfo lnfodwrf errors sockets ipc terminfo dateutils strutils video mouse keyboard  serial variants types sysctl sysconst fpintres convutils stdconvs dynlibs cwstring cmem dl termio cthreads
 endif
@@ -645,6 +654,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -705,6 +717,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -726,6 +741,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -849,6 +867,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -909,6 +930,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -930,6 +954,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0 cprt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0 cprt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0 cprt0
 endif
@@ -1053,6 +1080,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
 endif
@@ -1113,6 +1143,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
 endif
@@ -1134,6 +1167,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes sysconst dateutils
 endif
@@ -1258,6 +1294,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
@@ -1318,6 +1357,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
@@ -1339,6 +1381,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
 endif
@@ -1462,6 +1507,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
@@ -1522,6 +1570,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
@@ -1543,6 +1594,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
 endif
@@ -1777,6 +1831,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/os2/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -428,6 +428,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
 endif
@@ -488,6 +491,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
 endif
@@ -509,6 +515,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos crt objects printer matrix sysutils fgl classes math typinfo varutils winsock charset ucomplex cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs video mouse keyboard variants types rtlconst sysconst dateutil strutils convutil stdconvs fmtbcd so32dll sockets
 endif
@@ -632,6 +641,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -692,6 +704,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -713,6 +728,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -836,6 +854,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -896,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -917,6 +941,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -1040,6 +1067,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
 endif
@@ -1100,6 +1130,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
 endif
@@ -1121,6 +1154,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants pmhelp classes sysconst dateutil stdconvs
 endif
@@ -1245,6 +1281,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1305,6 +1344,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1326,6 +1368,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1449,6 +1494,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1509,6 +1557,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1530,6 +1581,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1764,6 +1818,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 53 - 2
rtl/palmos/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset getopts winsock sockets
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -832,6 +850,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -892,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -913,6 +937,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=prt0
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=prt0
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=prt0
 endif
@@ -1037,6 +1064,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
@@ -1097,6 +1127,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
@@ -1118,6 +1151,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
 endif
@@ -1241,6 +1277,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1301,6 +1340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1322,6 +1364,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1556,6 +1601,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 53 - 2
rtl/solaris/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -437,6 +437,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
@@ -497,6 +500,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
@@ -518,6 +524,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil termio unix initc cmem crt printer sysutils typinfo math fgl classes matrix varutils charset ucomplex getopts errors sockets terminfo dl dynlibs video mouse keyboard variants types dateutils sysconst strutils fmtbcd rtlconsts cthreads convutils stdconvs dos objects cwstring fpintres clocale $(CPU_UNITS)
 endif
@@ -641,6 +650,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -701,6 +713,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -722,6 +737,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -845,6 +863,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
@@ -905,6 +926,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
@@ -926,6 +950,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo classes variants dateutils sysconst rtlconst stdconvs
 endif
@@ -1050,6 +1077,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
@@ -1110,6 +1140,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
@@ -1131,6 +1164,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
 endif
@@ -1254,6 +1290,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
@@ -1314,6 +1353,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
@@ -1335,6 +1377,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
 endif
@@ -1569,6 +1614,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 44 - 2
rtl/symbian/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -420,6 +420,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
 endif
@@ -480,6 +483,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
 endif
@@ -501,6 +507,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl
 endif
@@ -624,6 +633,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
@@ -684,6 +696,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
@@ -705,6 +720,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings symbian
 endif
@@ -829,6 +847,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -889,6 +910,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -910,6 +934,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1033,6 +1060,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1093,6 +1123,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1114,6 +1147,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1348,6 +1384,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 2 - 2
rtl/unix/cwstring.pp

@@ -27,7 +27,7 @@ implementation
 
 {$linklib c}
 
-{$if not defined(linux) and not defined(solaris)}  // Linux (and maybe glibc platforms in general), have iconv in glibc.
+{$if not defined(linux) and not defined(solaris) and not defined(Android)}  // Linux (and maybe glibc platforms in general), have iconv in glibc.
  {$if defined(haiku)}
    {$linklib textencoding}
    {$linklib locale}
@@ -83,7 +83,7 @@ function mblen(const s: pchar; n: size_t): size_t; cdecl; external clib name 'mb
 
 
 const
-{$if defined(linux)}
+{$if defined(linux) or defined(Android)}
   __LC_CTYPE = 0;
   LC_ALL = 6;
   _NL_CTYPE_CLASS = (__LC_CTYPE shl 16);

+ 1 - 1
rtl/unix/initc.pp

@@ -51,7 +51,7 @@ end;
 {$else}
 
 
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
 function geterrnolocation: pcint; cdecl;external clib name '__errno_location';
 {$endif}
 

+ 12 - 12
rtl/unix/ipc.pp

@@ -72,7 +72,7 @@ Const
   IPC_EXCL   =  2 shl 9;  { fail if key exists }
   IPC_NOWAIT =  4 shl 9;  { return error on wait }
 
-{$if defined(FreeBSD) or defined(Darwin) or defined(Linux) or defined(OpenBSD)}
+{$if defined(FreeBSD) or defined(Darwin) or defined(Linux) or defined(OpenBSD) or defined(Android)}
   IPC_PRIVATE = TKey(0);
 {$elseif defined(aix)}
   IPC_PRIVATE = TKey(-1)
@@ -210,7 +210,7 @@ Type
 {$packrecords c}
 {$endif}
 
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
 {$ifdef cpux86_64}
   TShmid_ds = record
     shm_perm  : TIPC_Perm;
@@ -263,7 +263,7 @@ Type
 {$endif aix}
 
   const
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
      SHM_R      = 4 shl 6;
      SHM_W      = 2 shl 6;
 {$else}
@@ -273,7 +273,7 @@ Type
 
      SHM_RDONLY = 1 shl 12;
      SHM_RND    = 2 shl 12;
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
      SHM_REMAP  = 4 shl 12;
 {$endif}
 {$ifdef Darwin}
@@ -342,7 +342,7 @@ Function shmctl(shmid:cint; cmd:cint; buf: pshmid_ds): cint; {$ifdef FPC_USE_LIB
 const
   MSG_NOERROR = 1 shl 12;
 
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
   MSG_EXCEPT  = 2 shl 12;
 
   MSGMNI = 128;
@@ -398,7 +398,7 @@ type
 
 type
 
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
   PMSQid_ds = ^TMSQid_ds;
   TMSQid_ds = record
     msg_perm   : TIPC_perm;
@@ -486,7 +486,7 @@ type
     mtext : array[0..0] of char;
   end;
 
-{$if defined(linux)}
+{$if defined(linux) or defined(Android)}
   PMSGinfo = ^TMSGinfo;
   TMSGinfo = record
     msgpool : cint;
@@ -528,7 +528,7 @@ Function msgctl(msqid:cint; cmd: cint; buf: PMSQid_ds): cint; {$ifdef FPC_USE_LI
   ----------------------------------------------------------------------}
 
 const
-{$ifdef Linux}                  // renamed to many name clashes
+{$if defined(Linux) or defined(Android)}                  // renamed to many name clashes
   SEM_UNDO = $1000;
   SEM_GETPID = 11;
   SEM_GETVAL = 12;
@@ -565,7 +565,7 @@ const
 {$endif}
 
 type
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
 
 {$ifndef linux_ipc32}
  PSEMid_ds = ^TSEMid_ds;
@@ -705,7 +705,7 @@ Type
       0 : ( val : cint );
       1 : ( buf : PSEMid_ds );
       2 : ( arr : PWord );              // ^ushort
-{$ifdef linux}
+{$if defined(linux) or defined(Android)}
       3 : ( padbuf : PSeminfo );
       4 : ( padpad : pointer );
 {$endif}
@@ -714,7 +714,7 @@ Type
 Function semget(key:Tkey; nsems:cint; semflg:cint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'semget'; {$endif}
 Function semop(semid:cint; sops: psembuf; nsops: cuint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'semop'; {$endif}
 Function semctl(semid:cint; semnum:cint; cmd:cint; var arg: tsemun): cint;
-{$ifdef linux}
+{$if defined(linux) or defined(Android)}
 Function semtimedop(semid:cint; sops: psembuf; nsops: cuint; timeOut: ptimespec): cint; {$ifdef FPC_USE_LIBC} cdecl; external name 'semtimedop'; platform; {$else} platform; {$endif}
 {$endif}
 {$ifdef aix}
@@ -729,7 +729,7 @@ uses Syscall;
 {$endif ndef FPC_USE_LIBC}
 
 {$ifndef FPC_USE_LIBC}
- {$ifdef Linux}
+ {$if defined(Linux) or defined(Android)}
   {$if defined(cpux86_64) or defined(NO_SYSCALL_IPC)}
     {$i ipcsys.inc}
   {$else}

+ 1 - 2
rtl/unix/unix.pp

@@ -1169,7 +1169,7 @@ end;
                         General information calls
 ******************************************************************************}
 
-{$ifdef Linux}
+{$if defined(Linux) or defined(Android)}
 Function GetDomainName:String;  { linux only!}
 // domainname is a glibc extension.
 
@@ -1220,7 +1220,6 @@ begin
 end;
 {$endif}
 
-
 Function GetHostName:String;
 {
   Get machines name. Returns empty string if not set.

+ 35 - 2
rtl/wii/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) objpas macpas strings sysutils classes math typinfo varutils fmtbcd ctypes charset ucomplex getopts matrix variants types rtlconsts sysconst dateutil lineinfo fgl varutils cmem
 endif
@@ -629,6 +638,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -689,6 +701,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -710,6 +725,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -833,6 +851,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -893,6 +914,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -914,6 +938,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1148,6 +1175,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/win32/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -428,6 +428,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
@@ -488,6 +491,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
@@ -509,6 +515,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
@@ -632,6 +641,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
 endif
@@ -692,6 +704,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
 endif
@@ -713,6 +728,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc matrix windows winsock winsock2 initc cmem dynlibs signals dos crt objects messages rtlconsts sysconst sysutils math types strutils dateutils varutils variants typinfo fgl classes convutils stdconvs cpu mmx charset character ucomplex getopts winevent sockets printer video mouse keyboard fmtbcd winsysut sharemem exeinfo fpintres windirs
 endif
@@ -836,6 +854,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -896,6 +917,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -917,6 +941,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -1040,6 +1067,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -1100,6 +1130,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -1121,6 +1154,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -1245,6 +1281,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
@@ -1305,6 +1344,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
@@ -1326,6 +1368,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
 endif
@@ -1449,6 +1494,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
@@ -1509,6 +1557,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
@@ -1530,6 +1581,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
@@ -1764,6 +1818,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 62 - 2
rtl/win64/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -424,6 +424,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
@@ -484,6 +487,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
@@ -505,6 +511,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=system objpas macpas iso7185 buildrtl lineinfo lnfodwrf
 endif
@@ -628,6 +637,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
 endif
@@ -688,6 +700,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
 endif
@@ -709,6 +724,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=ctypes strings heaptrc matrix dos crt objects messages windows winsock winsock2 cmem dynlibs rtlconsts sysconst sysutils math types strutils convutils dateutils varutils variants typinfo fgl classes getopts stdconvs sockets printer charset character ucomplex fmtbcd winevent video mouse keyboard sharemem exeinfo fpintres windirs cpu signals
 endif
@@ -832,6 +850,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -892,6 +913,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -913,6 +937,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_LOADERS+=$(LOADERS)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_LOADERS+=$(LOADERS)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_LOADERS+=$(LOADERS)
 endif
@@ -1036,6 +1063,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -1096,6 +1126,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -1117,6 +1150,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=math varutils typinfo variants classes dateutils sysconst
 endif
@@ -1241,6 +1277,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1301,6 +1340,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1322,6 +1364,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
 endif
@@ -1445,6 +1490,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
@@ -1505,6 +1553,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
@@ -1526,6 +1577,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
 endif
@@ -1760,6 +1814,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 44 - 2
rtl/wince/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -428,6 +428,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
 endif
@@ -488,6 +491,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
 endif
@@ -509,6 +515,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=$(SYSTEMUNIT) fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes strutils convutils math dateutils varutils variants fmtbcd matrix ucomplex charset getopts winsock winsock2 sockets cmem sharemem
 endif
@@ -632,6 +641,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -692,6 +704,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -713,6 +728,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_IMPLICITUNITS+=exeinfo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_IMPLICITUNITS+=exeinfo
 endif
@@ -837,6 +855,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
@@ -897,6 +918,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
@@ -918,6 +942,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
 endif
@@ -1041,6 +1068,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1101,6 +1131,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1122,6 +1155,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
 endif
@@ -1356,6 +1392,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=

+ 98 - 2
utils/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -411,6 +411,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg  fpcres instantfpc
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg  fpcres instantfpc
 endif
@@ -471,6 +474,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg  fpcres instantfpc
 endif
@@ -492,6 +498,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_DIRS+=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg  fpcres instantfpc
 endif
@@ -615,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir  grab_vcsa
 endif
@@ -675,6 +687,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir  grab_vcsa
 endif
@@ -696,6 +711,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=ppdep ptop rstconv data2inc delp bin2obj postw32 rmcvsdir  grab_vcsa
 endif
@@ -819,6 +837,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=rstconv
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=rstconv
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=rstconv
 endif
@@ -879,6 +900,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=rstconv
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=rstconv
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=rstconv
 endif
@@ -900,6 +924,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=rstconv
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=rstconv
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=rstconv
 endif
@@ -1023,6 +1050,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=ptopu
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=ptopu
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=ptopu
 endif
@@ -1083,6 +1113,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=ptopu
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=ptopu
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=ptopu
 endif
@@ -1104,6 +1137,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=ptopu
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=ptopu
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=ptopu
 endif
@@ -1339,6 +1375,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -2025,6 +2067,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2187,6 +2237,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2244,6 +2302,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -3559,6 +3625,16 @@ TARGET_DIRS_FPCMKCFG=1
 TARGET_DIRS_FPCRES=1
 TARGET_DIRS_INSTANTFPC=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+TARGET_DIRS_FPPKG=1
+TARGET_DIRS_FPCM=1
+TARGET_DIRS_TPLY=1
+TARGET_DIRS_H2PAS=1
+TARGET_DIRS_FPRCP=1
+TARGET_DIRS_DXEGEN=1
+TARGET_DIRS_FPDOC=1
+TARGET_DIRS_FPCMKCFG=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_FPPKG=1
 TARGET_DIRS_FPCM=1
@@ -3791,6 +3867,16 @@ TARGET_DIRS_DXEGEN=1
 TARGET_DIRS_FPDOC=1
 TARGET_DIRS_FPCMKCFG=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_FPPKG=1
+TARGET_DIRS_FPCM=1
+TARGET_DIRS_TPLY=1
+TARGET_DIRS_H2PAS=1
+TARGET_DIRS_FPRCP=1
+TARGET_DIRS_DXEGEN=1
+TARGET_DIRS_FPDOC=1
+TARGET_DIRS_FPCMKCFG=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_FPPKG=1
 TARGET_DIRS_FPCM=1
@@ -3870,6 +3956,16 @@ TARGET_DIRS_DXEGEN=1
 TARGET_DIRS_FPDOC=1
 TARGET_DIRS_FPCMKCFG=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+TARGET_DIRS_FPPKG=1
+TARGET_DIRS_FPCM=1
+TARGET_DIRS_TPLY=1
+TARGET_DIRS_H2PAS=1
+TARGET_DIRS_FPRCP=1
+TARGET_DIRS_DXEGEN=1
+TARGET_DIRS_FPDOC=1
+TARGET_DIRS_FPCMKCFG=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 TARGET_DIRS_FPPKG=1
 TARGET_DIRS_FPCM=1

+ 26 - 2
utils/dxegen/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -412,6 +412,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=coff
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=coff
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=coff
 endif
@@ -472,6 +475,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=coff
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=coff
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=coff
 endif
@@ -493,6 +499,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=coff
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=coff
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=coff
 endif
@@ -728,6 +737,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1216,6 +1231,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1276,6 +1294,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1297,6 +1318,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 59 - 2
utils/fpcm/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpcmake
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpcmake
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpcmake
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpcmake
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpcmake
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpcmake
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpcmake
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpcmake
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpcmake
 endif
@@ -613,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=fpcmmain
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=fpcmmain
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=fpcmmain
 endif
@@ -673,6 +685,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=fpcmmain
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=fpcmmain
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=fpcmmain
 endif
@@ -694,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=fpcmmain
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=fpcmmain
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=fpcmmain
 endif
@@ -817,6 +835,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
 endif
@@ -877,6 +898,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
 endif
@@ -898,6 +922,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=fpcmmain fpcmdic fpcmwr fpcmpkg
 endif
@@ -1133,6 +1160,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1816,6 +1849,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1976,6 +2017,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2032,6 +2081,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

Plik diff jest za duży
+ 143 - 134
utils/fpcm/fpcmake.inc


+ 9 - 1
utils/fpcm/fpcmake.ini

@@ -9,7 +9,7 @@
 
 # OS categories
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 
@@ -859,6 +859,14 @@ SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
 
+# Android
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
+
 # Linux
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh

+ 5 - 4
utils/fpcm/fpcmmain.pp

@@ -71,7 +71,7 @@ interface
         o_amiga,o_atari, o_solaris, o_qnx, o_netware, o_openbsd,o_wdosx,
         o_palmos,o_macos,o_darwin,o_emx,o_watcom,o_morphos,o_netwlibc,
         o_win64,o_wince,o_gba,o_nds,o_embedded,o_symbian,o_nativent,o_iphonesim,
-        o_wii,o_aix
+        o_wii, o_aix, o_android
       );
 
       TTargetSet=array[tcpu,tos] of boolean;
@@ -94,7 +94,7 @@ interface
         'amiga','atari','solaris', 'qnx', 'netware','openbsd','wdosx',
         'palmos','macos','darwin','emx','watcom','morphos','netwlibc',
         'win64','wince','gba','nds','embedded','symbian','nativent',
-        'iphonesim', 'wii', 'aix'
+        'iphonesim', 'wii', 'aix', 'android'
       );
 
       OSSuffix : array[TOS] of string=(
@@ -102,7 +102,7 @@ interface
         '_amiga','_atari','_solaris', '_qnx', '_netware','_openbsd','_wdosx',
         '_palmos','_macos','_darwin','_emx','_watcom','_morphos','_netwlibc',
         '_win64','_wince','_gba','_nds','_embedded','_symbian','_nativent',
-        '_iphonesim','_wii','_aix'
+        '_iphonesim','_wii','_aix','_android'
       );
 
       { This table is kept OS,Cpu because it is easier to maintain (PFV) }
@@ -139,7 +139,8 @@ interface
         { nativent }( true,  false, false, false, false, false, false, false, false, false, false, false, false, false),
         { iphonesim }( true,  false, false, false, false, false, false, false, false, false, false, false, false, false),
         { wii }     ( false, false, true,  false, false, false, false, false, false, false, false, false, false, false),
-        { aix }     ( false, false, true,  false, false, false, true,  false, false, false, false, false, false, false)
+        { aix }     ( false, false, true,  false, false, false, true,  false, false, false, false, false, false, false),
+        { android } ( false, false, true,  false, false, true,  false, false, false, true, false, false, false, false)
       );
 
     type

+ 41 - 2
utils/fpcmkcfg/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpcmkcfg
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpcmkcfg
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpcmkcfg
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpcmkcfg
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpcmkcfg
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpcmkcfg
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpcmkcfg
 endif
@@ -727,6 +736,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1410,6 +1425,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1570,6 +1593,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1626,6 +1657,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 11 - 11
utils/fpcmkcfg/fppkg.inc

@@ -3,15 +3,15 @@ const fppkg : array[0..1] of string[240]=(
 {$else Delphi}
 const fppkg : array[0..1,1..240] of char=(
 {$endif Delphi}
-  '[Defaults]'#013#010+
-  'ConfigVersion=4'#013#010+
-  'LocalRepository=%LocalRepository%'#013#010+
-  'BuildDir={LocalRepository}build/'#013#010+
-  'ArchivesDir={LocalRepository}archives/'#013#010+
-  'CompilerConfigDir=%CompilerConfigDir%'#013#010+
-  'RemoteMirrors=http://www.freepascal.org/repository/mirrors.xml'#013,#010+
-  'RemoteRepository=auto'#013#010+
-  'CompilerConfig=default'#013#010+
-  'FPMakeCompilerConfig=default'#013#010+
-  'Downloader=lnet'#013#010
+  '[Defaults]'#010+
+  'ConfigVersion=4'#010+
+  'LocalRepository=%LocalRepository%'#010+
+  'BuildDir={LocalRepository}build/'#010+
+  'ArchivesDir={LocalRepository}archives/'#010+
+  'CompilerConfigDir=%CompilerConfigDir%'#010+
+  'RemoteMirrors=http://www.freepascal.org/repository/mirrors.xml'#010+
+  'Remote','Repository=auto'#010+
+  'CompilerConfig=default'#010+
+  'FPMakeCompilerConfig=default'#010+
+  'Downloader=lnet'#010
 );

+ 50 - 2
utils/fpcres/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpcres
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpcres
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpcres
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpcres
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpcres
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpcres
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpcres
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpcres
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpcres
 endif
@@ -613,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
 endif
@@ -673,6 +685,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
 endif
@@ -694,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=closablefilestream msghandler paramparser sourcehandler target
 endif
@@ -929,6 +947,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1612,6 +1636,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-RES=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-RES=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1772,6 +1804,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-RES=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-RES=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1828,6 +1868,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-RES=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-RES=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 50 - 2
utils/fpcreslipo/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpcreslipo
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpcreslipo
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpcreslipo
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpcreslipo
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpcreslipo
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpcreslipo
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpcreslipo
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpcreslipo
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpcreslipo
 endif
@@ -613,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=msghandler paramparser sourcehandler
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=msghandler paramparser sourcehandler
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=msghandler paramparser sourcehandler
 endif
@@ -673,6 +685,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=msghandler paramparser sourcehandler
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=msghandler paramparser sourcehandler
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=msghandler paramparser sourcehandler
 endif
@@ -694,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=msghandler paramparser sourcehandler
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=msghandler paramparser sourcehandler
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=msghandler paramparser sourcehandler
 endif
@@ -929,6 +947,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1612,6 +1636,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-RES=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-RES=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1772,6 +1804,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-RES=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-RES=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1828,6 +1868,14 @@ REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-RES=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-RES=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 77 - 2
utils/fpdoc/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -411,6 +411,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
 endif
@@ -471,6 +474,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
 endif
@@ -492,6 +498,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpdoc makeskel unitdiff fpclasschart
 endif
@@ -615,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
 endif
@@ -675,6 +687,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
 endif
@@ -696,6 +711,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=dglobals dwriter dw_xml sh_pas dw_html dw_latex dw_ipf dw_txt dw_man dwlinear dw_linrtf dw_dxml fpdocproj fpdocxmlopts mkfpdoc
 endif
@@ -819,6 +837,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
 endif
@@ -879,6 +900,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
 endif
@@ -900,6 +924,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_FILES+=dwriter.rst fpdoc.rst dglobals.rst makeskel.rst fpdocopts.rst
 endif
@@ -1024,6 +1051,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1084,6 +1114,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1105,6 +1138,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1339,6 +1375,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -2142,6 +2184,17 @@ REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_CHM=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_CHM=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2364,6 +2417,17 @@ REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_CHM=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_CHM=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2442,6 +2506,17 @@ REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_CHM=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_CHM=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 62 - 2
utils/fpmc/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -417,6 +417,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fpmc
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fpmc
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fpmc  fpmcgtk
 endif
@@ -477,6 +480,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fpmc
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fpmc
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fpmc  fpmcgtk
 endif
@@ -498,6 +504,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fpmc
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fpmc
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fpmc  fpmcgtk
 endif
@@ -621,6 +630,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
 endif
@@ -681,6 +693,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
 endif
@@ -702,6 +717,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_RSTS+=frmabout frmmain frmoptions msgcomp
 endif
@@ -825,6 +843,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
 endif
@@ -885,6 +906,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
 endif
@@ -906,6 +930,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=frmmain msgcomp frmabout frmoptions
 endif
@@ -1141,6 +1168,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1863,6 +1896,15 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FPGTK=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2043,6 +2085,15 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FPGTK=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -2106,6 +2157,15 @@ REQUIRE_PACKAGES_FPMKUNIT=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FPGTK=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 29 - 2
utils/fppkg/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -531,6 +531,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1175,6 +1181,13 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1315,6 +1328,13 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1364,6 +1384,13 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_FPMKUNIT=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 1 - 1
utils/fppkg/fppkg.pp

@@ -19,7 +19,7 @@ uses
   pkghandler,pkgmkconv, pkgdownload,
   pkgfpmake, pkgcommands
   // Downloaders
-{$if defined(unix) or defined(windows)}
+{$if (defined(unix) and not defined(android)) or defined(windows)}
   ,pkgwget
   ,pkglnet
 {$endif}

+ 35 - 2
utils/fprcp/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=fprcp
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=fprcp
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=fprcp
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=fprcp
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=fprcp
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=fprcp
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=fprcp
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=fprcp
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=fprcp
 endif
@@ -613,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=comments expr pasprep
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=comments expr pasprep
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=comments expr pasprep
 endif
@@ -673,6 +685,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=comments expr pasprep
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=comments expr pasprep
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=comments expr pasprep
 endif
@@ -694,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=comments expr pasprep
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=comments expr pasprep
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=comments expr pasprep
 endif
@@ -929,6 +947,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1417,6 +1441,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1477,6 +1504,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1498,6 +1528,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 44 - 2
utils/h2pas/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=h2pas h2paspp
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=h2pas h2paspp
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=h2pas h2paspp
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=h2pas h2paspp
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=h2pas h2paspp
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=h2pas h2paspp
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=h2pas h2paspp
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=h2pas h2paspp
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=h2pas h2paspp
 endif
@@ -613,6 +622,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
 endif
@@ -673,6 +685,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
 endif
@@ -694,6 +709,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=h2poptions h2plexlib scan h2pyacclib converu
 endif
@@ -818,6 +836,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -878,6 +899,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -899,6 +923,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -1133,6 +1160,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1621,6 +1654,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1681,6 +1717,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1702,6 +1741,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 47 - 2
utils/importtl/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=importtl
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=importtl
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=importtl
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=importtl
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=importtl
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=importtl
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=importtl
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=importtl
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=importtl
 endif
@@ -725,6 +734,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1486,6 +1501,16 @@ REQUIRE_PACKAGES_WINUNITS-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-REGISTRY=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1686,6 +1711,16 @@ REQUIRE_PACKAGES_WINUNITS-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-REGISTRY=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1
@@ -1756,6 +1791,16 @@ REQUIRE_PACKAGES_WINUNITS-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_FPMKUNIT=1
+REQUIRE_PACKAGES_WINUNITS-BASE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-REGISTRY=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASZLIB=1

+ 47 - 2
utils/instantfpc/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -411,6 +411,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=instantfpc
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=instantfpc
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=instantfpc
 endif
@@ -471,6 +474,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=instantfpc
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=instantfpc
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=instantfpc
 endif
@@ -492,6 +498,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=instantfpc
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=instantfpc
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=instantfpc
 endif
@@ -615,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=instantfptools
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=instantfptools
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=instantfptools
 endif
@@ -675,6 +687,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=instantfptools
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=instantfptools
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=instantfptools
 endif
@@ -696,6 +711,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=instantfptools
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=instantfptools
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=instantfptools
 endif
@@ -819,6 +837,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -879,6 +900,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -900,6 +924,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1134,6 +1161,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1661,6 +1694,10 @@ ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
@@ -1741,6 +1778,10 @@ ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
@@ -1769,6 +1810,10 @@ ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-PROCESS=1

+ 26 - 2
utils/rmwait/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -409,6 +409,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=rmwait
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=rmwait
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=rmwait
 endif
@@ -469,6 +472,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=rmwait
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=rmwait
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=rmwait
 endif
@@ -490,6 +496,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=rmwait
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=rmwait
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=rmwait
 endif
@@ -725,6 +734,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1213,6 +1228,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1273,6 +1291,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1294,6 +1315,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 53 - 2
utils/tply/Makefile

@@ -2,9 +2,9 @@
 # Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos 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-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix powerpc-android sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded armel-android mips-linux mipsel-linux
 BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
+UNIXs = linux $(BSDs) solaris qnx haiku aix android
 LIMIT83fs = go32v2 os2 emx watcom
 OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
@@ -411,6 +411,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_PROGRAMS+=plex pyacc
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_PROGRAMS+=plex pyacc
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_PROGRAMS+=plex pyacc
 endif
@@ -471,6 +474,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=plex pyacc
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=plex pyacc
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_PROGRAMS+=plex pyacc
 endif
@@ -492,6 +498,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_PROGRAMS+=plex pyacc
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_PROGRAMS+=plex pyacc
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_PROGRAMS+=plex pyacc
 endif
@@ -615,6 +624,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override TARGET_UNITS+=lexlib yacclib
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override TARGET_UNITS+=lexlib yacclib
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override TARGET_UNITS+=lexlib yacclib
 endif
@@ -675,6 +687,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=lexlib yacclib
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=lexlib yacclib
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_UNITS+=lexlib yacclib
 endif
@@ -696,6 +711,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override TARGET_UNITS+=lexlib yacclib
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override TARGET_UNITS+=lexlib yacclib
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override TARGET_UNITS+=lexlib yacclib
 endif
@@ -819,6 +837,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
 endif
@@ -879,6 +900,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
 endif
@@ -900,6 +924,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override CLEAN_UNITS+=lexbase lexopt lexdfa lexpos lexlist lexrules lexmsgs lextable yaccbase yaccmsgs yaccclos yaccpars yacclook yaccsem yacclr0 yacctabl
 endif
@@ -1024,6 +1051,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -1084,6 +1114,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -1105,6 +1138,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 override COMPILER_OPTIONS+=-Sg
 endif
+ifeq ($(FULL_TARGET),armel-android)
+override COMPILER_OPTIONS+=-Sg
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 override COMPILER_OPTIONS+=-Sg
 endif
@@ -1341,6 +1377,12 @@ SHAREDLIBEXT=.dll
 SHORTSUFFIX=wat
 IMPORTLIBPREFIX=
 endif
+ifeq ($(OS_TARGET),android)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=lnx
+endif
 ifeq ($(OS_TARGET),linux)
 BATCHEXT=.sh
 EXEEXT=
@@ -1829,6 +1871,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc-aix)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),powerpc-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1889,6 +1934,9 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1910,6 +1958,9 @@ endif
 ifeq ($(FULL_TARGET),armeb-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),armel-android)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),mips-linux)
 REQUIRE_PACKAGES_RTL=1
 endif

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików