Przeglądaj źródła

Merged revisions 9187,9211,9213 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

........
r9187 | michael | 2007-11-10 23:40:13 +0100 (Sat, 10 Nov 2007) | 1 line

* Regenerated so x86_64-darwin is included
........
r9213 | michael | 2007-11-12 10:01:59 +0100 (Mon, 12 Nov 2007) | 1 line

* Initial RTF export support
........

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

joost 17 lat temu
rodzic
commit
d86f98cdc9

+ 1 - 0
.gitattributes

@@ -3939,6 +3939,7 @@ packages/fcl-db/src/export/fpcsvexport.pp svneol=native#text/plain
 packages/fcl-db/src/export/fpdbexport.pp svneol=native#text/plain
 packages/fcl-db/src/export/fpdbfexport.pp svneol=native#text/plain
 packages/fcl-db/src/export/fpfixedexport.pp svneol=native#text/plain
+packages/fcl-db/src/export/fprtfexport.pp svneol=native#text/plain
 packages/fcl-db/src/export/fpsimplejsonexport.pp svneol=native#text/plain
 packages/fcl-db/src/export/fpsimplexmlexport.pp svneol=native#text/plain
 packages/fcl-db/src/export/fpsqlexport.pp svneol=native#text/plain

+ 118 - 106
packages/fcl-db/src/datadict/Makefile

@@ -1,8 +1,8 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/05]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2008/01/07]
 #
 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-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
@@ -243,316 +243,322 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-db
 PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddpq fpddsqlite3
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddpq fpddodbc fpddsqlite3
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddpq fpddsqlite3
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_UNITS+=fpdatadict fpdddbf fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddpq fpddsqlite3
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddpq fpddodbc fpddsqlite3
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddpq fpddsqlite3
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb  fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb
 endif
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
@@ -675,6 +681,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -1579,6 +1588,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 endif

+ 18 - 4
packages/fcl-db/src/datadict/Makefile.fpc

@@ -6,10 +6,24 @@
 main=fcl-db
 
 [target]
-units=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc \
-      fpddpq fpddoracle fpddsqlite3 fpddregstd
-rsts=fpdatadict fpddfb fpddsqldb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc \
-      fpddpq fpddoracle fpddsqlite3 fpddregstd
+units=fpdatadict fpdddbf fpddsqldb
+units_linux=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+units_freebsd=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+units_darwin=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+units_netbsd=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+units_openbsd=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+units_win32=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+units_wince=fpddfb fpddpq fpddsqlite3
+units_win64=fpddfb fpddpq fpddodbc fpddsqlite3
+rsts=fpdatadict fpddfb fpddsqldb
+rsts_linux=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+rsts_freebsd=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+rsts_darwin=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+rsts_netbsd=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+rsts_openbsd=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+rsts_win32=fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd
+rsts_wince=fpddfb fpddpq fpddsqlite3
+rsts_win64=fpddfb fpddpq fpddodbc fpddsqlite3
 
 [compiler]
 options=-S2h

+ 376 - 0
packages/fcl-db/src/export/fprtfexport.pp

@@ -0,0 +1,376 @@
+unit fprtfexport;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  Classes, SysUtils, DB, dbexport;
+
+Type
+  TRTFExportOption = (reHeaderRow,reHeaderLine,reTopLine,reBottomLine);
+  TRTFExportOptions = Set of TrtfExportOption;
+  
+  { TRTFExportFormatSettings }
+
+  TRTFExportFormatSettings = Class(TExportFormatSettings)
+  Private
+    FOptions : TRTFExportOptions;
+  Public
+    Constructor Create(DoInitSettings : Boolean); override;
+    Procedure Assign(Source : TPersistent); override;
+  Published
+    // Properties
+    Property Options : TRTFExportOptions Read FOptions Write FOptions;
+  end;
+
+  { TRTFExportFieldItem }
+  TRTFExportFieldItem = Class(TExportFieldItem)
+  private
+    FLineAfter: Boolean;
+    FLineBefore: Boolean;
+    FWidth: Integer;
+    FAlign: TAlignment;
+  Public
+    Procedure Assign(Source : TPersistent); override;
+  Published
+    Property Width : Integer Read FWidth Write FWidth;
+    Property Align: TAlignment Read FAlign write FAlign;
+    Property LineBefore : Boolean Read FLineBefore Write FLineBefore;
+    Property LineAfter : Boolean Read FLineAfter Write FLineAfter;
+  end;
+
+  { TCustomRTFExporter }
+
+  TCustomRTFExporter = Class(TCustomFileExporter)
+  Private
+    FCurrentRow : String;
+    FEO : TRTFExportOptions;
+    FTD : String; // Tabular(X) Table definition string
+    FTH : String; // Table header row
+    FTN : String; // Tabular environment name (for closing)
+    function GetRTFFormatsettings: TRTFExportFormatSettings;
+    function MakeCell(S: String; LineBefore, LineAfter: Boolean): string;
+    procedure SetRTFFormatSettings(const AValue: TRTFExportFormatSettings);
+  Protected
+    function EscapeRTF(S: String): String;
+    procedure OutputRow(const ARow: String); virtual;
+    procedure OutputTableEnd; virtual;
+    procedure OutputTableStart; virtual;
+    procedure CloseDocument;  virtual;
+    procedure OpenDocument; virtual;
+    Function CreateFormatSettings : TCustomExportFormatSettings; override;
+    Procedure BuildDefaultFieldMap(AMap : TExportFields); override;
+    Function  CreateExportFields : TExportFields; override;
+    Procedure DoDataHeader; override;
+    Procedure DoDataFooter; override;
+    Procedure DoBeforeExecute; override;
+    Procedure DoAfterExecute; override;
+    Procedure DoDataRowStart; override;
+    Procedure ExportField(EF : TExportFieldItem); override;
+    Procedure DoDataRowEnd; override;
+  Public
+    Property FormatSettings : TRTFExportFormatSettings Read GetRTFFormatsettings Write SetRTFFormatSettings;
+  end;
+
+  TRTFExporter = Class(TCustomRTFExporter)
+  Published
+    Property FileName;
+    Property Dataset;
+    Property ExportFields;
+    Property FromCurrent;
+    Property RestorePosition;
+    Property FormatSettings;
+    Property OnExportRow;
+  end;
+
+Procedure RegisterRTFExporter;
+Procedure UnRegisterRTFExporter;
+
+Const
+  SRTFExport    = 'RTF export';
+  SRTFExportExt = '.rtf';
+  
+
+Resourcestring
+  SRTFExportDescr = 'Export to RTF table';
+
+implementation
+
+procedure RegisterRTFExporter;
+begin
+  ExportFormats.RegisterExportFormat(SRTFExport,SRTFExportDescr,SRTFExportExt,TRTFExporter);
+end;
+
+procedure UnRegisterRTFExporter;
+begin
+  ExportFormats.UnRegisterExportFormat(SRTFExport);
+end;
+
+{ TCustomRTFExporter }
+function TCustomRTFExporter.EscapeRTF(S: String): String;
+
+Var
+  I,J,L : Integer;
+  P : Pchar;
+
+begin
+  I:=1;
+  J:=1;
+  Result:='';
+  L:=Length(S);
+  P:=PChar(S);
+  While I<=L do
+    begin
+    if (P^ in ['\','{','}']) then
+      begin
+      Result:=Result+Copy(S,J,I-J)+'\'+P^;
+      J:=I+1;
+      end;
+    Inc(I);
+    Inc(P);
+    end;
+  Result:=Result+Copy(S,J,I-1);
+end;
+
+function TCustomRTFExporter.GetRTFFormatsettings: TRTFExportFormatSettings;
+begin
+  Result:=TRTFExportFormatSettings(Inherited FormatSettings)
+end;
+
+procedure TCustomRTFExporter.OutputRow(const ARow: String);
+begin
+  Writeln(TextFile,ARow);
+end;
+
+procedure TCustomRTFExporter.BuildDefaultFieldMap(AMap: TexportFields);
+
+Const
+  FieldWidths : Array[TFieldType] of integer
+              = (-1,0,3,10,5,
+                  1,20,20,20,10,8,20,
+                  0,0,10,0,0,0,0,
+                  0,0,0,0,0,
+                  0,0,0,0,0,
+                  0,0,0,0,0,
+                  0,0,0,0,0,0);
+
+Var
+  I  : Integer;
+  FL : TRTFExportFieldItem;
+  F : TField;
+  W : Integer;
+  
+begin
+  inherited BuildDefaultFieldMap(AMap);
+  For I:=0 to AMap.Count-1 do
+    begin
+    FL:=TRTFExportFieldItem(AMAP[i]);
+    F:=Dataset.Fields[i];
+    W:= FieldWidths[F.DataType];
+    If (W>0) then
+      FL.Width:=W
+    else if (W=0) then
+      begin
+      if (F.DataType in StringFieldTypes) then
+        FL.Width:=F.Size;
+      end;
+    If (F.DataType in IntFieldTypes) then
+      Fl.Align:=taRightJustify;
+    end;
+
+end;
+
+function TCustomRTFExporter.CreateExportFields: TexportFields;
+begin
+  Result:=TexportFields.Create(TRTFExportFieldItem);
+end;
+
+procedure TCustomRTFExporter.DoDataHeader;
+
+Var
+  I : Integer;
+  B2 : Boolean;
+  EF : TRTFExportFieldItem;
+  
+begin
+  B2:=reHeaderRow in FEO;
+  If B2 then
+  For I:=0 to ExportFields.Count-1 do
+    begin
+    EF:=TRTFExportFieldItem(ExportFields[i]);
+    If EF.Enabled then
+      begin
+      FTH:=FTH+MakeCell(EF.ExportedName,EF.lineBefore,EF.LineAfter);
+      end;
+    end;
+  OutPutTableStart;
+  inherited DoDataHeader;
+end;
+
+procedure TCustomRTFExporter.DoDataFooter;
+
+begin
+  OutPutTableEnd;
+  Inherited DoDataFooter;
+end;
+
+procedure TCustomRTFExporter.OutputTableEnd;
+
+begin
+  OutputRow('}');
+end;
+
+procedure TCustomRTFExporter.OutputTableStart;
+
+Var
+  S : String;
+  I : Integer;
+
+begin
+  OutputRow('\par{');
+  if (reHeaderLine in FEO) then
+    S := '\trbrdrl\brdrs\brdrw1\trbrdrr\brdrs\brdrw1'
+  else
+    S := '';
+  If reHeaderRow in FEO then
+    begin
+    OutputRow('{\b\trowd'+S+'\trbrdrh\brdrs\trbrdrv\brdrs');
+    OutputRow(FTH);
+    OutputRow('\row}');
+    end;
+end;
+
+procedure TCustomRTFExporter.SetRTFFormatSettings(
+  const AValue: TRTFExportFormatSettings);
+begin
+  Inherited FormatSettings:=AValue
+end;
+
+function TCustomRTFExporter.CreateFormatSettings: TCustomExportFormatSettings;
+begin
+  Result:=TRTFExportFormatSettings.Create(False);
+end;
+
+procedure TCustomRTFExporter.DoBeforeExecute;
+begin
+  inherited DoBeforeExecute;
+  OpenTextFile;
+  FEO:=FormatSettings.Options;
+  FTD:='';
+  FTH:='';
+  OpenDocument;
+end;
+
+procedure TCustomRTFExporter.DoAfterExecute;
+begin
+  CloseDocument;
+  CloseTextFile;
+  inherited DoAfterExecute;
+end;
+
+procedure TCustomRTFExporter.DoDataRowStart;
+begin
+  FCurrentRow:='';
+  inherited DoDataRowStart;
+end;
+
+Function TCustomRTFExporter.MakeCell(S : String; LineBefore,LineAfter : Boolean) : string;
+
+begin
+  Result:='\pard\intbl '+EscapeRTF(S)+'\cell';
+end;
+
+procedure TCustomRTFExporter.ExportField(EF: TExportFieldItem);
+
+Var
+  S : String;
+  RF : TRTFExportFieldItem;
+  
+begin
+  RF:=EF as TRTFExportFieldItem;
+  S:=MakeCell(FormatField(EF.Field),RF.LineBefore,RF.LineAfter);
+  FCurrentRow:=FCurrentRow+S;
+end;
+
+procedure TCustomRTFExporter.DoDataRowEnd;
+
+begin
+  OutputRow('\trowd\trbrdrh\brdrs\trbrdrv\brdrs');
+  OutputRow(FCurrentRow);
+  OutputRow('\row');
+end;
+
+procedure TCustomRTFExporter.OpenDocument;
+
+begin
+  OutputRow('{\rtf1');
+  OutputRow('{\fonttbl');
+    OutputRow('{\f0\fswiss Helvetica{\*\falt Arial};}');
+    OutputRow('{\f1\fmodern Courier{\*\falt Courier New};}');
+    OutputRow('{\f2\froman Times{\*\falt Times New Roman};}');
+  OutputRow('}{\stylesheet');
+    OutputRow('{\s1\li0\fi0\ql\sb240\sa60\keepn\f2\b\fs32 Section Title;}');
+    OutputRow('{\s2\ql\sb30\sa30\keepn\b0\i0\scaps1\f1\fs28 Table Title;}');
+    OutputRow('{\s3\li0\fi0\qc\sb240\sa60\keepn\f2\b\scaps1\fs28 Listing Title;}');
+    OutputRow('{\s4\li30\fi30\ql\f2\fs24 Listing Contents;}');
+    OutputRow('{\s5\li0\fi0\ql\sb240\sa60\keepn\f2\b\fs40 Chapter;}');
+    OutputRow('{\s6\li0\fi0\ql\sb240\sa60\keepn\f2\b\fs32 Section;}');
+    OutputRow('{\s7\li0\fi0\ql\sb240\sa60\keepn\f2\b\fs28 Subsection;}');
+    OutputRow('{\s8\li0\fi0\ql\sb240\sa60\keepn\f2\b\fs24 Subsubsection;}');
+    OutputRow('{\s9\li30\fi10\ql\sb60\keepn\f2\fs24 Description titles;}');
+    OutputRow('{\s10\li30\fi30\ql\fs24 Description;}');
+    OutputRow('{\s11\li0\fi0\ql\fs24 Source Example;}');
+  OutputRow('}');
+end;
+
+procedure TCustomRTFExporter.CloseDocument;
+begin
+  OutputRow('}');
+end;
+
+{ TRTFExportFormatSettings }
+
+constructor TRTFExportFormatSettings.Create(DoInitSettings: Boolean);
+begin
+  inherited Create(DoInitSettings);
+  FOptions:=[reHeaderRow,reTopLine,reBottomLine]
+end;
+
+procedure TRTFExportFormatSettings.Assign(Source: TPersistent);
+
+Var
+  FS : TRTFExportFormatSettings;
+
+begin
+  If (Source is TRTFExportFormatSettings) then
+    begin
+    FS:=Source as TRTFExportFormatSettings;
+    Options:=FS.OPtions;
+    end;
+  inherited Assign(Source);
+end;
+
+{ TRTFExportFieldItem }
+
+procedure TRTFExportFieldItem.Assign(Source: TPersistent);
+
+Var
+  Fi : TRTFExportFieldItem;
+
+begin
+  If (Source is TRTFExportFieldItem) then
+    begin
+    FI:=Source as TRTFExportFieldItem;
+    Width:=FI.Width;
+    Align:=FI.Align;
+    LineBefore:=FI.LineBefore;
+    LineAfter:=FI.LineAfter;
+    end;
+  inherited Assign(Source);
+end;
+
+initialization
+  RegisterRTFExporter
+end.
+