Ver Fonte

Merged revisions 10465,10472,10489-10491,10503,10507,10509-10515,10522,10525-10527,10530-10531,10534,10537-10540,10547,10553,10555,10565,10568,10570,10606,10612-10613,10617,10622-10624,10628,10638-10641,10645-10646,10649,10658,10660-10662,10664-10667,10673-10675,10678-10680,10684-10687,10689,10695,10698-10701,10703,10709,10713-10716,10718-10720,10722 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r10465 | jonas | 2008-03-09 12:06:44 +0100 (Sun, 09 Mar 2008) | 2 lines

* fixed fcl-db dependencies for darwin and solaris
........
r10568 | Almindor | 2008-03-27 16:58:28 +0100 (Thu, 27 Mar 2008) | 1 line

* rename arguments "Text: string" to "aText: string" to prevent name clash in objfpc mode/Lazarus db callbacks AND a very ugly potential bug which happens if you forget to rename the variable in those callbacks :D (I just spent an hour on it damnit!)
........
r10628 | yury | 2008-04-12 13:05:38 +0200 (Sat, 12 Apr 2008) | 1 line

* Fixed packages building for wince.
........
r10638 | jonas | 2008-04-12 21:28:47 +0200 (Sat, 12 Apr 2008) | 4 lines

o BeOS fixes from Olivier Coursi?\195?\131?\194?\168re:
* compilation fix for tthread.inc
* fix BeOS dependencies for fcl-db
........
r10720 | joost | 2008-04-19 21:35:18 +0200 (Sat, 19 Apr 2008) | 1 line

* Indexes based on ftFloat fields were reverted
........
r10722 | joost | 2008-04-19 21:56:22 +0200 (Sat, 19 Apr 2008) | 1 line

* Removed space before fieldname
........

git-svn-id: branches/fixes_2_2@10739 -

joost há 17 anos atrás
pai
commit
050b0bd437

+ 1 - 1
packages/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/04/13]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/04/16]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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 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 sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd 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 avr-embedded armeb-linux armeb-embedded

+ 9 - 1
packages/fcl-db/Makefile

@@ -269,7 +269,7 @@ ifeq ($(FULL_TARGET),i386-freebsd)
 override TARGET_DIRS+=src/sdf src/memds src/sqldb src/base  src/dbase src/sqlite src/paradox src/export src/datadict src/codegen
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/base  src/dbase src/sqlite src/export src/datadict src/codegen
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/base  src/dbase src/sqlite src/paradox src/export src/datadict src/codegen
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 override TARGET_DIRS+=src/sdf src/memds src/sqldb src/base  src/dbase src/sqlite src/paradox
@@ -1421,6 +1421,7 @@ REQUIRE_PACKAGES_MYSQL=1
 REQUIRE_PACKAGES_ODBC=1
 REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_PXLIB=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_FCL-BASE=1
@@ -1477,6 +1478,9 @@ ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
@@ -1672,6 +1676,9 @@ ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
@@ -2531,6 +2538,7 @@ TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/BASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
+TARGET_DIRS_SRC/PARADOX=1
 TARGET_DIRS_SRC/EXPORT=1
 TARGET_DIRS_SRC/DATADICT=1
 TARGET_DIRS_SRC/CODEGEN=1

+ 1 - 1
packages/fcl-db/Makefile.fpc

@@ -8,7 +8,7 @@ version=2.2.1
 
 [target]
 dirs=src/sdf src/memds src/sqldb src/base 
-dirs_beos=src/dbase src/sqlite src/export src/datadict src/codegen
+dirs_beos=src/dbase src/sqlite src/paradox src/export src/datadict src/codegen
 dirs_linux=src/dbase src/sqlite src/paradox src/export src/datadict src/codegen 
 dirs_freebsd=src/dbase src/sqlite src/paradox src/export src/datadict src/codegen
 dirs_darwin=src/dbase src/sqlite

+ 1 - 1
packages/fcl-db/src/base/bufdataset.pas

@@ -346,7 +346,7 @@ end;
 function DBCompareDouble(subValue, aValue: pointer; options: TLocateOptions): LargeInt;
 var Dbl : Double;
 begin
-  Dbl := PDouble(aValue)^-PDouble(subValue)^;
+  Dbl := PDouble(subValue)^-PDouble(aValue)^;
   if dbl < 0 then result := -1
   else if dbl > 0 then result := 1
   else result := 0;

+ 2 - 2
packages/fcl-db/src/base/db.pas

@@ -228,9 +228,9 @@ type
   TFieldKinds = Set of TFieldKind;
 
   TFieldNotifyEvent = procedure(Sender: TField) of object;
-  TFieldGetTextEvent = procedure(Sender: TField; var Text: string;
+  TFieldGetTextEvent = procedure(Sender: TField; var aText: string;
     DisplayText: Boolean) of object;
-  TFieldSetTextEvent = procedure(Sender: TField; const Text: string) of object;
+  TFieldSetTextEvent = procedure(Sender: TField; const aText: string) of object;
   TFieldRef = ^TField;
   TFieldChars = set of Char;
 

+ 91 - 6
packages/fcl-db/src/datadict/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/01/07]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/04/16]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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 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 sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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 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 sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd 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 avr-embedded armeb-linux armeb-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -167,6 +167,17 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(CPU_TARGET),armeb)
+ARCH=arm
+override FPCOPT+=-Cb
+else
+ifeq ($(CPU_TARGET),armel)
+ARCH=arm
+override FPCOPT+=-CaEABI
+else
+ARCH=$(CPU_TARGET)
+endif
+endif
 ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 SOURCESUFFIX=$(OS_SOURCE)
@@ -188,7 +199,7 @@ endif
 ifeq ($(OS_TARGET),linux)
 linuxHier=1
 endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
@@ -377,6 +388,9 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddsqlite3
 endif
@@ -401,6 +415,15 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
@@ -536,6 +559,9 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddpq fpddsqlite3
 endif
@@ -560,6 +586,15 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2h
@@ -696,6 +731,9 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -720,6 +758,15 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1604,7 +1651,12 @@ endif
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_POSTGRES=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
@@ -1800,10 +1852,25 @@ ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_POSTGRES=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
@@ -1845,6 +1912,24 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2106,13 +2191,13 @@ override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS-JEDI)
 endif
 endif
 ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
+override FPCOPTDEF=$(ARCH)
 endif
 ifneq ($(OS_TARGET),$(OS_SOURCE))
 override FPCOPT+=-T$(OS_TARGET)
 endif
 ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
+override FPCOPT+=-P$(ARCH)
 endif
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
@@ -2265,7 +2350,7 @@ endif
 endif
 endif
 .PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
+ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
 override ALLTARGET+=fpc_units
 override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
 override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))

+ 1 - 1
packages/fcl-db/src/datadict/Makefile.fpc

@@ -13,7 +13,7 @@ packages_darwin=ibase mysql oracle sqlite odbc postgres
 packages_netbsd=ibase mysql oracle sqlite odbc postgres
 packages_openbsd=ibase mysql oracle sqlite odbc postgres
 packages_win32=ibase mysql oracle sqlite odbc postgres
-packages_wince=sqlite
+packages_wince=ibase mysql oracle sqlite odbc postgres
 packages_win64=sqlite odbc
 
 [target]

+ 158 - 9
packages/fcl-db/src/sqldb/Makefile

@@ -1,11 +1,12 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/05/08]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/04/16]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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 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 sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos 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 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 sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd 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 avr-embedded armeb-linux armeb-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 PATHSEP=/
 else
@@ -102,7 +108,11 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
 FPC:=$(shell $(FPCPROG) -PB)
+endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
@@ -157,6 +167,17 @@ OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
 endif
 FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
 FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifeq ($(CPU_TARGET),armeb)
+ARCH=arm
+override FPCOPT+=-Cb
+else
+ifeq ($(CPU_TARGET),armel)
+ARCH=arm
+override FPCOPT+=-CaEABI
+else
+ARCH=$(CPU_TARGET)
+endif
+endif
 ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
 TARGETSUFFIX=$(OS_TARGET)
 SOURCESUFFIX=$(OS_SOURCE)
@@ -178,7 +199,7 @@ endif
 ifeq ($(OS_TARGET),linux)
 linuxHier=1
 endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
 ifdef FPCDIR
 override FPCDIR:=$(subst \,/,$(FPCDIR))
 ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
@@ -254,7 +275,7 @@ ifeq ($(FULL_TARGET),i386-darwin)
 override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_DIRS+=interbase postgres sqlite
+override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
@@ -289,14 +310,20 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_DIRS+=interbase odbc mysql sqlite
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
+endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_DIRS+=interbase postgres sqlite
+override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
@@ -304,6 +331,9 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
 endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_DIRS+=interbase postgres mysql odbc oracle sqlite
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=sqldb
 endif
@@ -424,6 +454,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_UNITS+=sqldb
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=sqldb
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=sqldb
 endif
@@ -436,6 +469,9 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_UNITS+=sqldb
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_UNITS+=sqldb
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_UNITS+=sqldb
 endif
@@ -460,6 +496,15 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_UNITS+=sqldb
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_UNITS+=sqldb
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_UNITS+=sqldb
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_UNITS+=sqldb
+endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=sqldb
 endif
@@ -580,6 +625,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_RSTS+=sqldb
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=sqldb
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_RSTS+=sqldb
 endif
@@ -592,6 +640,9 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_RSTS+=sqldb
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_RSTS+=sqldb
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 override TARGET_RSTS+=sqldb
 endif
@@ -616,6 +667,15 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_RSTS+=sqldb
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_RSTS+=sqldb
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_RSTS+=sqldb
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_RSTS+=sqldb
+endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 override COMPILER_OPTIONS+=-S2
@@ -737,6 +797,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -749,6 +812,9 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 override COMPILER_OPTIONS+=-S2
 endif
@@ -773,6 +839,15 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override COMPILER_OPTIONS+=-S2
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1646,6 +1721,9 @@ ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
@@ -1783,6 +1861,15 @@ REQUIRE_PACKAGES_ODBC=1
 REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
@@ -1805,10 +1892,22 @@ endif
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
@@ -1844,6 +1943,21 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),avr-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_RTL),)
@@ -2027,20 +2141,20 @@ override COMPILER_UNITDIR+=$(UNITDIR_SQLITE)
 endif
 endif
 ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
+override FPCOPTDEF=$(ARCH)
 endif
 ifneq ($(OS_TARGET),$(OS_SOURCE))
 override FPCOPT+=-T$(OS_TARGET)
 endif
 ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
+override FPCOPT+=-P$(ARCH)
 endif
 ifeq ($(OS_SOURCE),openbsd)
 override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -2178,11 +2292,15 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 endif
 endif
+endif
 .PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
+ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
 override ALLTARGET+=fpc_units
 override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
 override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
@@ -2233,6 +2351,7 @@ vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
 vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
+vpath %.inc $(COMPILER_INCLUDEDIR)
 vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
 vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
 .PHONY: fpc_shared
@@ -2569,6 +2688,9 @@ endif
 ifeq ($(FULL_TARGET),i386-wince)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_ORACLE=1
 TARGET_DIRS_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
@@ -2659,6 +2781,14 @@ TARGET_DIRS_ODBC=1
 TARGET_DIRS_ORACLE=1
 TARGET_DIRS_SQLITE=1
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+TARGET_DIRS_INTERBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_ORACLE=1
+TARGET_DIRS_SQLITE=1
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_ODBC=1
@@ -2673,9 +2803,20 @@ TARGET_DIRS_ODBC=1
 TARGET_DIRS_ORACLE=1
 TARGET_DIRS_SQLITE=1
 endif
+ifeq ($(FULL_TARGET),arm-darwin)
+TARGET_DIRS_INTERBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_ORACLE=1
+TARGET_DIRS_SQLITE=1
+endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_INTERBASE=1
 TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_ORACLE=1
 TARGET_DIRS_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
@@ -2694,6 +2835,14 @@ TARGET_DIRS_ODBC=1
 TARGET_DIRS_ORACLE=1
 TARGET_DIRS_SQLITE=1
 endif
+ifeq ($(FULL_TARGET),armeb-linux)
+TARGET_DIRS_INTERBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_ORACLE=1
+TARGET_DIRS_SQLITE=1
+endif
 ifdef TARGET_DIRS_INTERBASE
 interbase_all:
 	$(MAKE) -C interbase all

+ 1 - 1
packages/fcl-db/src/sqldb/Makefile.fpc

@@ -14,7 +14,7 @@ dirs_netbsd=interbase postgres mysql odbc oracle sqlite
 dirs_openbsd=interbase postgres mysql odbc oracle sqlite
 dirs_win32=interbase postgres mysql odbc oracle sqlite
 dirs_win64=interbase odbc mysql sqlite
-dirs_wince=interbase postgres sqlite
+dirs_wince=interbase postgres mysql odbc oracle sqlite
 units=sqldb
 rsts=sqldb
 

+ 1 - 1
packages/fcl-db/tests/testdbbasics.pas

@@ -1321,7 +1321,7 @@ begin
   with ds do
     begin
 
-    AddIndex('testindex','F'+FieldTypeNames[ftString]+'; F'+FieldTypeNames[ftInteger],[]);
+    AddIndex('testindex','F'+FieldTypeNames[ftString]+';F'+FieldTypeNames[ftInteger],[]);
     FList := TStringList.Create;
     FList.Sorted:=true;
     FList.CaseSensitive:=True;

+ 4 - 1
rtl/beos/tthread.inc

@@ -361,8 +361,11 @@ begin
 end;
 
 procedure SemaphorePost(const FSem: Pointer);
+var
+  b : byte;
 begin
-  fpwrite(PFilDes(FSem)^[1], #0, 1);
+  b := 0;
+  fpwrite(PFilDes(FSem)^[1], b, 1);
 end;
 
 procedure SemaphoreDestroy(const FSem: Pointer);