summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2007-03-16 20:14:56 +0000
committerjoost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2>2007-03-16 20:14:56 +0000
commit2cc5f4c0984d30f9fc05c2a4fc66898914f6f93e (patch)
tree8b2c0fe983f0ad90bdcae8f82283a63d0d16c129
parent6d6b6f1abd0b2106c406e16207aa98c407da1bca (diff)
downloadfpc-2cc5f4c0984d30f9fc05c2a4fc66898914f6f93e.tar.gz
Merged revisions 6879-6880,6884,6886-6887 via svnmerge from
svn+ssh://joost@svn.freepascal.org/FPC/svn/fpc/trunk ........ r6879 | joost | 2007-03-16 13:49:06 +0100 (Fri, 16 Mar 2007) | 5 lines Patch (adapted) from Thorsten Engler: * Added TWideStringField, TGUIDField, TVariantField * Published TCurrencyField.Currency * TBlobField.GetAsString/SetAsString only calls ReadBuffer if size>0 ........ r6880 | joost | 2007-03-16 14:14:24 +0100 (Fri, 16 Mar 2007) | 1 line * Removed unmaintained db-stuff ........ r6884 | joost | 2007-03-16 20:34:34 +0100 (Fri, 16 Mar 2007) | 3 lines * Patch from Luiz Americo: * Fix automatic call of ApplyUpdates while closing the dataset * Change the license to modified LGPL ........ r6886 | joost | 2007-03-16 20:50:34 +0100 (Fri, 16 Mar 2007) | 1 line * ftWideMemo should be the last TFieldType ........ r6887 | joost | 2007-03-16 20:53:45 +0100 (Fri, 16 Mar 2007) | 1 line * Reverted wrong commit ........ git-svn-id: http://svn.freepascal.org/svn/fpc/branches/fixes_2_2@6889 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/fcl-db/Makefile200
-rw-r--r--packages/fcl-db/Makefile.fpc2
-rw-r--r--packages/fcl-db/src/db.pas124
-rw-r--r--packages/fcl-db/src/dsparams.inc50
-rw-r--r--packages/fcl-db/src/fields.inc328
-rw-r--r--packages/fcl-db/src/sqldb/postgres/pqconnection.pp2
-rw-r--r--packages/fcl-db/src/sqlite/customsqliteds.pas56
-rw-r--r--packages/fcl-db/src/sqlite/sqlite3ds.pas46
-rw-r--r--packages/fcl-db/src/sqlite/sqliteds.pas46
-rw-r--r--packages/fcl-db/src/unmaintained/Makefile2208
-rw-r--r--packages/fcl-db/src/unmaintained/Makefile.fpc29
-rw-r--r--packages/fcl-db/src/unmaintained/README19
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/Makefile1971
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/Makefile.fpc22
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/createds.pp65
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp522
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp32
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/fpmake.pp20
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/testds.pp177
-rw-r--r--packages/fcl-db/src/unmaintained/ddg/tested.pp235
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/BUGS.known2
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/Makefile2409
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/Makefile.fpc28
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/README67
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/fpmake.inc18
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/fpmake.pp20
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/interbase.pp1264
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/mkdb49
-rw-r--r--packages/fcl-db/src/unmaintained/interbase/testib.pp92
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/Makefile2562
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/Makefile.fpc29
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/fpmake.inc21
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/fpmake.pp20
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/mtest.pp198
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp924
-rw-r--r--packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp982
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/Makefile2256
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/Makefile.fpc30
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/README181
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/fpmake.pp20
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/fpodbc.pp1464
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testbcon.pp63
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testcon.pp19
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testdrcon.pp20
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testenv.pp45
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testfl.pp29
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testodbc.mdbbin4295 -> 0 bytes
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testpa.pp33
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testpk.pp29
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testpr.pp29
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testsql.pp102
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testst.pp62
-rw-r--r--packages/fcl-db/src/unmaintained/odbc/testtl.pp31
-rw-r--r--packages/fcl-db/src/unmaintained/sqlite/Makefile2048
-rw-r--r--packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc24
-rw-r--r--packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas1301
56 files changed, 621 insertions, 22004 deletions
diff --git a/packages/fcl-db/Makefile b/packages/fcl-db/Makefile
index e7a8956d0e..c6b8aef94f 100644
--- a/packages/fcl-db/Makefile
+++ b/packages/fcl-db/Makefile
@@ -1,5 +1,5 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/15]
#
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-embedded
@@ -233,157 +233,157 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
override PACKAGE_NAME=fcl-db
override PACKAGE_VERSION=2.0.0
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/sqlite
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb src/dbase src/sqlite
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
@@ -3352,7 +3352,6 @@ ifeq ($(FULL_TARGET),i386-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3360,13 +3359,11 @@ ifeq ($(FULL_TARGET),i386-go32v2)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-win32)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3374,13 +3371,11 @@ ifeq ($(FULL_TARGET),i386-os2)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-freebsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3388,76 +3383,64 @@ ifeq ($(FULL_TARGET),i386-beos)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-netbsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),i386-solaris)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-qnx)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-netware)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-openbsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),i386-wdosx)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-darwin)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),i386-emx)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-watcom)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-wince)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3465,19 +3448,16 @@ ifeq ($(FULL_TARGET),i386-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),i386-symbian)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3485,7 +3465,6 @@ ifeq ($(FULL_TARGET),m68k-freebsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3493,45 +3472,38 @@ ifeq ($(FULL_TARGET),m68k-netbsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),m68k-amiga)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),m68k-atari)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),m68k-palmos)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),m68k-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),powerpc-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3539,45 +3511,38 @@ ifeq ($(FULL_TARGET),powerpc-netbsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),powerpc-macos)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),sparc-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3585,26 +3550,22 @@ ifeq ($(FULL_TARGET),sparc-netbsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/SQLITE=1
endif
ifeq ($(FULL_TARGET),sparc-solaris)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),sparc-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),x86_64-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3612,7 +3573,6 @@ ifeq ($(FULL_TARGET),x86_64-freebsd)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3620,20 +3580,17 @@ ifeq ($(FULL_TARGET),x86_64-win64)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3641,13 +3598,11 @@ ifeq ($(FULL_TARGET),arm-palmos)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),arm-wince)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3655,31 +3610,26 @@ ifeq ($(FULL_TARGET),arm-gba)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),arm-nds)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),arm-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),arm-symbian)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
TARGET_DIRS_SRC/DBASE=1
TARGET_DIRS_SRC/SQLITE=1
endif
@@ -3687,7 +3637,6 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
TARGET_DIRS_SRC/SDF=1
TARGET_DIRS_SRC/MEMDS=1
TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
endif
ifdef TARGET_DIRS_SRC/SDF
src/sdf_all:
@@ -3824,51 +3773,6 @@ src/sqldb:
$(MAKE) -C src/sqldb all
.PHONY: src/sqldb_all src/sqldb_debug src/sqldb_smart src/sqldb_release src/sqldb_units src/sqldb_examples src/sqldb_shared src/sqldb_install src/sqldb_sourceinstall src/sqldb_exampleinstall src/sqldb_distinstall src/sqldb_zipinstall src/sqldb_zipsourceinstall src/sqldb_zipexampleinstall src/sqldb_zipdistinstall src/sqldb_clean src/sqldb_distclean src/sqldb_cleanall src/sqldb_info src/sqldb_makefiles src/sqldb
endif
-ifdef TARGET_DIRS_SRC/UNMAINTAINED
-src/unmaintained_all:
- $(MAKE) -C src/unmaintained all
-src/unmaintained_debug:
- $(MAKE) -C src/unmaintained debug
-src/unmaintained_smart:
- $(MAKE) -C src/unmaintained smart
-src/unmaintained_release:
- $(MAKE) -C src/unmaintained release
-src/unmaintained_units:
- $(MAKE) -C src/unmaintained units
-src/unmaintained_examples:
- $(MAKE) -C src/unmaintained examples
-src/unmaintained_shared:
- $(MAKE) -C src/unmaintained shared
-src/unmaintained_install:
- $(MAKE) -C src/unmaintained install
-src/unmaintained_sourceinstall:
- $(MAKE) -C src/unmaintained sourceinstall
-src/unmaintained_exampleinstall:
- $(MAKE) -C src/unmaintained exampleinstall
-src/unmaintained_distinstall:
- $(MAKE) -C src/unmaintained distinstall
-src/unmaintained_zipinstall:
- $(MAKE) -C src/unmaintained zipinstall
-src/unmaintained_zipsourceinstall:
- $(MAKE) -C src/unmaintained zipsourceinstall
-src/unmaintained_zipexampleinstall:
- $(MAKE) -C src/unmaintained zipexampleinstall
-src/unmaintained_zipdistinstall:
- $(MAKE) -C src/unmaintained zipdistinstall
-src/unmaintained_clean:
- $(MAKE) -C src/unmaintained clean
-src/unmaintained_distclean:
- $(MAKE) -C src/unmaintained distclean
-src/unmaintained_cleanall:
- $(MAKE) -C src/unmaintained cleanall
-src/unmaintained_info:
- $(MAKE) -C src/unmaintained info
-src/unmaintained_makefiles:
- $(MAKE) -C src/unmaintained makefiles
-src/unmaintained:
- $(MAKE) -C src/unmaintained all
-.PHONY: src/unmaintained_all src/unmaintained_debug src/unmaintained_smart src/unmaintained_release src/unmaintained_units src/unmaintained_examples src/unmaintained_shared src/unmaintained_install src/unmaintained_sourceinstall src/unmaintained_exampleinstall src/unmaintained_distinstall src/unmaintained_zipinstall src/unmaintained_zipsourceinstall src/unmaintained_zipexampleinstall src/unmaintained_zipdistinstall src/unmaintained_clean src/unmaintained_distclean src/unmaintained_cleanall src/unmaintained_info src/unmaintained_makefiles src/unmaintained
-endif
ifdef TARGET_DIRS_SRC/DBASE
src/dbase_all:
$(MAKE) -C src/dbase all
diff --git a/packages/fcl-db/Makefile.fpc b/packages/fcl-db/Makefile.fpc
index c2b66423d8..dc04129c50 100644
--- a/packages/fcl-db/Makefile.fpc
+++ b/packages/fcl-db/Makefile.fpc
@@ -7,7 +7,7 @@ name=fcl-db
version=2.0.0
[target]
-dirs=src/sdf src/memds src/sqldb src/unmaintained
+dirs=src/sdf src/memds src/sqldb
dirs_linux=src/dbase src/sqlite
dirs_freebsd=src/dbase src/sqlite
dirs_darwin=src/sqlite
diff --git a/packages/fcl-db/src/db.pas b/packages/fcl-db/src/db.pas
index 7743c36c0f..232174fc1c 100644
--- a/packages/fcl-db/src/db.pas
+++ b/packages/fcl-db/src/db.pas
@@ -128,7 +128,7 @@ type
ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar,
ftWideString, ftLargeint, ftADT, ftArray, ftReference,
ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface,
- ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);
+ ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, ftWideMemo);
{ Part of DBCommon, but temporary defined here (bug 8206) }
@@ -339,6 +339,7 @@ type
function GetAsVariant: variant; virtual;
function GetOldValue: variant; virtual;
function GetAsString: string; virtual;
+ function GetAsWideString: WideString; virtual;
function GetCanModify: Boolean; virtual;
function GetClassDesc: String; virtual;
function GetDataSize: Word; virtual;
@@ -362,6 +363,7 @@ type
procedure SetAsLargeint(AValue: Largeint); virtual;
procedure SetAsVariant(AValue: variant); virtual;
procedure SetAsString(const AValue: string); virtual;
+ procedure SetAsWideString(const aValue: WideString); virtual;
procedure SetDataType(AValue: TFieldType);
procedure SetNewValue(const AValue: Variant);
procedure SetSize(AValue: Word); virtual;
@@ -392,6 +394,7 @@ type
property AsLargeInt: LargeInt read GetAsLargeInt write SetAsLargeInt;
property AsInteger: Integer read GetAsInteger write SetAsInteger;
property AsString: string read GetAsString write SetAsString;
+ property AsWideString: WideString read GetAsWideString write SetAsWideString;
property AsVariant: variant read GetAsVariant write SetAsVariant;
property AttributeSet: string read FAttributeSet write FAttributeSet;
property Calculated: Boolean read FCalculated write FCalculated;
@@ -474,6 +477,30 @@ type
property Size default 20;
end;
+{ TWideStringField }
+
+ TWideStringField = class(TStringField)
+ protected
+ class procedure CheckTypeSize(aValue: Integer); override;
+
+ function GetValue(var aValue: WideString): Boolean;
+
+ function GetAsString: string; override;
+ procedure SetAsString(const aValue: string); override;
+
+ function GetAsVariant: Variant; override;
+ procedure SetVarValue(const aValue: Variant); override;
+
+ function GetAsWideString: WideString; override;
+ procedure SetAsWideString(const aValue: WideString); override;
+
+ function GetDataSize: Word; override;
+ public
+ constructor Create(aOwner: TComponent); override;
+ property Value: WideString read GetAsWideString write SetAsWideString;
+ end;
+
+
{ TNumericField }
TNumericField = class(TField)
Private
@@ -608,7 +635,7 @@ type
property Value: Double read GetAsFloat write SetAsFloat;
published
- property Currency: Boolean read FCurrency write SetCurrency;
+ property Currency: Boolean read FCurrency write SetCurrency default False;
property MaxValue: Double read FMaxValue write FMaxValue;
property MinValue: Double read FMinValue write FMinValue;
property Precision: Longint read FPrecision write FPrecision default 15;
@@ -619,6 +646,8 @@ type
TCurrencyField = class(TFloatField)
public
constructor Create(AOwner: TComponent); override;
+ published
+ property Currency default True;
end;
{ TBooleanField }
@@ -757,7 +786,7 @@ type
{ TBlobField }
TBlobStreamMode = (bmRead, bmWrite, bmReadWrite);
- TBlobType = ftBlob..ftTypedBinary;
+ TBlobType = ftBlob..ftWideMemo;
TBlobField = class(TField)
private
@@ -777,6 +806,8 @@ type
procedure SetAsString(const AValue: string); override;
procedure SetText(const AValue: string); override;
procedure SetVarValue(const AValue: Variant); override;
+ function GetAsWideString: WideString; override;
+ procedure SetAsWideString(const aValue: WideString); override;
public
constructor Create(AOwner: TComponent); override;
procedure Assign(Source: TPersistent); override;
@@ -799,12 +830,31 @@ type
{ TMemoField }
TMemoField = class(TBlobField)
+ protected
+ function GetAsWideString: WideString; override;
+ procedure SetAsWideString(const aValue: WideString); override;
public
constructor Create(AOwner: TComponent); override;
published
property Transliterate default True;
end;
+{ TWideMemoField }
+
+ TWideMemoField = class(TBlobField)
+ protected
+ function GetAsVariant: Variant; override;
+ procedure SetVarValue(const AValue: Variant); override;
+
+ function GetAsString: string; override;
+ procedure SetAsString(const aValue: string); override;
+ public
+ constructor Create(aOwner: TComponent); override;
+ property Value: WideString read GetAsWideString write SetAsWideString;
+ published
+ end;
+
+
{ TGraphicField }
TGraphicField = class(TBlobField)
@@ -812,6 +862,52 @@ type
constructor Create(AOwner: TComponent); override;
end;
+{ TVariantField }
+
+ TVariantField = class(TField)
+ protected
+ class procedure CheckTypeSize(aValue: Integer); override;
+
+ function GetAsBoolean: Boolean; override;
+ procedure SetAsBoolean(aValue: Boolean); override;
+
+ function GetAsDateTime: TDateTime; override;
+ procedure SetAsDateTime(aValue: TDateTime); override;
+
+ function GetAsFloat: Double; override;
+ procedure SetAsFloat(aValue: Double); override;
+
+ function GetAsInteger: Longint; override;
+ procedure SetAsInteger(aValue: Longint); override;
+
+ function GetAsString: string; override;
+ procedure SetAsString(const aValue: string); override;
+
+ function GetAsWideString: WideString; override;
+ procedure SetAsWideString(const aValue: WideString); override;
+
+ function GetAsVariant: Variant; override;
+ procedure SetVarValue(const aValue: Variant); override;
+
+ function GetDefaultWidth: Integer; override;
+ public
+ constructor Create(AOwner: TComponent); override;
+ end;
+
+{ TGuidField }
+
+ TGuidField = class(TStringField)
+ protected
+ class procedure CheckTypeSize(AValue: Longint); override;
+ function GetDefaultWidth: Longint; override;
+
+ function GetAsGuid: TGUID;
+ procedure SetAsGuid(const aValue: TGUID);
+ public
+ constructor Create(AOwner: TComponent); override;
+ property AsGuid: TGUID read GetAsGuid write SetAsGuid;
+ end;
+
{ TIndexDef }
TIndexDefs = class;
@@ -1614,6 +1710,8 @@ type
Procedure SetAsWord(AValue: LongInt);
Procedure SetDataType(AValue: TFieldType);
Procedure SetText(const AValue: string);
+ function GetAsWideString: WideString;
+ procedure SetAsWideString(const aValue: WideString);
public
constructor Create(ACollection: TCollection); overload; override;
constructor Create(AParams: TParams; AParamType: TParamType); reintroduce; overload;
@@ -1648,6 +1746,7 @@ type
Property NativeStr : string read FNativeStr write FNativeStr;
Property Text : string read GetAsString write SetText;
Property Value : Variant read GetAsVariant write SetAsVariant stored IsParamStored;
+ property AsWideString: WideString read GetAsWideString write SetAsWideString;
published
Property DataType : TFieldType read FDataType write SetDataType;
Property Name : string read FName write FName;
@@ -1712,7 +1811,8 @@ const
varDate, varDate, varDate, varOleStr, varOleStr, varInteger, varOleStr,
varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varError,
varOleStr, varOleStr, varError, varError, varError, varError, varError,
- varOleStr, varOleStr, varVariant, varUnknown, varDispatch, varOleStr, varOleStr,varOleStr);
+ varOleStr, varOleStr, varVariant, varUnknown, varDispatch, varOleStr,
+ varOleStr,varOleStr, varOleStr,varOleStr);
Const
@@ -1755,7 +1855,9 @@ Const
'IDispatch',
'Guid',
'TimeStamp',
- 'FMTBcd'
+ 'FMTBcd',
+ 'FixedWideChar',
+ 'WideMemo'
);
{ 'Unknown',
'String',
@@ -1800,13 +1902,13 @@ const
{ ftBlob} TBlobField,
{ ftMemo} TMemoField,
{ ftGraphic} TGraphicField,
- { ftFmtMemo} TMemoField,
+ { ftFmtMemo} TBlobField,
{ ftParadoxOle} TBlobField,
{ ftDBaseOle} TBlobField,
{ ftTypedBinary} TBlobField,
{ ftCursor} Nil,
{ ftFixedChar} TStringField,
- { ftWideString} Nil,
+ { ftWideString} TWideStringField,
{ ftLargeint} TLargeIntField,
{ ftADT} Nil,
{ ftArray} Nil,
@@ -1814,12 +1916,14 @@ const
{ ftDataSet} Nil,
{ ftOraBlob} TBlobField,
{ ftOraClob} TMemoField,
- { ftVariant} Nil,
+ { ftVariant} TVariantField,
{ ftInterface} Nil,
{ ftIDispatch} Nil,
- { ftGuid} Nil,
+ { ftGuid} TGuidField,
{ ftTimeStamp} Nil,
- { ftFMTBcd} Nil
+ { ftFMTBcd} Nil,
+ { ftFixedWideString} TWideStringField,
+ { ftWideMemo} TWideMemoField
);
dsEditModes = [dsEdit, dsInsert, dsSetKey];
diff --git a/packages/fcl-db/src/dsparams.inc b/packages/fcl-db/src/dsparams.inc
index d4c5464db5..df80566d7b 100644
--- a/packages/fcl-db/src/dsparams.inc
+++ b/packages/fcl-db/src/dsparams.inc
@@ -537,6 +537,15 @@ begin
Result:=FValue;
end;
+function TParam.GetAsWideString: WideString;
+begin
+ if IsNull then
+ Result := ''
+ else
+ Result := FValue;
+end;
+
+
Function TParam.GetAsVariant: Variant;
begin
if IsNull then
@@ -637,9 +646,18 @@ end;
Procedure TParam.SetAsString(const AValue: string);
begin
FValue:=AValue;
- FDataType:=ftString;
+ if FDataType <> ftFixedChar then
+ FDataType := ftString;
+end;
+
+procedure TParam.SetAsWideString(const aValue: WideString);
+begin
+ FValue := aValue;
+ if FDataType <> ftFixedWideChar then
+ FDataType := ftWideString;
end;
+
Procedure TParam.SetAsTime(const AValue: TDateTime);
begin
FValue:=AValue;
@@ -832,18 +850,26 @@ Procedure TParam.AssignFieldValue(Field: TField; const AValue: Variant);
begin
If Assigned(Field) then
begin
+
if (Field.DataType = ftString) and TStringField(Field).FixedChar then
- DataType:=ftFixedChar
+ DataType := ftFixedChar
else if (Field.DataType = ftMemo) and (Field.Size > 255) then
- DataType:=ftString
+ DataType := ftString
+ else if (Field.DataType = ftWideString) and TWideStringField(Field).FixedChar then
+ DataType := ftFixedWideChar
+ else if (Field.DataType = ftWideMemo) and (Field.Size > 255) then
+ DataType := ftWideString
else
- DataType:=Field.DataType;
+ DataType := Field.DataType;
+
if VarIsNull(AValue) then
Clear
else
Value:=AValue;
+
Size:=Field.DataSize;
FBound:=True;
+
end;
end;
@@ -855,9 +881,10 @@ end;
Procedure TParam.GetData(Buffer: Pointer);
Var
- P : Pointer;
- S : String;
-
+ P : Pointer;
+ S : String;
+ ws : WideString;
+ l : Integer;
begin
case FDataType of
ftUnknown : DatabaseErrorFmt(SUnknownParamFieldType,[Name],DataSet);
@@ -876,6 +903,15 @@ begin
S:=AsString;
StrMove(PChar(Buffer),Pchar(S),Length(S)+1);
end;
+ ftWideString,
+ ftWideMemo: begin
+ ws := GetAsWideString;
+ l := Length(ws);
+ if l > 0 then
+ Move(ws[1], Buffer, Succ(l)*2)
+ else
+ PWideChar(Buffer)^ := #0
+ end;
ftTime : PInteger(Buffer)^:=DateTimeToTimeStamp(AsTime).Time;
ftDate : PInteger(Buffer)^:=DateTimeToTimeStamp(AsTime).Date;
ftDateTime : PDouble(Buffer)^:=TimeStampToMSecs(DateTimeToTimeStamp(AsDateTime));
diff --git a/packages/fcl-db/src/fields.inc b/packages/fcl-db/src/fields.inc
index b2aa0d741d..f7fa1ade5a 100644
--- a/packages/fcl-db/src/fields.inc
+++ b/packages/fcl-db/src/fields.inc
@@ -329,12 +329,12 @@ begin
Error;
vtAnsiString:
AsString := string(VAnsiString);
-// vtCurrency:
-// AsCurrency := VCurrency^;
+ vtCurrency:
+ AsCurrency := VCurrency^;
vtVariant:
if not VarIsClear(VVariant^) then Self.Value := VVariant^;
vtWideString:
- AsString := WideString(VWideString);
+ AsWideString := WideString(VWideString);
vtInt64:
{$ifdef fpc}
Self.Value := VInt64^;
@@ -429,6 +429,11 @@ begin
Result := GetClassDesc;
end;
+function TField.GetAsWideString: WideString;
+begin
+ Result := GetAsString;
+end;
+
function TField.GetOldValue: Variant;
var SaveState : TDatasetState;
@@ -750,6 +755,12 @@ begin
Raise AccessError(SString);
end;
+procedure TField.SetAsWideString(const aValue: WideString);
+begin
+ SetAsString(aValue);
+end;
+
+
procedure TField.SetData(Buffer: Pointer);
begin
@@ -793,7 +804,7 @@ end;
procedure TField.SetFieldType(AValue: TFieldType);
begin
- //!! To be implemented
+ { empty }
end;
procedure TField.SetParentComponent(AParent: TComponent);
@@ -1078,6 +1089,91 @@ begin
end;
{ ---------------------------------------------------------------------
+ TWideStringField
+ ---------------------------------------------------------------------}
+
+class procedure TWideStringField.CheckTypeSize(aValue: Integer);
+begin
+ if aValue <= 0 then
+ DatabaseErrorFmt(SInvalidFieldSize,[aValue]);
+end;
+
+constructor TWideStringField.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ SetDataType(ftWideString);
+end;
+
+function TWideStringField.GetValue(var aValue: WideString): Boolean;
+var
+ FixBuffer : array[0..dsMaxStringSize div 2] of WideChar;
+ DynBuffer : array of WideChar;
+ Buffer : PWideChar;
+begin
+ if DataSize <= dsMaxStringSize then begin
+ Result := GetData(@FixBuffer, False);
+ aValue := FixBuffer;
+ end else begin
+ SetLength(DynBuffer, Succ(Size));
+ Buffer := PWideChar(DynBuffer);
+ Result := GetData(Buffer, False);
+ if Result then
+ aValue := Buffer;
+ end;
+end;
+
+function TWideStringField.GetAsString: string;
+begin
+ Result := GetAsWideString;
+end;
+
+procedure TWideStringField.SetAsString(const aValue: string);
+begin
+ SetAsWideString(aValue);
+end;
+
+function TWideStringField.GetAsVariant: Variant;
+var
+ ws: WideString;
+begin
+ if GetValue(ws) then
+ Result := ws
+ else
+ Result := Null;
+end;
+
+procedure TWideStringField.SetVarValue(const aValue: Variant);
+begin
+ SetAsWideString(aValue);
+end;
+
+function TWideStringField.GetAsWideString: WideString;
+begin
+ if not GetValue(Result) then
+ Result := '';
+end;
+
+procedure TWideStringField.SetAsWideString(const aValue: WideString);
+const
+ NullWideChar : WideChar = #0;
+var
+ Buffer : PWideChar;
+begin
+ if Length(aValue)>0 then
+ Buffer := PWideChar(@aValue[1])
+ else
+ Buffer := @NullWideChar;
+ SetData(Buffer, False);
+end;
+
+function TWideStringField.GetDataSize: Word;
+begin
+ Result :=
+ (Size + 1) * 2;
+end;
+
+
+{ ---------------------------------------------------------------------
TNumericField
---------------------------------------------------------------------}
@@ -2181,14 +2277,37 @@ end;
function TBlobField.GetAsString: string;
var
- Stream: TStream;
+ Stream : TStream;
+ Len : Integer;
begin
Stream := GetBlobStream(bmRead);
if Stream <> nil then
With Stream do
try
- SetLength(Result,Size);
- ReadBuffer(Pointer(Result)^,Size);
+ Len := Size;
+ SetLength(Result, Len);
+ if Len > 0 then
+ ReadBuffer(Result[1], Len);
+ finally
+ Free
+ end
+ else
+ Result := '';
+end;
+
+function TBlobField.GetAsWideString: WideString;
+var
+ Stream : TStream;
+ Len : Integer;
+begin
+ Stream := GetBlobStream(bmRead);
+ if Stream <> nil then
+ With Stream do
+ try
+ Len := Size;
+ SetLength(Result,Len div 2);
+ if Len > 0 then
+ ReadBuffer(Result[1] ,Len);
finally
Free
end
@@ -2250,11 +2369,29 @@ end;
procedure TBlobField.SetAsString(const AValue: string);
+var
+ Len : Integer;
+begin
+ With GetBlobStream(bmwrite) do
+ try
+ Len := Length(Avalue);
+ if Len > 0 then
+ WriteBuffer(aValue[1], Len);
+ finally
+ Free;
+ end;
+end;
+
+procedure TBlobField.SetAsWideString(const AValue: WideString);
+var
+ Len : Integer;
begin
With GetBlobStream(bmwrite) do
try
- WriteBuffer(Pointer(Avalue)^,Length(Avalue));
+ Len := Length(Avalue) * 2;
+ if Len > 0 then
+ WriteBuffer(aValue[1], Len);
finally
Free;
end;
@@ -2355,7 +2492,6 @@ begin
end;
end;
-
procedure TBlobField.SetFieldType(AValue: TFieldType);
begin
@@ -2363,8 +2499,6 @@ begin
SetDatatype(Avalue);
end;
-
-
{ TMemoField }
constructor TMemoField.Create(AOwner: TComponent);
@@ -2374,6 +2508,51 @@ begin
SetDataType(ftMemo);
end;
+function TMemoField.GetAsWideString: WideString;
+begin
+ Result := GetAsString;
+end;
+
+procedure TMemoField.SetAsWideString(const aValue: WideString);
+begin
+ SetAsString(aValue);
+end;
+
+{ TWideMemoField }
+
+constructor TWideMemoField.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ SetDataType(ftWideMemo);
+end;
+
+function TWideMemoField.GetAsString: string;
+begin
+ Result := GetAsWideString;
+end;
+
+procedure TWideMemoField.SetAsString(const aValue: string);
+begin
+ SetAsWideString(aValue);
+end;
+
+function TWideMemoField.GetAsVariant: Variant;
+
+Var s : string;
+
+begin
+ if not GetIsNull then
+ begin
+ s := GetAsWideString;
+ result := s;
+ end
+ else result := Null;
+end;
+
+procedure TWideMemoField.SetVarValue(const AValue: Variant);
+begin
+ SetAsWideString(AValue);
+end;
{ TGraphicField }
@@ -2384,6 +2563,133 @@ begin
SetDataType(ftGraphic);
end;
+{ TGuidField }
+
+constructor TGuidField.Create(AOwner: TComponent);
+begin
+ Size := 38;
+ inherited Create(AOwner);
+ SetDataType(ftGuid);
+end;
+
+class procedure TGuidField.CheckTypeSize(AValue: LongInt);
+begin
+ if aValue <> 38 then
+ DatabaseErrorFmt(SInvalidFieldSize,[AValue]);
+end;
+
+function TGuidField.GetAsGuid: TGUID;
+const
+ nullguid: TGUID = '{00000000-0000-0000-0000-000000000000}';
+var
+ S: string;
+begin
+ S := GetAsString;
+ if S = '' then
+ Result := nullguid
+ else
+ Result := StringToGuid(S);
+end;
+
+function TGuidField.GetDefaultWidth: LongInt;
+begin
+ Result := 38;
+end;
+
+procedure TGuidField.SetAsGuid(const aValue: TGUID);
+begin
+ SetAsString(GuidToString(aValue));
+end;
+
+function TVariantField.GetDefaultWidth: Integer;
+begin
+ Result := 15;
+end;
+
+{ TVariantField }
+
+constructor TVariantField.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ SetDataType(ftVariant);
+end;
+
+class procedure TVariantField.CheckTypeSize(aValue: Integer);
+begin
+ { empty }
+end;
+
+function TVariantField.GetAsBoolean: Boolean;
+begin
+ Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsDateTime: TDateTime;
+begin
+ Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsFloat: Double;
+begin
+ Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsInteger: Longint;
+begin
+ Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsString: string;
+begin
+ Result := VarToStr(GetAsVariant);
+end;
+
+function TVariantField.GetAsWideString: WideString;
+begin
+ Result := VarToWideStr(GetAsVariant);
+end;
+
+function TVariantField.GetAsVariant: Variant;
+begin
+ if not GetData(@Result) then
+ Result := Null;
+end;
+
+procedure TVariantField.SetAsBoolean(aValue: Boolean);
+begin
+ SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsDateTime(aValue: TDateTime);
+begin
+ SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsFloat(aValue: Double);
+begin
+ SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsInteger(aValue: Longint);
+begin
+ SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsString(const aValue: string);
+begin
+ SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsWideString(const aValue: WideString);
+begin
+ SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetVarValue(const aValue: Variant);
+begin
+ SetData(@aValue);
+end;
+
{ TFields }
diff --git a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
index 6efcafb743..76a8931ead 100644
--- a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
+++ b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
@@ -458,6 +458,8 @@ const TypeStrings : array[TFieldType] of string =
'Unknown',
'Unknown',
'Unknown',
+ 'Unknown',
+ 'Unknown',
'Unknown'
);
diff --git a/packages/fcl-db/src/sqlite/customsqliteds.pas b/packages/fcl-db/src/sqlite/customsqliteds.pas
index 07559ee1e6..b5b97c1ff2 100644
--- a/packages/fcl-db/src/sqlite/customsqliteds.pas
+++ b/packages/fcl-db/src/sqlite/customsqliteds.pas
@@ -1,24 +1,34 @@
unit customsqliteds;
{
- This is TCustomSqliteDataset, a TDataset descendant class for use with fpc compiler
- Copyright (C) 2004 Luiz Américo Pereira Câmara
- Email: pascalive@bol.com.br
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ This is TCustomSqliteDataset, a TDataset descendant class for use with fpc compiler
+ Copyright (C) 2004-2007 Luiz Américo Pereira Câmara
+ Email: pascalive@bol.com.br
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version with the following modification:
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,and
+ to copy and distribute the resulting executable under terms of your choice,
+ provided that you also meet, for each linked independent module, the terms
+ and conditions of the license of that module. An independent module is a
+ module which is not derived from or based on this library. If you modify
+ this library, you may extend this exception to your version of the library,
+ but you are not obligated to do so. If you do not wish to do so, delete this
+ exception statement from your version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
+ for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
{$Mode ObjFpc}
@@ -139,6 +149,7 @@ type
//TDataSet overrides
function AllocRecordBuffer: PChar; override;
function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override;
+ procedure DoBeforeClose; override;
procedure DoAfterInsert; override;
procedure DoBeforeInsert; override;
procedure FreeRecordBuffer(var Buffer: PChar); override;
@@ -420,6 +431,13 @@ begin
Result:= TDSStream.Create(PPDataRecord(ActiveBuffer)^,Field.FieldNo - 1);
end;
+procedure TCustomSqliteDataset.DoBeforeClose;
+begin
+ if FSaveOnClose then
+ ApplyUpdates;
+ inherited DoBeforeClose;
+end;
+
procedure TCustomSqliteDataset.DoAfterInsert;
begin
//an append or an insert in an empty dataset
@@ -717,8 +735,6 @@ end;
procedure TCustomSqliteDataset.InternalClose;
begin
- if FSaveOnClose then
- ApplyUpdates;
//BindFields(False);
if DefaultFields then
DestroyFields;
diff --git a/packages/fcl-db/src/sqlite/sqlite3ds.pas b/packages/fcl-db/src/sqlite/sqlite3ds.pas
index 7b58e5acca..ef3bece3bd 100644
--- a/packages/fcl-db/src/sqlite/sqlite3ds.pas
+++ b/packages/fcl-db/src/sqlite/sqlite3ds.pas
@@ -1,24 +1,34 @@
unit sqlite3ds;
{
- This is TSqlite3Dataset, a TDataset descendant class for use with fpc compiler
- Copyright (C) 2004 Luiz Américo Pereira Câmara
- Email: pascalive@bol.com.br
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ This is TSqlite3Dataset, a TDataset descendant class for use with fpc compiler
+ Copyright (C) 2004 Luiz Américo Pereira Câmara
+ Email: pascalive@bol.com.br
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version with the following modification:
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,and
+ to copy and distribute the resulting executable under terms of your choice,
+ provided that you also meet, for each linked independent module, the terms
+ and conditions of the license of that module. An independent module is a
+ module which is not derived from or based on this library. If you modify
+ this library, you may extend this exception to your version of the library,
+ but you are not obligated to do so. If you do not wish to do so, delete this
+ exception statement from your version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
+ for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
{$mode objfpc}
diff --git a/packages/fcl-db/src/sqlite/sqliteds.pas b/packages/fcl-db/src/sqlite/sqliteds.pas
index 4b8aecbced..bd2085a225 100644
--- a/packages/fcl-db/src/sqlite/sqliteds.pas
+++ b/packages/fcl-db/src/sqlite/sqliteds.pas
@@ -1,24 +1,34 @@
unit sqliteds;
{
- This is TSqliteDataset, a TDataset descendant class for use with fpc compiler
- Copyright (C) 2004 Luiz Américo Pereira Câmara
- Email: pascalive@bol.com.br
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU Lesser General Public License as published by
- the Free Software Foundation; either version 2.1 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ This is TSqliteDataset, a TDataset descendant class for use with fpc compiler
+ Copyright (C) 2004 Luiz Américo Pereira Câmara
+ Email: pascalive@bol.com.br
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Library General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or (at your
+ option) any later version with the following modification:
+
+ As a special exception, the copyright holders of this library give you
+ permission to link this library with independent modules to produce an
+ executable, regardless of the license terms of these independent modules,and
+ to copy and distribute the resulting executable under terms of your choice,
+ provided that you also meet, for each linked independent module, the terms
+ and conditions of the license of that module. An independent module is a
+ module which is not derived from or based on this library. If you modify
+ this library, you may extend this exception to your version of the library,
+ but you are not obligated to do so. If you do not wish to do so, delete this
+ exception statement from your version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
+ for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
}
{$mode objfpc}
diff --git a/packages/fcl-db/src/unmaintained/Makefile b/packages/fcl-db/src/unmaintained/Makefile
deleted file mode 100644
index 26849c48d7..0000000000
--- a/packages/fcl-db/src/unmaintained/Makefile
+++ /dev/null
@@ -1,2208 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
-#
-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-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_DIRS+=ddg interbase
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_DIRS+=ddg interbase
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_DIRS+=ddg
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=ddg mysql interbase
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_DIRS+=ddg
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-ifeq ($(OS_SOURCE),linux)
-ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifeq ($(CPU_TARGET),powerpc64)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifndef GCCLIBDIR
-CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(CROSSGCC),)
-GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
-endif
-endif
-ifndef OTHERLIBDIR
-OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
-endif
-endif
-ifdef inUnix
-ifeq ($(OS_SOURCE),netbsd)
-OTHERLIBDIR+=/usr/pkg/lib
-endif
-export GCCLIBDIR OTHERLIB
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_MYSQL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifdef REQUIRE_PACKAGES_MYSQL
-PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_MYSQL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_MYSQL=
-UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_MYSQL),)
-UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL))
-else
-UNITDIR_MYSQL=
-endif
-endif
-ifdef UNITDIR_MYSQL
-override COMPILER_UNITDIR+=$(UNITDIR_MYSQL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_IBASE
-PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)
-else
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_IBASE)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_IBASE) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_IBASE)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_IBASE=
-UNITDIR_IBASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /ibase/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_IBASE),)
-UNITDIR_IBASE:=$(firstword $(UNITDIR_IBASE))
-else
-UNITDIR_IBASE=
-endif
-endif
-ifdef UNITDIR_IBASE
-override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef GCCLIBDIR
-override FPCOPT+=-Fl$(GCCLIBDIR)
-endif
-ifdef OTHERLIBDIR
-override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
- $(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
- $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
- $(MKDIR) $(INSTALL_LIBDIR)
- $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
- ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
- $(MKDIR) $(INSTALL_DATADIR)
- $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
- $(MKDIR) $(INSTALL_SOURCEDIR)
- $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
- $(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
- $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
- -$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
- -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
- -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
- -$(DELTREE) units
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
- @$(ECHO)
- @$(ECHO) == Package info ==
- @$(ECHO) Package Name..... $(PACKAGE_NAME)
- @$(ECHO) Package Version.. $(PACKAGE_VERSION)
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC.......... $(FPC)
- @$(ECHO) FPC Version.. $(FPC_VERSION)
- @$(ECHO) Source CPU... $(CPU_SOURCE)
- @$(ECHO) Target CPU... $(CPU_TARGET)
- @$(ECHO) Source OS.... $(OS_SOURCE)
- @$(ECHO) Target OS.... $(OS_TARGET)
- @$(ECHO) Full Source.. $(FULL_SOURCE)
- @$(ECHO) Full Target.. $(FULL_TARGET)
- @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
- @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
- @$(ECHO)
- @$(ECHO) == Directory info ==
- @$(ECHO)
- @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
- @$(ECHO)
- @$(ECHO) Basedir......... $(BASEDIR)
- @$(ECHO) FPCDir.......... $(FPCDIR)
- @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
- @$(ECHO) UnitsDir........ $(UNITSDIR)
- @$(ECHO) PackagesDir..... $(PACKAGESDIR)
- @$(ECHO)
- @$(ECHO) GCC library..... $(GCCLIBDIR)
- @$(ECHO) Other library... $(OTHERLIBDIR)
- @$(ECHO)
- @$(ECHO) == Tools info ==
- @$(ECHO)
- @$(ECHO) As........ $(AS)
- @$(ECHO) Ld........ $(LD)
- @$(ECHO) Ar........ $(AR)
- @$(ECHO) Rc........ $(RC)
- @$(ECHO)
- @$(ECHO) Mv........ $(MVPROG)
- @$(ECHO) Cp........ $(CPPROG)
- @$(ECHO) Rm........ $(RMPROG)
- @$(ECHO) GInstall.. $(GINSTALL)
- @$(ECHO) Echo...... $(ECHO)
- @$(ECHO) Shell..... $(SHELL)
- @$(ECHO) Date...... $(DATE)
- @$(ECHO) FPCMake... $(FPCMAKE)
- @$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
- @$(ECHO) Zip....... $(ZIPPROG)
- @$(ECHO)
- @$(ECHO) == Object info ==
- @$(ECHO)
- @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
- @$(ECHO) Target Units.......... $(TARGET_UNITS)
- @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
- @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
- @$(ECHO) Target Dirs........... $(TARGET_DIRS)
- @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
- @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
- @$(ECHO)
- @$(ECHO) Clean Units......... $(CLEAN_UNITS)
- @$(ECHO) Clean Files......... $(CLEAN_FILES)
- @$(ECHO)
- @$(ECHO) Install Units....... $(INSTALL_UNITS)
- @$(ECHO) Install Files....... $(INSTALL_FILES)
- @$(ECHO)
- @$(ECHO) == Install info ==
- @$(ECHO)
- @$(ECHO) DateStr.............. $(DATESTR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
- @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
- @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
- @$(ECHO) FullZipName.......... $(FULLZIPNAME)
- @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
- @$(ECHO)
- @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
- @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
- @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
- @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
- @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
- @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
- @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
- @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
- @$(ECHO)
- @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
- @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
- @$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
- fpc_makefile_dirs
-fpc_makefile:
- $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-ifeq ($(FULL_TARGET),i386-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-TARGET_DIRS_DDG=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-TARGET_DIRS_DDG=1
-TARGET_DIRS_MYSQL=1
-TARGET_DIRS_INTERBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-TARGET_DIRS_DDG=1
-endif
-ifdef TARGET_DIRS_DDG
-ddg_all:
- $(MAKE) -C ddg all
-ddg_debug:
- $(MAKE) -C ddg debug
-ddg_smart:
- $(MAKE) -C ddg smart
-ddg_release:
- $(MAKE) -C ddg release
-ddg_units:
- $(MAKE) -C ddg units
-ddg_examples:
- $(MAKE) -C ddg examples
-ddg_shared:
- $(MAKE) -C ddg shared
-ddg_install:
- $(MAKE) -C ddg install
-ddg_sourceinstall:
- $(MAKE) -C ddg sourceinstall
-ddg_exampleinstall:
- $(MAKE) -C ddg exampleinstall
-ddg_distinstall:
- $(MAKE) -C ddg distinstall
-ddg_zipinstall:
- $(MAKE) -C ddg zipinstall
-ddg_zipsourceinstall:
- $(MAKE) -C ddg zipsourceinstall
-ddg_zipexampleinstall:
- $(MAKE) -C ddg zipexampleinstall
-ddg_zipdistinstall:
- $(MAKE) -C ddg zipdistinstall
-ddg_clean:
- $(MAKE) -C ddg clean
-ddg_distclean:
- $(MAKE) -C ddg distclean
-ddg_cleanall:
- $(MAKE) -C ddg cleanall
-ddg_info:
- $(MAKE) -C ddg info
-ddg_makefiles:
- $(MAKE) -C ddg makefiles
-ddg:
- $(MAKE) -C ddg all
-.PHONY: ddg_all ddg_debug ddg_smart ddg_release ddg_units ddg_examples ddg_shared ddg_install ddg_sourceinstall ddg_exampleinstall ddg_distinstall ddg_zipinstall ddg_zipsourceinstall ddg_zipexampleinstall ddg_zipdistinstall ddg_clean ddg_distclean ddg_cleanall ddg_info ddg_makefiles ddg
-endif
-ifdef TARGET_DIRS_MYSQL
-mysql_all:
- $(MAKE) -C mysql all
-mysql_debug:
- $(MAKE) -C mysql debug
-mysql_smart:
- $(MAKE) -C mysql smart
-mysql_release:
- $(MAKE) -C mysql release
-mysql_units:
- $(MAKE) -C mysql units
-mysql_examples:
- $(MAKE) -C mysql examples
-mysql_shared:
- $(MAKE) -C mysql shared
-mysql_install:
- $(MAKE) -C mysql install
-mysql_sourceinstall:
- $(MAKE) -C mysql sourceinstall
-mysql_exampleinstall:
- $(MAKE) -C mysql exampleinstall
-mysql_distinstall:
- $(MAKE) -C mysql distinstall
-mysql_zipinstall:
- $(MAKE) -C mysql zipinstall
-mysql_zipsourceinstall:
- $(MAKE) -C mysql zipsourceinstall
-mysql_zipexampleinstall:
- $(MAKE) -C mysql zipexampleinstall
-mysql_zipdistinstall:
- $(MAKE) -C mysql zipdistinstall
-mysql_clean:
- $(MAKE) -C mysql clean
-mysql_distclean:
- $(MAKE) -C mysql distclean
-mysql_cleanall:
- $(MAKE) -C mysql cleanall
-mysql_info:
- $(MAKE) -C mysql info
-mysql_makefiles:
- $(MAKE) -C mysql makefiles
-mysql:
- $(MAKE) -C mysql all
-.PHONY: mysql_all mysql_debug mysql_smart mysql_release mysql_units mysql_examples mysql_shared mysql_install mysql_sourceinstall mysql_exampleinstall mysql_distinstall mysql_zipinstall mysql_zipsourceinstall mysql_zipexampleinstall mysql_zipdistinstall mysql_clean mysql_distclean mysql_cleanall mysql_info mysql_makefiles mysql
-endif
-ifdef TARGET_DIRS_INTERBASE
-interbase_all:
- $(MAKE) -C interbase all
-interbase_debug:
- $(MAKE) -C interbase debug
-interbase_smart:
- $(MAKE) -C interbase smart
-interbase_release:
- $(MAKE) -C interbase release
-interbase_units:
- $(MAKE) -C interbase units
-interbase_examples:
- $(MAKE) -C interbase examples
-interbase_shared:
- $(MAKE) -C interbase shared
-interbase_install:
- $(MAKE) -C interbase install
-interbase_sourceinstall:
- $(MAKE) -C interbase sourceinstall
-interbase_exampleinstall:
- $(MAKE) -C interbase exampleinstall
-interbase_distinstall:
- $(MAKE) -C interbase distinstall
-interbase_zipinstall:
- $(MAKE) -C interbase zipinstall
-interbase_zipsourceinstall:
- $(MAKE) -C interbase zipsourceinstall
-interbase_zipexampleinstall:
- $(MAKE) -C interbase zipexampleinstall
-interbase_zipdistinstall:
- $(MAKE) -C interbase zipdistinstall
-interbase_clean:
- $(MAKE) -C interbase clean
-interbase_distclean:
- $(MAKE) -C interbase distclean
-interbase_cleanall:
- $(MAKE) -C interbase cleanall
-interbase_info:
- $(MAKE) -C interbase info
-interbase_makefiles:
- $(MAKE) -C interbase makefiles
-interbase:
- $(MAKE) -C interbase all
-.PHONY: interbase_all interbase_debug interbase_smart interbase_release interbase_units interbase_examples interbase_shared interbase_install interbase_sourceinstall interbase_exampleinstall interbase_distinstall interbase_zipinstall interbase_zipsourceinstall interbase_zipexampleinstall interbase_zipdistinstall interbase_clean interbase_distclean interbase_cleanall interbase_info interbase_makefiles interbase
-endif
-all: $(addsuffix _all,$(TARGET_DIRS))
-debug: $(addsuffix _debug,$(TARGET_DIRS))
-smart: $(addsuffix _smart,$(TARGET_DIRS))
-release: $(addsuffix _release,$(TARGET_DIRS))
-units: $(addsuffix _units,$(TARGET_DIRS))
-examples: $(addsuffix _examples,$(TARGET_DIRS))
-shared: $(addsuffix _shared,$(TARGET_DIRS))
-install: fpc_install $(addsuffix _install,$(TARGET_DIRS))
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall $(addsuffix _exampleinstall,$(TARGET_DIRS))
-distinstall: $(addsuffix _distinstall,$(TARGET_DIRS))
-zipinstall:
-zipsourceinstall:
-zipexampleinstall: $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
-zipdistinstall: $(addsuffix _zipdistinstall,$(TARGET_DIRS))
-clean: $(addsuffix _clean,$(TARGET_DIRS))
-distclean: $(addsuffix _distclean,$(TARGET_DIRS))
-cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/Makefile.fpc b/packages/fcl-db/src/unmaintained/Makefile.fpc
deleted file mode 100644
index 7afca4d860..0000000000
--- a/packages/fcl-db/src/unmaintained/Makefile.fpc
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Makefile.fpc for unmaintained db-structures
-#
-
-[package]
-main=fcl-db
-
-[target]
-dirs=ddg
-dirs_linux=mysql interbase
-dirs_freebsd=mysql interbase
-dirs_darwin=mysql interbase
-dirs_netbsd=mysql interbase
-dirs_openbsd=mysql interbase
-dirs_win32=mysql interbase
-dirs_wince=interbase
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../../..
-
-
-[rules]
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/README b/packages/fcl-db/src/unmaintained/README
deleted file mode 100644
index 1822ec1249..0000000000
--- a/packages/fcl-db/src/unmaintained/README
+++ /dev/null
@@ -1,19 +0,0 @@
-Here you can find some unmaintained database-units. They will be
-removed from fpc in the near future, so please do not use this
-units in new projects.
-
-The interbase, odbc and mysql components in here are replaced
-by the sqldb package.
-
-The sqlitedataset unit is replaced by the sqliteds units.
-
-The ddg units were only made to test the DB main classes, since
-there was no good TDataset descendents to test with. At this
-moment there are enough descendents to test with, which makes
-these units obsolete.
-
-Note that odbc and sqlite aren't even in the makefile, since
-they won't compile.
-
-
-Joost van der Sluis, joost@cnoc.nl, feb 2006
diff --git a/packages/fcl-db/src/unmaintained/ddg/Makefile b/packages/fcl-db/src/unmaintained/ddg/Makefile
deleted file mode 100644
index dffd799171..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/Makefile
+++ /dev/null
@@ -1,1971 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
-#
-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-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=ddg_rec ddg_ds
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-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),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
- @$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
- $(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
- $(MAKE) all DEBUG=1
-fpc_release:
- $(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
- $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
- $(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(PPUEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.lpr
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.dpr
- $(COMPILER) $<
- $(EXECPPAS)
-%.res: %.rc
- windres -i $< -o $@
-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 %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
- $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
- $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
- @$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
- $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
- $(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
- $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
- $(MKDIR) $(INSTALL_LIBDIR)
- $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
- ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
- $(MKDIR) $(INSTALL_DATADIR)
- $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
- $(MKDIR) $(INSTALL_SOURCEDIR)
- $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
- $(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
- $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
- -$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
- -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
- -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
- -$(DELTREE) units
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
- @$(ECHO)
- @$(ECHO) == Package info ==
- @$(ECHO) Package Name..... $(PACKAGE_NAME)
- @$(ECHO) Package Version.. $(PACKAGE_VERSION)
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC.......... $(FPC)
- @$(ECHO) FPC Version.. $(FPC_VERSION)
- @$(ECHO) Source CPU... $(CPU_SOURCE)
- @$(ECHO) Target CPU... $(CPU_TARGET)
- @$(ECHO) Source OS.... $(OS_SOURCE)
- @$(ECHO) Target OS.... $(OS_TARGET)
- @$(ECHO) Full Source.. $(FULL_SOURCE)
- @$(ECHO) Full Target.. $(FULL_TARGET)
- @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
- @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
- @$(ECHO)
- @$(ECHO) == Directory info ==
- @$(ECHO)
- @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
- @$(ECHO)
- @$(ECHO) Basedir......... $(BASEDIR)
- @$(ECHO) FPCDir.......... $(FPCDIR)
- @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
- @$(ECHO) UnitsDir........ $(UNITSDIR)
- @$(ECHO) PackagesDir..... $(PACKAGESDIR)
- @$(ECHO)
- @$(ECHO) GCC library..... $(GCCLIBDIR)
- @$(ECHO) Other library... $(OTHERLIBDIR)
- @$(ECHO)
- @$(ECHO) == Tools info ==
- @$(ECHO)
- @$(ECHO) As........ $(AS)
- @$(ECHO) Ld........ $(LD)
- @$(ECHO) Ar........ $(AR)
- @$(ECHO) Rc........ $(RC)
- @$(ECHO)
- @$(ECHO) Mv........ $(MVPROG)
- @$(ECHO) Cp........ $(CPPROG)
- @$(ECHO) Rm........ $(RMPROG)
- @$(ECHO) GInstall.. $(GINSTALL)
- @$(ECHO) Echo...... $(ECHO)
- @$(ECHO) Shell..... $(SHELL)
- @$(ECHO) Date...... $(DATE)
- @$(ECHO) FPCMake... $(FPCMAKE)
- @$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
- @$(ECHO) Zip....... $(ZIPPROG)
- @$(ECHO)
- @$(ECHO) == Object info ==
- @$(ECHO)
- @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
- @$(ECHO) Target Units.......... $(TARGET_UNITS)
- @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
- @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
- @$(ECHO) Target Dirs........... $(TARGET_DIRS)
- @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
- @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
- @$(ECHO)
- @$(ECHO) Clean Units......... $(CLEAN_UNITS)
- @$(ECHO) Clean Files......... $(CLEAN_FILES)
- @$(ECHO)
- @$(ECHO) Install Units....... $(INSTALL_UNITS)
- @$(ECHO) Install Files....... $(INSTALL_FILES)
- @$(ECHO)
- @$(ECHO) == Install info ==
- @$(ECHO)
- @$(ECHO) DateStr.............. $(DATESTR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
- @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
- @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
- @$(ECHO) FullZipName.......... $(FULLZIPNAME)
- @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
- @$(ECHO)
- @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
- @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
- @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
- @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
- @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
- @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
- @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
- @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
- @$(ECHO)
- @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
- @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
- @$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
- fpc_makefile_dirs
-fpc_makefile:
- $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/ddg/Makefile.fpc b/packages/fcl-db/src/unmaintained/ddg/Makefile.fpc
deleted file mode 100644
index a71b317599..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/Makefile.fpc
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# Makefile.fpc for TDataSet Tests
-#
-
-
-[package]
-main=fcl-db
-
-[target]
-units=ddg_rec ddg_ds
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../../../..
-
-[rules]
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/ddg/createds.pp b/packages/fcl-db/src/unmaintained/ddg/createds.pp
deleted file mode 100644
index ac665fdf12..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/createds.pp
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
- Free Pascal development team
-
- Creates a flat datafile for use with testds.
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program createds;
-
-{$mode delphi}
-
-uses ddg_rec,sysutils;
-
-Type IndexFile = File Of Longint;
-
-Var F : TDDGDataFile;
- I : Integer;
- S : String;
- L : IndexFile;
- TableName : String;
- IndexName : String;
- ARec : TDDGData;
-
-begin
- If ParamCount<>1 then
- begin
- Writeln('Usage: createds tablename');
- Halt(1);
- end;
- TableName:=ChangeFileExt(paramstr(1),'.ddg');
- IndexName:=ChangeFileExt(TableName,'.ddx');
- Assign(F,TableName);
- Rewrite(F);
- For I:=1 to 100 do
- begin
- S:=Format('This is person %d.',[i]);
- With Arec Do
- begin
- Name:=S;
- height:=I*0.001;
- LongField:=i*4;
- ShoeSize:=I;
- WordField:=i*2;
- DateTimeField:=Now;
- TimeField:=Time;
- DateField:=Date;
- Even:=(I mod 2) = 0
- end;
- Write(F,ARec);
- end;
- Close(F);
- Assign(L,IndexName);
- Rewrite(L);
- For I:=0 to 100-1 do
- Write(L,I);
- Close(L);
-end.
diff --git a/packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp b/packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp
deleted file mode 100644
index 63ca20deb2..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp
+++ /dev/null
@@ -1,522 +0,0 @@
-unit DDG_DS;
-
-{$define dsdebug}
-
-interface
-
-uses Db, Classes, DDG_Rec;
-
-type
-
- PInteger = ^Integer;
-
- // Bookmark information record to support TDataset bookmarks:
- PDDGBookmarkInfo = ^TDDGBookmarkInfo;
- TDDGBookmarkInfo = record
- BookmarkData: Integer;
- BookmarkFlag: TBookmarkFlag;
- end;
-
- // List used to maintain access to file of record:
- TIndexList = class(TList)
- public
- procedure LoadFromFile(const FileName: string); virtual;
- procedure LoadFromStream(Stream: TStream); virtual;
- procedure SaveToFile(const FileName: string); virtual;
- procedure SaveToStream(Stream: TStream); virtual;
- end;
-
- // Specialized DDG TDataset descendant for our "table" data:
- TDDGDataSet = class(TDataSet)
- private
- function GetDataFileSize: Integer;
- public
- FDataFile: TDDGDataFile;
- FIdxName: string;
- FIndexList: TIndexList;
- FTableName: string;
- FRecordPos: Integer;
- FRecordSize: Integer;
- FBufferSize: Integer;
- procedure SetTableName(const Value: string);
- protected
- { Mandatory overrides }
- // Record buffer methods:
- function AllocRecordBuffer: PChar; override;
- procedure FreeRecordBuffer(var Buffer: PChar); override;
- procedure InternalInitRecord(Buffer: PChar); override;
- function GetRecord(Buffer: PChar; GetMode: TGetMode;
- DoCheck: Boolean): TGetResult; override;
- function GetRecordSize: Word; override;
- procedure SetFieldData(Field: TField; Buffer: Pointer); override;
- // Bookmark methods:
- procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override;
- function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override;
- procedure InternalGotoBookmark(ABookmark: Pointer); override;
- procedure InternalSetToRecord(Buffer: PChar); override;
- procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override;
- procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override;
- // Navigational methods:
- procedure InternalFirst; override;
- procedure InternalLast; override;
- // Editing methods:
- procedure InternalAddRecord(Buffer: Pointer; DoAppend: Boolean); override;
- procedure InternalDelete; override;
- procedure InternalPost; override;
- // Misc methods:
- procedure InternalClose; override;
- procedure InternalInitFieldDefs; override;
- procedure InternalOpen; override;
- function IsCursorOpen: Boolean; override;
- { Optional overrides }
- function GetRecordCount: Integer; override;
- function GetRecNo: Integer; override;
- procedure SetRecNo(Value: Integer); override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
- function GetFieldData(Field: TField; Buffer: Pointer): Boolean; override;
-
- // Additional procedures
- procedure EmptyTable;
- published
- property Active;
- property TableName: string read FTableName write SetTableName;
- property BeforeOpen;
- property AfterOpen;
- property BeforeClose;
- property AfterClose;
- property BeforeInsert;
- property AfterInsert;
- property BeforeEdit;
- property AfterEdit;
- property BeforePost;
- property AfterPost;
- property BeforeCancel;
- property AfterCancel;
- property BeforeDelete;
- property AfterDelete;
- property BeforeScroll;
- property AfterScroll;
- property OnDeleteError;
- property OnEditError;
-
- // Additional Properties
- property DataFileSize: Integer read GetDataFileSize;
- end;
-
-implementation
-
-uses SysUtils;
-
-const
- feDDGTable = '.ddg';
- feDDGIndex = '.ddx';
- // note that file is not being locked!
-
-{ TIndexList }
-
-procedure TIndexList.LoadFromFile(const FileName: string);
-var
- F: TFileStream;
-begin
- F := TFileStream.Create(FileName, fmOpenRead);
- try
- LoadFromStream(F);
- finally
- F.Free;
- end;
-end;
-
-procedure TIndexList.LoadFromStream(Stream: TStream);
-var
- Value: PtrInt;
-begin
- while Stream.Position < Stream.Size do
- begin
- Stream.Read(Value, SizeOf(Value));
- Add(Pointer(Value));
- end;
-end;
-
-procedure TIndexList.SaveToFile(const FileName: string);
-var
- F: TFileStream;
-begin
- F := TFileStream.Create(FileName, fmCreate);
- try
- SaveToStream(F);
- finally
- F.Free;
- end;
-end;
-
-procedure TIndexList.SaveToStream(Stream: TStream);
-var
- i: Integer;
- Value: PtrInt;
-begin
- for i := 0 to Count - 1 do
- begin
- Value := PtrInt(Items[i]);
- Stream.Write(Value, SizeOf(Value));
- end;
-end;
-
-{ TDDGDataSet }
-
-constructor TDDGDataSet.Create(AOwner: TComponent);
-begin
- FIndexList := TIndexList.Create;
- FRecordSize := SizeOf(TDDGData);
- FBufferSize := FRecordSize + SizeOf(TDDGBookmarkInfo);
- inherited Create(AOwner);
-end;
-
-destructor TDDGDataSet.Destroy;
-begin
- inherited Destroy;
- FIndexList.Free;
-end;
-
-function TDDGDataSet.AllocRecordBuffer: PChar;
-begin
- Result := AllocMem(FBufferSize);
-end;
-
-procedure TDDGDataSet.FreeRecordBuffer(var Buffer: PChar);
-begin
- FreeMem(Buffer);
-end;
-
-procedure TDDGDataSet.InternalInitRecord(Buffer: PChar);
-begin
- FillChar(Buffer^, FBufferSize, 0);
-end;
-
-function TDDGDataSet.GetRecord(Buffer: PChar; GetMode: TGetMode;
- DoCheck: Boolean): TGetResult;
-var
- IndexPos: Integer;
-begin
- if FIndexList.Count < 1 then
- Result := grEOF
- else begin
- Result := grOk;
- case GetMode of
- gmPrior:
- if FRecordPos <= 0 then
- begin
- Result := grBOF;
- FRecordPos := -1;
- end
- else
- Dec(FRecordPos);
- gmCurrent:
- if (FRecordPos < 0) or (FRecordPos >= RecordCount) then
- Result := grError;
- gmNext:
- if FRecordPos >= RecordCount-1 then
- Result := grEOF
- else
- Inc(FRecordPos);
- end;
- if Result = grOk then
- begin
- IndexPos := Integer(FIndexList[FRecordPos]);
- Seek(FDataFile, IndexPos);
- BlockRead(FDataFile, PDDGData(Buffer)^, 1);
- with PDDGBookmarkInfo(Buffer + FRecordSize)^ do
- begin
- BookmarkData := FRecordPos;
- BookmarkFlag := bfCurrent;
- end;
- end
- else if (Result = grError) and DoCheck then
- DatabaseError('No records');
- end;
-end;
-
-function TDDGDataSet.GetRecordSize: Word;
-begin
- Result := FRecordSize;
-end;
-
-function TDDGDataSet.GetFieldData(Field: TField; Buffer: Pointer): Boolean;
-begin
- Result := True;
- case Field.Index of
- 0:
- begin
- Move(ActiveBuffer^, Buffer^, Field.Size);
- Result := PChar(Buffer)^ <> #0;
- end;
- 1: Move(PDDGData(ActiveBuffer)^.Height, Buffer^, Field.DataSize);
- 2: Move(PDDGData(ActiveBuffer)^.LongField, Buffer^, Field.DataSize);
- 3: Move(PDDGData(ActiveBuffer)^.ShoeSize, Buffer^, Field.DataSize);
- 4: Move(PDDGData(ActiveBuffer)^.WordField, Buffer^, Field.DataSize);
- 5: Move(PDDGData(ActiveBuffer)^.DateTimeField, Buffer^, Field.DataSize);
- 6: Move(PDDGData(ActiveBuffer)^.TimeField, Buffer^, Field.DataSize);
- 7: Move(PDDGData(ActiveBuffer)^.DateField, Buffer^, Field.DataSize);
- 8: Move(PDDGData(ActiveBuffer)^.Even, Buffer^, Field.DataSize);
- end;
-end;
-
-procedure TDDGDataSet.SetFieldData(Field: TField; Buffer: Pointer);
-begin
- case Field.Index of
- 0: Move(Buffer^, ActiveBuffer^, Field.Size);
- 1: Move(Buffer^, PDDGData(ActiveBuffer)^.Height, Field.DataSize);
- 2: Move(Buffer^, PDDGData(ActiveBuffer)^.LongField, Field.DataSize);
- 3: Move(Buffer^, PDDGData(ActiveBuffer)^.ShoeSize, Field.DataSize);
- 4: Move(Buffer^, PDDGData(ActiveBuffer)^.WordField, Field.DataSize);
- 5: Move(Buffer^, PDDGData(ActiveBuffer)^.DateTimeField, Field.DataSize);
- 6: Move(Buffer^, PDDGData(ActiveBuffer)^.TimeField, Field.DataSize);
- 7: Move(Buffer^, PDDGData(ActiveBuffer)^.DateField, Field.DataSize);
- 8: Move(Buffer^, PDDGData(ActiveBuffer)^.Even, Field.DataSize);
- end;
- DataEvent(deFieldChange, Ptrint(Field));
-end;
-
-procedure TDDGDataSet.GetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PInteger(Data)^ := PDDGBookmarkInfo(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TDDGDataSet.GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
-begin
- Result := PDDGBookmarkInfo(Buffer + FRecordSize)^.BookmarkFlag;
-end;
-
-procedure TDDGDataSet.InternalGotoBookmark(ABookmark: Pointer);
-begin
- FRecordPos := PInteger(ABookmark)^;
- Writeln ('Bookmark : Setting record position to : ',FrecordPos);
-end;
-
-procedure TDDGDataSet.InternalSetToRecord(Buffer: PChar);
-begin
- // bookmark value is the same as an offset into the file
- FRecordPos := PDDGBookmarkInfo(Buffer + FRecordSize)^.Bookmarkdata;
-end;
-
-procedure TDDGDataSet.SetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PDDGBookmarkInfo(Buffer + FRecordSize)^.BookmarkData := PInteger(Data)^;
-end;
-
-procedure TDDGDataSet.SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag);
-begin
- PDDGBookmarkInfo(Buffer + FRecordSize)^.BookmarkFlag := Value;
-end;
-
-procedure TDDGDataSet.InternalFirst;
-begin
- FRecordPos := -1;
-end;
-
-procedure TDDGDataSet.InternalInitFieldDefs;
-begin
- // create FieldDefs which map to each field in the data record
- FieldDefs.Clear;
- TFieldDef.Create(FieldDefs, 'Name', ftString, SizeOf(TNameStr), False, 1);
- TFieldDef.Create(FieldDefs, 'Height', ftFloat, 0, False, 2);
- TFieldDef.Create(FieldDefs, 'LongField',ftInteger, 0, False, 3);
- TFieldDef.Create(FieldDefs, 'ShoeSize', ftSmallint, 0, False, 4);
- TFieldDef.Create(FieldDefs, 'WordField', ftword, 0, false, 5);
- TFieldDef.Create(FieldDefs, 'DateTimeField', ftDateTime, 0, false, 6);
- TFieldDef.Create(FieldDefs, 'TimeField',ftTime, 0, false, 7);
- TFieldDef.Create(FieldDefs, 'DateField',ftDate, 0, false, 8);
- TFieldDef.Create(FieldDefs, 'Booleanfield',ftboolean, 0, False, 9);
-end;
-
-procedure TDDGDataSet.InternalLast;
-begin
- FRecordPos := FIndexList.Count;
-end;
-
-procedure TDDGDataSet.InternalClose;
-begin
- if FileRec(FDataFile).Mode <> 0 then
- CloseFile(FDataFile);
- FIndexList.SaveToFile(FIdxName);
- FIndexList.Clear;
- if DefaultFields then
- DestroyFields;
- FRecordPos := -1;
- FillChar(FDataFile, SizeOf(FDataFile), 0);
-end;
-
-procedure TDDGDataSet.InternalDelete;
-begin
- FIndexList.Delete(FRecordPos);
- if FRecordPos >= FIndexList.Count then Dec(FRecordPos);
-end;
-
-procedure TDDGDataSet.InternalAddRecord(Buffer: Pointer; DoAppend: Boolean);
-var
- RecPos: Integer;
-begin
- Seek(FDataFile, FileSize(FDataFile));
- BlockWrite(FDataFile, PDDGData(Buffer)^, 1);
- if DoAppend then
- begin
- FIndexList.Add(Pointer(PtrInt(FileSize(FDataFile) - 1)));
- InternalLast;
- end
- else begin
- if FRecordPos = -1 then RecPos := 0
- else RecPos := FRecordPos;
- FIndexList.Insert(RecPos, Pointer(PtrInt(FileSize(FDataFile) - 1)));
- end;
- FIndexList.SaveToFile(FIdxName);
-end;
-
-procedure TDDGDataSet.InternalOpen;
-var
- HFile: THandle;
-begin
- // make sure table and index files exist
- FIdxName := ChangeFileExt(FTableName, feDDGIndex);
- if not (FileExists(FTableName) and FileExists(FIdxName)) then
- begin
- {
- if MessageDlg('Table or index file not found. Create new table?',
- mtConfirmation, [mbYes, mbNo], 0) = mrYes then
- begin
- HFile := FileCreate(FTableName);
- if HFile = -1 then
- DatabaseError('Error creating table file');
- FileClose(HFile);
- HFile := FileCreate(FIdxName);
- if HFile = -1 then
- DatabaseError('Error creating index file');
- FileClose(HFile);
- end
- else
- }
- DatabaseError('Could not open table');
- end;
- // open data file
- FileMode := fmOpenReadWrite;
- Writeln ('OPening data file');
- AssignFile(FDataFile, FTableName);
- Reset(FDataFile);
- try
- writeln ('Loading index file');
- FIndexList.LoadFromFile(FIdxName); // initialize index TList from file
- FRecordPos := -1; // initial record pos before BOF
- BookmarkSize := SizeOf(Integer); // initialize bookmark size for VCL
- InternalInitFieldDefs; // initialize FieldDef objects
- // Create TField components when no persistent fields have been created
- {$ifdef dsdebug}
- writeln ('Creating Fields');
- {$endif}
- if DefaultFields then CreateFields;
- {$ifdef dsdebug}
- writeln ('Binding Fields');
- {$endif}
- BindFields(True); // bind FieldDefs to actual data
- except
- {$ifdef dsdebug}
- Writeln ('Caught Exception !!');
- {$endif}
- CloseFile(FDataFile);
- FillChar(FDataFile, SizeOf(FDataFile), 0);
- raise;
- end;
- {$ifdef dsdebug}
- Writeln ('End of internalopen');
- {$endif}
-end;
-
-procedure TDDGDataSet.InternalPost;
-var
- RecPos, InsPos: PtrInt;
-begin
- {$ifdef dsdebug}
- Writeln ('Starting internal post.');
- {$endif}
- if FRecordPos = -1 then
- RecPos := 0
- else begin
- if State = dsEdit then RecPos := Integer(FIndexList[FRecordPos])
- else RecPos := FileSize(FDataFile);
- end;
- Seek(FDataFile, RecPos);
- {$ifdef dsdebug}
- Writeln ('Writing record to disk.');
- {$endif}
- BlockWrite(FDataFile, PDDGData(ActiveBuffer)^, 1);
- if State <> dsEdit then
- begin
- if FRecordPos = -1 then InsPos := 0
- else InsPos := FRecordPos;
- FIndexList.Insert(InsPos, Pointer(RecPos));
- end;
- {$ifdef dsdebug}
- Writeln ('Writing index to disk.');
- {$endif}
- FIndexList.SaveToFile(FIdxName);
-end;
-
-function TDDGDataSet.IsCursorOpen: Boolean;
-begin
- Result := FileRec(FDataFile).Mode <> 0;
-end;
-
-function TDDGDataSet.GetRecordCount: Integer;
-begin
- Result := FIndexList.Count;
-end;
-
-function TDDGDataSet.GetRecNo: Integer;
-begin
- UpdateCursorPos;
- if (FRecordPos = -1) and (RecordCount > 0) then
- Result := 1
- else
- Result := FRecordPos + 1;
-end;
-
-procedure TDDGDataSet.SetRecNo(Value: Integer);
-begin
- if (Value >= 0) and (Value <= FIndexList.Count-1) then
- begin
- FRecordPos := Value - 1;
- Resync([]);
- end;
-end;
-
-procedure TDDGDataSet.SetTableName(const Value: string);
-begin
- CheckInactive;
- FTableName := Value;
- if ExtractFileExt(FTableName) = '' then
- FTableName := FTableName + feDDGTable;
- FIdxName := ChangeFileExt(FTableName, feDDGIndex);
-end;
-
-function TDDGDataSet.GetDataFileSize: Integer;
-begin
- Result := FileSize(FDataFile);
-end;
-
-procedure TDDGDataSet.EmptyTable;
-var
- HFile: THandle;
-begin
- Close;
-
- DeleteFile(FTableName);
- HFile := FileCreate(FTableName);
- FileClose(HFile);
-
- DeleteFile(FIdxName);
- HFile := FileCreate(FIdxName);
- FileClose(HFile);
-
- Open;
-end;
-
-end.
diff --git a/packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp b/packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp
deleted file mode 100644
index 801db0fc65..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp
+++ /dev/null
@@ -1,32 +0,0 @@
-unit DDG_Rec;
-
-interface
-
-uses sysutils;
-
-type
-
- // arbitary-length array of char used for name field
- TNameStr = array[0..31] of char;
-
- // this record info represents the "table" structure:
- PDDGData = ^TDDGData;
- TDDGData = record
- Name: TNameStr;
- Height: Extended;
- LongField : Longint;
- ShoeSize: SmallInt;
- WordField : Word;
- DatetimeField : TDateTime;
- TimeField : TDateTime;
- DateField : TDateTime;
- Even : Boolean;
- end;
-
- // Pascal file of record which holds "table" data:
- TDDGDataFile = file of TDDGData;
-
-
-implementation
-
-end.
diff --git a/packages/fcl-db/src/unmaintained/ddg/fpmake.pp b/packages/fcl-db/src/unmaintained/ddg/fpmake.pp
deleted file mode 100644
index 8781e3d069..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/fpmake.pp
+++ /dev/null
@@ -1,20 +0,0 @@
-{$mode objfpc}
-{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
- T : TTarget;
-
-begin
- ChangeDir('../..');
- With Installer do
- begin
- {$i ../../fclmake.inc}
- {$i fpmake.inc}
- EndPackage;
- Run;
- end;
-end.
-
diff --git a/packages/fcl-db/src/unmaintained/ddg/testds.pp b/packages/fcl-db/src/unmaintained/ddg/testds.pp
deleted file mode 100644
index cc8f268a00..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/testds.pp
+++ /dev/null
@@ -1,177 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
- Free Pascal development team
-
- Tests the TDDGDataset component.
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program testds;
-
-uses db,ddg_ds,sysutils;
-
-Procedure Log(Const Msg : String);
-begin
- Writeln(Msg);
-end;
-
-Procedure DumpFieldDef(F : TfieldDef);
-
-begin
- With F do
- begin
- Writeln ('Name : ',Name);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Size : ',Size);
- Writeln ('FieldClass : ',FieldClass.ClassName);
- Writeln ('Required : ',required);
- Writeln ('Precision : ',Precision);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('InternalCalcField : ',Internalcalcfield);
- end;
-end;
-
-Procedure DumpField(F : Tfield);
-
-begin
- With F do
- begin
- writeln ('-------------------------------------');
- Writeln ('FieldName : ',FieldName);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Index : ',Index);
- Writeln ('DataSize : ',DataSize);
- Writeln ('Size : ',Size);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('Class : ',ClassName);
- Writeln ('Required : ',required);
- Writeln ('ReadOnly : ',ReadOnly);
- Writeln ('Visible : ',Visible);
- end;
-end;
-
-Procedure DumpFieldData (F : TField);
-
-begin
- With F Do
- begin
- Writeln ('Field : ',FieldName);
- Writeln ('Data type : ',FieldTypeNames[DataType]);
- Writeln ('As String : ',Asstring);
- Case Datatype of
- ftSmallint, ftInteger, ftWord : Writeln ('As longint : ',AsLongint);
- ftBoolean : Writeln ('As Boolean : ',AsBoolean);
- ftFloat : Writeln ('As Float : ',AsFloat);
- ftDate, ftTime, ftDateTime : Writeln ('As DateTime : ',DateTimeToStr(AsDateTime));
- end;
- end;
-end;
-
-Var
- Data : TDDGdataset;
- I,Count : longint;
- Bookie : TBookMarkStr;
-
-Procedure ScrollForward;
-
-begin
- Writeln ('Browsing Forward:');
- Writeln ('------------------');
- With Data do
- While NOT EOF do
- begin
- Writeln ('================================================');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- end;
-end;
-
-Procedure ScrollBackWard;
-
-begin
- Writeln ('Browsing Backward:');
- Writeln ('-------------------');
- With Data do
- While NOT BOF do
- begin
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Prior;
- end;
-end;
-
-begin
- if paramcount<>1 then
- begin
- Writeln ('Usage : testds tablename');
- Halt(1);
- end;
- Log ('Creating Dataset');
- Data:=TDDGDataset.Create(Nil);
- With Data do
- begin
- Log('Setting Tablename');
- TableName:=Paramstr(1);
- Log('Opening Dataset');
- Open;
- Log('Dumping fielddefs : ');
- Writeln ('Fielddefs count : ',FieldDefs.Count);
- For I:=0 to FieldDefs.Count-1 do
- DumpFieldDef(FieldDefs.Items[i]);
- Writeln ('Fields count : ',FieldCount);
- For I:=0 to FieldCount-1 do
- DumpField(Fields[i]);
- ScrollForward;
- ScrollBackWard;
- Writeln ('Going to last :');
- writeln ('---------------');
- Last;
- ScrollBackWard;
- ScrollForward;
- Writeln ('Going to first:');
- First;
- Count:=0;
- Writeln ('Browsing Forward:');
- Writeln ('------------------');
- With Data do
- While NOT EOF do
- begin
- Inc(Count);
- If Count=50 then
- begin
- Writeln ('Setting bookmark on record');
- Bookie:=Bookmark;
- Writeln ('Got data : "',Bookie,'"');
- end;
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- end;
- Writeln ('Jumping to bookmark',Bookie);
- BookMark:=Bookie;
- Writeln ('Dumping Record : ');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- Writeln ('Dumping Next Record : ');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Prior;
- Prior;
- Writeln ('Dumping Previous Record : ');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Log('Closing Dataset');
- Close;
- Log('End.');
- Free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/ddg/tested.pp b/packages/fcl-db/src/unmaintained/ddg/tested.pp
deleted file mode 100644
index 2b76c64365..0000000000
--- a/packages/fcl-db/src/unmaintained/ddg/tested.pp
+++ /dev/null
@@ -1,235 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2000 by Michael Van Canneyt, member of the
- Free Pascal development team
-
- Tests the TDDGDataset component.
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-program testds;
-
-uses db,ddg_ds,sysutils;
-
-Procedure Log(Const Msg : String);
-begin
- Writeln(Msg);
-end;
-
-Procedure DumpFieldDef(F : TfieldDef);
-
-begin
- With F do
- begin
- Writeln ('Name : ',Name);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Size : ',Size);
- Writeln ('FieldClass : ',FieldClass.ClassName);
- Writeln ('Required : ',required);
- Writeln ('Precision : ',Precision);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('InternalCalcField : ',Internalcalcfield);
- end;
-end;
-
-Procedure DumpField(F : Tfield);
-
-begin
- With F do
- begin
- writeln ('-------------------------------------');
- Writeln ('FieldName : ',FieldName);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Index : ',Index);
- Writeln ('DataSize : ',DataSize);
- Writeln ('Size : ',Size);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('Class : ',ClassName);
- Writeln ('Required : ',required);
- Writeln ('ReadOnly : ',ReadOnly);
- Writeln ('Visible : ',Visible);
- end;
-end;
-
-Procedure DumpFieldData (F : TField);
-
-begin
- With F Do
- begin
- Writeln ('Field : ',FieldName);
- Writeln ('Data type : ',FieldTypeNames[DataType]);
- Writeln ('As String : ',Asstring);
- Case Datatype of
- ftSmallint, ftInteger, ftWord : Writeln ('As longint : ',AsLongint);
- ftBoolean : Writeln ('As Boolean : ',AsBoolean);
- ftFloat : Writeln ('As Float : ',AsFloat);
- ftDate, ftTime, ftDateTime : Writeln ('As DateTime : ',DateTimeToStr(AsDateTime));
- end;
- end;
-end;
-
-procedure DumpFields (DS : TDataset);
-
-Var I : longint;
-
-begin
- With DS do
- begin
- Writeln('Dumping fields');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[i]);
- end;
-end;
-
-Var
- Data : TDDGdataset;
- I,Count : longint;
- Bookie : TBookMarkStr;
-
-Procedure ScrollForward;
-
-begin
- Writeln ('Browsing Forward:');
- Writeln ('------------------');
- With Data do
- While NOT EOF do
- begin
- Writeln ('================================================');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- end;
-end;
-
-Procedure ScrollBackWard;
-
-begin
- Writeln ('Browsing Backward:');
- Writeln ('-------------------');
- With Data do
- While NOT BOF do
- begin
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Prior;
- end;
-end;
-
-begin
- if paramcount<>1 then
- begin
- Writeln ('Usage : testds tablename');
- Halt(1);
- end;
- Log ('Creating Dataset');
- Data:=TDDGDataset.Create(Nil);
- With Data do
- begin
- Log('Setting Tablename');
- TableName:=Paramstr(1);
- Log('Opening Dataset');
- Open;
- Log('Dumping fielddefs : ');
- Writeln ('Fielddefs count : ',FieldDefs.Count);
- For I:=0 to FieldDefs.Count-1 do
- DumpFieldDef(FieldDefs.Items[i]);
- Writeln ('Fields count : ',FieldCount);
- For I:=0 to FieldCount-1 do
- DumpField(Fields[i]);
- ScrollForward;
- ScrollBackWard;
- Writeln ('Doing append');
- writeln ('------------');
- Append;
- FieldByName('Name').AsString:='AppendName';
- FieldByName('Height').AsFloat:=9.99E9;
- FieldByName('LongField').AsLongInt:=999;
- FieldByName('ShoeSize').AsLongInt:=999;
- FieldByName('WordField').AsLongInt:=999;
- FieldByName('BooleanField').AsBoolean:=False;
- FieldByName('DateTimeField').AsDateTime:=Now;
- FieldByName('DateField').AsDateTime:=Date;
- FieldByName('TimeField').AsDateTime:=Time;
- Writeln ('End of append, going to post');
- Post;
- DumpFields(Data);
- Writeln ('Doing Last');
- Writeln ('----------');
- Last;
- DumpFields(Data);
- Writeln ('Doing Prior');
- Writeln ('----------');
- Prior;
- DumpFields(Data);
- Writeln ('Doing Insert at position 8');
- writeln ('--------------------------');
- first;
- for I:=1 to 7 do
- Next;
- Insert;
- FieldByName('Name').AsString:='Insertname';
- FieldByName('Height').AsFloat:=8.99E8;
- FieldByName('LongField').AsLongInt:=888;
- FieldByName('ShoeSize').AsLongInt:=888;
- FieldByName('WordField').AsLongInt:=888;
- FieldByName('BooleanField').AsBoolean:=True;
- FieldByName('DateTimeField').AsDateTime:=Now;
- FieldByName('DateField').AsDateTime:=Date;
- FieldByName('TimeField').AsDateTime:=Time;
- Post;
- Writeln ('Doing field dump');
- writeln ('----------------');
- DumpFields(Data);
- Writeln ('Doing Prior');
- Writeln ('-----------');
- Prior;
- DumpFields(Data);
- Writeln ('Doing Next');
- Writeln ('----------');
- Next;
- DumpFields(Data);
- Writeln ('Doing Next');
- Writeln ('----------');
- Next;
- DumpFields(Data);
- Writeln ('Doing Edit at position 5');
- writeln ('-------------------------');
- first;
- for I:=1 to 4 do
- Next;
- Edit;
- FieldByName('Name').AsString:='Editname';
- FieldByName('Height').AsFloat:=3.33E3;
- FieldByName('LongField').AsLongInt:=333;
- FieldByName('ShoeSize').AsLongInt:=333;
- FieldByName('WordField').AsLongInt:=333;
- FieldByName('BooleanField').AsBoolean:=False;
- FieldByName('DateTimeField').AsDateTime:=Now;
- FieldByName('DateField').AsDateTime:=Date;
- FieldByName('TimeField').AsDateTime:=Time;
- Post;
- Writeln ('Doing field dump');
- writeln ('----------------');
- DumpFields(Data);
- Writeln ('Doing Prior');
- Writeln ('-----------');
- Prior;
- DumpFields(Data);
- Writeln ('Doing Next');
- Writeln ('----------');
- Next;
- DumpFields(Data);
- Writeln ('Doing Next');
- Writeln ('----------');
- Next;
- DumpFields(Data);
- Writeln ('Closing.');
- Close;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/interbase/BUGS.known b/packages/fcl-db/src/unmaintained/interbase/BUGS.known
deleted file mode 100644
index 2ac815900d..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/BUGS.known
+++ /dev/null
@@ -1,2 +0,0 @@
- * TDateTime field interpretation
- * Some problems with TIBDataset.Close (fields)
diff --git a/packages/fcl-db/src/unmaintained/interbase/Makefile b/packages/fcl-db/src/unmaintained/interbase/Makefile
deleted file mode 100644
index 38b2c009fb..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/Makefile
+++ /dev/null
@@ -1,2409 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
-#
-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-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=interbase
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLES+=testib
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override CLEAN_UNITS+=ibase40 ibase60
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-ifeq ($(OS_SOURCE),linux)
-ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifeq ($(CPU_TARGET),powerpc64)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifndef GCCLIBDIR
-CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(CROSSGCC),)
-GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
-endif
-endif
-ifndef OTHERLIBDIR
-OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
-endif
-endif
-ifdef inUnix
-ifeq ($(OS_SOURCE),netbsd)
-OTHERLIBDIR+=/usr/pkg/lib
-endif
-export GCCLIBDIR OTHERLIB
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl ibase
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_IBASE=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_IBASE
-PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_IBASE),)
-ifneq ($(wildcard $(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)),)
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)/units/$(TARGETSUFFIX)
-else
-UNITDIR_IBASE=$(PACKAGEDIR_IBASE)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_IBASE)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_IBASE) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_IBASE)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_IBASE=
-UNITDIR_IBASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /ibase/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_IBASE),)
-UNITDIR_IBASE:=$(firstword $(UNITDIR_IBASE))
-else
-UNITDIR_IBASE=
-endif
-endif
-ifdef UNITDIR_IBASE
-override COMPILER_UNITDIR+=$(UNITDIR_IBASE)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef GCCLIBDIR
-override FPCOPT+=-Fl$(GCCLIBDIR)
-endif
-ifdef OTHERLIBDIR
-override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
- @$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
- $(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
- $(MAKE) all DEBUG=1
-fpc_release:
- $(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
- $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
- $(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(PPUEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.lpr
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.dpr
- $(COMPILER) $<
- $(EXECPPAS)
-%.res: %.rc
- windres -i $< -o $@
-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 %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
- $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
- $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
- @$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
- $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
- $(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
- $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
- $(MKDIR) $(INSTALL_LIBDIR)
- $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
- ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
- $(MKDIR) $(INSTALL_DATADIR)
- $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
- $(MKDIR) $(INSTALL_SOURCEDIR)
- $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
- $(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
- $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
- -$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
- -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
- -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
- -$(DELTREE) units
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
- @$(ECHO)
- @$(ECHO) == Package info ==
- @$(ECHO) Package Name..... $(PACKAGE_NAME)
- @$(ECHO) Package Version.. $(PACKAGE_VERSION)
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC.......... $(FPC)
- @$(ECHO) FPC Version.. $(FPC_VERSION)
- @$(ECHO) Source CPU... $(CPU_SOURCE)
- @$(ECHO) Target CPU... $(CPU_TARGET)
- @$(ECHO) Source OS.... $(OS_SOURCE)
- @$(ECHO) Target OS.... $(OS_TARGET)
- @$(ECHO) Full Source.. $(FULL_SOURCE)
- @$(ECHO) Full Target.. $(FULL_TARGET)
- @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
- @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
- @$(ECHO)
- @$(ECHO) == Directory info ==
- @$(ECHO)
- @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
- @$(ECHO)
- @$(ECHO) Basedir......... $(BASEDIR)
- @$(ECHO) FPCDir.......... $(FPCDIR)
- @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
- @$(ECHO) UnitsDir........ $(UNITSDIR)
- @$(ECHO) PackagesDir..... $(PACKAGESDIR)
- @$(ECHO)
- @$(ECHO) GCC library..... $(GCCLIBDIR)
- @$(ECHO) Other library... $(OTHERLIBDIR)
- @$(ECHO)
- @$(ECHO) == Tools info ==
- @$(ECHO)
- @$(ECHO) As........ $(AS)
- @$(ECHO) Ld........ $(LD)
- @$(ECHO) Ar........ $(AR)
- @$(ECHO) Rc........ $(RC)
- @$(ECHO)
- @$(ECHO) Mv........ $(MVPROG)
- @$(ECHO) Cp........ $(CPPROG)
- @$(ECHO) Rm........ $(RMPROG)
- @$(ECHO) GInstall.. $(GINSTALL)
- @$(ECHO) Echo...... $(ECHO)
- @$(ECHO) Shell..... $(SHELL)
- @$(ECHO) Date...... $(DATE)
- @$(ECHO) FPCMake... $(FPCMAKE)
- @$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
- @$(ECHO) Zip....... $(ZIPPROG)
- @$(ECHO)
- @$(ECHO) == Object info ==
- @$(ECHO)
- @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
- @$(ECHO) Target Units.......... $(TARGET_UNITS)
- @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
- @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
- @$(ECHO) Target Dirs........... $(TARGET_DIRS)
- @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
- @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
- @$(ECHO)
- @$(ECHO) Clean Units......... $(CLEAN_UNITS)
- @$(ECHO) Clean Files......... $(CLEAN_FILES)
- @$(ECHO)
- @$(ECHO) Install Units....... $(INSTALL_UNITS)
- @$(ECHO) Install Files....... $(INSTALL_FILES)
- @$(ECHO)
- @$(ECHO) == Install info ==
- @$(ECHO)
- @$(ECHO) DateStr.............. $(DATESTR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
- @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
- @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
- @$(ECHO) FullZipName.......... $(FULLZIPNAME)
- @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
- @$(ECHO)
- @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
- @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
- @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
- @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
- @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
- @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
- @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
- @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
- @$(ECHO)
- @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
- @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
- @$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
- fpc_makefile_dirs
-fpc_makefile:
- $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples: fpc_examples
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/interbase/Makefile.fpc b/packages/fcl-db/src/unmaintained/interbase/Makefile.fpc
deleted file mode 100644
index a6b162642d..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/Makefile.fpc
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Makefile.fpc for interbase FCL db units
-#
-
-[package]
-main=fcl-db
-
-[target]
-units=interbase
-examples=testib
-
-[clean]
-units=ibase40 ibase60
-
-[require]
-packages=ibase
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../../../..
-
-[rules]
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/interbase/README b/packages/fcl-db/src/unmaintained/interbase/README
deleted file mode 100644
index fc4f25d739..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/README
+++ /dev/null
@@ -1,67 +0,0 @@
- Hello again
-
-with new version of Interbase objects suite
-slightly changes the work with it. Main change
-is TIBTransaction object, which overtake transaction
-handling from TIBDatabase. TIBDataset no longer exists,
-instead of it is TIBQuery now. Work with it is (I think)
-shown in testib.pp program.
-
-TIBTransaction has several methods for committing and
-rollback of changes made to database.
-
- Commit, Rollback : classic action taken, both methods
- ENDS transaction.
- CommitRetaining, RollbackRetaining : these methods
- both do as same as Commit or Rollback, but environment
- of transaction remains, so you don't need start new
- transaction. This can be of use for frequent changes
- to database, because it's faster than classic
- Commit|Rollback & StartTransaction.
-
-In short:
-
- * Create TIBDatabase
- * Create TIBTransaction
- * Assign transaction to database
- * Create TIBQuery
- * Execute query
- * Commit or rollback transaction, in short, end transaction
- * Close TIBDatabase
-
-Compiling:
-
- Simply type 'make' for building interbase unit, if you wanna
-test program type 'make examples'. For successfull compiling
-you must have Interbase server installed, or you must have
-libgds.so.* in ldpath. If linker shows errors like:
-
-/usr/lib/libgds.so: undefined reference to `dlclose'
-/usr/lib/libgds.so: undefined reference to `dlopen'
-/usr/lib/libgds.so: undefined reference to `crypt'
-/usr/lib/libgds.so: undefined reference to `dlsym'
-testib.pp(92,1) Warning: Error while linking
-
-you must to program source add compiler directives
-
-{$ifndef BSD} // BSD has libdl in libc
- {$linklib dl}
-{$endif}
-{$linklib crypt}
-
-and all should be OK. For running testib you must have
-testing database created. To create it, edit mkdb script,
-set variable ISQL to full path to isql program (it is
-set to /opt/interbase/bin/isql by default, which will work
-on most systems) and run by typing 'sh mkdb'.
-
-This units was built and tested on Linux, and I don't
-know, if you can build it on Win32 or Dos platform.
-Anyway, if you want to use it under windoze, you can
-port it ;)
-
-Volunteers, testers, suggestions etc. are always welcome,
-mailto address below
-
-Pavel Stingl
-stingp1.eti@mail.cez.cz
diff --git a/packages/fcl-db/src/unmaintained/interbase/fpmake.inc b/packages/fcl-db/src/unmaintained/interbase/fpmake.inc
deleted file mode 100644
index 1cd69d597a..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/fpmake.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-{ Make DB directory and all subdirectories }
-{ FULLDB will be defined if included from db directory }
-{ FULLFCL will be defined if included from main FCL directory }
-
-{ Interbase directory }
-Targets.ResetDefaults;
-Targets.DefaultDir:='db/interbase';
-Targets.DefaultCPU:=[i386];
-Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,linux];
-T:=Targets.AddUnit('interbase');
-T:=Targets.AddExampleUnit('testib');
-if Defaults.OS in Targets.DefaultOS then
- begin
- CleanFiles.add('ibas40.o');
- CleanFiles.add('ibas40.ppu');
- CleanFiles.add('ibase60.o');
- CleanFiles.add('ibase60.ppu');
- end;
diff --git a/packages/fcl-db/src/unmaintained/interbase/fpmake.pp b/packages/fcl-db/src/unmaintained/interbase/fpmake.pp
deleted file mode 100644
index 8781e3d069..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/fpmake.pp
+++ /dev/null
@@ -1,20 +0,0 @@
-{$mode objfpc}
-{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
- T : TTarget;
-
-begin
- ChangeDir('../..');
- With Installer do
- begin
- {$i ../../fclmake.inc}
- {$i fpmake.inc}
- EndPackage;
- Run;
- end;
-end.
-
diff --git a/packages/fcl-db/src/unmaintained/interbase/interbase.pp b/packages/fcl-db/src/unmaintained/interbase/interbase.pp
deleted file mode 100644
index 85019bc32f..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/interbase.pp
+++ /dev/null
@@ -1,1264 +0,0 @@
-{
- Copyright (c) 2000 by Pavel Stingl
-
- Interbase database & dataset
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-unit Interbase;
-
-{$mode objfpc}
-{$H+}
-{$M+} // ### remove this!!!
-
-interface
-
-uses SysUtils, Classes, IBase60, DB;
-
-type
-
- PInteger = ^integer;
- PSmallInt= ^smallint;
-
- TIBDatabase = class;
- TIBTransaction = class;
- TIBQuery = class;
- TIBStoredProc = class;
-
- EInterBaseError = class(Exception);
-
-{ TIBDatabase }
-
- TIBDatabase = class (TDatabase)
- private
- FIBDatabaseHandle : pointer;
- FPassword : string;
- FStatus : array [0..19] of ISC_STATUS;
- FTransaction : TIBTransaction;
- FUserName : string;
- FCharSet : string;
- FDialect : integer;
- FRole : String;
-
- procedure SetDBDialect;
- procedure SetTransaction(Value : TIBTransaction);
- protected
- procedure Notification(AComponent: TComponent;
- Operation: TOperation); override;
- function GetHandle : pointer; virtual;
- { This procedure makes connection to Interbase server internally.
- Is visible only by descendants, in application programming
- will be invisible. Connection you must establish by setting
- @link(Connected) property to true, or by call of Open method.
- }
- procedure DoInternalConnect; override;
- { This procedure disconnects object from IB server internally.
- Is visible only by descendants, in application programming
- will be invisible. Disconnection you must make by setting
- @link(Connected) property to false, or by call of Close method.
- }
- procedure DoInternalDisconnect; override;
- public
- procedure StartTransaction; override;
- procedure EndTransaction; override;
- destructor Destroy; override;
- property Handle: Pointer read GetHandle;
- published
- { On connect, TIBDatabase object retrieve SQL dialect of database file,
- and sets this property to responding value }
- property Dialect : integer read FDialect write FDialect;
- { Before firing Open method you must set @link(Password),@link(DatabaseName),
- @link(UserName) properties in order of successfull connect to database }
- property Password : string read FPassword write FPassword;
- { This property holds default transaction for database. You must assign it by hand
- now, default assignment becomes handy, in next release, with transaction
- handling and evidence }
- property Transaction : TIBTransaction read FTransaction write SetTransaction;
- { Before firing Open method you must set @link(Password),@link(DatabaseName),
- @link(UserName) properties in order of successfull connect to database }
- property UserName : string read FUserName write FUserName;
- { The character set used in SQL statements }
- property CharSet : string read FCharSet write FCharSet;
-
- { Identifies, if connection to Interbase server is established, or not.
- Instead of calling Open, Close methods you can connect or disconnect
- by setting this property to true or false.
- }
- property Connected;
- { This property holds database connect string. On local server it will be
- absolute path to the db file, if you wanna connect over network, this
- path looks like this: <server_name>:<path_on_server>, where server_name
- is absolute IP address, or name of server in DNS or hosts file, path_on_server
- is absolute path to the file again }
- Property Role : String read FRole write FRole;
- property DatabaseName;
- property KeepConnection;
- property LoginPrompt;
- property Params;
- property OnLogin;
- end;
-
-{ TIBTransaction }
-
- {
- Interbase has two modes for commit and rollback transactions,
- the difference is simple. If you execute Commit or Rollback,
- current transaction ends, and you must create new one.
- If you, on other side, need only commit or rollback data
- without transaction closing, execute with CommitRetaining or
- RollbackRetaining. Transaction handle, environment etc. will be
- as same as before action. Possible values are : caNone, caCommit, caCommitRetaining, caRollback,
- caRollbackRetaining
- }
-
- TCommitRollbackAction = (caNone, caCommit, caCommitRetaining, caRollback,
- caRollbackRetaining);
- TAccessMode = (amReadWrite, amReadOnly);
- TIsolationLevel = (ilConcurrent, ilConsistent, ilReadCommittedRecV,
- ilReadCommitted);
- TLockResolution = (lrWait, lrNoWait);
- TTableReservation = (trNone, trSharedLockRead, trSharedLockWrite,
- trProtectedLockRead, trProtectedLockWrite);
-
- TIBTransaction = class (TComponent)
- private
- FTransactionHandle : pointer; // Transaction handle
- FAction : TCommitRollbackAction;
- FActive : boolean;
- FTPB : string; // Transaction parameter buffer
- FDatabase : TIBDatabase;
- FAccessMode : TAccessMode;
- FIsolationLevel : TIsolationLevel;
- FLockResolution : TLockResolution;
- FTableReservation : TTableReservation;
- FStatus : array [0..19] of ISC_STATUS;
-
- procedure SetActive(Value : boolean);
- procedure SetTPB;
- protected
- function GetHandle : pointer; virtual;
- public
- { Commits all actions, which was made in transaction, and closes transaction}
- procedure Commit; virtual;
- { Commits all actions, closes transaction, and creates new one }
- procedure CommitRetaining; virtual;
- { Rollbacks all actions made in transaction, and closes transaction }
- procedure Rollback; virtual;
- { Rollbacks all actions made in transaction, closes trans. and creates new one }
- procedure RollbackRetaining; virtual;
- { Creates new transaction. If transaction is active, closes it and make new one.
- Action taken while closing responds to @link(Action) property settings }
- procedure StartTransaction;
- constructor Create(AOwner : TComponent); override;
- destructor Destroy; override;
- property Handle: Pointer read GetHandle;
- published
- { Default action while closing transaction by setting
- @link(Active) property. For details see @link(TCommitRollbackAction)}
- property Action : TCommitRollbackAction read FAction write FAction;
- { Is set to true while transaction is active, false if not.
- If you set it manually to true, object executes
- @link(StartTransaction) method, if transaction is
- active, and you set Active to false, object executes
- one of @link(Commit), @link(CommitRetaining), @link(Rollback),
- @link(RollbackRetaining) methods, depending on @link(Action) property
- setting.
- }
- property Active : boolean read FActive write SetActive;
- { Transaction must be assigned to some database session, for which purpose
- you must use this property}
- property Database : TIBDatabase read FDatabase write FDatabase;
-
- { These four properties will be used in next StartTransaction calls }
- property AccessMode: TAccessMode
- read FAccessMode write FAccessMode default amReadWrite;
- property IsolationLevel: TIsolationLevel
- read FIsolationLevel write FIsolationLevel default ilConcurrent;
- property LockResolution: TLockResolution
- read FLockResolution write FLockResolution default lrWait;
- property TableReservation: TTableReservation
- read FTableReservation write FTableReservation default trNone;
- end;
-
-{ TIBQuery }
-
- PIBBookmark = ^TIBBookmark;
- TIBBookmark = record
- BookmarkData : integer;
- BookmarkFlag : TBookmarkFlag;
- end;
-
- TStatementType = (stNone, stSelect, stInsert, stUpdate, stDelete,
- stDDL, stGetSegment, stPutSegment, stExecProcedure,
- stStartTrans, stCommit, stRollback, stSelectForUpd);
-
- TIBQuery = class (TDBDataset)
- private
- FOpen : Boolean;
- FTransaction : TIBTransaction;
- FDatabase : TIBDatabase;
- FStatus : array [0..19] of ISC_STATUS;
- FFieldFlag : array [0..1023] of IBase60.Short;
- FBufferSize : integer;
- FSQLDA : PXSQLDA;
- FSQLDAAllocated : integer;
- FStatement : pointer;
- FRecordCount : integer;
- FRecordSize : word;
- FCurrentRecord : integer;
- FSQL : TStrings;
- FIsEOF : boolean;
- FStatementType : TStatementType;
- FLoadingFieldDefs : boolean;
-
- procedure SetDatabase(Value : TIBDatabase);
- procedure SetTransaction(Value : TIBTransaction);
- procedure AllocSQLDA(Count : integer);
- procedure AllocStatement;
- procedure FreeStatement;
- procedure PrepareStatement;
- procedure DescribeStatement;
- procedure SetUpSQLVars;
- procedure AllocFldBuffers;
- procedure FreeFldBuffers;
- procedure Fetch;
- function LoadBufferFromSQLDA(Buffer : PChar): TGetResult;
- procedure GetStatementType;
- procedure SetFieldSizes;
- procedure TranslateFldType(SQLType, SQLLen : integer; var LensSet : boolean;
- var TrType : TFieldType; var TrLen : word);
-
- procedure ExecuteImmediate;
- procedure ExecuteParams;
- procedure Execute;
-
- // conversion methods
- procedure GetDateTime(CurrBuff, Buffer : pointer; AType : integer);
- procedure GetFloat(CurrBuff, Buffer : pointer; Field : TField);
-
- protected
-
- // abstract & virual methods of TDataset
- function AllocRecordBuffer: PChar; override;
- procedure FreeRecordBuffer(var Buffer: PChar); override;
- procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override;
- function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override;
- function GetFieldData(Field: TField; Buffer: Pointer): Boolean; override;
- function GetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean): Boolean; overload; override;
- function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; override;
- function GetRecordCount: integer; override;
- function GetRecordSize: Word; override;
- procedure InternalAddRecord(Buffer: Pointer; AAppend: Boolean); override;
- procedure InternalClose; override;
- procedure InternalDelete; override;
- procedure InternalFirst; override;
- procedure InternalGotoBookmark(ABookmark: Pointer); override;
- procedure InternalInitFieldDefs; override;
- procedure InternalInitRecord(Buffer: PChar); override;
- procedure InternalLast; override;
- procedure InternalOpen; override;
- procedure InternalPost; override;
- procedure InternalSetToRecord(Buffer: PChar); override;
- function IsCursorOpen: Boolean; override;
- procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override;
- procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override;
- procedure SetFieldData(Field: TField; Buffer: Pointer); override;
- procedure SetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean); overload; override;
- public
- { This method is used for executing sql statements, which
- doesn't return any rows. (insert,delete,update, and DDL commands) }
- procedure ExecSQL; virtual;
- constructor Create(AOwner : TComponent); override;
- destructor Destroy; override;
- published
- { Query must have transaction assigned. If transaction is not assigned, and database
- is, object looks, if database have default transaction, and assigns it }
- property Transaction : TIBTransaction read FTransaction write SetTransaction;
- { Use this property to determine, which database session can query use }
- property Database : TIBDatabase read FDatabase write SetDatabase;
- { This property holds SQL command, which you want to execute }
- property SQL : TStrings read FSQL write FSQL;
- // Publish TDataset properties.
- property Active;
- property AutoCalcFields;
- property BeforeOpen;
- property AfterOpen;
- property BeforeClose;
- property AfterClose;
- property BeforeInsert;
- property AfterInsert;
- property BeforeEdit;
- property AfterEdit;
- property BeforePost;
- property AfterPost;
- property BeforeCancel;
- property AfterCancel;
- property BeforeDelete;
- property AfterDelete;
- property BeforeScroll;
- property AfterScroll;
- property OnCalcFields;
- property OnDeleteError;
- property OnEditError;
- property OnFilterRecord;
- property OnNewRecord;
- property OnPostError;
- end;
-
-{ TIBStoredProc - not implemented - yet :-/}
-
- TIBStoredProc = class (TDataset)
- private
- protected
- public
- published
- end;
-
-implementation
-
-type
-
- TTm = packed record
- tm_sec : longint;
- tm_min : longint;
- tm_hour : longint;
- tm_mday : longint;
- tm_mon : longint;
- tm_year : longint;
- tm_wday : longint;
- tm_yday : longint;
- tm_isdst : longint;
- __tm_gmtoff : longint;
- __tm_zone : Pchar;
- end;
-
-procedure CheckError(ProcName : string; Status : PISC_STATUS);
-var
- buf : array [0..1024] of char;
- Msg : string;
-begin
- if ((Status[0] = 1) and (Status[1] <> 0)) then
- begin
- while isc_interprete(Buf, @Status) > 0 do
- Msg := Msg + #10' -' + StrPas(Buf);
- raise EInterBaseError.Create(ProcName + ': ' + Msg);
- end;
-end;
-
-{ TIBDatabase }
-
-procedure TIBDatabase.SetDBDialect;
-var
- x : integer;
- Len : integer;
- Buffer : array [0..1] of byte;
- ResBuf : array [0..39] of byte;
-begin
- Buffer[0] := isc_info_db_sql_dialect;
- Buffer[1] := isc_info_end;
- if isc_database_info(@FStatus[0], @FIBDatabaseHandle, sizeof(Buffer),
- pchar(@Buffer[0]), SizeOf(ResBuf), pchar(@ResBuf)) <> 0 then
- CheckError('TIBDatabse.SetDBDialect', FStatus);
- x := 0;
- while x < 40 do
- case ResBuf[x] of
- isc_info_db_sql_dialect :
- begin
- Inc(x);
- Len := isc_vax_integer(pchar(@ResBuf[x]), 2);
- Inc(x, 2);
- FDialect := isc_vax_integer(pchar(@ResBuf[x]), Len);
- Inc(x, Len);
- end;
- isc_info_end : Break;
- end;
-end;
-
-procedure TIBDatabase.SetTransaction(Value : TIBTransaction);
-begin
- if Value <> FTransaction then
- begin
- if FTransaction <> nil then
- begin
- if FTransaction.Active then
- raise EInterBaseError.Create(
- 'Cannot assign transaction while old transaction active!');
- FTransaction.RemoveFreeNotification(Self);
- end;
-
- FTransaction := Value;
-
- if FTransaction <> nil then
- begin
- FTransaction.Database := Self;
- FTransaction.FreeNotification(Self);
- end;
- end;
-end;
-
-function TIBDatabase.GetHandle: pointer;
-begin
- Result := FIBDatabaseHandle;
-end;
-
-procedure TIBDatabase.DoInternalConnect;
-var
- DPB : string;
-begin
- if Connected then
- Close;
- DPB := chr(isc_dpb_version1);
- if (FUserName <> '') then
- begin
- DPB := DPB + chr(isc_dpb_user_name) + chr(Length(FUserName)) + FUserName;
- if (FPassword <> '') then
- DPB := DPB + chr(isc_dpb_password) + chr(Length(FPassword)) + FPassword;
- end;
- if (FRole <> '') then
- DPB := DPB + chr(isc_dpb_sql_role_name) + chr(Length(FRole)) + FRole;
- if Length(CharSet) > 0 then
- DPB := DPB + Chr(isc_dpb_lc_ctype) + Chr(Length(CharSet)) + CharSet;
-
- if (DatabaseName = '') then
- raise EInterBaseError.Create('TIBDatabase.Open: Database connect string (DatabaseName) not filled in!');
- FIBDatabaseHandle := nil;
- if isc_attach_database(@FStatus[0], Length(DatabaseName), @DatabaseName[1], @FIBDatabaseHandle,
- Length(DPB), @DPB[1]) <> 0 then
- CheckError('TIBDatabase.Open', FStatus);
- SetDBDialect;
-end;
-
-procedure TIBDatabase.DoInternalDisconnect;
-begin
- if not Connected then
- begin
- FIBDatabaseHandle := nil;
- Exit;
- end;
- isc_detach_database(@FStatus[0], @FIBDatabaseHandle);
- CheckError('TIBDatabase.Close', FStatus);
-end;
-
-procedure TIBDatabase.StartTransaction;
-begin
- if FTransaction = nil then
- raise EDatabaseError.Create('TIBDatabase.StartTransaction: Transaction not set');
- FTransaction.Active := True;
-end;
-
-procedure TIBDatabase.EndTransaction;
-begin
- if FTransaction = nil then
- raise EDatabaseError.Create('TIBDatabase.EndTransaction: Transaction not set');
- FTransaction.Active := False;
-end;
-
-destructor TIBDatabase.Destroy;
-begin
- if FTransaction <> nil then
- begin
- FTransaction.Active := False;
- FTransaction.Database := nil;
- end;
- inherited Destroy;
-end;
-
-procedure TIBDatabase.Notification(AComponent: TComponent;
- Operation: TOperation);
-begin
- inherited;
- if (AComponent = FTransaction) and (Operation = opRemove) then
- FTransaction := nil;
-end;
-
-{ TIBTransaction }
-
-procedure TIBTransaction.SetActive(Value : boolean);
-begin
- if FActive and (not Value) then
- Rollback
- else if (not FActive) and Value then
- StartTransaction;
-end;
-
-procedure TIBTransaction.SetTPB;
-begin
- FTPB := chr(isc_tpb_version3);
-
- case FAccessMode of
- amReadWrite : FTPB := FTPB + chr(isc_tpb_write);
- amReadOnly : FTPB := FTPB + chr(isc_tpb_read);
- end;
-
- case FIsolationLevel of
- ilConsistent : FTPB := FTPB + chr(isc_tpb_consistency);
- ilConcurrent : FTPB := FTPB + chr(isc_tpb_concurrency);
- ilReadCommittedRecV : FTPB := FTPB + chr(isc_tpb_read_committed) +
- chr(isc_tpb_rec_version);
- ilReadCommitted : FTPB := FTPB + chr(isc_tpb_read_committed) +
- chr(isc_tpb_no_rec_version);
- end;
-
- case FLockResolution of
- lrWait : FTPB := FTPB + chr(isc_tpb_wait);
- lrNoWait : FTPB := FTPB + chr(isc_tpb_nowait);
- end;
-
- case FTableReservation of
- trSharedLockRead : FTPB := FTPB + chr(isc_tpb_shared) +
- chr(isc_tpb_lock_read);
- trSharedLockWrite : FTPB := FTPB + chr(isc_tpb_shared) +
- chr(isc_tpb_lock_write);
- trProtectedLockRead : FTPB := FTPB + chr(isc_tpb_protected) +
- chr(isc_tpb_lock_read);
- trProtectedLockWrite : FTPB := FTPB + chr(isc_tpb_protected) +
- chr(isc_tpb_lock_write);
- end;
-end;
-
-function TIBTransaction.GetHandle: pointer;
-begin
- Result := FTransactionHandle;
-end;
-
-procedure TIBTransaction.Commit;
-begin
- if not FActive then Exit;
- if isc_commit_transaction(@FStatus[0], @FTransactionHandle) <> 0 then
- CheckError('TIBTransaction.Commit', FStatus)
- else FActive := False;
-end;
-
-procedure TIBTransaction.CommitRetaining;
-begin
- if not FActive then Exit;
- if isc_commit_retaining(@FStatus[0], @FTransactionHandle) <> 0 then
- CheckError('TIBTransaction.CommitRetaining', FStatus);
-end;
-
-procedure TIBTransaction.Rollback;
-begin
- if not FActive then Exit;
- if isc_rollback_transaction(@FStatus[0], @FTransactionHandle) <> 0 then
- CheckError('TIBTransaction.Rollback', FStatus)
- else FActive := False;
-end;
-
-procedure TIBTransaction.RollbackRetaining;
-begin
- if not FActive then Exit;
- if isc_rollback_retaining(@FStatus[0], @FTransactionHandle) <> 0 then
- CheckError('TIBTransaction.RollbackRetaining', FStatus);
-end;
-
-procedure TIBTransaction.StartTransaction;
-var
- DBHandle : pointer;
-begin
- if Active then Active := False;
-
- if FDatabase = nil then
- raise EInterBaseError.Create('TIBTransaction.StartTransaction: Database not assigned!');
-
- if not Database.Connected then
- Database.Open;
-
- DBHandle := Database.GetHandle;
- SetTPB;
- FTransactionHandle := nil;
-
- if isc_start_transaction(@FStatus[0], @FTransactionHandle, 1,
- [@DBHandle, Length(FTPB), @FTPB[1]]) <> 0 then
- CheckError('TIBTransaction.StartTransaction',FStatus)
- else FActive := True;
-end;
-
-constructor TIBTransaction.Create(AOwner : TComponent);
-begin
- inherited Create(AOwner);
- FIsolationLevel := ilConcurrent;
-end;
-
-destructor TIBTransaction.Destroy;
-begin
- // This will also do a Rollback, if the transaction is currently active
- Active := False;
-
- if Database <> nil then
- Database.Transaction := nil;
- inherited Destroy;
-end;
-
-{ TIBQuery }
-
-type
- { For now, we could simply say here that TFieldDataPrefix = boolean.
- But making TFieldDataPrefix as record will be allow to very easy add
- similar things like "IsNull" in the future.
- Any information that has constant length, and should be
- specified separately for every field of every row can be added as
- another TFieldDataPrefix field. }
- TFieldDataPrefix = record
- IsNull: boolean;
- end;
- PFieldDataPrefix = ^TFieldDataPrefix;
-
-procedure TIBQuery.SetTransaction(Value : TIBTransaction);
-begin
- CheckInactive;
- if (FTransaction <> Value) then
- FTransaction := Value;
-end;
-
-procedure TIBQuery.SetDatabase(Value : TIBDatabase);
-begin
- CheckInactive;
- if (FDatabase <> Value) then
- begin
- FDatabase := Value;
- if (FTransaction = nil) and (Assigned(FDatabase.Transaction)) then
- SetTransaction(FDatabase.Transaction);
- end;
-end;
-
-procedure TIBQuery.AllocSQLDA(Count : integer);
-begin
- if FSQLDAAllocated > 0 then
- FreeMem(FSQLDA);
- GetMem(FSQLDA, XSQLDA_Length(Count));
- { Zero out the memory block to avoid problems with exceptions within the
- constructor of this class. }
- FillChar(FSQLDA^, XSQLDA_Length(Count), 0);
- FSQLDAAllocated := Count;
- FSQLDA^.Version := sqlda_version1;
- FSQLDA^.SQLN := Count;
-end;
-
-procedure TIBQuery.AllocStatement;
-var
- dh : pointer;
-begin
- if not FDatabase.Connected then
- FDatabase.Open;
- dh := FDatabase.GetHandle;
-
- if isc_dsql_allocate_statement(@FStatus[0], @dh, @FStatement) <> 0 then
- CheckError('TIBQuery.AllocStatement', FStatus);
-end;
-
-procedure TIBQuery.FreeStatement;
-begin
- if isc_dsql_free_statement(@FStatus[0], @FStatement, DSQL_Drop) <> 0 then
- CheckError('TIBQuery.FreeStatement', FStatus);
- FStatement := nil;
-end;
-
-procedure TIBQuery.PrepareStatement;
-var
- Buf : string;
- x : integer;
- tr : pointer;
-begin
- if FTransaction = nil then
- raise EDatabaseError.Create('TIBQuery.Execute: Transaction not set');
- if not FTransaction.Active then
- FTransaction.StartTransaction;
-
- tr := FTransaction.GetHandle;
-
- for x := 0 to FSQL.Count - 1 do
- Buf := Buf + FSQL[x] + ' ';
-
- if isc_dsql_prepare(@FStatus[0], @tr, @FStatement, 0, @Buf[1], Database.Dialect, nil) <> 0 then
- CheckError('TIBQuery.PrepareStatement', FStatus);
-end;
-
-procedure TIBQuery.DescribeStatement;
-begin
- if isc_dsql_describe(@FStatus[0], @FStatement, 1, FSQLDA) <> 0 then
- CheckError('TIBQuery.DescribeStatement', FStatus);
- if FSQLDA^.SQLD > FSQLDA^.SQLN then
- begin
- AllocSQLDA(FSQLDA^.SQLD);
- if isc_dsql_describe(@FStatus[0], @FStatement, 1, FSQLDA) <> 0 then
- CheckError('TIBQuery.DescribeStatement', FStatus);
- end;
-end;
-
-procedure TIBQuery.SetUpSQLVars;
-var
- x : integer;
-begin
- for x := 0 to FSQLDA^.SQLN - 1 do
- begin
- case FSQLDA^.SQLVar[x].SQLType of
- sql_varying + 1:
- FSQLDA^.SQLVar[x].SQLType := sql_varying;
- sql_text + 1 :
- FSQLDA^.SQLVar[x].SQLType := sql_text;
- sql_short, sql_short + 1, sql_long + 1:
- FSQLDA^.SQLVar[x].SQLType := sql_long;
- sql_float + 1 :
- FSQLDA^.SQLVar[x].SQLType := sql_float;
- sql_double + 1 :
- FSQLDA^.SQLVar[x].SQLType := sql_double;
- sql_blob + 1 :
- FSQLDA^.SQLVar[x].SQLType := sql_blob;
- sql_type_time + 1 :
- FSQLDA^.SQLVar[x].SQLType := sql_type_time;
- sql_timestamp + 1:
- FSQLDA^.SQLVar[x].SQLType := sql_timestamp;
- end;
- end;
-end;
-
-procedure TIBQuery.AllocFldBuffers;
-var
- x : shortint;
-begin
- {$R-}
- for x := 0 to FSQLDA^.SQLD - 1 do
- begin
- FSQLDA^.SQLVar[x].SQLData := AllocMem(FSQLDA^.SQLVar[x].SQLLen);
- FSQLDA^.SQLVar[x].SQLInd := @FFieldFlag[x];
- end;
- {$R+}
-end;
-
-procedure TIBQuery.FreeFldBuffers;
-var
- x : integer;
-begin
- {$R-}
- for x := 0 to FSQLDA^.SQLD - 1 do
- begin
- if FSQLDA^.SQLVar[x].SQLData <> nil then
- begin
- FreeMem(FSQLDA^.SQLVar[x].SQLData);
- FSQLDA^.SQLVar[x].SQLData := nil;
- end;
- end;
- {$R+}
-end;
-
-procedure TIBQuery.Fetch;
-var
- retcode : integer;
-begin
- if not (FStatementType in [stSelect]) then
- Exit;
-
- retcode := isc_dsql_fetch(@FStatus[0], @FStatement, 1, FSQLDA);
- if (retcode <> 0) and (retcode <> 100) then
- CheckError('TIBQuery.Fetch', FStatus);
-
- FIsEOF := (retcode = 100);
-end;
-
-function TIBQuery.LoadBufferFromSQLDA(Buffer : PChar): TGetResult;
-var
- x : integer;
- VarcharLen : word;
-begin
-
- Fetch;
- if FIsEOF then
- begin
- Result := grEOF;
- Exit;
- end;
-
- {$R-}
- for x := 0 to FSQLDA^.SQLD - 1 do
- begin
- with FSQLDA^.SQLVar[x] do
- begin
- PFieldDataPrefix(Buffer)^.IsNull :=
- { If 1st bit of SQLType is not set then field *cannot* be null,
- and we shouldn't check SQLInd }
- ((SQLType and 1) <> 0) and (SQLInd^ = -1);
- Inc(Buffer, SizeOf(TFieldDataPrefix));
-
- if ((SQLType and not 1) = SQL_VARYING) then
- begin
- Move(SQLData^, VarcharLen, 2);
- Move((SQLData + 2)^, Buffer^, VarcharLen);
- PChar(Buffer + VarcharLen)^ := #0;
- end
- else Move(SQLData^, Buffer^, SQLLen);
- Inc(Buffer, SQLLen);
- end;
- end;
- {$R+}
- Result := grOK;
-
-end;
-
-procedure TIBQuery.GetStatementType;
-var
- x : integer;
- ResBuf : array [0..7] of char;
-begin
- FStatementType := stNone;
- x := isc_info_sql_stmt_type;
- if isc_dsql_sql_info(@FStatus[0], @FStatement, SizeOf(X),
- pchar(@x), SizeOf(ResBuf), @ResBuf[0]) <> 0 then
- CheckError('TIBQuery.GetStatementType', FStatus);
- if Ord(ResBuf[0]) = isc_info_sql_stmt_type then
- begin
- x := isc_vax_integer(@ResBuf[1], 2);
- FStatementType := TStatementType(isc_vax_integer(@ResBuf[3], x));
- end;
-end;
-
-procedure TIBQuery.SetFieldSizes;
-var
- x : integer;
-begin
- FRecordSize := 0;
- {$R-}
- for x := 0 to FSQLDA^.SQLD - 1 do
- Inc(FRecordSize, FSQLDA^.SQLVar[x].SQLLen);
- {$R+}
- Inc(FRecordSize, SizeOf(TFieldDataPrefix) * FSQLDA^.SQLD);
-
- FBufferSize := FRecordSize + SizeOf(TIBBookmark);
-end;
-
-procedure TIBQuery.TranslateFldType(SQLType, SQLLen : integer; var LensSet : boolean;
- var TrType : TFieldType; var TrLen : word);
-begin
- LensSet := False;
-
- case (SQLType and not 1) of
- SQL_VARYING :
- begin
- LensSet := True;
- TrType := ftString;
- TrLen := SQLLen;
- end;
- SQL_TEXT :
- begin
- LensSet := True;
- TrType := ftString;
- TrLen := SQLLen;
- end;
- SQL_TYPE_DATE :
- TrType := ftDateTime;
- SQL_TYPE_TIME :
- TrType := ftDateTime;
- SQL_TIMESTAMP :
- TrType := ftDateTime;
- SQL_ARRAY :
- begin
- end;
- SQL_BLOB :
- begin
- end;
- SQL_SHORT :
- begin
- LensSet := True;
- TrLen := SQLLen;
- TrType := ftInteger;
- end;
- SQL_LONG :
- begin
- LensSet := True;
- TrLen := SQLLen;
- TrType := ftInteger;
- end;
- SQL_INT64 :
- {TrType := ftInt64};
- SQL_DOUBLE :
- begin
- LensSet := True;
- TrLen := SQLLen;
- TrType := ftFloat;
- end;
- SQL_FLOAT :
- begin
- LensSet := True;
- TrLen := SQLLen;
- TrType := ftFloat;
- end;
- end;
-end;
-
-procedure TIBQuery.ExecuteImmediate;
-begin
-end;
-
-procedure TIBQuery.ExecuteParams;
-begin
- //!! to be implemented
-end;
-
-procedure TIBQuery.Execute;
-var
- tr : pointer;
-begin
- if FTransaction = nil then
- raise EDatabaseError.Create('TIBQuery.Execute: Transaction not set');
- if not FTransaction.Active then
- FTransaction.StartTransaction;
- tr := FTransaction.GetHandle;
- if isc_dsql_execute(@FStatus[0], @tr, @FStatement, 1, nil) <> 0 then
- CheckError('TIBQuery.Execute', FStatus);
-end;
-
-procedure TIBQuery.GetDateTime(CurrBuff, Buffer : pointer; AType : integer);
-var
- CTime : TTm; // C struct time
- STime : TSystemTime; // System time
- PTime : TDateTime; // Pascal time
-begin
- case (AType and not 1) of
- SQL_TYPE_DATE :
- isc_decode_sql_date(PISC_DATE(CurrBuff), @CTime);
- SQL_TYPE_TIME :
- isc_decode_sql_time(PISC_TIME(CurrBuff), @CTime);
- SQL_TIMESTAMP :
- isc_decode_timestamp(PISC_TIMESTAMP(CurrBuff), @CTime);
- end;
- STime.Year := CTime.tm_year + 1900;
- STime.Month := CTime.tm_mon + 1;
- STime.Day := CTime.tm_mday;
- STime.Hour := CTime.tm_hour;
- STime.Minute := CTime.tm_min;
- STime.Second := CTime.tm_sec;
- STime.Millisecond := 0;
-
- PTime := SystemTimeToDateTime(STime);
- Move(PTime, Buffer^, SizeOf(PTime));
-end;
-
-procedure TIBQuery.GetFloat(CurrBuff, Buffer : pointer; Field : TField);
-var
- Ext : extended;
- Dbl : double;
- Sin : single;
-begin
- case Field.Size of
- 4 :
- begin
- Move(CurrBuff^, Sin, 4);
- //Ext := Sin;
- Dbl := Sin;
- end;
- 8 :
- begin
- Move(CurrBuff^, Dbl, 8);
- //Ext := Dbl;
- end;
- 10:
- begin
- Move(CurrBuff^, Ext, 10);
- Dbl := Ext;
- end;
- end;
- //Move(Ext, Buffer^, 10);
- Move(Dbl, Buffer^, 8);
-end;
-
-function TIBQuery.AllocRecordBuffer: PChar;
-begin
- Result := AllocMem(FBufferSize);
-end;
-
-procedure TIBQuery.FreeRecordBuffer(var Buffer: PChar);
-begin
- if Assigned(@Buffer) then
- FreeMem(Buffer);
-end;
-
-procedure TIBQuery.GetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PInteger(Data)^ := PIBBookmark(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TIBQuery.GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
-begin
- Result := PIBBookmark(Buffer + FRecordSize)^.BookmarkFlag;
-end;
-
-function TIBQuery.GetFieldData(Field: TField; Buffer: Pointer): Boolean;
-var
- x : longint;
- b : longint;
- CurrBuff : PChar;
-begin
- Result := False;
- CurrBuff := ActiveBuffer;
-
- for x := 0 to FSQLDA^.SQLD - 1 do
- begin
- {$R-}
- if (Field.FieldName = FSQLDA^.SQLVar[x].AliasName) then
- begin
- Result := not PFieldDataPrefix(CurrBuff)^.IsNull;
-
- if Result and (Buffer <> nil) then
- begin
- Inc(CurrBuff, SizeOf(TFieldDataPrefix));
- case Field.DataType of
- ftInteger :
- begin
- b := 0;
- Move(b, Buffer^, 4);
- Move(CurrBuff^, Buffer^, Field.Size);
- end;
- ftDate, ftTime, ftDateTime:
- GetDateTime(CurrBuff, Buffer, FSQLDA^.SQLVar[x].SQLType);
- ftString :
- begin
- Move(CurrBuff^, Buffer^, Field.Size);
- PChar(Buffer + Field.Size)^ := #0;
- end;
- ftFloat :
- GetFloat(CurrBuff, Buffer, Field);
- end;
- end;
-
- Break;
- end
- else Inc(CurrBuff, FSQLDA^.SQLVar[x].SQLLen + SizeOf(TFieldDataPrefix));
- {$R+}
- end;
-end;
-
-function TIBQuery.GetFieldData(Field: TField; Buffer: Pointer;
- NativeFormat: Boolean): Boolean;
-begin
- Result := GetFieldData(Field, Buffer);
-end;
-
-function TIBQuery.GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult;
-begin
- if FStatementType <> stSelect then
- begin
- Result := grEOF;
- Exit;
- end;
- if FIsEOF then
- Result := grEOF
- else begin
- Result := grOK;
- case GetMode of
- gmPrior :
- if FCurrentRecord <= 0 then
- begin
- Result := grBOF;
- FCurrentRecord := -1;
- end
- else Dec(FCurrentRecord);
- gmCurrent :
- if (FCurrentRecord < 0) or (FCurrentRecord >= RecordCount) then
- Result := grError;
- gmNext :
- if FCurrentRecord >= (RecordCount - 1) then
- begin
- Result := LoadBufferFromSQLDA(Buffer);
- if Result = grOK then
- begin
- Inc(FCurrentRecord);
- Inc(FRecordCount);
- end;
- end
- else Inc(FCurrentRecord);
- end;
- end;
-
- if Result = grOK then
- begin
- with PIBBookmark(Buffer + FRecordSize)^ do
- begin
- BookmarkData := FCurrentRecord;
- BookmarkFlag := bfCurrent;
- end;
- end
- else if (Result = grError) then
- DatabaseError('No record');
-end;
-
-function TIBQuery.GetRecordCount: integer;
-begin
- Result := FRecordCount;
-end;
-
-function TIBQuery.GetRecordSize: Word;
-begin
- Result := FRecordSize;
-end;
-
-procedure TIBQuery.InternalAddRecord(Buffer: Pointer; AAppend: Boolean);
-begin
- // not implemented - sql dataset
-end;
-
-procedure TIBQuery.InternalClose;
-begin
- FreeFldBuffers;
- FreeStatement;
- if DefaultFields then
- DestroyFields;
- FIsEOF := False;
- FCurrentRecord := -1;
- FBufferSize := 0;
- FRecordSize := 0;
- FRecordCount:= 0;
- FOpen:=False;
-end;
-
-procedure TIBQuery.InternalDelete;
-begin
- // not implemented - sql dataset
-end;
-
-procedure TIBQuery.InternalFirst;
-begin
- FCurrentRecord := -1;
-end;
-
-procedure TIBQuery.InternalGotoBookmark(ABookmark: Pointer);
-begin
- FCurrentRecord := PInteger(ABookmark)^;
-end;
-
-procedure TIBQuery.InternalInitFieldDefs;
-var
- x : integer;
- lenset : boolean;
- TransLen : word;
- TransType : TFieldType;
-begin
- if FLoadingFieldDefs then
- Exit;
-
- FLoadingFieldDefs := True;
-
- try
- FieldDefs.Clear;
- {$R-}
- for x := 0 to FSQLDA^.SQLD - 1 do
- begin
- TranslateFldType(FSQLDA^.SQLVar[x].SQLType, FSQLDA^.SQLVar[x].SQLLen, lenset,
- TransType, TransLen);
- TFieldDef.Create(FieldDefs, FSQLDA^.SQLVar[x].AliasName, TransType,
- TransLen, False, (x + 1));
- end;
- {$R+}
- finally
- FLoadingFieldDefs := False;
- end;
-end;
-
-procedure TIBQuery.InternalInitRecord(Buffer: PChar);
-begin
- FillChar(Buffer^, FBufferSize, #0);
-end;
-
-procedure TIBQuery.InternalLast;
-begin
- FCurrentRecord := RecordCount;
-end;
-
-procedure TIBQuery.InternalOpen;
-begin
- try
- AllocStatement;
- PrepareStatement;
- GetStatementType;
- if FStatementType in [stSelect] then
- begin
- DescribeStatement;
- AllocFldBuffers;
- Execute;
- FOpen:=True;
- InternalInitFieldDefs;
- if DefaultFields then
- CreateFields;
- SetFieldSizes;
- BindFields(True);
- end
- else Execute;
- except
- on E:Exception do
- raise;
- end;
-end;
-
-procedure TIBQuery.InternalPost;
-begin
- // not implemented - sql dataset
-end;
-
-procedure TIBQuery.InternalSetToRecord(Buffer: PChar);
-begin
- FCurrentRecord := PIBBookmark(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TIBQuery.IsCursorOpen: Boolean;
-begin
- Result := FOpen;
-end;
-
-procedure TIBQuery.SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag);
-begin
- PIBBookmark(Buffer + FRecordSize)^.BookmarkFlag := Value;
-end;
-
-procedure TIBQuery.SetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PIBBookmark(Buffer + FRecordSize)^.BookmarkData := PInteger(Data)^;
-end;
-
-procedure TIBQuery.SetFieldData(Field: TField; Buffer: Pointer);
-begin
-end;
-
-procedure TIBQuery.SetFieldData(Field: TField; Buffer: Pointer;
- NativeFormat: Boolean);
-begin
- SetFieldData(Field, Buffer);
-end;
-
-// public part
-
-procedure TIBQuery.ExecSQL;
-begin
- AllocStatement;
- try
- PrepareStatement;
- GetStatementType;
- Execute;
- finally
- FreeStatement;
- end;
-end;
-
-constructor TIBQuery.Create(AOwner : TComponent);
-begin
- inherited Create(AOwner);
- FSQL := TStringList.Create;
- FCurrentRecord := -1;
- AllocSQLDA(10);
-end;
-
-destructor TIBQuery.Destroy;
-begin
- if Active then Close;
- FSQL.Free;
- inherited Destroy;
- FreeMem(FSQLDA);
-end;
-
-{ TIBStoredProc }
-
-end.
diff --git a/packages/fcl-db/src/unmaintained/interbase/mkdb b/packages/fcl-db/src/unmaintained/interbase/mkdb
deleted file mode 100644
index 82ff45259a..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/mkdb
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-#
-# Script to create a table 'FPdev' and to fill it with data.
-# The script accepts an optional argument :
-# A database to connect to. (default 'testdb')
-#
-# Collect the database
-DATABASE=test.gdb
-# Choose one of the following:
-# ISQL=isql
-ISQL=/opt/interbase/bin/isql
-#
-# Don't edit after this.
-#
-echo -n "Creating and filling table FPdev in database $DATABASE..."
-# >/dev/null 2>&1
-${ISQL} << EOF
-set sql dialect 3;
-CREATE DATABASE "$DATABASE";
-create table FPDEV (
-id INT NOT NULL,
-UserName varchar(50),
-InstEmail CHAR(50),
-PRIMARY KEY (id));
-insert into FPdev values ('1','Michael Van Canneyt','Michael@tfdec1.fys.kuleuven.ac.be');
-insert into FPdev values ('2','Florian Klaempfl','ba2395@fen.baynet.de');
-insert into FPdev values ('3','Carl-Eric Codere','codc01@gel.usherb.ca');
-insert into FPdev values ('4','Daniel Mantione','d.s.p.mantione@twi.tudelft.nl');
-insert into FPdev values ('5','Pierre Muller','muller@europe.u-strasbg.fr');
-insert into FPdev values ('6','Jonas Maebe','jmaebe@mail.dma.be');
-insert into FPdev values ('7','Peter Vreman','pfv@worldonline.nl');
-insert into FPdev values ('8','Gerry Dubois','gerry@webworks.ml.org');
-create table test (
-timestamp_fld timestamp,
-smallint_fld smallint,
-integer_fld integer,
-float_fld float,
-double_fld double precision,
-char_fld char(10),
-varchar_fld varchar(50));
-insert into test values ('12.1.2000 00:30',10,70000,12.5,20.5,'testchar','testvarchar');
-commit;
-EOF
-if [ ! $? = 0 ]; then
- echo "Failed."
-else
- echo "Done."
-fi
-# Ready
diff --git a/packages/fcl-db/src/unmaintained/interbase/testib.pp b/packages/fcl-db/src/unmaintained/interbase/testib.pp
deleted file mode 100644
index fb584446bb..0000000000
--- a/packages/fcl-db/src/unmaintained/interbase/testib.pp
+++ /dev/null
@@ -1,92 +0,0 @@
-
- Copyright (c) 2000 by Pavel Stingl
-
- Interbase testing program
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-program TestIB;
-
-{$ifdef unix}
- {$ifndef BSD} // BSD has libdl built in libc
- {$linklib dl}
- {$endif}
-{$linklib crypt}
-{$endif}
-
-uses Interbase, SysUtils;
-
-var
- Database : TIBDatabase;
- Trans : TIBTransaction;
- Query : TIBQuery;
- x : integer;
-
-begin
- Database := TIBDatabase.Create(nil);
- Trans := TIBTransaction.Create(nil);
- Query := TIBQuery.Create(nil);
-
- Database.DatabaseName := 'test.gdb';
- Database.UserName := 'sysdba';
- Database.Password := 'masterkey';
- Database.Transaction := Trans;
- Trans.Action := caRollback;
- Trans.Active := True;
-
-
- Write('Opening database... Database.Connected = ');
- Database.Open;
- WriteLn(Database.Connected);
-
- // Assigning database to dataset
- Query.Database := Database;
-
- Query.SQL.Add('select * from fpdev');
- Query.Open;
-
- WriteLn;
-
- while not Query.EOF do
- begin
- for x := 0 to Query.FieldCount - 2 do
- Write(Query.Fields[x].AsString,',');
- WriteLn(Query.Fields[Query.FieldCount - 1].AsString);
- Query.Next;
- end;
-
- WriteLn;
-
-
- try
- WriteLn('Trying to insert new record to table fpdev');
- Query.Close;
- Query.SQL.Clear;
- Query.SQL.Add('insert into fpdev values (''9'',''John Doe'',''jd@unknown.net'')');
- Query.ExecSQL;
- Trans.CommitRetaining;
- WriteLn('Insert succeeded.');
- except
- on E:Exception do
- begin
- WriteLn(E.Message);
- WriteLn('Error when inserting record. Transaction rollback.');
- Trans.RollbackRetaining;
- end;
- end;
-
- WriteLn;
-
- Trans.Commit;
-
- Write('Closing database... Database.Connected = ');
- Database.Close;
- WriteLn(Database.Connected);
-end.
diff --git a/packages/fcl-db/src/unmaintained/mysql/Makefile b/packages/fcl-db/src/unmaintained/mysql/Makefile
deleted file mode 100644
index 0c1fa583a4..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/Makefile
+++ /dev/null
@@ -1,2562 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
-#
-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-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=mysqldb4 mysqldb3
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_RSTS+=mysqldb
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLES+=mtest
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override CLEAN_UNITS+=mysql mysql_com mysql_version
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-ifeq ($(OS_SOURCE),linux)
-ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifeq ($(CPU_TARGET),powerpc64)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifndef GCCLIBDIR
-CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(CROSSGCC),)
-GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
-endif
-endif
-ifndef OTHERLIBDIR
-OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
-endif
-endif
-ifdef inUnix
-ifeq ($(OS_SOURCE),netbsd)
-OTHERLIBDIR+=/usr/pkg/lib
-endif
-export GCCLIBDIR OTHERLIB
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl mysql
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_MYSQL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_MYSQL
-PACKAGEDIR_MYSQL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /mysql/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_MYSQL),)
-ifneq ($(wildcard $(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)),)
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_MYSQL=$(PACKAGEDIR_MYSQL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_MYSQL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_MYSQL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_MYSQL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_MYSQL=
-UNITDIR_MYSQL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /mysql/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_MYSQL),)
-UNITDIR_MYSQL:=$(firstword $(UNITDIR_MYSQL))
-else
-UNITDIR_MYSQL=
-endif
-endif
-ifdef UNITDIR_MYSQL
-override COMPILER_UNITDIR+=$(UNITDIR_MYSQL)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef GCCLIBDIR
-override FPCOPT+=-Fl$(GCCLIBDIR)
-endif
-ifdef OTHERLIBDIR
-override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
- @$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
- $(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
- $(MAKE) all DEBUG=1
-fpc_release:
- $(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
- $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
- $(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(PPUEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.lpr
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.dpr
- $(COMPILER) $<
- $(EXECPPAS)
-%.res: %.rc
- windres -i $< -o $@
-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 %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
- $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
- $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
- @$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
- $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
- $(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
- $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
- $(MKDIR) $(INSTALL_LIBDIR)
- $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
- ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
- $(MKDIR) $(INSTALL_DATADIR)
- $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
- $(MKDIR) $(INSTALL_SOURCEDIR)
- $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
- $(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
- $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
- -$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
- -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
- -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
- -$(DELTREE) units
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
- @$(ECHO)
- @$(ECHO) == Package info ==
- @$(ECHO) Package Name..... $(PACKAGE_NAME)
- @$(ECHO) Package Version.. $(PACKAGE_VERSION)
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC.......... $(FPC)
- @$(ECHO) FPC Version.. $(FPC_VERSION)
- @$(ECHO) Source CPU... $(CPU_SOURCE)
- @$(ECHO) Target CPU... $(CPU_TARGET)
- @$(ECHO) Source OS.... $(OS_SOURCE)
- @$(ECHO) Target OS.... $(OS_TARGET)
- @$(ECHO) Full Source.. $(FULL_SOURCE)
- @$(ECHO) Full Target.. $(FULL_TARGET)
- @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
- @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
- @$(ECHO)
- @$(ECHO) == Directory info ==
- @$(ECHO)
- @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
- @$(ECHO)
- @$(ECHO) Basedir......... $(BASEDIR)
- @$(ECHO) FPCDir.......... $(FPCDIR)
- @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
- @$(ECHO) UnitsDir........ $(UNITSDIR)
- @$(ECHO) PackagesDir..... $(PACKAGESDIR)
- @$(ECHO)
- @$(ECHO) GCC library..... $(GCCLIBDIR)
- @$(ECHO) Other library... $(OTHERLIBDIR)
- @$(ECHO)
- @$(ECHO) == Tools info ==
- @$(ECHO)
- @$(ECHO) As........ $(AS)
- @$(ECHO) Ld........ $(LD)
- @$(ECHO) Ar........ $(AR)
- @$(ECHO) Rc........ $(RC)
- @$(ECHO)
- @$(ECHO) Mv........ $(MVPROG)
- @$(ECHO) Cp........ $(CPPROG)
- @$(ECHO) Rm........ $(RMPROG)
- @$(ECHO) GInstall.. $(GINSTALL)
- @$(ECHO) Echo...... $(ECHO)
- @$(ECHO) Shell..... $(SHELL)
- @$(ECHO) Date...... $(DATE)
- @$(ECHO) FPCMake... $(FPCMAKE)
- @$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
- @$(ECHO) Zip....... $(ZIPPROG)
- @$(ECHO)
- @$(ECHO) == Object info ==
- @$(ECHO)
- @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
- @$(ECHO) Target Units.......... $(TARGET_UNITS)
- @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
- @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
- @$(ECHO) Target Dirs........... $(TARGET_DIRS)
- @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
- @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
- @$(ECHO)
- @$(ECHO) Clean Units......... $(CLEAN_UNITS)
- @$(ECHO) Clean Files......... $(CLEAN_FILES)
- @$(ECHO)
- @$(ECHO) Install Units....... $(INSTALL_UNITS)
- @$(ECHO) Install Files....... $(INSTALL_FILES)
- @$(ECHO)
- @$(ECHO) == Install info ==
- @$(ECHO)
- @$(ECHO) DateStr.............. $(DATESTR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
- @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
- @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
- @$(ECHO) FullZipName.......... $(FULLZIPNAME)
- @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
- @$(ECHO)
- @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
- @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
- @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
- @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
- @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
- @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
- @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
- @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
- @$(ECHO)
- @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
- @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
- @$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
- fpc_makefile_dirs
-fpc_makefile:
- $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples: fpc_examples
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/mysql/Makefile.fpc b/packages/fcl-db/src/unmaintained/mysql/Makefile.fpc
deleted file mode 100644
index 184808a360..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/Makefile.fpc
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Makefile.fpc for MySql FCL db units
-#
-
-[package]
-main=fcl-db
-
-[target]
-units=mysqldb4 mysqldb3
-rsts=mysqldb
-examples=mtest
-
-[clean]
-units=mysql mysql_com mysql_version
-
-[require]
-packages=mysql
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../../../..
-
-[rules]
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/mysql/fpmake.inc b/packages/fcl-db/src/unmaintained/mysql/fpmake.inc
deleted file mode 100644
index ebd5500cb6..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/fpmake.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-{ Make DB directory and all subdirectories }
-{ FULLDB will be defined if included from db directory }
-{ FULLFCL will be defined if included from main FCL directory }
-
-Targets.ResetDefaults;
-Targets.DefaultDir:='db/mysql';
-Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux];
-T:=Targets.AddUnit('mysqldb4');
-T.ResourceStrings:=True;
-T:=Targets.AddUnit('mysqldb3');
-T.ResourceStrings:=True;
-Targets.Addexampleunit('mtest');
-if Defaults.OS in Targets.DefaultOS then
- begin
- CleanFiles.add('mysql.o');
- CleanFiles.add('mysql.ppu');
- CleanFiles.add('mysql_com.o');
- CleanFiles.add('mysql_com.ppu');
- CleanFiles.add('mysql_version.o');
- CleanFiles.add('mysql_version.ppu');
- end;
diff --git a/packages/fcl-db/src/unmaintained/mysql/fpmake.pp b/packages/fcl-db/src/unmaintained/mysql/fpmake.pp
deleted file mode 100644
index 8781e3d069..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/fpmake.pp
+++ /dev/null
@@ -1,20 +0,0 @@
-{$mode objfpc}
-{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
- T : TTarget;
-
-begin
- ChangeDir('../..');
- With Installer do
- begin
- {$i ../../fclmake.inc}
- {$i fpmake.inc}
- EndPackage;
- Run;
- end;
-end.
-
diff --git a/packages/fcl-db/src/unmaintained/mysql/mtest.pp b/packages/fcl-db/src/unmaintained/mysql/mtest.pp
deleted file mode 100644
index c8b918805d..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/mtest.pp
+++ /dev/null
@@ -1,198 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2000 by the Free Pascal development team
-
- <What does this file>
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-{$mode objfpc}
-{$H+}
-program mtest;
-
-uses db,sysutils, mysqldb4; // change to mysqldb3 if you are using version 3.
-
-Procedure Log(Const Msg : String);
-begin
- Writeln(Msg);
-end;
-
-Procedure DumpFieldDef(F : TfieldDef);
-
-begin
- With F do
- begin
- Writeln ('Name : ',Name);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Size : ',Size);
- Writeln ('FieldClass : ',FieldClass.ClassName);
- Writeln ('Required : ',required);
- Writeln ('Precision : ',Precision);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('InternalCalcField : ',Internalcalcfield);
- end;
-end;
-
-Procedure DumpField(F : Tfield);
-
-begin
- With F do
- begin
- Writeln ('FieldName : ',FieldName);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Index : ',Index);
- Writeln ('DataSize : ',DataSize);
- Writeln ('Size : ',Size);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('Class : ',ClassName);
- Writeln ('Required : ',required);
- Writeln ('ReadOnly : ',ReadOnly);
- Writeln ('Visible : ',Visible);
- end;
-end;
-
-Procedure DumpFieldData (F : TField);
-
-begin
- With F Do
- begin
- Writeln ('Field : ',FieldName);
- Writeln ('Data type : ',FieldTypeNames[DataType]);
- Writeln ('As String : ',Asstring);
- Case Datatype of
- ftSmallint, ftInteger, ftWord : Writeln ('As longint : ',AsLongint);
- ftBoolean : Writeln ('As Boolean : ',AsBoolean);
- ftFloat : Writeln ('As Float : ',AsFloat);
- ftDate, ftTime, ftDateTime : Writeln ('As DateTime : ',DateTimeToStr(AsDateTime));
- end;
- end;
-end;
-
-Var
- Dbase : TMySQLDatabase;
- Data : TMysqldataset;
- I,Count : longint;
- Bookie : TBookMarkStr;
-
-Procedure ScrollForward;
-
-begin
- Writeln ('Browsing Forward:');
- Writeln ('------------------');
- With Data do
- While NOT EOF do
- begin
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- end;
-end;
-
-Procedure ScrollBackWard;
-
-begin
- Writeln ('Browsing Backward:');
- Writeln ('-------------------');
- With Data do
- While NOT BOF do
- begin
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Prior;
- end;
-end;
-
-begin
- if paramcount<>4 then
- begin
- Writeln ('Usage : mtest db user pwd sql');
- Halt(1);
- end;
- Log ('Creating Database');
- DBase:=TMySQLDatabase.Create(Nil);
- Try
- With DBase do
- begin
- Log('Setting database');
- DatabaseName:=Paramstr(1);
- Log('Setting user');
- UserName:=Paramstr(2);
- Log('Setting password');
- PassWord := Paramstr(3);
- Log('Connecting');
- Connected:=True;
- end;
- Log ('Creating Dataset');
- Data:=TMysqlDataset.Create(Nil);
- With Data do
- Try
- Log('Setting database property');
- Database:=DBase;
- Log('Setting SQL');
- SQL.text := Paramstr(4);
- Log('Opening Dataset');
- Open;
- Log('Dumping fielddefs : ');
- Writeln ('Fielddefs count : ',FieldDefs.Count);
- For I:=0 to FieldDefs.Count-1 do
- DumpFieldDef(FieldDefs.Items[i]);
- Writeln ('Fields count : ',FieldCount);
- For I:=0 to FieldCount-1 do
- DumpField(Fields[i]);
- ScrollForward;
- ScrollBackWard;
- Writeln ('Going to last :');
- writeln ('---------------');
- Last;
- ScrollBackWard;
- ScrollForward;
- Writeln ('Going to first:');
- First;
- Count:=0;
- Writeln ('Browsing Forward:');
- Writeln ('------------------');
- With Data do
- While NOT EOF do
- begin
- Inc(Count);
- If Count=recordCount div 2 then
- begin
- Writeln ('Setting bookmark on record');
- Bookie:=Bookmark;
- Writeln ('Got data : "',Bookie,'"');
- end;
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- end;
- Writeln ('Jumping to bookmark',Bookie);
- BookMark:=Bookie;
- Writeln ('Dumping Record : ');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Next;
- Writeln ('Dumping Next Record : ');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Prior;
- Prior;
- Writeln ('Dumping Previous Record : ');
- For I:=0 to FieldCount-1 do
- DumpFieldData(Fields[I]);
- Log('Closing Dataset');
- Close;
- Log('End.');
- Finally
- Free;
- end;
- Finally
- Writeln('Freeing database');
- DBase.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp b/packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp
deleted file mode 100644
index 8c0008c9b4..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp
+++ /dev/null
@@ -1,924 +0,0 @@
-unit MySQLDB3;
-
-{$H+}
-
-interface
-
-uses
- SysUtils, Classes, db, mysql3,mysql3_com;
-
-type
- PMySQLDatasetBookmark = ^TMySQLDatasetBookmark;
- TMySQLDatasetBookmark = record
- BookmarkData: Integer;
- BookmarkFlag: TBookmarkFlag;
- end;
-
- Pinteger = ^Integer;
-
- TMySQLDatabase = class(TDatabase)
- Private
- FMYSQL: PMYSQL;
- FServerInfo: string;
- FHostInfo: string;
- function GetHostName: String;
- Function GetUserName : String;
- procedure SetHostName(const AValue: String);
- Procedure SetUserName (Value : String);
- Procedure SetPassword (Value : String);
- Function GetPassword : String;
- Function GetClientInfo : String;
- Protected
- Procedure ConnectToServer;
- Procedure SelectDatabase;
- Procedure DoInternalConnect; override;
- Procedure DoInternalDisConnect; override;
- procedure StartTransaction; override;
- procedure EndTransaction; override;
- function GetServerStatus: string;
- Public
- Procedure CreateDatabase;
- Procedure DropDatabase;
- Property ServerInfo : String Read FServerInfo;
- Property HostInfo : String Read FHostInfo;
- property ClientInfo: string read GetClientInfo;
- property ServerStatus : String read GetServerStatus;
- Published
- Property UserName : String Read GetUserName Write SetUserName;
- Property HostName : String Read GetHostName Write SetHostName;
- Property Password : String Read GetPassword Write SetPassword;
- end;
-
- TMySQLDataset = class(TDBDataSet)
- private
- FSQL: TStrings;
- FRecordSize: Integer;
- FBufferSize: Integer;
- // MySQL data
- FMYSQLRES: PMYSQL_RES;
- FCurrentRecord: Integer; { Record pointer }
- FAffectedRows: QWord;
- FLastInsertID: Integer;
- FLoadingFieldDefs: Boolean;
-
- procedure DoClose;
- procedure DoQuery;
- procedure DoGetResult;
-
- procedure CalculateSizes;
- procedure LoadBufferFromData(Buffer: PChar);
- protected
- Function FMySQL : PMySQL;
- procedure SetSQL(const Value: TStrings);
- function InternalStrToFloat(S: string): Extended;
- function InternalStrToDate(S: string): TDateTime;
- function InternalStrToTime(S: string): TDateTime;
- function InternalStrToDateTime(S: string): TDateTime;
- function InternalStrToTimeStamp(S: string): TDateTime;
-
- function MySQLFieldToFieldType(AType: enum_field_types; ASize: Integer;
- var NewType: TFieldType; var NewSize: Integer): Boolean;
- function MySQLDataSize(AType: enum_field_types; ASize: Integer): Integer;
- function MySQLWriteFieldData(AType: enum_field_types; ASize: Integer; Source: PChar;
- Dest: PChar): Integer;
-
-
- function GetCanModify: Boolean; override;
- { Mandatory overrides }
- // Record buffer methods:
- function AllocRecordBuffer: PChar; override;
- procedure FreeRecordBuffer(var Buffer: PChar); override;
- procedure InternalInitRecord(Buffer: PChar); override;
- function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; override;
- function GetRecordSize: Word; override;
- procedure SetFieldData(Field: TField; Buffer: Pointer); override;
- // Bookmark methods:
- procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override;
- function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override;
- procedure InternalGotoBookmark(ABookmark: Pointer); override;
- procedure InternalSetToRecord(Buffer: PChar); override;
- procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override;
- procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override;
- // Navigational methods:
- procedure InternalFirst; override;
- procedure InternalLast; override;
- // Editing methods:
- procedure InternalAddRecord(Buffer: Pointer; DoAppend: Boolean); override;
- procedure InternalDelete; override;
- procedure InternalPost; override;
- // Misc methods:
- procedure InternalClose; override;
- procedure InternalInitFieldDefs; override;
- procedure InternalOpen; override;
- function IsCursorOpen: Boolean; override;
- { Optional overrides }
- function GetRecordCount: Integer; override;
- function GetRecNo: Integer; override;
- procedure SetRecNo(Value: Integer); override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
-
- procedure ExecSQL;
-
- // TDataset method
- function GetFieldData(Field: TField; Buffer: Pointer): Boolean; override;
- function GetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean): Boolean; overload; override;
- procedure SetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean); overload; override;
-
- property AffectedRows: QWord read FAffectedRows;
- property LastInsertID: Integer read FLastInsertID;
- published
- property Active;
- property Database;
- property SQL: TStrings read FSQL write SetSQL;
- property BeforeOpen;
- property AfterOpen;
- property BeforeClose;
- property AfterClose;
- property BeforeInsert;
- property AfterInsert;
- property BeforeEdit;
- property AfterEdit;
- property BeforePost;
- property AfterPost;
- property BeforeCancel;
- property AfterCancel;
- property BeforeDelete;
- property AfterDelete;
- property BeforeScroll;
- property AfterScroll;
- property OnDeleteError;
- property OnEditError;
- end;
-
- EMySQLError = Class(Exception);
-
-implementation
-
-Resourcestring
- SErrServerConnectFailed = 'Server connect failed.';
- SErrDatabaseSelectFailed = 'failed to select database: %s';
- SErrDatabaseCreate = 'Failed to create database: %s';
- SErrDatabaseDrop = 'Failed to drop database: %s';
- SErrNoData = 'No data for record';
- SErrExecuting = 'Error executing query: %s';
- SErrFetchingdata = 'Error fetching row data: %s';
- SErrGettingResult = 'Error getting result set: %s';
-
-Procedure MySQlError(R : PMySQL;Msg: String;Comp : TComponent);
-
-Var
- MySQLMsg : String;
-
-begin
- If (R<>Nil) then
- begin
- MySQLMsg:=Strpas(mysql_error(R));
- DatabaseErrorFmt(Msg,[MySQLMsg],Comp);
- end
- else
- DatabaseError(Msg,Comp);
-end;
-
-{ TMySQLDataset }
-
-constructor TMySQLDataset.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FSQL := TStringList.Create;
- FBufferSize := 0;
- FRecordSize := 0;
- FCurrentRecord := -1;
- FLoadingFieldDefs := False;
- FAffectedRows := 0;
- FLastInsertID := -1;
- FMYSQLRES := nil;
-end;
-
-destructor TMySQLDataset.Destroy;
-begin
- Close;
- FSQL.Free;
- inherited destroy;
-end;
-
-function TMySQLDataset.AllocRecordBuffer: PChar;
-begin
- Result := AllocMem(FBufferSize);
-end;
-
-procedure TMySQLDataset.FreeRecordBuffer(var Buffer: PChar);
-begin
- If (@Buffer<>nil) then
- FreeMem(Buffer);
-end;
-
-procedure TMySQLDataset.GetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PInteger(Data)^ := PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TMySQLDataset.GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
-begin
- Result:=PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkFlag;
-end;
-
-function TMySQLDataset.GetFieldData(Field: TField; Buffer: Pointer): Boolean;
-
-var
- I, FC: Integer;
- fld: PMYSQL_FIELD;
- CurBuf: PChar;
-
-begin
- Result := False;
- CurBuf := ActiveBuffer;
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- fld := mysql_fetch_field_direct(FMYSQLRES, I);
- if Field.FieldName = fld^.name then
- begin
- Move(CurBuf^, PChar(Buffer)^, MySQLDataSize(fld^.ftype, fld^.length));
- if Field.DataType in [ftString{, ftWideString}] then
- begin
- Result := PChar(buffer)^ <> #0;
- if Result then
- // Terminate string (necessary for enum fields)
- PChar(buffer)[fld^.length] := #0;
- end
- else
- Result := True;
- break;
- end
- else
- Inc(CurBuf, MySQLDataSize(fld^.ftype, fld^.length));
- end;
-end;
-
-function TMySQLDataset.GetFieldData(Field: TField; Buffer: Pointer;
- NativeFormat: Boolean): Boolean;
-begin
- Result:=GetFieldData(Field, Buffer);
-end;
-
-procedure TMySQLDataset.SetFieldData(Field: TField; Buffer: Pointer;
- NativeFormat: Boolean);
-begin
- SetFieldData(Field, Buffer);
-end;
-
-function TMySQLDataset.GetRecNo: Integer;
-begin
- UpdateCursorPos;
- if (FCurrentRecord=-1) and (RecordCount > 0) then
- Result:=1
- else
- Result:=FCurrentRecord+1;
-end;
-
-function TMySQLDataset.GetRecord(Buffer: PChar; GetMode: TGetMode;
- DoCheck: Boolean): TGetResult;
-begin
- if RecordCount < 1 then
- Result := grEOF
- else
- begin
- Result := grOk;
- case GetMode of
- gmPrior:
- if FCurrentRecord <= 0 then
- begin
- Result := grBOF;
- FCurrentRecord := -1;
- end
- else
- Dec(FCurrentRecord);
- gmCurrent:
- if (FCurrentRecord<0) or (FCurrentRecord>=RecordCount) then
- Result := grError;
- gmNext:
- if FCurrentRecord>=RecordCount-1 then
- Result := grEOF
- else
- Inc(FCurrentRecord);
- end;
- if (Result=grOK) then
- begin
- LoadBufferFromData(Buffer);
- with PMySQLDatasetBookmark(Buffer + FRecordSize)^ do
- begin
- BookmarkData := FCurrentRecord;
- BookmarkFlag := bfCurrent;
- end;
- end
- else
- if (Result=grError) and (DoCheck) then
- DatabaseError(SerrNoData,Self);
- end;
-end;
-
-function TMySQLDataset.GetRecordCount: Integer;
-begin
- Result:=mysql_num_rows(FMYSQLRES);
-end;
-
-function TMySQLDataset.GetRecordSize: Word;
-begin
- Result:=FRecordSize;
-end;
-
-procedure TMySQLDataset.InternalAddRecord(Buffer: Pointer; DoAppend: Boolean);
-begin
-
-end;
-
-procedure TMySQLDataset.InternalClose;
-begin
- FCurrentRecord := -1;
- DoClose;
- if DefaultFields then
- DestroyFields;
-end;
-
-procedure TMySQLDataset.InternalDelete;
-begin
-
-end;
-
-procedure TMySQLDataset.InternalFirst;
-begin
- FCurrentRecord := -1;
-end;
-
-procedure TMySQLDataset.InternalGotoBookmark(ABookmark: Pointer);
-begin
- FCurrentRecord := PInteger(ABookmark)^;
-end;
-
-procedure TMySQLDataset.InternalInitFieldDefs;
-
-var
- I, FC: Integer;
- field: PMYSQL_FIELD;
- DFT: TFieldType;
- DFS: Integer;
- WasClosed: Boolean;
-
-begin
- if FLoadingFieldDefs then Exit;
- FLoadingFieldDefs := True;
- try
- WasClosed := not IsCursorOpen;
- if WasClosed then
- begin
- DoQuery;
- DoGetResult;
- end;
- try
- FieldDefs.Clear;
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- field := mysql_fetch_field_direct(FMYSQLRES, I);
- if MySQLFieldToFieldType(field^.ftype, field^.length, DFT, DFS) then
- TFieldDef.Create(FieldDefs, field^.name, DFT, DFS, False, I+1);
- end;
- finally
- if WasClosed then
- DoClose;
- end;
- finally
- FLoadingFieldDefs := False;
- end;
-end;
-
-procedure TMySQLDataset.InternalInitRecord(Buffer: PChar);
-begin
- FillChar(Buffer^, FBufferSize, 0);
-end;
-
-procedure TMySQLDataset.InternalLast;
-begin
- FCurrentRecord := RecordCount;
-end;
-
-procedure TMySQLDataset.InternalOpen;
-begin
- CheckDatabase;
- FMYSQLRES := nil;
- try
- DoQuery;
- DoGetResult;
- FCurrentRecord := -1;
- InternalInitFieldDefs;
- if DefaultFields then
- CreateFields;
- CalculateSizes;
- BindFields(True);
- except
- DoClose;
- raise;
- end;
- BookMarkSize:=SizeOf(Longint);
-end;
-
-procedure TMySQLDataset.InternalSetToRecord(Buffer: PChar);
-begin
- FCurrentRecord := PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TMySQLDataset.IsCursorOpen: Boolean;
-begin
- Result:=(FMYSQLRES<>nil);
-end;
-
-procedure TMySQLDataset.SetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkData := PInteger(Data)^;
-end;
-
-procedure TMySQLDataset.SetBookmarkFlag(Buffer: PChar;
- Value: TBookmarkFlag);
-begin
- PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkFlag := Value;
-end;
-
-procedure TMySQLDataset.SetFieldData(Field: TField; Buffer: Pointer);
-begin
-
-end;
-
-procedure TMySQLDataset.SetRecNo(Value: Integer);
-begin
- if (Value >= 0) and (Value <= RecordCount-1) then
- begin
- FCurrentRecord := Value-1;
- Resync([]);
- end;
-end;
-
-procedure TMySQLDataset.SetSQL(const Value: TStrings);
-begin
- FSQL.Assign(Value);
- FieldDefs.Clear;
-end;
-
-procedure TMySQLDataset.ExecSQL;
-begin
- try
- DoQuery;
- finally
- DoClose;
- end;
-end;
-
-
-procedure TMySQLDataset.InternalPost;
-begin
-
-end;
-
-function TMySQLDataset.MySQLFieldToFieldType(AType: enum_field_types; ASize: Integer;
- var NewType: TFieldType; var NewSize: Integer): Boolean;
-begin
- Result := True;
- case AType of
- FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG,
- FIELD_TYPE_INT24:
- begin
- NewType := ftInteger;
- NewSize := 0;
- end;
- FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE:
- begin
- NewType := ftFloat;
- NewSize := 0;
- end;
- FIELD_TYPE_TIMESTAMP, FIELD_TYPE_DATETIME:
- begin
- NewType := ftDateTime;
- NewSize := 0;
- end;
- FIELD_TYPE_DATE:
- begin
- NewType := ftDate;
- NewSize := 0;
- end;
- FIELD_TYPE_TIME:
- begin
- NewType := ftTime;
- NewSize := 0;
- end;
- FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET:
- begin
- NewType := ftString;
- NewSize := ASize;
- end;
- else
- Result := False;
- end;
-end;
-
-procedure TMySQLDataset.CalculateSizes;
-var
- I, FC: Integer;
- field: PMYSQL_FIELD;
-begin
- FRecordSize := 0;
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- field := mysql_fetch_field_direct(FMYSQLRES, I);
- FRecordSize := FRecordSize + MySQLDataSize(field^.ftype, field^.length);
- end;
- FBufferSize := FRecordSize + SizeOf(TMySQLDatasetBookmark);
-end;
-
-procedure TMySQLDataset.LoadBufferFromData(Buffer: PChar);
-
-var
- I, FC, CT: Integer;
- field: PMYSQL_FIELD;
- row: TMYSQL_ROW;
-
-begin
- mysql_data_seek(FMYSQLRES, FCurrentRecord);
- row := mysql_fetch_row(FMYSQLRES);
- if row = nil then
- MySQLError(FMySQL,SErrFetchingData,Self);
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- field := mysql_fetch_field_direct(FMYSQLRES, I);
- CT := MySQLWriteFieldData(field^.ftype, field^.length, row^, Buffer);
- Inc(Buffer, CT);
- Inc(row);
- end;
-end;
-
-
-function TMySQLDataset.MySQLDataSize(AType: enum_field_types;
- ASize: Integer): Integer;
-begin
- Result := 0;
- case AType of
- FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG,
- FIELD_TYPE_INT24:
- begin
- Result := SizeOf(Integer);
- end;
- FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE:
- begin
- Result := SizeOf(Double);
- end;
- FIELD_TYPE_TIMESTAMP, FIELD_TYPE_DATE, FIELD_TYPE_TIME, FIELD_TYPE_DATETIME:
- begin
- Result := SizeOf(TDateTime);
- end;
- FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET:
- begin
- Result := ASize;
- end;
- end;
-end;
-
-function TMySQLDataset.MySQLWriteFieldData(AType: enum_field_types;
- ASize: Integer; Source, Dest: PChar): Integer;
-
-var
- VI: Integer;
- VF: Double;
- VD: TDateTime;
-
-begin
- Result := 0;
- case AType of
- FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG,
- FIELD_TYPE_INT24:
- begin
- Result := SizeOf(Integer);
- if Source <> '' then
- VI := StrToInt(Source)
- else
- VI := 0;
- Move(VI, Dest^, Result);
- end;
- FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE:
- begin
- Result := SizeOf(Double);
- if Source <> '' then
- VF := InternalStrToFloat(Source)
- else
- VF := 0;
- Move(VF, Dest^, Result);
- end;
- FIELD_TYPE_TIMESTAMP:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToTimeStamp(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_DATETIME:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToDateTime(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_DATE:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToDate(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_TIME:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToTime(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET:
- begin
- Result := ASize;
- if Source <> '' then
- Move(Source^, Dest^, Result)
- else
- Dest^ := #0;
- end;
- end;
-end;
-
-function TMySQLDataset.InternalStrToFloat(S: string): Extended;
-
-var
- I: Integer;
- Tmp: string;
-
-begin
- Tmp := '';
- for I := 1 to Length(S) do
- begin
- if not (S[I] in ['0'..'9', '+', '-', 'E', 'e']) then
- Tmp := Tmp + DecimalSeparator
- else
- Tmp := Tmp + S[I];
- end;
- Result := StrToFloat(Tmp);
-end;
-
-function TMySQLDataset.InternalStrToDate(S: string): TDateTime;
-
-var
- EY, EM, ED: Word;
-
-begin
- EY := StrToInt(Copy(S,1,4));
- EM := StrToInt(Copy(S,6,2));
- ED := StrToInt(Copy(S,9,2));
- if (EY = 0) or (EM = 0) or (ED = 0) then
- Result:=0
- else
- Result:=EncodeDate(EY, EM, ED);
-end;
-
-function TMySQLDataset.InternalStrToDateTime(S: string): TDateTime;
-
-var
- EY, EM, ED: Word;
- EH, EN, ES: Word;
-
-begin
- EY := StrToInt(Copy(S, 1, 4));
- EM := StrToInt(Copy(S, 6, 2));
- ED := StrToInt(Copy(S, 9, 2));
- EH := StrToInt(Copy(S, 11, 2));
- EN := StrToInt(Copy(S, 14, 2));
- ES := StrToInt(Copy(S, 17, 2));
- if (EY = 0) or (EM = 0) or (ED = 0) then
- Result := 0
- else
- Result := EncodeDate(EY, EM, ED);
- Result := Result + EncodeTime(EH, EN, ES, 0);
-end;
-
-function TMySQLDataset.InternalStrToTime(S: string): TDateTime;
-
-var
- EH, EM, ES: Word;
-
-begin
- EH := StrToInt(Copy(S, 1, 2));
- EM := StrToInt(Copy(S, 4, 2));
- ES := StrToInt(Copy(S, 7, 2));
- Result := EncodeTime(EH, EM, ES, 0);
-end;
-
-function TMySQLDataset.InternalStrToTimeStamp(S: string): TDateTime;
-
-var
- EY, EM, ED: Word;
- EH, EN, ES: Word;
-
-begin
- EY := StrToInt(Copy(S, 1, 4));
- EM := StrToInt(Copy(S, 5, 2));
- ED := StrToInt(Copy(S, 7, 2));
- EH := StrToInt(Copy(S, 9, 2));
- EN := StrToInt(Copy(S, 11, 2));
- ES := StrToInt(Copy(S, 13, 2));
- if (EY = 0) or (EM = 0) or (ED = 0) then
- Result := 0
- else
- Result := EncodeDate(EY, EM, ED);
- Result := Result + EncodeTime(EH, EN, ES, 0);;
-end;
-
-procedure TMySQLDataset.DoClose;
-begin
- try
- if FMYSQLRES <> nil then
- mysql_free_result(FMYSQLRES);
- finally
- FMYSQLRES := nil;
- end;
-end;
-
-procedure TMySQLDataset.DoQuery;
-var
- Query: PChar;
-
-begin
- Query := FSQL.GetText;
- try
- if mysql_query(FMySQL,Query) <> 0 then
- MySQLError(FMYSQL,SErrExecuting,Self);
- finally
- StrDispose(Query);
- end;
- FAffectedRows := mysql_affected_rows(FMYSQL);
- FLastInsertID := mysql_insert_id(FMYSQL);
-end;
-
-function TMySQLDataset.GetCanModify: Boolean;
-begin
- Result := False;
-end;
-
-procedure TMySQLDataset.DoGetResult;
-begin
- FMYSQLRES := mysql_store_result(FMYSQL);
- if (FMYSQLRES=nil) then
- MySQLError(FMYSQL,SErrGettingResult,Self);
- FAffectedRows := mysql_affected_rows(FMYSQL);
-end;
-
-function TMySQLDataset.FMySQL: PMySQL;
-begin
- Result:=(Database as TMySQLDatabase).FMySQL;
-end;
-
-{ TMySQLDatabase }
-
-function TMySQLDatabase.GetUserName: String;
-begin
- result:=Params.values['UserName'];
-end;
-
-function TMySQLDatabase.GetHostName: String;
-begin
- Result:=Params.Values['HostName'];
-end;
-
-procedure TMySQLDatabase.SetHostName(const AValue: String);
-begin
- Params.Values['HostName']:=AValue;
-end;
-
-procedure TMySQLDatabase.SetUserName(Value: String);
-begin
- Params.Values['UserName']:=Value;
-end;
-
-procedure TMySQLDatabase.SetPassword(Value: String);
-begin
- Params.Values['Password']:=Value;
-end;
-
-function TMySQLDatabase.GetPassword: String;
-begin
- Result:=Params.Values['Password'];
-end;
-
-function TMySQLDatabase.GetClientInfo: String;
-begin
- Result:=strpas(mysql_get_client_info);
-end;
-
-procedure TMySQLDatabase.ConnectToServer;
-Var
- H,U,P : String;
-
-begin
- if (FMySQL=Nil) then
- New(FMySQL);
- H:=HostName;
- U:=UserName;
- P:=Password;
- FMySQL:=mysql_connect(FMySQL,PChar(H),PChar(U),Pchar(P));
- If (FMySQL=Nil) then
- MySQlError(Nil,SErrServerConnectFailed,Self);
- FServerInfo := strpas(mysql_get_server_info(FMYSQL));
- FHostInfo := strpas(mysql_get_host_info(FMYSQL));
-
-end;
-
-procedure TMySQLDatabase.SelectDatabase;
-begin
- if mysql_select_db(FMySQL,pchar(DatabaseName))<>0 then
- MySQLError(FMySQL,SErrDatabaseSelectFailed,Self);
-end;
-
-procedure TMySQLDatabase.DoInternalConnect;
-begin
- if (FMySQL<>nil) then
- DoInternalDisconnect;
- ConnectToServer;
- SelectDatabase;
-end;
-
-procedure TMySQLDatabase.DoInternalDisConnect;
-begin
- mysql_close(FMySQL);
- FMySQL:=Nil;
- FServerInfo:='';
- FHostInfo:='';
-end;
-
-procedure TMySQLDatabase.StartTransaction;
-begin
- // Nothing yet
-end;
-
-procedure TMySQLDatabase.EndTransaction;
-begin
- // Nothing yet
-end;
-
-procedure TMySQLDatabase.CreateDatabase;
-
-Var
- Disconnect : Boolean;
-
-begin
- Disconnect:=(FMySQL=Nil);
- if Disconnect then
- ConnectToServer;
- try
- if mysql_create_db(FMySQL,Pchar(DatabaseName))<>0 then
- MySQLError(FMySQL,SErrDatabaseCreate,Self);
- Finally
- If Disconnect then
- DoInternalDisconnect;
- end;
-end;
-
-procedure TMySQLDatabase.DropDatabase;
-
-Var
- Disconnect : Boolean;
-
-begin
- Disconnect:=(FMySQL=Nil);
- if Disconnect then
- ConnectToServer;
- If (FMySQL=Nil) then
- ConnectToServer;
- try
- if mysql_drop_db(FMySQL,Pchar(DatabaseName))<>0 then
- MySQLError(FMySQL,SErrDatabaseDrop,Self);
- Finally
- If Disconnect then
- DoInternalDisconnect;
- end;
-end;
-
-function TMySQLDatabase.GetServerStatus: string;
-begin
- CheckConnected;
- Result := mysql_stat(FMYSQL);
-end;
-
-end.
diff --git a/packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp b/packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp
deleted file mode 100644
index c5d4019429..0000000000
--- a/packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp
+++ /dev/null
@@ -1,982 +0,0 @@
-unit MySQLDB4;
-
-{$H+}
-
-interface
-
-uses
- SysUtils, Classes, db, mysql4,mysql4_com;
-
-type
- PMySQLDatasetBookmark = ^TMySQLDatasetBookmark;
- TMySQLDatasetBookmark = record
- BookmarkData: Integer;
- BookmarkFlag: TBookmarkFlag;
- end;
-
- Pinteger = ^Integer;
-
- TMySQLDatabase = class(TDatabase)
- Private
- FMYSQL: PMYSQL;
- FServerInfo: string;
- FHostInfo: string;
- function GetHostName: String;
- Function GetUserName : String;
- procedure SetHostName(const AValue: String);
- Procedure SetUserName (Value : String);
- Procedure SetPassword (Value : String);
- Function GetPassword : String;
- Function GetClientInfo : String;
- Protected
- Procedure ConnectToServer;
- Procedure SelectDatabase;
- Procedure DoInternalConnect; override;
- Procedure DoInternalDisConnect; override;
- procedure StartTransaction; override;
- procedure EndTransaction; override;
- function GetServerStatus: string;
- Public
- Procedure CreateDatabase;
- Procedure DropDatabase;
- Property ServerInfo : String Read FServerInfo;
- Property HostInfo : String Read FHostInfo;
- property ClientInfo: string read GetClientInfo;
- property ServerStatus : String read GetServerStatus;
- Published
- Property UserName : String Read GetUserName Write SetUserName;
- Property HostName : String Read GetHostName Write SetHostName;
- Property Password : String Read GetPassword Write SetPassword;
- end;
-
- TMySQLDataset = class(TDBDataSet)
- private
- FSQL: TStrings;
- FRecordSize: Integer;
- FBufferSize: Integer;
- // MySQL data
- FMYSQLRES: PMYSQL_RES;
- FCurrentRecord: Integer; { Record pointer }
- FAffectedRows: QWord;
- FLastInsertID: Integer;
- FLoadingFieldDefs: Boolean;
-
- procedure DoClose;
- procedure DoQuery;
- procedure DoGetResult;
-
- procedure CalculateSizes;
- procedure LoadBufferFromData(Buffer: PChar);
- protected
- Function FMySQL : PMySQL;
- procedure SetSQL(const Value: TStrings);
- function InternalStrToFloat(S: string): Extended;
- function InternalStrToDate(S: string): TDateTime;
- function InternalStrToTime(S: string): TDateTime;
- function InternalStrToDateTime(S: string): TDateTime;
- function InternalStrToTimeStamp(S: string): TDateTime;
-
- function MySQLFieldToFieldType(AType: enum_field_types; ASize: Integer;
- var NewType: TFieldType; var NewSize: Integer): Boolean;
- function MySQLDataSize(AType: enum_field_types; ASize,AAltSize : Integer): Integer;
- function MySQLWriteFieldData(AType: enum_field_types; ASize: Integer; Source: PChar;
- Dest: PChar): Integer;
-
-
- function GetCanModify: Boolean; override;
- { Mandatory overrides }
- // Record buffer methods:
- function AllocRecordBuffer: PChar; override;
- procedure FreeRecordBuffer(var Buffer: PChar); override;
- procedure InternalInitRecord(Buffer: PChar); override;
- function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): TGetResult; override;
- function GetRecordSize: Word; override;
- procedure SetFieldData(Field: TField; Buffer: Pointer); override;
- // Bookmark methods:
- procedure GetBookmarkData(Buffer: PChar; Data: Pointer); override;
- function GetBookmarkFlag(Buffer: PChar): TBookmarkFlag; override;
- procedure InternalGotoBookmark(ABookmark: Pointer); override;
- procedure InternalSetToRecord(Buffer: PChar); override;
- procedure SetBookmarkFlag(Buffer: PChar; Value: TBookmarkFlag); override;
- procedure SetBookmarkData(Buffer: PChar; Data: Pointer); override;
- // Navigational methods:
- procedure InternalFirst; override;
- procedure InternalLast; override;
- // Editing methods:
- procedure InternalAddRecord(Buffer: Pointer; DoAppend: Boolean); override;
- procedure InternalDelete; override;
- procedure InternalPost; override;
- // Misc methods:
- procedure InternalClose; override;
- procedure InternalInitFieldDefs; override;
- procedure InternalOpen; override;
- function IsCursorOpen: Boolean; override;
- { Optional overrides }
- function GetRecordCount: Integer; override;
- function GetRecNo: Integer; override;
- procedure SetRecNo(Value: Integer); override;
- public
- constructor Create(AOwner: TComponent); override;
- destructor Destroy; override;
-
- procedure ExecSQL;
-
- // TDataset method
- function GetFieldData(Field: TField; Buffer: Pointer): Boolean; override;
- function GetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean): Boolean; overload; override;
- procedure SetFieldData(Field: TField; Buffer: Pointer; NativeFormat: Boolean); overload; override;
-
- property AffectedRows: QWord read FAffectedRows;
- property LastInsertID: Integer read FLastInsertID;
- published
- property Active;
- property Database;
- property SQL: TStrings read FSQL write SetSQL;
- property BeforeOpen;
- property AfterOpen;
- property BeforeClose;
- property AfterClose;
- property BeforeInsert;
- property AfterInsert;
- property BeforeEdit;
- property AfterEdit;
- property BeforePost;
- property AfterPost;
- property BeforeCancel;
- property AfterCancel;
- property BeforeDelete;
- property AfterDelete;
- property BeforeScroll;
- property AfterScroll;
- property OnDeleteError;
- property OnEditError;
- end;
-
- EMySQLError = Class(Exception);
-
-const
- Support_Blob : boolean = true;
-
-implementation
-
-Resourcestring
- SErrServerConnectFailed = 'Server connect failed.';
- SErrDatabaseSelectFailed = 'failed to select database: %s';
- SErrDatabaseCreate = 'Failed to create database: %s';
- SErrDatabaseDrop = 'Failed to drop database: %s';
- SErrNoData = 'No data for record';
- SErrExecuting = 'Error executing query: %s';
- SErrFetchingdata = 'Error fetching row data: %s';
- SErrGettingResult = 'Error getting result set: %s';
-
-Procedure MySQlError(R : PMySQL;Msg: String;Comp : TComponent);
-
-Var
- MySQLMsg : String;
-
-begin
- If (R<>Nil) then
- begin
- MySQLMsg:=Strpas(mysql_error(R));
- DatabaseErrorFmt(Msg,[MySQLMsg],Comp);
- end
- else
- DatabaseError(Msg,Comp);
-end;
-
-{ TMySQLDataset }
-
-constructor TMySQLDataset.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FSQL := TStringList.Create;
- FBufferSize := 0;
- FRecordSize := 0;
- FCurrentRecord := -1;
- FLoadingFieldDefs := False;
- FAffectedRows := 0;
- FLastInsertID := -1;
- FMYSQLRES := nil;
-end;
-
-destructor TMySQLDataset.Destroy;
-begin
- Close;
- FSQL.Free;
- inherited destroy;
-end;
-
-function TMySQLDataset.AllocRecordBuffer: PChar;
-begin
- Result := AllocMem(FBufferSize);
-end;
-
-procedure TMySQLDataset.FreeRecordBuffer(var Buffer: PChar);
-begin
- If (@Buffer<>nil) then
- FreeMem(Buffer);
-end;
-
-procedure TMySQLDataset.GetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PInteger(Data)^ := PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TMySQLDataset.GetBookmarkFlag(Buffer: PChar): TBookmarkFlag;
-begin
- Result:=PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkFlag;
-end;
-
-function TMySQLDataset.GetFieldData(Field: TField; Buffer: Pointer): Boolean;
-
-var
- I, FC, Len: Integer;
- fld: PMYSQL_FIELD;
- CurBuf: PChar;
-
-begin
- Result := False;
- CurBuf := ActiveBuffer;
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- fld := mysql_fetch_field_direct(FMYSQLRES, I);
- Len := MySQLDataSize(fld^.ftype, fld^.length,fld^.max_length);
- if Field.FieldName = fld^.name then
- begin
- Move(CurBuf^, PChar(Buffer)^, Len);
- if Field.DataType in [ftString{, ftWideString}] then
- begin
- Result := PChar(buffer)^ <> #0;
- if Result then
- // Terminate string (necessary for enum fields)
- PChar(buffer)[Len] := #0;
- end
- else
- Result := True;
- break;
- end
- else
- Inc(CurBuf, Len);
- end;
-end;
-
-function TMySQLDataset.GetFieldData(Field: TField; Buffer: Pointer;
- NativeFormat: Boolean): Boolean;
-begin
- Result:=GetFieldData(Field, Buffer);
-end;
-
-procedure TMySQLDataset.SetFieldData(Field: TField; Buffer: Pointer;
- NativeFormat: Boolean);
-begin
- SetFieldData(Field, Buffer);
-end;
-
-function TMySQLDataset.GetRecNo: Integer;
-begin
- UpdateCursorPos;
- if (FCurrentRecord=-1) and (RecordCount > 0) then
- Result:=1
- else
- Result:=FCurrentRecord+1;
-end;
-
-function TMySQLDataset.GetRecord(Buffer: PChar; GetMode: TGetMode;
- DoCheck: Boolean): TGetResult;
-begin
- if RecordCount < 1 then
- Result := grEOF
- else
- begin
- Result := grOk;
- case GetMode of
- gmPrior:
- if FCurrentRecord <= 0 then
- begin
- Result := grBOF;
- FCurrentRecord := -1;
- end
- else
- Dec(FCurrentRecord);
- gmCurrent:
- if (FCurrentRecord<0) or (FCurrentRecord>=RecordCount) then
- Result := grError;
- gmNext:
- if FCurrentRecord>=RecordCount-1 then
- Result := grEOF
- else
- Inc(FCurrentRecord);
- end;
- if (Result=grOK) then
- begin
- LoadBufferFromData(Buffer);
- with PMySQLDatasetBookmark(Buffer + FRecordSize)^ do
- begin
- BookmarkData := FCurrentRecord;
- BookmarkFlag := bfCurrent;
- end;
- end
- else
- if (Result=grError) and (DoCheck) then
- DatabaseError(SerrNoData,Self);
- end;
-end;
-
-function TMySQLDataset.GetRecordCount: Integer;
-begin
- Result:=mysql_num_rows(FMYSQLRES);
-end;
-
-function TMySQLDataset.GetRecordSize: Word;
-begin
- Result:=FRecordSize;
-end;
-
-procedure TMySQLDataset.InternalAddRecord(Buffer: Pointer; DoAppend: Boolean);
-begin
-
-end;
-
-procedure TMySQLDataset.InternalClose;
-begin
- FCurrentRecord := -1;
- DoClose;
- if DefaultFields then
- DestroyFields;
-end;
-
-procedure TMySQLDataset.InternalDelete;
-begin
-
-end;
-
-procedure TMySQLDataset.InternalFirst;
-begin
- FCurrentRecord := -1;
-end;
-
-procedure TMySQLDataset.InternalGotoBookmark(ABookmark: Pointer);
-begin
- FCurrentRecord := PInteger(ABookmark)^;
-end;
-
-procedure TMySQLDataset.InternalInitFieldDefs;
-
-var
- I, FC: Integer;
- Field: PMYSQL_FIELD;
- DFT: TFieldType;
- DFS, Len: Integer;
- WasClosed: Boolean;
-
-begin
- if FLoadingFieldDefs then Exit;
- FLoadingFieldDefs := True;
- try
- WasClosed := not IsCursorOpen;
- if WasClosed then
- begin
- DoQuery;
- DoGetResult;
- end;
- try
- FieldDefs.Clear;
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- Field := mysql_fetch_field_direct(FMYSQLRES, I);
- Len := MySqlDataSize(Field^.FType, Field^.length, Field^.max_length);
- if MySQLFieldToFieldType(Field^.ftype, len, DFT, DFS) then
- TFieldDef.Create(FieldDefs, field^.name, DFT, DFS, False, I+1);
- end;
- finally
- if WasClosed then
- DoClose;
- end;
- finally
- FLoadingFieldDefs := False;
- end;
-end;
-
-procedure TMySQLDataset.InternalInitRecord(Buffer: PChar);
-begin
- FillChar(Buffer^, FBufferSize, 0);
-end;
-
-procedure TMySQLDataset.InternalLast;
-begin
- FCurrentRecord := RecordCount;
-end;
-
-procedure TMySQLDataset.InternalOpen;
-begin
- CheckDatabase;
- FMYSQLRES := nil;
- try
- DoQuery;
- DoGetResult;
- FCurrentRecord := -1;
- InternalInitFieldDefs;
- if DefaultFields then
- CreateFields;
- CalculateSizes;
- BindFields(True);
- except
- DoClose;
- raise;
- end;
- BookMarkSize:=SizeOf(Longint);
-end;
-
-procedure TMySQLDataset.InternalSetToRecord(Buffer: PChar);
-begin
- FCurrentRecord := PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkData;
-end;
-
-function TMySQLDataset.IsCursorOpen: Boolean;
-begin
- Result:=(FMYSQLRES<>nil);
-end;
-
-procedure TMySQLDataset.SetBookmarkData(Buffer: PChar; Data: Pointer);
-begin
- PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkData := PInteger(Data)^;
-end;
-
-procedure TMySQLDataset.SetBookmarkFlag(Buffer: PChar;
- Value: TBookmarkFlag);
-begin
- PMySQLDatasetBookmark(Buffer + FRecordSize)^.BookmarkFlag := Value;
-end;
-
-procedure TMySQLDataset.SetFieldData(Field: TField; Buffer: Pointer);
-begin
-
-end;
-
-procedure TMySQLDataset.SetRecNo(Value: Integer);
-begin
- if (Value >= 0) and (Value <= RecordCount-1) then
- begin
- FCurrentRecord := Value-1;
- Resync([]);
- end;
-end;
-
-procedure TMySQLDataset.SetSQL(const Value: TStrings);
-begin
- FSQL.Assign(Value);
- FieldDefs.Clear;
-end;
-
-procedure TMySQLDataset.ExecSQL;
-begin
- try
- DoQuery;
- finally
- DoClose;
- end;
-end;
-
-
-procedure TMySQLDataset.InternalPost;
-begin
-
-end;
-
-function TMySQLDataset.MySQLFieldToFieldType(AType: enum_field_types; ASize: Integer;
- var NewType: TFieldType; var NewSize: Integer): Boolean;
-
-begin
- Result := True;
- case AType of
- FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG,
- FIELD_TYPE_INT24:
- begin
- NewType := ftInteger;
- NewSize := 0;
- end;
- FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE:
- begin
- NewType := ftFloat;
- NewSize := 0;
- end;
- FIELD_TYPE_TIMESTAMP, FIELD_TYPE_DATETIME:
- begin
- NewType := ftDateTime;
- NewSize := 0;
- end;
- FIELD_TYPE_DATE:
- begin
- NewType := ftDate;
- NewSize := 0;
- end;
- FIELD_TYPE_TIME:
- begin
- NewType := ftTime;
- NewSize := 0;
- end;
- FIELD_TYPE_BLOB :
- begin
- if Support_blob then
- begin
- NewType := ftString;
- NewSize := ASize;
- end
- else
- Result := false;
- end;
- FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET:
- begin
- NewType := ftString;
- NewSize := ASize;
- end;
- else
- begin
- Result := False;
- end;
- end;
-end;
-
-procedure TMySQLDataset.CalculateSizes;
-var
- I, FC: Integer;
- field: PMYSQL_FIELD;
-begin
- FRecordSize := 0;
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- field := mysql_fetch_field_direct(FMYSQLRES, I);
- FRecordSize := FRecordSize + MySQLDataSize(field^.ftype, field^.length,field^.max_length);
- end;
- FBufferSize := FRecordSize + SizeOf(TMySQLDatasetBookmark);
-end;
-
-procedure TMySQLDataset.LoadBufferFromData(Buffer: PChar);
-
-var
- I, FC, CT, Len: Integer;
- field: PMYSQL_FIELD;
- row: TMYSQL_ROW;
-
-begin
- mysql_data_seek(FMYSQLRES, FCurrentRecord);
- row := mysql_fetch_row(FMYSQLRES);
- if row = nil then
- MySQLError(FMySQL,SErrFetchingData,Self);
- FC := mysql_num_fields(FMYSQLRES);
- for I := 0 to FC-1 do
- begin
- field := mysql_fetch_field_direct(FMYSQLRES, I);
- Len := MySqlDataSize(field^.ftype, field^.length, field^.max_length);
- CT := MySQLWriteFieldData(field^.ftype, Len, row^, Buffer);
- Inc(Buffer, CT);
- Inc(row);
- end;
-end;
-
-
-function TMySQLDataset.MySQLDataSize(AType: enum_field_types;
- ASize,AAltSize: Integer): Integer;
-begin
- Result := 0;
- case AType of
- FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG,
- FIELD_TYPE_INT24:
- begin
- Result := SizeOf(Integer);
- end;
- FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE:
- begin
- Result := SizeOf(Double);
- end;
- FIELD_TYPE_TIMESTAMP, FIELD_TYPE_DATE, FIELD_TYPE_TIME, FIELD_TYPE_DATETIME:
- begin
- Result := SizeOf(TDateTime);
- end;
- FIELD_TYPE_BLOB:
- begin
- if Support_blob then
- begin
- Result:= ASize;
- if (AAltSize>=0) and (AAltSize<ASize) then
- Result:=AAltSize;
- end
- else
- Result:=0;
- end;
- FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET:
- begin
- Result := ASize;
- end;
- end;
-end;
-
-function TMySQLDataset.MySQLWriteFieldData(AType: enum_field_types;
- ASize: Integer; Source, Dest: PChar): Integer;
-
-var
- VI: Integer;
- VF: Double;
- VD: TDateTime;
-
-begin
- Result := 0;
- case AType of
- FIELD_TYPE_TINY, FIELD_TYPE_SHORT, FIELD_TYPE_LONG, FIELD_TYPE_LONGLONG,
- FIELD_TYPE_INT24:
- begin
- Result := SizeOf(Integer);
- if Source <> '' then
- VI := StrToInt(Source)
- else
- VI := 0;
- Move(VI, Dest^, Result);
- end;
- FIELD_TYPE_DECIMAL, FIELD_TYPE_FLOAT, FIELD_TYPE_DOUBLE:
- begin
- Result := SizeOf(Double);
- if Source <> '' then
- VF := InternalStrToFloat(Source)
- else
- VF := 0;
- Move(VF, Dest^, Result);
- end;
- FIELD_TYPE_TIMESTAMP:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToTimeStamp(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_DATETIME:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToDateTime(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_DATE:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToDate(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_TIME:
- begin
- Result := SizeOf(TDateTime);
- if Source <> '' then
- VD := InternalStrToTime(Source)
- else
- VD := 0;
- Move(VD, Dest^, Result);
- end;
- FIELD_TYPE_BLOB:
- begin
- if Support_blob then
- begin
- Result:= ASize;
- if Source <> '' then
- Move(Source^, Dest^, Result)
- else
- Dest^ := #0;
- end
- else
- Result:=0;
- end;
- FIELD_TYPE_VAR_STRING, FIELD_TYPE_STRING, FIELD_TYPE_ENUM, FIELD_TYPE_SET:
- begin
- Result := ASize;
- if Source <> '' then
- Move(Source^, Dest^, Result)
- else
- Dest^ := #0;
- end;
- end;
-end;
-
-function TMySQLDataset.InternalStrToFloat(S: string): Extended;
-
-var
- I: Integer;
- Tmp: string;
-
-begin
- Tmp := '';
- for I := 1 to Length(S) do
- begin
- if not (S[I] in ['0'..'9', '+', '-', 'E', 'e']) then
- Tmp := Tmp + DecimalSeparator
- else
- Tmp := Tmp + S[I];
- end;
- Result := StrToFloat(Tmp);
-end;
-
-function TMySQLDataset.InternalStrToDate(S: string): TDateTime;
-
-var
- EY, EM, ED: Longint;
-
-begin
- SScanf(S,'%d-%d-%d',[@EY,@EM,@ED]);
- {
- EY := StrToInt(Copy(S,1,4));
- EM := StrToInt(Copy(S,6,2));
- ED := StrToInt(Copy(S,9,2));
- }
- if (EY = 0) or (EM = 0) or (ED = 0) then
- Result:=0
- else
- Result:=EncodeDate(EY, EM, ED);
-end;
-
-function TMySQLDataset.InternalStrToDateTime(S: string): TDateTime;
-
-var
- EY, EM, ED: Longint;
- EH, EN, ES: Longint;
-
-begin
- SScanf(S,'%d-%d-%d %d:%d:%d',[@EY,@EM,@ED,@EH,@EN,@ES]);
- {
- EY := StrToInt(Copy(S, 1, 4));
- EM := StrToInt(Copy(S, 6, 2));
- ED := StrToInt(Copy(S, 9, 2));
- EH := StrToInt(Copy(S, 12, 2));
- EN := StrToInt(Copy(S, 15, 2));
- ES := StrToInt(Copy(S, 18, 2));
- }
- if (EY = 0) or (EM = 0) or (ED = 0) then
- Result := 0
- else
- Result := EncodeDate(EY, EM, ED);
- Result := Result + EncodeTime(EH, EN, ES, 0);
-end;
-
-function TMySQLDataset.InternalStrToTime(S: string): TDateTime;
-
-var
- EH, EM, ES: Longint;
-
-begin
- SScanf(S,'%d:%d:%d',[@EH,@EM,@ES]);
- {
- EH := StrToInt(Copy(S, 1, 2));
- EM := StrToInt(Copy(S, 4, 2));
- ES := StrToInt(Copy(S, 7, 2));
- }
- Result := EncodeTime(EH, EM, ES, 0);
-end;
-
-function TMySQLDataset.InternalStrToTimeStamp(S: string): TDateTime;
-
-var
- EY, EM, ED: longint;
- EH, EN, ES: longint;
-
-begin
- SScanf(S,'%d-%d-%d %d:%d:%d',[@EY,@EM,@ED,@EH,@EN,@ES]);
- {
- EY := StrToInt(Copy(S, 1, 4));
- EM := StrToInt(Copy(S, 5, 2));
- ED := StrToInt(Copy(S, 7, 2));
- EH := StrToInt(Copy(S, 9, 2));
- EN := StrToInt(Copy(S, 11, 2));
- ES := StrToInt(Copy(S, 13, 2));
- }
- if (EY = 0) or (EM = 0) or (ED = 0) then
- Result := 0
- else
- Result := EncodeDate(EY, EM, ED);
- Result := Result + EncodeTime(EH, EN, ES, 0);;
-end;
-
-procedure TMySQLDataset.DoClose;
-begin
- try
- if FMYSQLRES <> nil then
- mysql_free_result(FMYSQLRES);
- finally
- FMYSQLRES := nil;
- end;
-end;
-
-procedure TMySQLDataset.DoQuery;
-var
- Query: PChar;
-
-begin
- Query := FSQL.GetText;
- try
- if mysql_query(FMySQL,Query) <> 0 then
- MySQLError(FMYSQL,SErrExecuting,Self);
- finally
- StrDispose(Query);
- end;
- FAffectedRows := mysql_affected_rows(FMYSQL);
- FLastInsertID := mysql_insert_id(FMYSQL);
-end;
-
-function TMySQLDataset.GetCanModify: Boolean;
-begin
- Result := False;
-end;
-
-procedure TMySQLDataset.DoGetResult;
-begin
- FMYSQLRES := mysql_store_result(FMYSQL);
- if (FMYSQLRES=nil) then
- MySQLError(FMYSQL,SErrGettingResult,Self);
- FAffectedRows := mysql_affected_rows(FMYSQL);
-end;
-
-function TMySQLDataset.FMySQL: PMySQL;
-begin
- Result:=(Database as TMySQLDatabase).FMySQL;
-end;
-
-{ TMySQLDatabase }
-
-function TMySQLDatabase.GetUserName: String;
-begin
- result:=Params.values['UserName'];
-end;
-
-function TMySQLDatabase.GetHostName: String;
-begin
- Result:=Params.Values['HostName'];
-end;
-
-procedure TMySQLDatabase.SetHostName(const AValue: String);
-begin
- Params.Values['HostName']:=AValue;
-end;
-
-procedure TMySQLDatabase.SetUserName(Value: String);
-begin
- Params.Values['UserName']:=Value;
-end;
-
-procedure TMySQLDatabase.SetPassword(Value: String);
-begin
- Params.Values['Password']:=Value;
-end;
-
-function TMySQLDatabase.GetPassword: String;
-begin
- Result:=Params.Values['Password'];
-end;
-
-function TMySQLDatabase.GetClientInfo: String;
-begin
- Result:=strpas(mysql_get_client_info);
-end;
-
-procedure TMySQLDatabase.ConnectToServer;
-Var
- H,U,P : String;
-
-begin
- if (FMySQL=Nil) then
- New(FMySQL);
- H:=HostName;
- U:=UserName;
- P:=Password;
- mysql_init(FMySQL);
- FMySQL:=mysql_real_connect(FMySQL,PChar(H),PChar(U),Pchar(P),Nil,0,Nil,0);
- If (FMySQL=Nil) then
- MySQlError(Nil,SErrServerConnectFailed,Self);
- FServerInfo := strpas(mysql_get_server_info(FMYSQL));
- FHostInfo := strpas(mysql_get_host_info(FMYSQL));
-
-end;
-
-procedure TMySQLDatabase.SelectDatabase;
-begin
- if mysql_select_db(FMySQL,pchar(DatabaseName))<>0 then
- MySQLError(FMySQL,SErrDatabaseSelectFailed,Self);
-end;
-
-procedure TMySQLDatabase.DoInternalConnect;
-begin
- if (FMySQL<>nil) then
- DoInternalDisconnect;
- ConnectToServer;
- SelectDatabase;
-end;
-
-procedure TMySQLDatabase.DoInternalDisConnect;
-begin
- mysql_close(FMySQL);
- FMySQL:=Nil;
- FServerInfo:='';
- FHostInfo:='';
-end;
-
-procedure TMySQLDatabase.StartTransaction;
-begin
- // Nothing yet
-end;
-
-procedure TMySQLDatabase.EndTransaction;
-begin
- // Nothing yet
-end;
-
-procedure TMySQLDatabase.CreateDatabase;
-
-Var
- Disconnect : Boolean;
-
-begin
- Disconnect:=(FMySQL=Nil);
- if Disconnect then
- ConnectToServer;
- try
- {if mysql_create_db(FMySQL,Pchar(DatabaseName))<>0 then
- MySQLError(FMySQL,SErrDatabaseCreate,Self);}
- Finally
- If Disconnect then
- DoInternalDisconnect;
- end;
-end;
-
-procedure TMySQLDatabase.DropDatabase;
-
-Var
- Disconnect : Boolean;
-
-begin
- Disconnect:=(FMySQL=Nil);
- if Disconnect then
- ConnectToServer;
- If (FMySQL=Nil) then
- ConnectToServer;
- try
-{
- if mysql_drop_db(FMySQL,Pchar(DatabaseName))<>0 then
- MySQLError(FMySQL,SErrDatabaseDrop,Self);
-}
- Finally
- If Disconnect then
- DoInternalDisconnect;
- end;
-end;
-
-function TMySQLDatabase.GetServerStatus: string;
-begin
- CheckConnected;
- Result := mysql_stat(FMYSQL);
-end;
-
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/Makefile b/packages/fcl-db/src/unmaintained/odbc/Makefile
deleted file mode 100644
index 1a8a6ce9f7..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/Makefile
+++ /dev/null
@@ -1,2256 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
-#
-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-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=fpodbc
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLES+=testbcon testcon testdrcon testenv testfl testpa testpktestpr testsql testst testtl
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-ifeq ($(OS_SOURCE),linux)
-ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifeq ($(CPU_TARGET),powerpc64)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifndef GCCLIBDIR
-CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(CROSSGCC),)
-GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
-endif
-endif
-ifndef OTHERLIBDIR
-OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
-endif
-endif
-ifdef inUnix
-ifeq ($(OS_SOURCE),netbsd)
-OTHERLIBDIR+=/usr/pkg/lib
-endif
-export GCCLIBDIR OTHERLIB
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl odbc
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_ODBC=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_ODBC
-PACKAGEDIR_ODBC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /odbc/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_ODBC),)
-ifneq ($(wildcard $(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX)),)
-UNITDIR_ODBC=$(PACKAGEDIR_ODBC)/units/$(TARGETSUFFIX)
-else
-UNITDIR_ODBC=$(PACKAGEDIR_ODBC)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_ODBC)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_ODBC) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_ODBC)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_ODBC=
-UNITDIR_ODBC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /odbc/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_ODBC),)
-UNITDIR_ODBC:=$(firstword $(UNITDIR_ODBC))
-else
-UNITDIR_ODBC=
-endif
-endif
-ifdef UNITDIR_ODBC
-override COMPILER_UNITDIR+=$(UNITDIR_ODBC)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef GCCLIBDIR
-override FPCOPT+=-Fl$(GCCLIBDIR)
-endif
-ifdef OTHERLIBDIR
-override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
- @$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
- $(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
- $(MAKE) all DEBUG=1
-fpc_release:
- $(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
- $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
- $(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(PPUEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.lpr
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.dpr
- $(COMPILER) $<
- $(EXECPPAS)
-%.res: %.rc
- windres -i $< -o $@
-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 %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
- $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
- $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
- @$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
- $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
- $(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
- $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
- $(MKDIR) $(INSTALL_LIBDIR)
- $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
- ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
- $(MKDIR) $(INSTALL_DATADIR)
- $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
- $(MKDIR) $(INSTALL_SOURCEDIR)
- $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
- $(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
- $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
- -$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
- -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
- -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
- -$(DELTREE) units
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
- @$(ECHO)
- @$(ECHO) == Package info ==
- @$(ECHO) Package Name..... $(PACKAGE_NAME)
- @$(ECHO) Package Version.. $(PACKAGE_VERSION)
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC.......... $(FPC)
- @$(ECHO) FPC Version.. $(FPC_VERSION)
- @$(ECHO) Source CPU... $(CPU_SOURCE)
- @$(ECHO) Target CPU... $(CPU_TARGET)
- @$(ECHO) Source OS.... $(OS_SOURCE)
- @$(ECHO) Target OS.... $(OS_TARGET)
- @$(ECHO) Full Source.. $(FULL_SOURCE)
- @$(ECHO) Full Target.. $(FULL_TARGET)
- @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
- @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
- @$(ECHO)
- @$(ECHO) == Directory info ==
- @$(ECHO)
- @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
- @$(ECHO)
- @$(ECHO) Basedir......... $(BASEDIR)
- @$(ECHO) FPCDir.......... $(FPCDIR)
- @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
- @$(ECHO) UnitsDir........ $(UNITSDIR)
- @$(ECHO) PackagesDir..... $(PACKAGESDIR)
- @$(ECHO)
- @$(ECHO) GCC library..... $(GCCLIBDIR)
- @$(ECHO) Other library... $(OTHERLIBDIR)
- @$(ECHO)
- @$(ECHO) == Tools info ==
- @$(ECHO)
- @$(ECHO) As........ $(AS)
- @$(ECHO) Ld........ $(LD)
- @$(ECHO) Ar........ $(AR)
- @$(ECHO) Rc........ $(RC)
- @$(ECHO)
- @$(ECHO) Mv........ $(MVPROG)
- @$(ECHO) Cp........ $(CPPROG)
- @$(ECHO) Rm........ $(RMPROG)
- @$(ECHO) GInstall.. $(GINSTALL)
- @$(ECHO) Echo...... $(ECHO)
- @$(ECHO) Shell..... $(SHELL)
- @$(ECHO) Date...... $(DATE)
- @$(ECHO) FPCMake... $(FPCMAKE)
- @$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
- @$(ECHO) Zip....... $(ZIPPROG)
- @$(ECHO)
- @$(ECHO) == Object info ==
- @$(ECHO)
- @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
- @$(ECHO) Target Units.......... $(TARGET_UNITS)
- @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
- @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
- @$(ECHO) Target Dirs........... $(TARGET_DIRS)
- @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
- @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
- @$(ECHO)
- @$(ECHO) Clean Units......... $(CLEAN_UNITS)
- @$(ECHO) Clean Files......... $(CLEAN_FILES)
- @$(ECHO)
- @$(ECHO) Install Units....... $(INSTALL_UNITS)
- @$(ECHO) Install Files....... $(INSTALL_FILES)
- @$(ECHO)
- @$(ECHO) == Install info ==
- @$(ECHO)
- @$(ECHO) DateStr.............. $(DATESTR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
- @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
- @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
- @$(ECHO) FullZipName.......... $(FULLZIPNAME)
- @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
- @$(ECHO)
- @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
- @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
- @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
- @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
- @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
- @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
- @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
- @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
- @$(ECHO)
- @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
- @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
- @$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
- fpc_makefile_dirs
-fpc_makefile:
- $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples: fpc_examples
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/odbc/Makefile.fpc b/packages/fcl-db/src/unmaintained/odbc/Makefile.fpc
deleted file mode 100644
index 79d4119e5b..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/Makefile.fpc
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# Makefile.fpc for fpODBC db units
-#
-
-[package]
-main=fcl-db
-
-[target]
-units=fpodbc
-examples=testbcon testcon testdrcon testenv testfl testpa testpk\
- testpr testsql testst testtl
-
-
-[clean]
-units=
-
-[require]
-packages=odbc
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../../../..
-
-[rules]
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/odbc/README b/packages/fcl-db/src/unmaintained/odbc/README
deleted file mode 100644
index 9a1afca624..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/README
+++ /dev/null
@@ -1,181 +0,0 @@
-fpODBC - a OOP wrapper around the ODBC driver.
-
-This is a simple OOP wrapper around teh ODBC data calls.
-
-There are basically 3 classes:
-
-TODBCEnvironment
-----------------
- A global object the contains the connection to the ODBC driver. Each
- connection should have an environment assigned to it. If not, a
- default environment will be used.
-
- It has the following methods:
-
- Function GetDriverNames(List : Tstrings) : Integer;
- Fills list with the available drivers. Returns the number of
- drivers.
-
- Function GetDataSourceNames(List : Tstrings; Types : TDSNTypes;Descriptions : Boolean) : Integer;
- Fills list with the available datasources.
- Types is one of
- dtUser : Return only user DSNs
- dtSystem : Return system DSNs
- dtBoth : Return both
- The function returns the number of returned drivers.
-
- function GetDriverOptions(Driver: String; Options: TStrings): Integer;
- Returns a list of options for the driver.
-
-TODBCConnection
-
- Represents a connection to a ODBC datasource.
- The connection is established according to the following rules:
- - If OnBrowseConnection is assigned, SQLBrowseConnect is used. At
- each browse step, the handler is called with the in and out
- parameter lists filled.
- TConnectionBrowseEvent = Procedure (Sender : TObject;InParams,OutParams : Tstrings) of Object;
-
- This is as yet untested, since I have no driver which supports it.
-
- - If the DSN property is assigned, this is used. Password and Username are also used.
-
- - If The drivername is assigned, that is used, together with the
- DriverParams. This should be a list name=value pairs which will be
- passed to the driver.
-
- - If none of the above conditions is fullfilled, an error is raised.
-
- - To connect, set the Active property to 'True' or call connect.
-
- - To Disconnect, set the active property to false or call disconnect
-
- The following methods exist:
-
- Procedure Connect;
- Connects to the DSN/Driver
-
- Procedure Disconnect;
- Disconnects from the DSN/Driver
-
- Procedure GetTableNames(S : TStrings; SystemTables : Boolean);
-
- returns a list of tables. If systemtables is true, then system
- table names are also returned.
-
- Procedure GetFieldNames(TableName : String; S : TStrings);
- returns a list of fieldnames for table 'tablename'
- Procedure GetPrimaryKeyFields(TableName : String; S : TStrings);
- returns a list of primary key fieldnames for table 'tablename'
- procedure GetProcedureNames(S : TStrings);
- returns a list of stored procedure names
- procedure GetProcedureParams(ProcName : String;ParamTypes : TODBCParamTypes; S : TStrings);
- returns a list of parameters for the stored procedure. ParamTypes is a set of
- ptUnknown,ptInput,ptInputOutput,ptResult,ptOutput,ptRetVal
-
-
-TODBCStatement / TODBCSQLStatement.
-
- TODBCStatement is an abstract class which encapsulates an ODBC Statement
- handle. TODBCSQLStatement accepts an SQL Query which it can execute.
-
- TODBCStatement has the following methods:
-
- Procedure BindFields(RestrictList : TStrings);virtual;
- Binds fields. If restrictlist is assigned, then only fields whose
- name appears in the list are bound.
- Procedure ClearFields;virtual;
- clears the field definitions.
- Function Fetch : Boolean;
- fetches the next row. Is false if there was no more data.
- Property Connection : TODBCConnection Read FConnection Write SetConnection;
- The connection object to use.
- Property BOF : Boolean read FBOF;
- True if at beginning of data
- Property EOF : Boolean read FEOF;
- True if at end of data
- Property Fields : TODBCFieldList Read FFields;
- Collection of fields in result set (if any)
-
- TODBCSQLStatement has the following extra methods/properties:
-
- procedure Prepare;
- prepares the query. After this, Bindfields may be called.
- procedure Unprepare;
- unprepares the query. After this, Bindfields nor execute may be called.
- procedure ExecSQL;
- executes the SQL query. If it was not prepared it is executed
- directly.
- Procedure Open;
- prepares the query, binds all fields, allocates buffers and
- fetches the first row of the result set.
- Procedure Close;
- Undoes the 'Open'
- procedure GetFieldList(List: TStrings);
- Retsurns a list of field names in the result set. Can only be
- called after Prepare/Open and before close.
- Property Active : Boolean Read GetActive Write SetActive;
- Setting Active to true is the same as calling open.
- Setting it to false is the same as calling close.
- Property SQL : TStrings
- The SQL statement to be executed.
-
-
- A query result is returned in a collection of TODBCField objects:
-
-TODBCField :
- Property Position : SQLSmallint Read FPosition;
- (position in the query)
- Property Name : String read FName;
- (name of the field)
- Property DataType : SQLSmallInt read FDatatype;
- (original SQL data type)
- Property Size : SQLUinteger read FSize;
- (Original SQL data size)
- property DecimalDigits : SQLSmallInt read FDecimalDigits;
- (Original SQL digits after decimal point)
- Property Nullable : Boolean Read FNullable;
- (Field is nullable ?)
- Property Data : Pchar Read GetData;
- (pointer to raw data)
- Property BufType : SQLSmallInt Read FBufType;
- (SQL type of the allocated data buffer)
- Property BufSize : SQLInteger Read FBufSize;
- (Allocated size of the buffer)
- Property IsNull : Boolean Read GetIsNull;
- (Was the returned field value null ?)
-
- Property AsString : String Read GetAsString;
- Field value as string.
- Property AsInteger : Integer Read GetAsInteger;
- Field value as integer.
- Property AsBoolean : Boolean Read GetAsBoolean;
- Field value as boolean.
- Property AsDouble : Double Read GetAsDouble;
- Field value as DOUBLE
- Property AsDateTime : TDateTime Read GetAsDateTime;
- Field value as TDateTime
-
- The latter properties do some basic conversion i.e.
- if the result is an integer, the AsString will return
- the integer value converted to a string.
-
- Blob is not yet supported, but should be soon.
-
-List of examples:
-
-Program test functionality
-------- -----------------
-
-testbcon.pp tests browseconnect.
-testcon.pp tests DSN connect.
-testdrcon.pp tests driverconnect.
-testenv.pp test ennvironment functions.
-testfl.pp test fieldlist.
-testodbc.pp test raw odbc.
-testpa.pp test procedure arguments.
-testpk.pp test primary key lists.
-testpr.pp test procedure list.
-testsql.pp test execution of SQL and retrieval of results.
-testst.pp test preparing of a statement.
-testtl.pp test table list.
diff --git a/packages/fcl-db/src/unmaintained/odbc/fpmake.pp b/packages/fcl-db/src/unmaintained/odbc/fpmake.pp
deleted file mode 100644
index 8781e3d069..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/fpmake.pp
+++ /dev/null
@@ -1,20 +0,0 @@
-{$mode objfpc}
-{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
- T : TTarget;
-
-begin
- ChangeDir('../..');
- With Installer do
- begin
- {$i ../../fclmake.inc}
- {$i fpmake.inc}
- EndPackage;
- Run;
- end;
-end.
-
diff --git a/packages/fcl-db/src/unmaintained/odbc/fpodbc.pp b/packages/fcl-db/src/unmaintained/odbc/fpodbc.pp
deleted file mode 100644
index d1c1d3d5f5..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/fpodbc.pp
+++ /dev/null
@@ -1,1464 +0,0 @@
-unit fpodbc;
-
-{$mode objfpc}
-{$h+}
-
-interface
-
-uses odbcsql,SysUtils,Classes;
-
-Type
- TDSNTypes = (dtUser,dtSystem,dtBoth);
- TODBCParamType = (ptUnknown,ptInput,ptInputOutput,ptResult,ptOutput,ptRetVal);
- TODBCParamTypes = Set of TODBCParamType;
-
- TODBCObject = Class(TComponent)
- Private
- FHandle : SQLHandle;
- FHandleType : SQLSmallint;
- Function GetHandle : SQLHandle;
- function GetHandleAllocated: Boolean;
- function GetExtendedErrorInfo: String;
- Protected
- Function CreateHandle : SQLHandle; Virtual;
- Function ParentHandle : SQLHandle; Virtual;
- Procedure FreeHandle;
- Function CheckODBC(Res : Integer;Msg : String) : Integer;
- Public
- Destructor Destroy; override;
- Property Handle : SQLHandle Read GetHandle;
- Property HandleAllocated : Boolean Read GetHandleAllocated;
- end;
-
- TODBCEnvironment = Class(TODBCObject)
- Private
- FODBCBehaviour : Integer;
- procedure SetODBCbehaviour(const Value: Integer);
- function GetNullTerminate: Boolean;
- procedure SetNullTerminate(const Value: Boolean);
- protected
- function CreateHandle: SQLHandle; override;
- Procedure SetIntAttribute(Const Attr,Value : Integer);
- Procedure SetStringAttribute(Const Attr: Integer; Value : String);
- Function GetIntAttribute(Const Attr : Integer) : Integer;
- Function GetStringAttribute(Const Attr : Integer) : String;
- Public
- Constructor Create(Aowner : TComponent);override;
- Function GetDriverNames(List : Tstrings) : Integer;
- Function GetDataSourceNames(List : Tstrings; Types : TDSNTypes;Descriptions : Boolean) : Integer;
- function GetDriverOptions(Driver: String; Options: TStrings): Integer;
- Property ODBCBehaviour : Integer Read FODBCBehaviour Write SetODBCbehaviour;
- Property NullTerminateStrings : Boolean Read GetNullTerminate Write SetNullTerminate;
- end;
-
- TConnectionBrowseEvent = Procedure (Sender : TObject;InParams,OutParams : Tstrings) of Object;
-
- TODBCConnection = Class(TODBCObject)
- Private
- FActive : Boolean;
- FDriverParams : TStrings;
- FDSN,
- FDriverName,
- FUserName,
- FPassword : String;
- FEnvironMent : TODBCEnvironment;
- FOnBrowseConnection : TConnectionBrowseEvent;
- FWindowHandle : integer;
- FDriverCOmpletion: SQLUSmallInt;
- function GetDriverName: String;
- function GetDriverParams: TStrings;
- procedure SetActive(const Value: Boolean);
- procedure SetDriverName(const Value: String);
- procedure SetDriverParams(const Value: TStrings);
- procedure SetDSN(const Value: String);
- function GetEnvironment: TODBCEnvironMent;
- procedure SetEnvironment(const Value: TODBCEnvironMent);
- Protected
- procedure ConnectToDriver;
- procedure ConnectToDSN;
- Procedure ConnectBrowsing;
- Function ParentHandle : SQLHandle; override;
- Procedure CheckActive;
- Procedure CheckInActive;
- Public
- Constructor Create(Aowner : TComponent);override;
- Destructor Destroy; override;
- Procedure Connect;
- Procedure Disconnect;
- Procedure GetTableNames(S : TStrings; SystemTables : Boolean);
- Procedure GetFieldNames(TableName : String; S : TStrings);
- Procedure GetPrimaryKeyFields(TableName : String; S : TStrings);
- procedure GetProcedureNames(S : TStrings);
- procedure GetProcedureParams(ProcName : String;ParamTypes : TODBCParamTypes; S : TStrings);
- Property DSN : String Read FDSN Write SetDSN;
- Property DriverName : String Read GetDriverName Write SetDriverName;
- Property DriverCompletion : SQLUSmallInt Read FDriverCOmpletion Write FDriverCompletion;
- Property DriverParams : TStrings Read GetDriverParams Write SetDriverParams;
- Property Active : Boolean Read FActive Write SetActive;
- Property Environment : TODBCEnvironMent Read GetEnvironment Write SetEnvironment;
- Property UserName : String Read FUserName Write FUserName;
- Property Password : string Read FPassword Write FPassword;
- Property OnBrowseConnection : TConnectionBrowseEvent Read FonBrowseConnection Write FOnBrowseConnection;
- Property WindowHandle : integer Read FWindowHandle Write FWindowHandle;
- end;
-
- TODBCStatement = Class;
-
- TODBCFieldList = Class(TCollection)
- Private
- FStatement : TODBCStatement;
- Public
- Constructor Create(Statement : TODBCStatement);
- end;
-
- {
- TODBCStatement allocates 1 big data buffer. For each bound field
- two things are allocated in the buffer:
- - Size of fetched data as filled in by fetch.
- - data. (may be zero for blobs etc)
- The FBuffOffset contains the offset in the buffer of the size field.
- Data immediatly follows the size.
- }
-
- TODBCField = Class(TCollectionItem)
- Private
- FDecimalDigits,
- FPosition : SQLSmallInt;
- FName : String;
- FSize : SQLUInteger; // Declared size, as returned by DescribeCol
- FNullable : Boolean;
- FDataType : SQLSmallInt; // Declared type, as returned by DescribeCol
- FBuffOffSet : SQLInteger; // Offset in data buffer.
- FBuffer : Pointer; // Pointer to data.
- FBufSize : SQLInteger; // Allocated buffer size.
- FBufType : SQLSmallInt; // Allocated buffer type
- function GetAsString: String;
- function GetData : PChar;
- Function GetIsNull : Boolean;
- Function GetAsInteger : Integer;
- Function GetAsBoolean : Boolean;
- Function GetAsDouble : Double;
- Function GetAsDateTime : TDateTime;
- Public
- Property Position : SQLSmallint Read FPosition;
- Property Name : String read FName;
- Property DataType : SQLSmallInt read FDatatype;
- Property Size : SQLUinteger read FSize;
- property DecimalDigits : SQLSmallInt read FDecimalDigits;
- Property Nullable : Boolean Read FNullable;
- Property Data : Pchar Read GetData;
- Property BufType : SQLSmallInt Read FBufType;
- Property BufSize : SQLInteger Read FBufSize;
- Property IsNull : Boolean Read GetIsNull;
- Property AsString : String Read GetAsString;
- Property AsInteger : Integer Read GetAsInteger;
- Property AsBoolean : Boolean Read GetAsBoolean;
- Property AsDouble : Double Read GetAsDouble;
- Property AsDateTime : TDateTime Read GetAsDateTime;
- end;
-
- TODBCStatement = Class(TODBCObject)
- Private
- FBOF,FEOF : Boolean;
- FConnection: TODBCConnection;
- FFields : TODBCFieldList;
- FBuffer : Pointer;
- Protected
- Function ParentHandle : SQLHandle; override;
- procedure SetConnection(const Value: TODBCConnection);
- procedure AllocBuffers;
- Public
- Constructor Create(Aowner : TComponent);override;
- Destructor Destroy; override;
- Procedure BindFields(RestrictList : TStrings);virtual;
- Procedure ClearFields;virtual;
- Function Fetch : Boolean;
- Property Connection : TODBCConnection Read FConnection Write SetConnection;
- Property BOF : Boolean read FBOF;
- Property EOF : Boolean read FEOF;
- Property Fields : TODBCFieldList Read FFields;
- end;
-
- TODBCTableList = Class(TODBCStatement)
- Public
- Procedure GetTableNames(S : TStrings; SystemTables : Boolean);
- end;
-
- TODBCFieldNamesList = Class(TODBCStatement)
- Public
- Procedure GetFieldNames(TableName : String;S : TStrings);
- end;
-
- TODBCPrimaryKeyFieldsList = Class(TODBCStatement)
- Public
- Procedure GetPrimaryKeyFields(TableName : String;S : TStrings);
- end;
-
- TODBCProcedureList = Class(TODBCStatement)
- Public
- Procedure GetProcedureList(S : TStrings);
- end;
-
- TODBCProcedureParams = Class(TODBCStatement)
- Procedure GetProcedureParams(ProcName: String; ParamTypes: TODBCParamTypes; S: TStrings);
- end;
-
- TStatementState = (ssInactive,ssPrepared,ssBound,ssOpen);
-
- TODBCSQLStatement = Class(TODBCStatement)
- Private
- FSQL : TStrings;
- FState : TStatementState;
- function GetActive: Boolean;
- procedure SetActive(const Value: Boolean);
- Protected
- procedure FreeStatement(Option: SQLUSMALLINT);
- procedure ExecuteDirect;
- procedure ExecutePrepared;
- Procedure SetSQL(const Value: TStrings);
- Public
- Constructor Create(Aowner : TComponent);override;
- Destructor Destroy; override;
- procedure Prepare;
- procedure Unprepare;
- Procedure BindFields(RestrictList : TStrings);override;
- procedure ExecSQL;
- Procedure Open;
- Procedure Close;
- procedure GetFieldList(List: TStrings);
- Property Active : Boolean Read GetActive Write SetActive;
- Property SQL : TStrings Read FSQL Write SetSQL;
- end;
-
- EODBCError = Class(Exception);
-
-Const
- ODBCParamTypeNames : Array [TODBCParamType] of string
- = ('Unknown','Input','Input/Output','Result','Output','RetVal');
-
-Function DefaultEnvironment : TODBCEnvironment;
-
-implementation
-
-{ TODBCObject }
-
-resourcestring
- SErrUnexpected = 'Unexpected ODBC error:';
- SErrEnvironmentHandle = 'Cannot allocate environment handle:';
- SErrInvalidBehaviour = 'Invalid value for ODBC behaviour: %d';
- SErrNotConnected = 'Operation invalid when not connected.';
- SErrConnected = 'Operation invalid when connected.';
- SNeedDSNOrDriver = 'Cannot connect with empty DSN and driver names.';
- SErrGettingDataSources = 'Error getting datasources:';
- SErrGettingDriverNames = 'Error getting driver names:';
- SErrGettingDriverOptions = 'Error getting driver options:';
- SErrSettingEnvAttribute = 'Error setting environment attribute:';
- SErrGettingEnvAttribute = 'Error Getting environment attribute:';
- SErrBrowseConnecting = 'Error connecting to datasource via browse:';
- SErrDSNConnect = 'Error connecting to DSN:';
- SErrDriverConnect = 'Error connecting to driver:';
- SErrDisconnecting = 'Error disconnecting:';
- SErrNoConnectionForStatement = 'Missing connection for statement.';
- SErrNoSQLStatement = 'Missing SQL statement.';
- SErrPreparing = 'Error preparing statement:';
- SErrGettingTableNames = 'Error getting table names:';
- SErrFetchingData = 'Error fetching data:';
- SErrFieldNames = 'Error getting field names:';
- SErrPrimaryKeys = 'Error getting primary key names:';
- SErrProcedureNames = 'Error getting procedure names:';
- SErrExecuting = 'Error while executing statement:';
- SErrExecutingPrepared = 'Error while executing prepared statement:';
- SErrNotPrepared = 'Statement is not prepared';
- SErrNotInactive = 'Statement is already prepared or executed.';
- SErrStatementActive = 'A statement is still active';
- SErrColumnCount = 'Error retrieving cilumn count:';
- SErrColDescription = 'Error retrieving column description';
- SErrInvalidConversion = 'invalid type conversion';
- SErrBindCol = 'Error binding column';
-Const
- ODBCSuccess = [SQL_SUCCESS,SQL_SUCCESS_WITH_INFO];
-
-Procedure ODBCError (Msg : String);
-
-begin
- Raise EODBCError.Create(Msg);
-end;
-
-Procedure ODBCErrorFmt (Fmt : String;Args : Array of const);
-
-begin
- Raise EODBCError.CreateFmt(Fmt,Args);
-end;
-
-Function CheckODBC(Res : Integer;Msg : String) : Integer;
-
-begin
- Result:=Res;
- if not Res in [SQL_SUCCESS,SQL_SUCCESS_WITH_INFO] then
- begin
- If MSG='' then
- MSG:=SErrUnexpected;
- ODBCErrorFmt(msg,[res]);
- end;
-end;
-
-function TODBCObject.CheckODBC(Res: Integer; Msg: String): Integer;
-
-Var S : String;
-
-begin
- Result:=Res;
- if not Res in [SQL_SUCCESS,SQL_SUCCESS_WITH_INFO] then
- begin
- If MSG='' then
- MSG:=SErrUnexpected;
- S:=GetExtendedErrorInfo;
- If S<>'' then
- Msg:=Msg+LineEnding+S;
- ODBCError(msg);
- end;
-end;
-
-function TODBCObject.GetExtendedErrorInfo : String;
-
-Var
- Res : SQLreturn;
- I,MsgLen : SQLSmallInt;
- SQLState : Array[0..6] of Char;
- NativeError : SQLInteger;
- MSg : Array[0..SQL_MAX_MESSAGE_LENGTH] of Char;
- SState,SMsg : String;
-
-begin
- I:=0;
- Result:='';
- Repeat
- Inc(i);
- Res:=SQLGetDiagRec(FhandleType, FHandle, i, SqlState, NativeError,
- Msg, sizeof(Msg), MsgLen);
- If Res<>SQL_NO_DATA then
- begin
- SState:=SQLState;
- SMsg:=Msg;
- If Length(Result)>0 then
- Result:=Result+LineEnding;
- Result:=Result+Format('[%s] : %s (%d)',[SState,SMsg,NativeError]);
- end;
- Until (Res=SQL_NO_DATA);
-end;
-
-
-
-
-function TODBCObject.CreateHandle: SQLHandle;
-begin
-{$ifdef debug}
- Writeln(Classname,': Creating handle of type ',FHAndleType,' and parent ',ParentHandle);
-{$endif}
- CheckODBC(SQLAllocHandle(FHandleType,ParentHandle,FHandle),SErrEnvironmentHandle);
- Result:=FHandle;
-end;
-
-
-destructor TODBCObject.Destroy;
-begin
- If FHandle<>0 then
- FreeHandle;
- inherited;
-end;
-
-procedure TODBCObject.FreeHandle;
-begin
- If FHandle<>0 then
- begin
- SQLFreeHandle(FHandleType,FHandle);
- FHandle:=0;
- end;
-end;
-
-function TODBCObject.GetHandle: SQLHandle;
-begin
- If FHandle=0 then
- CreateHandle;
- Result:=FHandle;
-end;
-
-function TODBCObject.GetHandleAllocated: Boolean;
-begin
- Result:=(FHandle<>0)
-end;
-
-function TODBCObject.ParentHandle: SQLHandle;
-begin
- Result:=SQL_NULL_HANDLE;
-end;
-
-{ TODBCEnvironment }
-
-constructor TODBCEnvironment.Create(Aowner: TComponent);
-begin
- FHandleType:=SQL_HANDLE_ENV;
- inherited;
-end;
-
-function TODBCEnvironment.CreateHandle: SQLHandle;
-begin
- Result:=Inherited CreateHandle;
- ODBCbehaviour:=SQL_OV_ODBC3;
-end;
-
-function TODBCEnvironment.GetDataSourceNames(List: Tstrings;
- Types: TDSNTypes;Descriptions : Boolean): Integer;
-
-var
- DSNName,
- DSNDesc: array[0..SQL_MAX_OPTION_STRING_LENGTH] of Char;
- lenn,lend : SQLSmallInt;
- Dir : SQLSmallInt;
- Sn,SD : String;
-
-begin
- Case Types of
- dtSystem : Dir:=SQL_FETCH_FIRST_SYSTEM;
- dtUser : Dir:=SQL_FETCH_FIRST_USER;
- dtBoth : Dir:=SQL_FETCH_FIRST;
- end;
- List.Clear;
- CheckODBC(SQLDatasources(Handle, Dir,
- DSNName,SQL_MAX_OPTION_STRING_LENGTH, @lenn,
- DSNDesc,SQL_MAX_OPTION_STRING_LENGTH, @lend),SErrGettingDataSources);
- Repeat
- If Not Descriptions then
- List.Add(DSNName)
- else
- begin
- SN:=DSNName;
- SD:=DSNDesc;
- List.Add(SN+'='+SD);
- end;
- Until Not (SQLDataSources(Handle, SQL_FETCH_NEXT,
- DSNName, SQL_MAX_OPTION_STRING_LENGTH, @lenn,
- DSNDesc,SQL_MAX_OPTION_STRING_LENGTH, @lend) in ODBCSuccess);
- Result:=List.Count;
-end;
-
-function TODBCEnvironment.GetDriverNames(List : Tstrings): Integer;
-
-Var
- DriverName: array[0..SQL_MAX_OPTION_STRING_LENGTH] of Char;
- len : SQLSmallInt;
-
-begin
- List.Clear;
- CheckODBC(SQLDrivers(Handle, SQL_FETCH_FIRST, DriverName,
- SQL_MAX_OPTION_STRING_LENGTH, @len, Nil,0,Nil),SErrGettingDriverNames);
- Repeat
- List.Add(DriverName);
- Until Not (SQLDrivers(Handle, SQL_FETCH_NEXT, DriverName,
- SQL_MAX_OPTION_STRING_LENGTH, @len, Nil,0,Nil) in ODBCSuccess);
- Result:=List.Count;
-end;
-
-function TODBCEnvironment.GetDriverOptions(Driver : String;Options: Tstrings): Integer;
-
-Var
- DriverName,
- DriverOptions: array[0..SQL_MAX_OPTION_STRING_LENGTH] of Char;
- lenn,leno : SQLSmallInt;
- Found : Boolean;
- P : PChar;
- S : string;
-
-begin
- CheckODBC(SQLDrivers(Handle, SQL_FETCH_FIRST, DriverName,
- SQL_MAX_OPTION_STRING_LENGTH, @lenn, DriverOptions,
- SQL_MAX_OPTION_STRING_LENGTH,@Leno),SErrGettingDriverOptions);
- Result:=0;
- Options.Clear;
- Repeat
- Found:=CompareText(Driver,DriverName)=0;
- If Found then
- begin
- P:=@DriverOptions[0];
- While P[0]<>#0 do
- begin
- S:=StrPas(P);
- options.Add(S);
- Inc(P,Length(S)+1);
- end;
- end;
- Until Not (SQLDrivers(Handle, SQL_FETCH_NEXT, DriverName,
- SQL_MAX_OPTION_STRING_LENGTH, @lenn, DriverOptions,
- SQL_MAX_OPTION_STRING_LENGTH,@Leno) in ODBCSuccess) or Found;
- Result:=Options.Count;
-end;
-
-function TODBCEnvironment.GetIntAttribute(const Attr: Integer): Integer;
-begin
- CheckODBC(SQLSetEnvAttr(Handle,Attr,SQLPointer(@result),0),SErrSettingEnvAttribute);
-end;
-
-function TODBCEnvironment.GetNullTerminate: Boolean;
-begin
- Result:=(GetIntAttribute(SQL_ATTR_OUTPUT_NTS)=SQL_TRUE);
-end;
-
-function TODBCEnvironment.GetStringAttribute(const Attr: Integer): String;
-
-Var
- OldLen,Len: Integer;
-
-begin
- OldLen:=0;
- Repeat
- Inc(OldLen,255);
- SetLength(Result,OldLen);
- CheckODBC(SQLGetEnvAttr(Handle,Attr,SQLPointer(@result),OldLen,@Len),SErrGettingEnvAttribute);
- until (Len<=OldLen);
- SetLength(Result,Len);
-end;
-
-procedure TODBCEnvironment.SetIntAttribute(const Attr, Value: Integer);
-begin
- CheckODBC(SQLSetEnvAttr(Handle,Attr,SQLPointer(Value),0),SErrSettingEnvAttribute);
-end;
-
-procedure TODBCEnvironment.SetNullTerminate(const Value: Boolean);
-begin
- If Value then
- SetIntAttribute(SQL_ATTR_OUTPUT_NTS,SQL_TRUE)
- else
- SetIntAttribute(SQL_ATTR_OUTPUT_NTS,SQL_FALSE);
-end;
-
-procedure TODBCEnvironment.SetODBCbehaviour(const Value: Integer);
-begin
- If (Value<>FODBCBehaviour) then
- begin
- If Not (Value in [SQL_OV_ODBC3,SQL_OV_ODBC2]) Then
- ODBCErrorFmt(SErrInvalidBehaviour,[Value]);
- SetIntAttribute(SQL_ATTR_ODBC_VERSION,Value);
- FODBCBehaviour := Value;
- end;
-end;
-
-procedure TODBCEnvironment.SetStringAttribute(const Attr: Integer;
- Value: String);
-begin
- CheckODBC(SQLSetEnvAttr(Handle,Attr,SQLPointer(Value),Length(Value)),SErrSettingEnvAttribute);
-end;
-
-{ TODBCConnection }
-
-procedure TODBCConnection.CheckActive;
-begin
- If Not FActive then
- ODBCError(SErrNotConnected);
-end;
-
-procedure TODBCConnection.CheckInActive;
-begin
- If FActive then
- ODBCError(SErrConnected);
-end;
-
-procedure TODBCConnection.Connect;
-begin
- If Not FActive then
- begin
- If Assigned (FonBrowseConnection) then
- ConnectBrowsing
- else If (FDSN<>'') then
- ConnectToDSN
- else if FDriverName<>'' then
- ConnectToDriver
- else
- ODBCError(SNeedDSNOrDriver);
- FActive:=True;
- end;
-end;
-
-Function ListToBuf(List : Tstrings; Buf : PChar; Sep : Char; MaxLen : Integer) : Boolean;
-
-Var
- P : PChar;
- S : String;
- I,Len : Integer;
-
-begin
- P:=Buf;
- I:=0;
- Result:=True;
- While Result and (I<List.Count) do
- begin
- S:=List[i];
- If I<List.Count-1 then
- S:=S+Sep;
- Len:=Length(S);
- Result:=(Longint(P-Buf)+Len)<=MaxLen;
- If Result then
- begin
- Move(S[1],P^,Len);
- Inc(P,Len);
- end;
- Inc(i);
- end;
- P[0]:=#0;
-end;
-
-Function BufToList(Buf : PChar;MaxLen : Integer;List : Tstrings;Sep : Char) : Integer;
-
-Var
- S : String;
- P : PChar;
- Totlen,Len : Integer;
-
-begin
- List.Clear;
- Result:=0;
- P:=Buf;
- TotLen:=0;
- While (P[0]<>#0) or (totlen<Maxlen) do
- begin
- Len:=0;
- While Not (P[len] in [Sep,#0]) do
- Inc(len);
- SetLength(S,Len);
- List.Add(S);
- Move(P[0],S[1],Len);
- Inc(P,Len);
- If P[0]<>#0 then
- Inc(P,1);
- inc(Totlen,Len+1);
- end;
- Result:=List.Count;
-end;
-
-
-Procedure TODBCConnection.ConnectBrowsing;
-
-Var
- Inlist,OutList : TStringList;
- InStr,
- OutStr: Array[0..SQL_MAX_OPTION_STRING_LENGTH] of Char;
- i,Res : Integer;
- olen : SQLSmallint;
-
-begin
- InList:=TStringList.Create;
- OutList:=TstringList.Create;
- try
- If FDSN<>'' then
- InList.Add('DSN='+FDSN)
- else If FDriverName<>'' then
- begin
- Inlist.Add('DRIVER='+FDriverName);
- For I:=0 to DriverParams.Count-1 do
- Inlist.Add(DriverParams[i]);
- end;
- Repeat
- ListToBuf(Inlist,Instr,';',SQL_MAX_OPTION_STRING_LENGTH);
- Res:=SQLBrowseConnect(Handle,Instr,SQL_NTS,Outstr,SQL_MAX_OPTION_STRING_LENGTH,Olen);
- If RES=SQL_NEED_DATA then
- begin
- OutList.Clear;
- BufToList(OutStr,Olen,OutList,';');
- FOnBrowseConnection(Self,InList,OutList);
- end
- Until (Res<>SQL_NEED_DATA);
- CheckODBC(Res,SErrBrowseConnecting);
- Finally
- Outlist.free;
- InList.Free;
- end;
-end;
-
-Procedure TODBCConnection.ConnectToDSN;
-begin
- CheckODBC(SQLConnect(Handle,PSQLChar(FDSN),SQL_NTS,
- PSQLChar(FUserName),SQL_NTS,
- PSQLChar(FPassword),SQL_NTS),SErrDSNConnect);
-end;
-
-
-Procedure TODBCConnection.ConnectToDriver;
-
-Var
- Instr,
- OutStr : Array[0..SQL_MAX_OPTION_STRING_LENGTH] of Char;
- OLen : SQLSmallint;
- InList : TStringList;
-
-begin
- InList:=TStringList.Create;
- Try
- Inlist.Assign(DriverParams);
- Inlist.Insert(0,'DRIVER={'+DRIVERNAME+'}');
- ListToBuf(Inlist,InStr,';',SQL_MAX_OPTION_STRING_LENGTH);
- Finally
- Inlist.Free;
- end;
- CheckODBC(SQLDriverConnect(Handle,FWindowHandle,
- Instr,SQL_NTS,
- OutStr,SQL_MAX_OPTION_STRING_LENGTH,
- Olen,FDriverCompletion),SErrDriverConnect);
-end;
-
-constructor TODBCConnection.Create(Aowner: TComponent);
-begin
- inherited;
- FHandleType:=SQL_HANDLE_DBC;
- FDriverParams:=TStringList.Create;
- FDriverCompletion:=SQL_DRIVER_NOPROMPT;
-end;
-
-destructor TODBCConnection.Destroy;
-begin
- Disconnect;
- inherited;
-end;
-
-procedure TODBCConnection.Disconnect;
-begin
- If FActive then
- begin
- CheckODBC(SQLDisconnect(Handle),SErrDisconnecting);
- Factive:=False;
- end;
-end;
-
-function TODBCConnection.GetDriverName: String;
-begin
- Result:=FDriverName;
-end;
-
-function TODBCConnection.GetDriverParams: TStrings;
-begin
- Result:=FDriverParams;
-end;
-
-function TODBCConnection.GetEnvironment: TODBCEnvironMent;
-begin
- If FEnvironment=Nil then
- result:=DefaultEnvironment
- else
- Result:=FEnvironment;
-end;
-
-procedure TODBCConnection.SetActive(const Value: Boolean);
-begin
- If Value then
- Connect
- else
- Disconnect;
-end;
-
-procedure TODBCConnection.SetDriverName(const Value: String);
-begin
- CheckInactive;
- FDSN:='';
- If CompareText(FDriverName,Value)<>0 then
- begin
- FDriverName:=Value;
- FDriverParams.Clear;
- end;
-end;
-
-procedure TODBCConnection.SetDriverParams(const Value: TStrings);
-begin
- CheckInactive;
- FDriverParams.Assign(Value);
-end;
-
-procedure TODBCConnection.SetDSN(const Value: String);
-begin
- CheckInactive;
- FDSN := Value;
-end;
-
-procedure TODBCConnection.SetEnvironment(const Value: TODBCEnvironMent);
-begin
- CheckInactive;
- If (Value<>Environment) then // !! may be defaultenvironment...
- begin
- If HandleAllocated then
- FreeHandle;
- FEnvironment:=Value
- end;
-end;
-
-
-function TODBCConnection.ParentHandle: SQLHandle;
-begin
- Result:=Environment.Handle
-end;
-
-Const
- DefEnv : Pointer = Nil;
-
-Function DefaultEnvironment : TODBCEnvironment;
-
-begin
- If DefEnv=Nil then
- DefEnv:=TODBCEnvironment.Create(Nil);
- Result:=TODBCEnvironment(DefEnv);
-end;
-
-procedure TODBCConnection.GetTableNames(S: TStrings;
- SystemTables: Boolean);
-begin
- With TODBCTableList.Create(Self) do
- try
- GetTableNames(S,SystemTables);
- finally
- Free;
- end;
-end;
-
-procedure TODBCConnection.GetFieldNames(TableName: String; S: TStrings);
-begin
- With TODBCFieldNamesList.Create(Self) do
- try
- GetFieldNames(TableName,S);
- finally
- Free;
- end;
-end;
-
-procedure TODBCConnection.GetPrimaryKeyFields(TableName: String;
- S: TStrings);
-begin
- With TODBCPrimaryKeyFieldsList.Create(Self) do
- try
- GetPrimaryKeyFields(TableName,S);
- finally
- Free;
- end;
-end;
-
-procedure TODBCConnection.GetProcedureNames(S: TStrings);
-begin
- With TODBCProcedureList.Create(Self) do
- try
- GetProcedureList(S);
- Finally
- Free;
- end;
-end;
-
-procedure TODBCConnection.GetProcedureParams(ProcName: String;
- ParamTypes: TODBCParamTypes; S: TStrings);
-begin
- With TODBCProcedureParams.Create(Self) do
- Try
- GetProcedureParams(ProcName,Paramtypes,S);
- finally
- Free;
- end;
-end;
-
-{ TODBCStatement }
-
-Type
- TODBCFieldBufRec = Record
- T{ype} : SQlSmallint;
- B{ufsize} : SQLInteger;
- {Buftyp}e : SQLSmallint;
- end;
-
-Const
- BufDescrCount = 26;
- BufDescr : Array[1..BufDescrCount] of TODBCFieldBufRec =
- { Type Bufsize Buftype }
- (
- (T:SQL_CHAR ;b:-1 ;e: SQL_CHAR),
- (T:SQL_NUMERIC ;b:sizeof(SQLDouble) ;e: SQL_DOUBLE),
- (T:SQL_DECIMAL ;b:sizeof(SQLDouble) ;e: SQL_DOUBLE),
- (T:SQL_INTEGER ;b:sizeof(SQLInteger) ;e: SQL_INTEGER),
- (T:SQL_SMALLINT ;b:sizeof(SQLSmallInt) ;e: SQL_SMALLINT),
- (T:SQL_FLOAT ;b:sizeof(SQLDOUBLE) ;e: SQL_DOUBLE),
- (T:SQL_REAL ;b:sizeof(SQLDOUBLE) ;e: SQL_DOUBLE),
- (T:SQL_DOUBLE ;b:Sizeof(SQLDOUBLE) ;e: SQL_DOUBLE),
- (T:SQL_DATE ;b:Sizeof(SQL_DATE_STRUCT) ;e: SQL_DATE),
- (T:SQL_TIME ;b:sizeof(SQL_TIME_STRUCT) ;e: SQL_TIME),
- (T:SQL_TIMESTAMP ;b:sizeof(SQL_TIMESTAMP_STRUCT) ;e: SQL_TIMESTAMP),
- (T:SQL_VARCHAR ;b:-1 ;e: SQL_CHAR),
- (T:SQL_UNKNOWN_TYPE ;b:0 ;e: SQL_UNKNOWN_TYPE),
- (T:SQL_LONGVARCHAR ;b:-1 ;e: SQL_CHAR),
- (T:SQL_BINARY ;b:-2 ;e: SQL_BINARY),
- (T:SQL_VARBINARY ;b:-2 ;e: SQL_BINARY),
- (T:SQL_LONGVARBINARY ;b:-2 ;e: SQL_BINARY),
- (T:SQL_BIGINT ;b:sizeOf(SQLDOUBLE) ;e: SQL_DOUBLE),
- (T:SQL_TINYINT ;b:Sizeof(SQLSMALLINT) ;e: SQL_SMALLINT),
- (T:SQL_BIT ;b:sizeof(SQL_CHAR) ;e: SQL_BIT),
- (T:SQL_WCHAR ;b:-1 ;e: SQL_CHAR),
- (T:SQL_WVARCHAR ;b:-1 ;e: SQL_CHAR),
- (T:SQL_WLONGVARCHAR ;b:-1 ;e: SQL_CHAR),
- (T:SQL_TYPE_DATE ;b:sizeof(SQL_DATE_STRUCT) ;e: SQL_TYPE_DATE),
- (T:SQL_TYPE_TIME ;b:sizeof(SQL_TIME_STRUCT) ;e: SQL_TYPE_TIME),
- (T:SQL_TYPE_TIMESTAMP;b:sizeof(SQL_TIMESTAMP_STRUCT) ;e: SQL_TYPE_TIMESTAMP)
- );
-{ // template
- (T: ;b: ;e: ),
-}
-
-Function GetColSizeBufType (Coltype: SQLSmallint;
- Var BufSize : SQLInteger;
- Var BufType : SQLSmallInt) : Boolean;
-Var
- I : Integer;
-
-begin
- I:=0;
- BufSize:=0;
- BufType:=0;
- While (I<=BufDescrCount) and (BufDescr[i].t<>Coltype) do
- Inc(i);
- Result:=(i<=BufDescrCount);
- If Result then
- begin
- BufSize:=BufDescr[i].b;
- BufType:=BufDescr[i].e;
- end;
-end;
-
-
-procedure TODBCStatement.BindFields(RestrictList : TStrings);
-
-Var
- Count: SQLSmallInt;
- CName : Array[0..SQL_NAME_LEN] of Char;
- CSize : SQLUINTEGER;
- CDataType,CDecimals,CNullable,CNameLen: SQLSmallInt;
- I : integer;
-
-begin
- CheckODBC(SQLNumResultCols(Handle,Count),SErrColumnCount);
- For I:=1 to Count do
- begin
- CheckODBC(SQLDescribeCol(Handle,i,CName,SQL_NAME_LEN,CNameLen,
- CdataType,CSize, CDecimals,CNullable)
- ,SErrColDescription);
- If Not Assigned(RestrictList) or (RestrictList.IndexOf(Cname)<>-1) then
- With FFields.Add as TODBCField do
- begin
- FPosition:=I;
- FName:=Cname;
- FDataType:=CDataType;
- FSize:=CSize;
- FDecimalDigits:=CDecimals;
- FNullable:=(CNullable=SQL_TRUE);
- GetColsizeBufType(FDataType,FBufSize,FBufType);
- If FBufSize=-1 then
- FBufSize:=FSize;
- end;
- end;
- AllocBuffers;
- For I:=0 to Count-1 do
- With FFields.Items[i] as TODBCField do
- CheckODBC(SQLBindCol(Handle,FPosition,FBufType,GetData,FBufSize,FBuffer+FBuffOffset)
- ,SErrBindCol);
-
-end;
-
-procedure TODBCStatement.ClearFields;
-begin
- FFields.Clear;
-end;
-
-constructor TODBCStatement.Create(Aowner: TComponent);
-begin
- FHandleType:=SQL_HANDLE_STMT;
- inherited;
- If AOwner is TODBCConnection then
- Connection:=TODBCConnection(Aowner);
- FFields:=TODBCFieldList.Create(Self);
-end;
-
-function TODBCStatement.ParentHandle: SQLHandle;
-begin
- If (Connection=Nil) then
- ODBCError(SErrNoConnectionForStatement);
- Result:=Connection.Handle;
-end;
-
-procedure TODBCStatement.SetConnection(const Value: TODBCConnection);
-begin
- If Value<>FConnection then
- begin
- If HandleAllocated then
- FreeHandle;
- FConnection := Value;
- end;
-end;
-
-Function TODBCStatement.fetch : Boolean;
-
-Var
- res : SQLReturn;
-
-begin
- Res:=SQLFetch(Handle);
- Result:=(Res=SQL_SUCCESS);
- If Not Result and (Res<>SQL_NO_DATA) then
- CheckODBC(Res,SErrFetchingData);
- FBof:=False;
- If (Res=SQL_NO_DATA) then
- FEOF:=True;
-end;
-
-destructor TODBCStatement.Destroy;
-begin
- FFields.Free;
- inherited;
-end;
-
-{ TODBCSQLStatement }
-
-procedure TODBCSQLStatement.GetFieldList(List : TStrings);
-
-Var
- Count: SQLSmallInt;
- CName : Array[0..SQL_NAME_LEN] of Char;
- CSize : SQLUINTEGER;
- CDataType,CDecimals,CNullable,CNameLen: SQLSmallInt;
- I : integer;
-
-begin
- if Not (FState in [ssPrepared,ssBound,ssOpen]) then
- ODBCError(SErrNotPrepared);
- List.Clear;
- CheckODBC(SQLNumResultCols(Handle,Count),SErrColumnCount);
- For I:=1 to Count do
- begin
- CheckODBC(SQLDescribeCol(Handle,i,CName,SQL_NAME_LEN,CNameLen,
- CdataType,CSize, CDecimals,CNullable)
- ,SErrColDescription);
- List.Add(CName);
- end;
-end;
-
-
-procedure TODBCSQLStatement.Unprepare;
-
-begin
- Case FState of
- ssBound,ssOpen :
- begin
- ClearFields;
- FreeStatement(SQL_CLOSE);
- end;
- ssPrepared : begin
- FreeStatement(SQL_CLOSE);
- end;
- end;
- FState:=ssInactive;
-end;
-
-procedure TODBCSQLStatement.FreeStatement(Option : SQLUSMALLINT);
-
-begin
- SQLFreeStmt(Handle,SQL_CLOSE);
-end;
-
-procedure TODBCSQLStatement.Close;
-begin
- if FState<>ssInactive then
- begin
- Unprepare;
- FreeStatement(SQL_CLOSE);
- FState:=ssInactive;
- end;
-end;
-
-constructor TODBCSQLStatement.Create(Aowner: TComponent);
-begin
- inherited;
- FSQL:=TStringList.Create;
-end;
-
-destructor TODBCSQLStatement.Destroy;
-begin
- if FState=ssOpen then
- Close
- else If FState<>ssInactive then
- Unprepare;
- FSQL.Free;
- inherited;
-end;
-
-procedure TODBCSQLStatement.ExecSQL;
-begin
- Case FState of
- ssPrepared,ssBound : ExecutePrepared;
- ssInactive : ExecuteDirect;
- else
- Raise Exception.Create(SErrStatementActive)
- end;
-end;
-
-procedure TODBCSQLStatement.ExecuteDirect;
-
-Var
- S : String;
-
-begin
- if FState<>ssInactive then
- ODBCError(SErrStatementActive);
- S:=SQL.Text;
- CheckODBC(SQLExecDirect(Handle,PChar(S),SQL_NTS),SErrExecuting);
-end;
-
-procedure TODBCSQLStatement.ExecutePrepared;
-begin
- if Not (FState in [ssPrepared,ssBound]) then
- ODBCError(SErrNotPrepared);
- CheckODBC(SQLExecute(Handle),SErrExecutingPrepared);
-end;
-
-function TODBCSQLStatement.GetActive: Boolean;
-begin
- Result:=(FState=ssOpen);
-end;
-
-procedure TODBCSQLStatement.Open;
-begin
- if (FState<>ssOpen) then
- begin
- Writeln('Preparing');
- If FState=ssInactive then
- Prepare;
- Writeln('Bind fields');
- if FState=ssPrepared then
- BindFields(Nil);
- Writeln('Executing');
- ExecSQL;
- Writeln('Fetching');
- If FState=ssBound then
- Fetch;
- FState:=ssOpen;
- FBOF:=True;
- end;
-end;
-
-procedure TODBCSQLStatement.Prepare;
-
-Var
- S : String;
-
-begin
- If FState<>ssInactive then
- ODBCError(SErrNotInactive);
- If (FSQL.Count=0) then
- ODBCError(SErrNoSQLStatement);
- S:=FSQL.Text;
- CheckODBC(SQLPrepare(Handle,PChar(S),SQL_NTS),SErrPreparing);
- FState:=ssPrepared;
-end;
-
-procedure TODBCSQLStatement.SetActive(const Value: Boolean);
-begin
- If Value then
- Open
- else
- Close;
-end;
-
-procedure TODBCSQLStatement.SetSQL(const Value: TStrings);
-
-begin
- FSQL.Assign(Value);
-end;
-
-
-procedure TODBCSQLStatement.BindFields(RestrictList: TStrings);
-begin
- inherited;
- FState:=ssBound;
-end;
-
-
-procedure TODBCStatement.AllocBuffers;
-
-Var
- I,TotalSize,AddSize : Integer;
-
-begin
- TotalSize:=0;
- For i:=0 to FFields.Count-1 do
- With (FFields.Items[i] as TODBCField) do
- begin
- AddSize:=FBufSize;
- If FBufSize=-2 then // Blob.
- AddSize:=0
- else if FBufSize=-1 then
- AddSize:=FSize+1; // some Char variant.
- // Store offset temporarily in FData
- FBuffOffset:=TotalSize;
- Inc(TotalSize,AddSize+SizeOf(SQLinteger));
- end;
- FBuffer:=GetMem(TotalSize);
- TotalSize:=0;
- For i:=0 to FFields.Count-1 do
- With (FFields.Items[i] as TODBCField) do
- FBuffer:=Self.FBuffer;
-end;
-
-{ TODBCTableList }
-
-procedure TODBCTableList.GetTableNames(S: TStrings; SystemTables : Boolean);
-
-var
- TName,
- TType: array[0..SQL_NAME_LEN+1] of char;
- NL,TL: SQLINTEGER;
- Res: SQLRETURN;
-
-begin
- S.Clear;
- Res:=CheckODBC(SQLTables(handle, nil,0,nil,0,nil,0,nil,0),SErrGettingTableNames);
- if Res=SQL_SUCCESS then
- begin
- // Must bind by colno, because names changed between ODBC 2.0 and 3.0 !!
- SQLBindCol(handle,3,SQL_CHAR,@TName,SQL_NAME_LEN,@NL);
- SQLBindCol(handle,4,SQL_CHAR,@TType,SQL_NAME_LEN,@TL);
- While Fetch do
- if SystemTables or (CompareText(TType,'SYSTEM TABLE')<>0) then
- S.Add(TName);
- end;
-end;
-
-{ TODBCFieldNamesList }
-
-procedure TODBCFieldNamesList.GetFieldNames(TableName: String;
- S: TStrings);
-
-var
- FName : array[0..SQL_NAME_LEN+1] of char;
- NF : SQLINTEGER;
- Res: SQLRETURN;
-
-begin
- S.Clear;
- Res:=CheckODBC(SQLColumns(handle, nil, 0, nil, 0, pchar(TableName), SQL_NTS, nil, 0),SErrFieldNames);
- if Res=SQL_SUCCESS then
- begin
- SQLBindCol(handle, 4, SQL_CHAR, @FNAme, SQL_NAME_LEN, @NF);
- While Fetch do
- S.Add(FName);
- end;
-end;
-
-{ TODBCPrimaryKeyFieldsList }
-
-procedure TODBCPrimaryKeyFieldsList.GetPrimaryKeyFields(TableName: String;
- S: TStrings);
-var
- FName : array[0..SQL_NAME_LEN+1] of char;
- NF : SQLINTEGER;
- Res: SQLRETURN;
-
-begin
- S.Clear;
- Res:=CheckODBC(SQLPrimaryKeys(handle, nil, 0, nil, 0, pchar(TableName), SQL_NTS),SErrPrimaryKeys);
- if Res=SQL_SUCCESS then
- begin
- SQLBindCol(handle, 4, SQL_CHAR, @FNAme, SQL_NAME_LEN, @NF);
- While Fetch do
- S.Add(FName);
- end;
-
-end;
-
-{ TODBCProcedureList }
-
-procedure TODBCProcedureList.GetProcedureList(S: TStrings);
-
-var
- PName : array[0..SQL_NAME_LEN+1] of char;
- NP : SQLINTEGER;
- Res: SQLRETURN;
-
-begin
- S.Clear;
- Res:=CheckODBC(SQLProcedures(handle, nil, 0, nil, 0, Nil, 0),SErrProcedureNames);
- if Res=SQL_SUCCESS then
- begin
- SQLBindCol(handle, 3, SQL_CHAR, @PNAme, SQL_NAME_LEN, @NP);
- While Fetch do
- S.Add(PName);
- end;
-
-end;
-
-{ TODBCProcedureParams }
-
-procedure TODBCProcedureParams.GetProcedureParams(ProcName: String;
- ParamTypes: TODBCParamTypes; S: TStrings);
-
-var
- PName : array[0..SQL_NAME_LEN+1] of char;
- NP,NT : SQLINTEGER;
- Ptype : SQLSmallInt;
- Res: SQLRETURN;
-
-begin
- S.Clear;
- Res:=CheckODBC(SQLProcedureColumns(handle, nil, 0, nil, 0, PChar(ProcName),SQL_NTS,Nil, 0),SErrProcedureNames);
- if Res=SQL_SUCCESS then
- begin
- SQLBindCol(handle, 4, SQL_CHAR, @PName, SQL_NAME_LEN, @NP);
- SQLBindCol(handle, 5, SQL_SMALLINT, @PType, SizeOf(SQLSmallInt), @NT);
- While Fetch do
- begin
- If TODBCParamType(PType) in ParamTypes then
- S.Add(PName);
- end;
- end;
-end;
-
-{ TODBCFieldList }
-
-constructor TODBCFieldList.Create(Statement: TODBCStatement);
-begin
- FStatement:=Statement;
- Inherited Create(TODBCField);
-end;
-
-{ TODBCField }
-
-function TODBCField.GetAsString: String;
-begin
- If IsNull then
- Result:=''
- else
- Case FBufType of
- SQL_Smallint : Result:=IntToStr(PSQLSmallInt(Data)^);
- SQL_Integer : Result:=IntToStr(PSQLINTEGER(Data)^);
- SQL_BIT : Result:=IntToStr(PByte(Data)^);
- SQL_CHAR : Result:=StrPas(Data);
- SQL_DOUBLE : Result:=FloatToStr(GetAsDouble);
- SQL_DATE : result:=DateToStr(AsDateTime);
- SQL_TIME : Result:=TimeToStr(AsDateTime);
- SQL_TIMESTAMP : result:=datetimeToStr(AsDateTime);
- SQL_TYPE_DATE : result:=dateToStr(AsDateTime);
- SQL_TYPE_TIMESTAMP : result:=datetimeToStr(AsDateTime);
- SQL_TYPE_TIME : Result:=TimeToStr(AsDateTime);
- else
- ODBCError(SErrInvalidConversion)
- end;
-end;
-
-function TODBCField.GetData : Pchar;
-
-begin
- Result:=FBuffer+FBuffOffset+SizeOf(SQLinteger);
-end;
-
-function TODBCField.GetIsNull : boolean;
-
-begin
- Result:=PSQLinteger(FBuffer+FBuffOffset)^=SQL_NULL_DATA;
-end;
-
-Function TODBCField.GetAsInteger : Integer;
-
-begin
- If IsNull then
- Result:=0
- else
- Case FBufType of
- SQL_Smallint : Result:=PSQLSmallInt(Data)^;
- SQL_Integer : Result:=PSQLINTEGER(Data)^;
- SQL_BIT : Result:=PByte(Data)^;
- SQL_CHAR : Result:=StrToInt(GetAsString);
- SQL_DOUBLE : Result:=Round(GetAsDouble);
- SQL_DATE,
- SQL_TIME,
- SQL_TIMESTAMP,
- SQL_TYPE_DATE,
- SQL_TYPE_TIMESTAMP,
- SQL_TYPE_TIME : Result:=Round(AsDateTime);
- else
- ODBCError(SErrInvalidConversion)
- end;
-end;
-
-Function TODBCField.GetAsBoolean : Boolean;
-
-begin
- If IsNull then
- Result:=False
- else
- Case FBufType of
- SQL_Smallint : Result:=PSQLSmallInt(Data)^=0;
- SQL_Integer : Result:=PSQLINTEGER(Data)^=0;
- SQL_BIT : Result:=PBYTE(Data)^=0;
- SQL_CHAR : Result:=(StrToInt(GetAsString)=0);
- SQL_DOUBLE : Result:=Round(GetAsDouble)=0;
- SQL_DATE,
- SQL_TIME,
- SQL_TIMESTAMP,
- SQL_TYPE_DATE,
- SQL_TYPE_TIMESTAMP,
- SQL_TYPE_TIME : Result:=Round(AsDateTime)=0;
- else
- ODBCError(SErrInvalidConversion)
- end;
-end;
-
-Function TODBCField.GetAsDouble : Double;
-
-begin
- If IsNull then
- Result:=0
- else
- Case FBufType of
- SQL_Smallint : Result:=PSQLSmallInt(Data)^;
- SQL_Integer : Result:=PSQLINTEGER(Data)^;
- SQL_BIT : Result:=PBYTE(Data)^;
- SQL_CHAR : Result:=StrToFloat(GetAsString);
- SQL_DOUBLE : Result:=PSQLDOUBLE(GetData)^;
- SQL_DATE,
- SQL_TIME,
- SQL_TIMESTAMP,
- SQL_TYPE_DATE,
- SQL_TYPE_TIMESTAMP,
- SQL_TYPE_TIME : Result:=AsDateTime;
- else
- ODBCError(SErrInvalidConversion)
- end;
-end;
-
-{
-function DateStructToDateTime( b:PSQL_DATE_STRUCT):TDateTime;
-function DateTimeToDateStruct( b:TDateTime):SQL_DATE_STRUCT;
-procedure DateTime2TimeStampStruct( var Value:SQL_TIMESTAMP_STRUCT; b:TDateTime);
-}
-Function TODBCField.GetAsDateTime : TDateTime;
-
-begin
- If IsNull then
- Result:=0
- else
- Case FBufType of
- SQL_Smallint : Result:=PSQLSmallInt(Data)^;
- SQL_Integer : Result:=PSQLINTEGER(Data)^;
- SQL_BIT : Result:=PBYTE(Data)^;
- SQL_CHAR : Result:=StrToInt(GetAsString);
- SQL_DOUBLE : Result:=PSQLDOUBLE(GetData)^;
- SQL_DATE : Result:=DateStructToDateTime(PSQL_DATE_STRUCT(Data));
- SQL_TIME : Result:=TimeStructToDateTime(PSQL_TIME_STRUCT(Data));
- SQL_TIMESTAMP : Result:=TimeStampStructToDateTime(PSQL_TIMESTAMP_STRUCT(Data));
- SQL_TYPE_DATE : Result:=DateStructToDateTime(PSQL_DATE_STRUCT(Data));
- SQL_TYPE_TIMESTAMP : Result:=TimeStampStructToDateTime(PSQL_TIMESTAMP_STRUCT(Data));
- SQL_TYPE_TIME : Result:=TimeStructToDateTime(PSQL_TIME_STRUCT(Data));
- else
- ODBCError(SErrInvalidConversion)
- end;
-end;
-
-Finalization
- If Assigned(DefEnv) then
- TODBCEnvironment(DefEnv).Free;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testbcon.pp b/packages/fcl-db/src/unmaintained/odbc/testbcon.pp
deleted file mode 100644
index d38a2bbfa7..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testbcon.pp
+++ /dev/null
@@ -1,63 +0,0 @@
-program testbcon;
-{
- Test browsingconnection
- - I don't have a driver which supports it though :/
-}
-{$mode objfpc}
-uses fpodbc,Classes;
-
-Type
- TApp = Class (TObject)
- Conn : TODBCConnection;
- Procedure GetParams (Sender : TObject; ListIn,ListOut : TStrings);
- Procedure Run;
- end;
-
-
-{ TApp }
-
-procedure TApp.GetParams(Sender: TObject; ListIn, ListOut: TStrings);
-
-Var
- S : String;
- i : integer;
-
-begin
- Writeln('Input parameters were :');
- With ListIN do
- For I:=0 to Count-1 do
- Writeln(Strings[i]);
- Writeln('Output parameters were :');
- With Listout do
- For I:=0 to Count-1 do
- Writeln(Strings[i]);
- Repeat
- Writeln('Parameter to add to input (empty to quit):');
- Readln(S);
- If S<>'' then
- ListIn.Add(S)
- Until S='';
-end;
-
-procedure TApp.Run;
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='FPC';
- Conn.OnBrowseConnection:=@Self.GetParams;
- Conn.Active:=True;
- Writeln('Connected !!');
- Conn.Active:=False;
- Finally
- Conn.free;
- end;
-end;
-
-begin
- With Tapp.Create do
- Try
- Run;
- Finally
- Free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testcon.pp b/packages/fcl-db/src/unmaintained/odbc/testcon.pp
deleted file mode 100644
index 0bc162d8cc..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testcon.pp
+++ /dev/null
@@ -1,19 +0,0 @@
-program testcon;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='FPC';
- Conn.Active:=True;
- Writeln('Connected !!');
- Conn.Active:=False;
- Writeln('Disconnected again');
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testdrcon.pp b/packages/fcl-db/src/unmaintained/odbc/testdrcon.pp
deleted file mode 100644
index 246598805d..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testdrcon.pp
+++ /dev/null
@@ -1,20 +0,0 @@
-program testdrcon;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.drivername:='Microsoft Access Driver (*.mdb)';
- Conn.DriverParams.Add('DBQ=d:\temp\odbc\testodbc.mdb');
- Conn.Active:=True;
- Writeln('Connected !!');
- Conn.Active:=False;
- Writeln('Disconnected again.');
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testenv.pp b/packages/fcl-db/src/unmaintained/odbc/testenv.pp
deleted file mode 100644
index 988c5bd85a..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testenv.pp
+++ /dev/null
@@ -1,45 +0,0 @@
-program testenv;
-{$mode objfpc}
-{$h+}
-uses fpodbc,Classes;
-
-Var
- I,J : Integer;
- List,Options : TStringList;
- Env : TODBCEnvironment;
- UseDefault : Boolean;
-
-begin
- useDefault:=(ParamCount>0) and (Paramstr(1)='-d');
- If UseDefault then
- Env:=DefaultEnvironment
- else
- Env:=TODBCEnvironment.Create(Nil);
- try
- Writeln('Handle is : ',Env.Handle);
- List:=TStringlist.Create;
- Options:=TStringList.Create;
- Writeln('List of drivers :');
- Env.GetDriverNames(List);
- Writeln('Count : ',List.Count);
- For I:=0 to List.Count-1 do
- Writeln(i:2,' : ',List[i]);
- Writeln('List of driver options :');
- For I:=0 to List.Count-1 do
- begin
- Env.GetDriverOptions(List[i],Options);
- Writeln('Options for driver ',List[i],' : ');
- For J:=0 to Options.Count-1 do
- Writeln(' ',Options[j]);
- end;
- Env.GetDataSourceNames(List,dtBoth,True);
- Writeln('List of datasource names : ');
- For I:=0 to List.Count-1 do
- writeln(i,' : ',List[i]);
- List.free;
- options.Free;
- finally
- If not UseDefault then
- env.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testfl.pp b/packages/fcl-db/src/unmaintained/odbc/testfl.pp
deleted file mode 100644
index da5cd114a5..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testfl.pp
+++ /dev/null
@@ -1,29 +0,0 @@
-program testfl;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
- FieldNames : TStringList;
- I : Integer;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='FPC';
- Conn.Active:=True;
- FieldNames:=TStringList.Create;
- FieldNames.Sorted:=True;
- Try
- Conn.GetFieldNames('FPDev',FieldNames);
- Writeln('Found ',FieldNames.Count,' Fields in table FPDev : ');
- For I:=0 to FieldNames.Count-1 do
- Writeln(FieldNames[i]);
- finally
- FieldNames.Free;
- end;
- Conn.Active:=False;
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testodbc.mdb b/packages/fcl-db/src/unmaintained/odbc/testodbc.mdb
deleted file mode 100644
index fafa587a2f..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testodbc.mdb
+++ /dev/null
Binary files differ
diff --git a/packages/fcl-db/src/unmaintained/odbc/testpa.pp b/packages/fcl-db/src/unmaintained/odbc/testpa.pp
deleted file mode 100644
index 3911f3aa00..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testpa.pp
+++ /dev/null
@@ -1,33 +0,0 @@
-program testpa;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
- ProcedureParams : TStringList;
- I : Integer;
- PT : TODBCParamType;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='BUGS';
- Conn.Active:=True;
- ProcedureParams:=TStringList.Create;
- ProcedureParams.Sorted:=True;
- Try
- For PT:=ptUnknown to ptRetval do
- begin
- Conn.GetProcedureParams('GET_BUGID',[Pt],ProcedureParams);
- Writeln('Found ',ProcedureParams.Count,' parameters of type ',ODBCParamTypeNames[Pt],' :');
- For I:=0 to ProcedureParams.Count-1 do
- Writeln(ProcedureParams[i]);
- end;
- finally
- ProcedureParams.Free;
- end;
- Conn.Active:=False;
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testpk.pp b/packages/fcl-db/src/unmaintained/odbc/testpk.pp
deleted file mode 100644
index 9866c8c7f8..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testpk.pp
+++ /dev/null
@@ -1,29 +0,0 @@
-program testpl;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
- PrimaryKeyFields : TStringList;
- I : Integer;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='BUGS';
- Conn.Active:=True;
- PrimaryKeyFields:=TStringList.Create;
- PrimaryKeyFields.Sorted:=True;
- Try
- Conn.GetPrimaryKeyFields('BUGS',PrimaryKeyFields);
- Writeln('Found ',PrimaryKeyFields.Count,' primary key fields in table BUGS : ');
- For I:=0 to PrimaryKeyFields.Count-1 do
- Writeln(PrimaryKeyFields[i]);
- finally
- PrimaryKeyFields.Free;
- end;
- Conn.Active:=False;
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testpr.pp b/packages/fcl-db/src/unmaintained/odbc/testpr.pp
deleted file mode 100644
index 1f1e82483a..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testpr.pp
+++ /dev/null
@@ -1,29 +0,0 @@
-program testpr;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
- ProcedureNames : TStringList;
- I : Integer;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='BUGS';
- Conn.Active:=True;
- ProcedureNames:=TStringList.Create;
- ProcedureNames.Sorted:=True;
- Try
- Conn.GetProcedureNames(ProcedureNames);
- Writeln('Found ',ProcedureNames.Count,' procedures:');
- For I:=0 to ProcedureNames.Count-1 do
- Writeln(ProcedureNames[i]);
- finally
- ProcedureNames.Free;
- end;
- Conn.Active:=False;
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testsql.pp b/packages/fcl-db/src/unmaintained/odbc/testsql.pp
deleted file mode 100644
index e8a1247f35..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testsql.pp
+++ /dev/null
@@ -1,102 +0,0 @@
-program testsql;
-{$mode objfpc}
-uses fpodbc,Classes,odbcsql;
-
-var
- Conn : TODBCConnection;
- St : TODBCSQLStatement;
- FieldNames : TStringList;
- I,Count : Integer;
-
-procedure DumpFielddef(F : TODBCField);
-
-begin
- Writeln('Field ',F.Position,' : ',F.Name);
- Writeln('Type : ',F.DataType);
- Writeln('Size : ',F.Size);
- Writeln('Decimal digits : ',F.DecimalDigits);
- Writeln('Nullable : ',F.Nullable);
-end;
-
-procedure DumpField(F : TODBCField);
-
-begin
- With F do
- begin
- Write(Name:12,BufType:5,' ');
- If IsNull then
- Writeln('(Null)')
- else
- Case BufType of
- SQL_Smallint : Writeln(AsInteger);
- SQL_Integer : Writeln(AsInteger);
- SQL_BIT : Writeln(AsInteger);
- SQL_CHAR : Writeln(AsString);
- SQL_DOUBLE : Writeln(AsDouble);
- SQL_DATE,
- SQL_TIME,
- SQL_TIMESTAMP,
- SQL_TYPE_DATE,
- SQL_TYPE_TIMESTAMP,
- SQL_TYPE_TIME : Writeln(AsString);
- else
- Writeln('Unknown field type');
- end;
- end;
-end;
-
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='FPC';
- Conn.Active:=True;
- ST:=TODBCSQLStatement.Create(Conn);
- Try
- ST.SQL.Text:='Select * from fpdev order by id';
- Writeln('Opening');
- ST.Open;
- Writeln('Opened');
- Try
- FieldNames:=TStringList.Create;
- Try
- st.GetFieldList(FieldNames);
- Writeln('Found ',FieldNames.Count,' Fields in result set :');
- For I:=0 to FieldNames.Count-1 do
- Writeln(i+1,': ',FieldNames[i]);
- Writeln('End of list');
- Writeln('FieldDefs:');
- with st.fields do
- for I:=0 to COunt-1 do
- DumpFielddef(st.fields.items[i] as TODBCField);
- Writeln('Data dump:');
- Count:=0;
- While not st.eof do
- begin
- Inc(Count);
- Writeln('Record no ',Count,' : ');
- Writeln('Name':12,'Type':5,' Value');
- for I:=0 to st.fields.COunt-1 do
- DumpField(st.fields.items[i] as TODBCField);
- st.fetch;
- end;
- Writeln('End of data');
- finally
- FieldNames.Free;
- Writeln('Freed list');
- end;
- Finally
- st.Close;
- Writeln('Closed');
- end;
- Finally
- ST.Free;
- Writeln('Freed statement');
- end;
- Conn.Active:=False;
- Writeln('Disactivated connection');
- Finally
- Conn.free;
- Writeln('Freed Connection');
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testst.pp b/packages/fcl-db/src/unmaintained/odbc/testst.pp
deleted file mode 100644
index c3168c46a7..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testst.pp
+++ /dev/null
@@ -1,62 +0,0 @@
-program testst;
-{$mode objfpc}
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
- St : TODBCSQLStatement;
- FieldNames : TStringList;
- I : Integer;
- PT : TODBCParamType;
-
-procedure DumpFielddef(F : TODBCField);
-
-begin
- Writeln('Field ',F.Position,' : ',F.Name);
- Writeln('Type : ',F.DataType);
- Writeln('Size : ',F.Size);
- Writeln('Decimal digits : ',F.DecimalDigits);
- Writeln('Nullable : ',F.Nullable);
-end;
-
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='FPC';
- Conn.Active:=True;
- ST:=TODBCSQLStatement.Create(Conn);
- Try
- ST.SQL.Text:='Select * from fpdev';
- ST.Prepare;
- Try
- FieldNames:=TStringList.Create;
- Try
- st.GetFieldList(FieldNames);
- Writeln('Found ',FieldNames.Count,' Fields in result set :');
- For I:=0 to FieldNames.Count-1 do
- Writeln(i+1,': ',FieldNames[i]);
- Writeln('End of list');
- st.bindfields(nil);
- with st.fields do
- for I:=0 to COunt-1 do
- DumpFielddef(st.fields.items[i] as TODBCField);
- finally
- FieldNames.Free;
- Writeln('Freed list');
- end;
- Finally
- St.Unprepare;
- Writeln('Unprepared');
- end;
- Finally
- ST.Free;
- Writeln('Freed statement');
- end;
- Conn.Active:=False;
- Writeln('Disactivated connection');
- Finally
- Conn.free;
- Writeln('Freed Connection');
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/odbc/testtl.pp b/packages/fcl-db/src/unmaintained/odbc/testtl.pp
deleted file mode 100644
index 8bd87c6942..0000000000
--- a/packages/fcl-db/src/unmaintained/odbc/testtl.pp
+++ /dev/null
@@ -1,31 +0,0 @@
-program testcon;
-
-{$mode objfpc}
-
-uses fpodbc,Classes;
-
-var
- Conn : TODBCConnection;
- TableNames : TStringList;
- I : Integer;
-
-begin
- Conn:=TODBCConnection.Create(Nil);
- Try
- Conn.DSN:='FPC';
- Conn.Active:=True;
- TableNames:=TStringList.Create;
- TableNames.Sorted:=True;
- Try
- Conn.GetTableNames(TableNames,True);
- Writeln('Found ',TableNames.Count,' tables : ');
- For I:=0 to TableNames.Count-1 do
- Writeln(TableNames[i]);
- finally
- TableNames.Free;
- end;
- Conn.Active:=False;
- Finally
- Conn.free;
- end;
-end.
diff --git a/packages/fcl-db/src/unmaintained/sqlite/Makefile b/packages/fcl-db/src/unmaintained/sqlite/Makefile
deleted file mode 100644
index e78f2f71fb..0000000000
--- a/packages/fcl-db/src/unmaintained/sqlite/Makefile
+++ /dev/null
@@ -1,2048 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/05]
-#
-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-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=sqlitedataset
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=sqlitedataset
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl sqlite
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_SQLITE=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_SQLITE
-PACKAGEDIR_SQLITE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_SQLITE),)
-ifneq ($(wildcard $(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX)),)
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)/units/$(TARGETSUFFIX)
-else
-UNITDIR_SQLITE=$(PACKAGEDIR_SQLITE)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_SQLITE)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_SQLITE) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_SQLITE)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_SQLITE=
-UNITDIR_SQLITE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /sqlite/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_SQLITE),)
-UNITDIR_SQLITE:=$(firstword $(UNITDIR_SQLITE))
-else
-UNITDIR_SQLITE=
-endif
-endif
-ifdef UNITDIR_SQLITE
-override COMPILER_UNITDIR+=$(UNITDIR_SQLITE)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-EXECPPAS:=@$(PPAS)
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
- @$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
- $(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
- $(MAKE) all DEBUG=1
-fpc_release:
- $(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
- $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
- $(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(PPUEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pp
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.pas
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.lpr
- $(COMPILER) $<
- $(EXECPPAS)
-%$(EXEEXT): %.dpr
- $(COMPILER) $<
- $(EXECPPAS)
-%.res: %.rc
- windres -i $< -o $@
-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 %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
- $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
- $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
- @$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
- $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
- $(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
- -$(UPXPROG) $(INSTALLEXEFILES)
-endif
- $(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
- $(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
- $(MKDIR) $(INSTALL_UNITDIR)
- $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
- $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
- $(MKDIR) $(INSTALL_LIBDIR)
- $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
- ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
- $(MKDIR) $(INSTALL_DATADIR)
- $(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
- $(MKDIR) $(INSTALL_SOURCEDIR)
- $(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
- $(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
- $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
- -$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
- -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
- -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
- -$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
- -$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
- -$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
- -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
- -$(DELTREE) units
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
- @$(ECHO)
- @$(ECHO) == Package info ==
- @$(ECHO) Package Name..... $(PACKAGE_NAME)
- @$(ECHO) Package Version.. $(PACKAGE_VERSION)
- @$(ECHO)
- @$(ECHO) == Configuration info ==
- @$(ECHO)
- @$(ECHO) FPC.......... $(FPC)
- @$(ECHO) FPC Version.. $(FPC_VERSION)
- @$(ECHO) Source CPU... $(CPU_SOURCE)
- @$(ECHO) Target CPU... $(CPU_TARGET)
- @$(ECHO) Source OS.... $(OS_SOURCE)
- @$(ECHO) Target OS.... $(OS_TARGET)
- @$(ECHO) Full Source.. $(FULL_SOURCE)
- @$(ECHO) Full Target.. $(FULL_TARGET)
- @$(ECHO) SourceSuffix. $(SOURCESUFFIX)
- @$(ECHO) TargetSuffix. $(TARGETSUFFIX)
- @$(ECHO)
- @$(ECHO) == Directory info ==
- @$(ECHO)
- @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)
- @$(ECHO)
- @$(ECHO) Basedir......... $(BASEDIR)
- @$(ECHO) FPCDir.......... $(FPCDIR)
- @$(ECHO) CrossBinDir..... $(CROSSBINDIR)
- @$(ECHO) UnitsDir........ $(UNITSDIR)
- @$(ECHO) PackagesDir..... $(PACKAGESDIR)
- @$(ECHO)
- @$(ECHO) GCC library..... $(GCCLIBDIR)
- @$(ECHO) Other library... $(OTHERLIBDIR)
- @$(ECHO)
- @$(ECHO) == Tools info ==
- @$(ECHO)
- @$(ECHO) As........ $(AS)
- @$(ECHO) Ld........ $(LD)
- @$(ECHO) Ar........ $(AR)
- @$(ECHO) Rc........ $(RC)
- @$(ECHO)
- @$(ECHO) Mv........ $(MVPROG)
- @$(ECHO) Cp........ $(CPPROG)
- @$(ECHO) Rm........ $(RMPROG)
- @$(ECHO) GInstall.. $(GINSTALL)
- @$(ECHO) Echo...... $(ECHO)
- @$(ECHO) Shell..... $(SHELL)
- @$(ECHO) Date...... $(DATE)
- @$(ECHO) FPCMake... $(FPCMAKE)
- @$(ECHO) PPUMove... $(PPUMOVE)
- @$(ECHO) Upx....... $(UPXPROG)
- @$(ECHO) Zip....... $(ZIPPROG)
- @$(ECHO)
- @$(ECHO) == Object info ==
- @$(ECHO)
- @$(ECHO) Target Loaders........ $(TARGET_LOADERS)
- @$(ECHO) Target Units.......... $(TARGET_UNITS)
- @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)
- @$(ECHO) Target Programs....... $(TARGET_PROGRAMS)
- @$(ECHO) Target Dirs........... $(TARGET_DIRS)
- @$(ECHO) Target Examples....... $(TARGET_EXAMPLES)
- @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
- @$(ECHO)
- @$(ECHO) Clean Units......... $(CLEAN_UNITS)
- @$(ECHO) Clean Files......... $(CLEAN_FILES)
- @$(ECHO)
- @$(ECHO) Install Units....... $(INSTALL_UNITS)
- @$(ECHO) Install Files....... $(INSTALL_FILES)
- @$(ECHO)
- @$(ECHO) == Install info ==
- @$(ECHO)
- @$(ECHO) DateStr.............. $(DATESTR)
- @$(ECHO) ZipName.............. $(ZIPNAME)
- @$(ECHO) ZipPrefix............ $(ZIPPREFIX)
- @$(ECHO) ZipCrossPrefix....... $(ZIPCROSSPREFIX)
- @$(ECHO) ZipSuffix............ $(ZIPSUFFIX)
- @$(ECHO) FullZipName.......... $(FULLZIPNAME)
- @$(ECHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)
- @$(ECHO)
- @$(ECHO) Install base dir..... $(INSTALL_BASEDIR)
- @$(ECHO) Install binary dir... $(INSTALL_BINDIR)
- @$(ECHO) Install library dir.. $(INSTALL_LIBDIR)
- @$(ECHO) Install units dir.... $(INSTALL_UNITDIR)
- @$(ECHO) Install source dir... $(INSTALL_SOURCEDIR)
- @$(ECHO) Install doc dir...... $(INSTALL_DOCDIR)
- @$(ECHO) Install example dir.. $(INSTALL_EXAMPLEDIR)
- @$(ECHO) Install data dir..... $(INSTALL_DATADIR)
- @$(ECHO)
- @$(ECHO) Dist destination dir. $(DIST_DESTDIR)
- @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)
- @$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
- fpc_makefile_dirs
-fpc_makefile:
- $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
- $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc b/packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc
deleted file mode 100644
index c54c19dbe7..0000000000
--- a/packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# Makefile.fpc for sqlite FCL db units
-#
-
-[package]
-main=fcl-db
-
-[target]
-units=sqlitedataset
-
-[require]
-packages=sqlite
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../../../..
-
-[rules]
-.NOTPARALLEL:
diff --git a/packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas b/packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas
deleted file mode 100644
index 21af45c9b1..0000000000
--- a/packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas
+++ /dev/null
@@ -1,1301 +0,0 @@
-{$mode objfpc}
-{$h+}
-unit SQLiteDataset;
-{
-Improved class sqLite,copyright(c) 2002-2003 Marcin Krzetowski
-metal4@box43.gnet.pl
-http://www.a-i.prv.pl
-simple class interface for SQLite. Hacked in by Ben Hochstrasser (bhoc@surfeu.ch)
-Thanks to Roger Reghin (RReghin@scelectric.ca) for his idea to ValueList.
-
-}
-
-interface
-
-uses
- Classes,db,sysutils,Contnrs;
-
-type
- PRecInfo = ^TRecInfo;
- TRecInfo = record
- Index: Integer;
- Bookmark: Longint;
- BookmarkFlag: TBookmarkFlag;
- end;
-
-type
- pBinBookMark = ^tBinBookMark;
- tBinBookmark = record
- RecPtr : Int64;
-end;
-
-
-type
- TSQLiteExecCallback = function(Sender: TObject; Columns: Integer; ColumnValues: Pointer; ColumnNames: Pointer): integer of object; cdecl;
- TSQLiteBusyCallback = function(Sender: TObject; ObjectName: PChar; BusyCount: integer): integer of object; cdecl;
- TOnData = Procedure(Sender: TObject; Columns: Integer; ColumnNames, ColumnValues: String) of object;
- TOnBusy = Procedure(Sender: TObject; ObjectName: String; BusyCount: integer; var Cancel: Boolean) of object;
- TOnQueryComplete = Procedure(Sender: TObject) of object;
-
-
-Type
- tSqliteField = class(tObject)
-protected
- FOwner : tObject;
- data : string;
- fFieldKind: tFieldKind;
- fFieldType: tFieldType;
-{ tIntegerType : Integer;
- tLongIntegerType : int64;
- tDateTimeType : tDateTime;}
-// procedure SetName(const Value: string);
- procedure SetFieldKind(const Value: tFieldKind);
- procedure SetFieldType(const Value: tFieldType);
-public
-
- constructor create(aOwner : tObject);
- destructor destroy; override;
- procedure SetData(pt : pChar; NativeFormat : boolean);
- function GetData(Buffer: Pointer; NativeFormat : Boolean) : boolean;
- function GetData(Buffer: Pointer{=True}) : boolean;
-// property FieldName : string read fName write SetName;
- property FieldKind : tFieldKind read fFieldKind write SetFieldKind;
- property FieldType : tFieldType read fFieldType write SetFieldType;
-
-
-end;
-
-tSqliteRows = class (tObject)
-private
- function getItem(index: integer): tSqliteField;
- procedure SetItem(index: integer; const Value: tSqliteField);
- function checkIndex(index : integer) : boolean;
-
-
-public
- BookmarkFlag : tBookmarkFlag;
- Bookmark : LongInt;
- DataPointer : Pointer;
- constructor Create(fieldCount : integer);
- destructor destroy; override;
- procedure Push(item : tSqliteField);
- function Pop : tSqliteField;
- property Items[index : integer] : tSqliteField read getItem write SetItem;
- procedure Clear;
- procedure ClearCalcFields;
- function add(pt : Pchar; ptName : pCHar) : boolean;
-
-
-protected
- fbuffercount : integer;
- fBuffer : ^tSqliteField;
- internalCount : integer;
- procedure clearBuffer;
-end;
-
-
- TSQLite = class(TDataSet)
- private
- maxLengthInit : boolean;
- maxiL : pinteger;
- maxilcount : integer;
- fDoExceptions : boolean;
- fDoSQL : boolean;
- fIsCancel: boolean;
- fSQLite: Pointer;
- fMsg: String;
- fIsOpen: Boolean;
- fBusy: Boolean;
- fError: Integer;
- fVersion: String;
- fEncoding: String;
- fTable: tStrings;
- fLstName: TStringList;
- fLstVal: TStringList;
-// fbuffer : tObjectList;
- fOnData: TOnData;
- fOnBusy: TOnBusy;
- fOnQueryComplete: TOnQueryComplete;
- fBusyTimeout: integer;
- fPMsg: PChar;
- fChangeCount: integer;
- fSQL: tStringlist;
- fonwer : tComponent;
- fDataBaseName : string;
- fDataBase: string;
- fTableName: string;
- factive : boolean;
- procedure SetBusyTimeout(Timeout: integer);
- procedure SetDataBase(DBFileName: String);
- procedure setTableName(const Value: string);
- function getIsCancel: boolean;
- procedure clearBuffer;
- protected
- fCalcFieldsOfs,fRecordSize : integer;
- fBookMarkOfs,fRecordBufferSize : integer;
- fCurrentRecord : int64;
- fRecordCount : int64;
- fCursorOpen : boolean;
- fFieldOffset : tList;
- // procedure internalInsert; override;
- function getActive: boolean;
- // procedure setActive(Value: boolean); override;
- function getRecNo : integer; override;
- function getBookmarkFlag(Buffer : pChar) : tBookMarkFlag; override;
- procedure InitBufferPointers;
- procedure GetBookmarkData(Buffer : pChar; Data : Pointer); override;
- procedure SetBookMarkData(Buffer : pChar; Data : Pointer); override;
- procedure InternalGotoBookmark(ABookMark : Pointer) ; override;
- function FieldDefsStored : boolean;
- procedure ClearCalcFields(Buffer : pChar); override;
- procedure OpenCursor(InfoQuery : Boolean); override;
- function getRecordCount : integer; override;
- procedure SetRecNo (value : integer); override;
- function getRecord(Buffer : pChar; GetMode : tGetMode; DoCheck : Boolean): tGetResult; override;
- procedure InternalInitFieldDefs; override;
- procedure InternalOpen; override;
- procedure InternalClose; override;
- procedure InternalAddRecord(Buffer : Pointer; DoAppend : boolean); override;
- procedure InternalDelete; override;
- procedure InternalFirst; override;
- procedure InternalInitRecord(Buffer : pChar); override;
- procedure InternalLast;override;
- procedure InternalPost;override;
- procedure InternalSetToRecord (Buffer : pChar); override;
- function isCursorOpen : Boolean; override;
- procedure SetBookmarkFlag(Buffer : pChar; value : tBookmarkFlag); override;
- procedure SetFieldData(Field : tField; Buffer : Pointer); override;
- function allocRecordBuffer : pChar; override;
- procedure FreeRecordBuffer(var Buffer : pChar); override;
- function getRecordSize : Word; override;
- function getCanModify : boolean; override;
- public
- fbuffer : tObjectList; //po zakonczeniu debuggowania usunac
- constructor create(Aowner : tComponent); override;
- destructor Destroy; override;
- function getFieldData(Field : tField; Buffer : Pointer) : boolean; override;
- function Query(ASql: String{table= nil}) : Boolean;
- Function Query(ASQL: String; Table: TStrings): boolean;
- function ExecSQL : boolean;
- function ErrorMessage(ErrNo: Integer): string;
- function IsComplete(ASql: String): boolean;
- function LastInsertRow: integer;
- procedure Cancel; override;
- function DatabaseDetails(Table: TStrings): boolean;
- function CreateTable : boolean;
- procedure countMaxiLength(pt: pChar;index : int64);
- procedure InitMaxLength(length : integer);
- published
- property LastErrorMessage: string read fMsg;
- property LastError: Integer read fError;
- property Version: String read fVersion;
- property Encoding: String read fEncoding;
- property OnData: TOnData read fOnData write fOnData;
- property OnBusy: TOnBusy read fOnBusy write fOnBusy;
- property OnQueryComplete: TOnQueryComplete read fOnQueryComplete write fOnQueryComplete;
- property BusyTimeout: Integer read fBusyTimeout write SetBusyTimeout;
- property ChangeCount: Integer read fChangeCount;
- property SQL : tStringlist read fSQL write fSQL;
-// property Fields : tstringlist read fFields;
- property DataBase : string read fDataBase write SetDataBase;
- property TableName : string read fTableName write setTableName;
- property Active : boolean read getActive write setActive;
- property isCancel : boolean read getIsCancel;
- property DoExceptions : boolean read fDoExceptions write fDoExceptions stored true default true;
- end;
- function Pas2SQLStr(const PasString: string): string;
- function SQL2PasStr(const SQLString: string): string;
- function QuoteStr(const s: string; QuoteChar: Char): string;
- function UnQuoteStr(const s: string; QuoteChar: Char): string;
- function QuoteStr(const s: string{; QuoteChar: Char = #39}): string;
- function UnQuoteStr(const s: string{; QuoteChar: Char = #39}): string;
- procedure ValueList(const ColumnNames, ColumnValues: String; NameValuePairs: TStrings);
-
-
- procedure Register;
-
-implementation
-
-{$ifndef dynload}
-uses sqlite;
-{$else}
-uses dynlibs;
-
-function GetProcAddress(S : String) : Pointer;
-
-begin
-
-end;
-{$endif}
-const
- SQLITE_OK = 0; // Successful result
- SQLITE_ERROR = 1; // SQL error or missing database
- SQLITE_INTERNAL = 2; // An internal logic error in SQLite
- SQLITE_PERM = 3; // Access permission denied
- SQLITE_ABORT = 4; // Callback routine requested an abort
- SQLITE_BUSY = 5; // The database file is locked
- SQLITE_LOCKED = 6; // A table in the database is locked
- SQLITE_NOMEM = 7; // A malloc() failed
- SQLITE_READONLY = 8; // Attempt to write a readonly database
- SQLITE_INTERRUPT = 9; // Operation terminated by sqlite_interrupt()
- SQLITE_IOERR = 10; // Some kind of disk I/O error occurred
- SQLITE_CORRUPT = 11; // The database disk image is malformed
- SQLITE_NOTFOUND = 12; // (Internal Only) Table or record not found
- SQLITE_FULL = 13; // Insertion failed because database is full
- SQLITE_CANTOPEN = 14; // Unable to open the database file
- SQLITE_PROTOCOL = 15; // Database lock protocol error
- SQLITE_EMPTY = 16; // (Internal Only) Database table is empty
- SQLITE_SCHEMA = 17; // The database schema changed
- SQLITE_TOOBIG = 18; // Too much data for one row of a table
- SQLITE_CONSTRAINT = 19; // Abort due to contraint violation
- SQLITE_MISMATCH = 20; // Data type mismatch
- SQLITEDLL: PChar = 'sqlite.dll';
- DblQuote: Char = '"';
- SngQuote: Char = #39;
- Crlf: String = #13#10;
- Tab: Char = #9;
- _DO_EXCEPTIONS = 1; //Handle or not exceptions in dataset
-
-{$ifdef dynload}
-var
- SQLite_Open: function(dbname: PChar; mode: Integer; var ErrMsg: PChar): Pointer; cdecl;
- SQLite_Close: procedure(db: Pointer); cdecl;
- SQLite_Exec: function(db: Pointer; SQLStatement: PChar; CallbackPtr: Pointer; Sender: TObject; var ErrMsg: PChar): integer; cdecl;
- SQLite_Version: function(): PChar; cdecl;
- SQLite_Encoding: function(): PChar; cdecl;
- SQLite_ErrorString: function(ErrNo: Integer): PChar; cdecl;
- SQLite_GetTable: function(db: Pointer; SQLStatement: PChar; var ResultPtr: Pointer; var RowCount: Cardinal; var ColCount: Cardinal; var ErrMsg: PChar): integer; cdecl;
- SQLite_FreeTable: procedure(Table: PChar); cdecl;
- SQLite_FreeMem: procedure(P: PChar); cdecl;
- SQLite_Complete: function(P: PChar): boolean; cdecl;
- SQLite_LastInsertRow: function(db: Pointer): integer; cdecl;
- SQLite_Cancel: procedure(db: Pointer); cdecl;
- SQLite_BusyHandler: procedure(db: Pointer; CallbackPtr: Pointer; Sender: TObject); cdecl;
- SQLite_BusyTimeout: procedure(db: Pointer; TimeOut: integer); cdecl;
- SQLite_Changes: function(db: Pointer): integer; cdecl;
- LibsLoaded: Boolean;
- DLLHandle: THandle;
-{$endif}
-
-Var
- MsgNoError: String;
-
-function QuoteStr(const s: string): string;
-begin
- Result := QuoteStr(S,#39);
-end;
-
-function QuoteStr(const s: string; QuoteChar: Char): string;
-begin
- Result := Concat(QuoteChar, s, QuoteChar);
-end;
-
-function UnQuoteStr(const s: string): string;
-begin
- Result := UnQuoteStr(s,#39);
-end;
-
-function UnQuoteStr(const s: string; QuoteChar: Char): string;
-begin
- Result := s;
- if length(Result) > 1 then
- begin
- if Result[1] = QuoteChar then
- Delete(Result, 1, 1);
- if Result[Length(Result)] = QuoteChar then
- Delete(Result, Length(Result), 1);
- end;
-end;
-
-function Pas2SQLStr(const PasString: string): string;
-var
- n: integer;
-begin
- Result := SQL2PasStr(PasString);
- n := Length(Result);
- while n > 0 do
- begin
- if Result[n] = SngQuote then
- Insert(SngQuote, Result, n);
- dec(n);
- end;
- Result := QuoteStr(Result);
-end;
-
-function SQL2PasStr(const SQLString: string): string;
-const
- DblSngQuote: String = #39#39;
-var
- p: integer;
-begin
- Result := SQLString;
- p := pos(DblSngQuote, Result);
- while p > 0 do
- begin
- Delete(Result, p, 1);
- p := pos(DblSngQuote, Result);
- end;
- Result := UnQuoteStr(Result);
-end;
-
-procedure ValueList(const ColumnNames, ColumnValues: String; NameValuePairs: TStrings);
-var
- n: integer;
- lstName, lstValue: TStringList;
-begin
- if NameValuePairs <> nil then
- begin
- lstName := TStringList.Create;
- lstValue := TStringList.Create;
- lstName.CommaText := ColumnNames;
- lstValue.CommaText := ColumnValues;
- NameValuePairs.Clear;
- if lstName.Count = LstValue.Count then
- if lstName.Count > 0 then
- for n := 0 to lstName.Count - 1 do
- NameValuePairs.Append(Concat(lstName.Strings[n], '=', lstValue.Strings[n]));
- lstValue.Free;
- lstName.Free;
- end;
-end;
-
-{$ifdef dynload}
-function LoadLibs: Boolean;
-begin
- Result := False;
- DLLHandle := LoadLibrary(SQLITEDLL);
- if DLLHandle <> 0 then
- begin
- @SQLite_Open := GetProcAddress(DLLHandle, 'sqlite_open');
- if not Assigned(@SQLite_Open) then exit;
- @SQLite_Close := GetProcAddress(DLLHandle, 'sqlite_close');
- if not Assigned(@SQLite_Close) then exit;
- @SQLite_Exec := GetProcAddress(DLLHandle, 'sqlite_exec');
- if not Assigned(@SQLite_Exec) then exit;
- @SQLite_Version := GetProcAddress(DLLHandle, 'sqlite_libversion');
- if not Assigned(@SQLite_Version) then exit;
- @SQLite_Encoding := GetProcAddress(DLLHandle, 'sqlite_libencoding');
- if not Assigned(@SQLite_Encoding) then exit;
- @SQLite_ErrorString := GetProcAddress(DLLHandle, 'sqlite_error_string');
- if not Assigned(@SQLite_ErrorString) then exit;
- @SQLite_GetTable := GetProcAddress(DLLHandle, 'sqlite_get_table');
- if not Assigned(@SQLite_GetTable) then exit;
- @SQLite_FreeTable := GetProcAddress(DLLHandle, 'sqlite_free_table');
- if not Assigned(@SQLite_FreeTable) then exit;
- @SQLite_FreeMem := GetProcAddress(DLLHandle, 'sqlite_freemem');
- if not Assigned(@SQLite_FreeMem) then exit;
- @SQLite_Complete := GetProcAddress(DLLHandle, 'sqlite_complete');
- if not Assigned(@SQLite_Complete) then exit;
- @SQLite_LastInsertRow := GetProcAddress(DLLHandle, 'sqlite_last_insert_rowid');
- if not Assigned(@SQLite_LastInsertRow) then exit;
- @SQLite_Cancel := GetProcAddress(DLLHandle, 'sqlite_interrupt');
- if not Assigned(@SQLite_Cancel) then exit;
- @SQLite_BusyTimeout := GetProcAddress(DLLHandle, 'sqlite_busy_timeout');
- if not Assigned(@SQLite_BusyTimeout) then exit;
- @SQLite_BusyHandler := GetProcAddress(DLLHandle, 'sqlite_busy_handler');
- if not Assigned(@SQLite_BusyHandler) then exit;
- @SQLite_Changes := GetProcAddress(DLLHandle, 'sqlite_changes');
- if not Assigned(@SQLite_Changes) then exit;
- Result := True;
- end;
-end;
-{$endif}
-
-function SystemErrorMsg(ErrNo: Integer): String;
-var
- buf: PChar;
- size: Integer;
- MsgLen: Integer;
-begin
-{ msglen:=0;
- size := 256;
- GetMem(buf, size);
-
- If ErrNo = - 1 then
- ErrNo := GetLastError;
- MsgLen := FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, nil, ErrNo, 0, buf, size, nil);
-
- if MsgLen = 0 then
- Result := 'ERROR'
- else
- Result := buf;
-}
- Result := ('SystemErrorMsg Not Implemented');
-end;
-
-function SystemErrorMsg: String;
-
-begin
- SystemErrorMsg(-1);
-end;
-
-function BusyCallback(Sender: Pointer; ObjectName: PChar; BusyCount: integer): integer; cdecl;
-var
- sObjName: String;
- bCancel: Boolean;
-begin
- Result := -1;
- with TSQLite(Sender) do
- begin
- if Assigned(fOnBusy) then
- begin
- bCancel := False;
- sObjName := ObjectName;
- fOnBusy(Tsqlite(Sender), sObjName, BusyCount, bCancel);
- if bCancel then
- Result := 0;
- end;
- end;
-end;
-
-function ExecCallback(Sender: TObject; Columns: Integer; ColumnValues: Pointer; ColumnNames: Pointer): integer; cdecl;
-var
- PVal, PName: ^PChar;
- n: integer;
- sVal, sName: String;
-begin
- Result := 0;
- with Sender as TSQLite do
- begin
- if (Assigned(fOnData) or Assigned(fTable)) then
- begin
- fLstName.Clear;
- fLstVal.Clear;
- if Columns > 0 then
- begin
- PName := ColumnNames;
- PVal := ColumnValues;
- for n := 0 to Columns - 1 do
- begin
- fLstName.Append(PName^);
- fLstVal.Append(PVal^);
- if Assigned(fTable) then
- begin
- fTable.Append(PVal^);
- end;
- inc(PName);
- inc(PVal);
- end;
- end;
- sVal := fLstVal.CommaText;
- sName := fLstName.CommaText;
- if Assigned(fOnData) then
- fOnData(Sender, Columns, sName, sVal);
-
- end;
-// InternalOpen;
- end;
-end;
-
-function ExecCallback2(Sender: TObject; Columns: Integer; ColumnValues: Pointer; ColumnNames: Pointer): integer; cdecl;
-var
- PVal, PName: ^PChar;
- n: integer;
- sVal, sName: String;
- t : tSqliteRows;
- p : pointer;
- temp : LongInt;
-
-begin
- Result := 0;
- with Sender as TSQLite do begin
- if (Assigned(fOnData) or assigned(fBuffer)) then begin
- fLstName.Clear;
-// fLstVal.Clear;
- if Columns > 0 then begin
- PName := ColumnNames;
- PVal := ColumnValues;
- fBuffer.Add(tSqliteRows.Create(Columns));
- temp:=fBuffer.count-1;
- initMaxLength(columns);
- for n := 0 to Columns - 1 do begin
- fLstName.Append(PName^);
- if Assigned(fBuffer) then begin
- p:=fBuffer.Items[temp];
- t:=tSqliteRows(p);
- if t=nil then continue;
- t.Add(PVAL^,PNAME^);
-
- end;
- countMaxiLength(PVAL^,n);
- inc(PName);
- inc(PVal);
- end;
- // at last we add the bookmark info
- t.Bookmark:=temp;
- end;
- if Assigned(fOnData) then begin
- sVal := fLstVal.CommaText;
- sName := fLstName.CommaText;
- fOnData(Sender, Columns, sName, sVal);
- end;
-
- end;
-// InternalOpen;
- end;
-end;
-
-procedure TSQLite.SetDataBase(DBFileName: String);
-var
- afPMsg: PChar;
-begin
-
- fError := SQLITE_ERROR;
- fIsOpen := False;
- fOnData := nil;
- fOnBusy := nil;
- fOnQueryComplete := nil;
- fChangeCount := 0;
-{$ifdef dynload}
- if LibsLoaded then
- begin
-{$endif}
- fSQLite := SQLite_Open(PChar(DBFileName), 1, @afPMsg);
- SQLite_FreeMem(afPMsg);
- if fSQLite <> nil then
- begin
- {$ifndef fpc}
- fVersion := strpas(SQLite_Version);
- fEncoding := strpas(SQLite_Encoding);
- {$endif}
- fIsOpen := True;
- fError := SQLITE_OK;
- end;
-{$ifdef dynload}
- end;
-{$endif}
- fMsg := ErrorMessage(fError);
-end;
-
-destructor TSQLite.Destroy;
-begin
-try
-if assigned(fSQl) then begin
- fsql.free;
- fsql:=nil;
-end;
- if fIsOpen then
- SQLite_Close(fSQLite);
- fIsOpen := False;
-if assigned(fLstName) then begin
- fLstName.Free;
- fLstName:=nil;
-end;
-if assigned(fLstVal) then begin
- fLstVal.Free;
- fLstVal:=nil;
-end;
- fSQLite := nil;
- fOnData := nil;
- fOnBusy := nil;
- fOnQueryComplete := nil;
- fLstName := nil;
- fLstVal := nil;
-if assigned(fBuffer) then begin
- clearBuffer;
- fBuffer.Free;
- fBuffer:=nil;
-end;
-except
-end;
- inherited Destroy;
-end;
-
-function TSQLite.Query(ASql: String): boolean;
-
-begin
- Result:=Query(ASql,Nil);
-end;
-
-function TSQLite.Query(ASql: String; Table: TStrings): boolean;
-//var
-// fPMsg: PChar;
-begin
- maxLengthInit:=false;
- fError := SQLITE_ERROR;
- if fIsOpen then
- begin
- fPMsg := nil;
- fBusy := True;
- fTable := Table;
- if fTable <> nil then
- fTable.Clear;
- fError := SQLite_Exec(fSQLite, PChar(ASql), @ExecCallback, Self, @fPMsg);
- SQLite_FreeMem(fPMsg);
- fChangeCount := SQLite_Changes(fSQLite);
- fTable := nil;
- fBusy := False;
- if Assigned(fOnQueryComplete) then
- fOnQueryComplete(Self);
- end;
- fMsg := ErrorMessage(fError);
- Result := not (fError <> SQLITE_OK);//function should return true, if execution of query ends ok..
- if result and not active then
- factive:=true;
- fDoSql:=true;
-end;
-
-
-procedure TSQLite.SetBusyTimeout(Timeout: Integer);
-begin
- fBusyTimeout := Timeout;
- if fIsOpen then
- begin
- SQLite_Busy_Timeout(fSQLite, fBusyTimeout);
- if fBusyTimeout > 0 then
- SQLite_Busy_Handler(fSQLite, @BusyCallback, Self)
- else
- SQLite_Busy_Handler(fSQLite, nil, nil);
- end;
-end;
-
-function TSQLite.LastInsertRow: integer;
-begin
- if fIsOpen then
- Result := SQLite_Last_Insert_Rowid(fSQLite)
- else
- Result := -1;
-end;
-
-function TSQLite.ErrorMessage(ErrNo: Integer): string;
-begin
-{$ifdef dynload}
- if LibsLoaded then
- begin
-{$endif}
- if ErrNo = 0 then
- Result := MsgNoError
- else
- Result := SQLite_Error_String(ErrNo);
-{$ifdef dynload}
- end else
- Raise exception.Create('Library "sqlite.dll" not found.');
-{$endif}
-end;
-
-function TSQLite.IsComplete(ASql: String): boolean;
-begin
- Result := SQLite_Complete(PChar(ASql))=0;
-end;
-
-function TSQLite.DatabaseDetails(Table: TStrings): boolean;
-begin
- Result := Query('SELECT * FROM SQLITE_MASTER;', Table);
-end;
-
-function TSQLite.ExecSQL: boolean;
-var i : integer;
-
-begin
- result:=false;
- maxLengthInit:=false;
- fError := SQLITE_ERROR;
- if fIsOpen then
- begin
- fPMsg := nil;
- fBusy := True;
-
- if fTable <> nil then
- fTable.Clear;
- for i:=0 to fsql.Count-1 do begin
- fError := SQLite_Exec(fSQLite, PChar(fSql[i]), @ExecCallback2, Self, @fPMsg);
- SQLite_FreeMem(fPMsg);
- end;
- fChangeCount := SQLite_Changes(fSQLite);
- fTable := nil;
- fBusy := False;
- if Assigned(fOnQueryComplete) then
- fOnQueryComplete(Self);
- end;
- fMsg := ErrorMessage(fError);
- Result :=not (fError <> SQLITE_OK);
- if result and not active then
- factive:=true;
- fDoSQl:=true;
-end;
-
-constructor TSQLite.Create(Aowner: tComponent);
-begin
-inherited create(Aowner);
-fLstName := TStringList.Create;
-fLstVal := TStringList.Create;
-fDoSql:=false;
-fsql:=tStringList.Create;
-fOnwer:=owner;
-fBuffer:=tObjectList.Create(true);
-if length(fDataBase)>1 then
- setDataBase(fDataBase);
-end;
-
-procedure TSQLite.setTableName(const Value: string);
-begin
-if (not active) and (length(value)>0) then begin
- fTableName := Value;
- sql.Clear;
- sql.add('select rowid,* from '+tableName+';');
-end;
-end;
-
-function TSQLite.getActive: boolean;
-begin
-result:=fActive;
-end;
-
-{
-procedure TSQLite.setActive(Value: boolean);
-begin
- if value then
- begin
- //switch for active=true;
- if active then
- active:=false;
- end
- else
- begin
- fDoSQL:=value;
- end;
- inherited setActive(value);
-end;
-}
-
-function TSQLite.getRecNo: integer;
-begin
-result:=self.fCurrentRecord;
-end;
-
-procedure TSQLite.Cancel;
-begin
- inherited;
- fIsCancel := False;
- if fBusy and fIsOpen then
- begin
- do_SQLite_interrupt(fSQLite);
- fBusy := false;
- fIsCancel := True;
- end;
-
-end;
-
-function TSQLite.getIsCancel: boolean;
-begin
-
-end;
-
-function TSQLite.getBookmarkFlag(Buffer: pChar): tBookMarkFlag;
-begin
-result:= pRecInfo(Buffer)^.BookmarkFlag;
-end;
-
-procedure TSQLite.InitBufferPointers;
-begin
-fCalcFieldsOfs :=fRecordSize;
-//fRecInfoOfs :=fCalcFieldsOfs + CalcFieldsSize;
-//fBookMarkOfs := fRecInfoOfs+SizeOf(tRecInfo);
-fRecordBufferSize :=fBookmarkOfs + BookmarkSize;
-end;
-
-procedure TSQLite.GetBookmarkData(Buffer: pChar; Data: Pointer);
-begin
-Move(Buffer[fBookMarkOfs],Data^,SizeOf(tBinBookMark));
-//implementacja jest watpliwa
-end;
-
-procedure TSQLite.SetBookMarkData(Buffer: pChar; Data: Pointer);
-begin
-Move(Data^,Buffer[fBookMarkOfs],SizeOf(tbinBookMark));
-
-end;
-
-procedure TSQLite.InternalGotoBookmark(ABookMark: Pointer);
-begin
-with pBinBookMark(ABookMark)^ do begin
- fCurrentRecord :=RecPtr;
-end;
-end;
-
-function TSQLite.FieldDefsStored: boolean;
-begin
-
-end;
-
-procedure TSQLite.ClearCalcFields(Buffer: pChar);
-var p : pointer;
-t : tSQliteRows;
-begin
-inherited;
-p:=buffer;
-if p<>nil then begin
-try
- t:=tSQliteRows(p);
- t.clearCalcFields;
-except
-end;
-end;
-end;
-
-function TSQLite.getRecordCount: integer;
-begin
-result :=fRecordCount;
-end;
-
-procedure TSQLite.OpenCursor(InfoQuery: Boolean);
-begin
- inherited;
-
-end;
-
-procedure TSQLite.SetRecNo(value: integer);
-begin
- inherited;
-
-end;
-
-function TSQLite.CreateTable: boolean;
-begin
-
-end;
-
-function TSQLite.getRecord(Buffer: pChar; GetMode: tGetMode;
- DoCheck: Boolean): tGetResult;
-begin
-if fRecordCount<1 then
- result:=grEof
-else begin
- result:=grOk;
- Case GetMode of
- gmNext :
- if fCurrentRecord>= (fRecordCount-1) then
- result:=grEof
- else
- Inc(fCurrentRecord);
- gmPrior :
- if (fCurrentRecord <=0) then
- result:=grBof
- else
- Dec(fCurrentRecord);
- gmCurrent :
- if (fCurrentRecord >= fRecordCount) or (fCurrentRecord <0) then
- result:=grError;
- end;
-end;
-if result=grOk then begin
- self.fRecordBufferSize:=sizeOf(fBuffer[fCurrentRecord]);
- self.fRecordSize:=self.fRecordBufferSize;
- // Buffer:=fBuffer.List[fcurrentRecord];
- //read data from psyh buffer sqlite..;)
- GetCalcFields(Buffer);
- { with fBuffer.Items[fCurrentRecord] as tSqliteRows do begin
- BookmarkFlag := bfCurrent;
- end;}
- with PRecInfo(Buffer)^ do
- begin
- Index := fCurrentRecord;
- BookmarkFlag := bfCurrent;
- Bookmark := Integer (fCurrentRecord);
- end;
-
-
-
-end;
-if result=grError then begin
- if DoCheck and DoExceptions then
- raise edataBaseError.Create('Invalid Record');
-end;
-end;
-
-procedure TSQLite.InternalInitFieldDefs;
-var i : integer;
-begin
-FieldDefs.Clear;
-for i:=0 to fLstname.Count-1 do begin
- FieldDefs.Add(fLstName[i],ftString,MaxiL[i],false);
-end;
-end;
-
-procedure TSQLite.InternalOpen;
-begin
-if fBUffer<>nil then begin
- clearBuffer;
-
-end;
-if (length(tableName)>0) and (fSQL.Count<1) then begin
- fsql.add('select rowid,* from '+fTableName);
-end;
-if not fDoSQL then
- fActive:=execSQL;
-InternalInitFieldDefs;
-{
-if ((fLstName.count-1)>0) and (fBuffer<>nil) then
- fRecordCount:=(fBuffer.Count-1) div (fLstName.Count-1)
-else
- fRecordCount:=0;
-}
-if (fBuffer<>nil) then
- fRecordCount:=(fBuffer.Count-1)
-else
- fRecordCount:=0;
-if DefaultFields then
- CreateFields;
-BindFields(true);
-FisOpen:=true;
- FRecordSize := sizeof (TRecInfo);
- FCurrentRecord := -1;
- BookmarkSize := sizeOf (Integer);
-end;
-
-procedure TSQLite.InternalClose;
-begin
-clearBuffer;
-end;
-
-function TSQLite.allocRecordBuffer: pChar;
-var p : pointer;
-begin
-//now is time to calculate currentRecordSize...
- GetMem(Result,GetRecordSize);
- FillChar(Result^,GetRecordSize,0);
-end;
-
-procedure TSQLite.FreeRecordBuffer(var Buffer: pChar);
-begin
-//FreeMem(Buffer,sizeOf(Buffer));
-FreeMem(Buffer,GetRecordSize);
-end;
-
-function TSQLite.getRecordSize: Word;
-begin
-
- Result:=sizeof(TRecInfo);
-
-end;
-
-procedure TSQLite.InternalAddRecord(Buffer: Pointer; DoAppend: boolean);
-begin
-
-end;
-
-procedure TSQLite.InternalDelete;
-begin
-
-end;
-
-procedure TSQLite.InternalFirst;
-begin
- self.fCurrentRecord:=0;
-end;
-
-procedure TSQLite.InternalInitRecord(Buffer: pChar);
-begin
-
-end;
-
-procedure TSQLite.InternalLast;
-begin
- fCurrentRecord:=fRecordCount;
-end;
-
-procedure TSQLite.InternalPost;
-begin
-end;
-
-procedure TSQLite.InternalSetToRecord(Buffer: pChar);
-
-begin
-
-end;
-
-function TSQLite.isCursorOpen: Boolean;
-begin
-
-end;
-
-
-procedure TSQLite.SetFieldData(Field: tField; Buffer: Pointer);
-// var aa : string;
-begin
-// Does NOthing ??
-// aa:=Field.NewValue;
-// inherited;
-
-end;
-
-procedure TSQLite.SetBookmarkFlag(Buffer: pChar; value: tBookmarkFlag);
-begin
-// inherited;
-
-end;
-
-function TSQLite.getFieldData(Field: tField; Buffer: Pointer): boolean;
-var i,k : integer;
-p : tSqliteField;
-r : tSqliteRows;
-pt : pointer;
-begin
-
-result:=false;
-k:=fieldDefs.Count-1;
-self.fLstName.Count;
-r:=fBuffer[PRecInfo(ActiveBuffer)^.Index] as tSqliteRows;
-if r=nil then exit;
-for i:=0 to k do begin
- if lowercase(fLstName[i])=lowercase(field.FieldName) then begin
- p:=r.items[i];
- if p = nil then break;
- p.GetData(Buffer,true);
- result:=true;
- break;
- end;
-end;
-end;
-
-{ tSqliteRows }
-
-procedure tSqliteRows.Push(item: tSqliteField);
-begin
-if internalcount<fBuffercount then begin
- fBuffer[internalCount]:=item;
- inc(internalCount);
-end;
-end;
-
-constructor tSqliteRows.Create(fieldCount: integer);
-begin
-
-inherited create;
-
-if fieldCount<=0 then
- fieldCount:=1;
- fbuffercount:=fieldcount+1;
-getmem(fBuffer,fbuffercount*sizeof(pointer));
-end;
-
-destructor tSqliteRows.destroy;
-
-
-begin
-
- clearBuffer;
- inherited;
-end;
-
-function tSqliteRows.Pop: tSqliteField;
-begin
-result:=nil;
-if (internalCount>0) and (internalCount<fBuffercount) then begin
- result:=fBuffer[internalCount];
- Dec(internalCount);
-end;
-end;
-
-function tSqliteRows.getItem(index: integer): tSqliteField;
-begin
-result:=nil;
-if checkIndex(index) then
- result:=fBuffer[Index];
-end;
-
-procedure tSqliteRows.SetItem(index: integer; const Value: tSqliteField);
-begin
-if checkIndex(index) then
- fBuffer[index]:=Value;
-end;
-
-function tSqliteRows.checkIndex(index : integer): boolean;
-begin
-result:=false;
-if (index>=0) and (index<internalCount) then
- result:=true;
-end;
-
-procedure tSqliteRows.clearBuffer;
-var i : integer;
-begin
-if internalcount>0 then begin
-for i:=0 to internalCount -1 do begin
- if fBuffer[i]<>nil then begin
- fBuffer[i].Free;
- fBuffer[i]:=nil;
- try
- except
- continue;
- end;
- end;
-end;
-fbuffercount:=0;
-FreeMem(fBuffer);
-end;
-
-end;
-
-procedure tSqliteRows.Clear;
-begin
-clearBuffer;
-internalCount:=0;
-end;
-
-procedure tSqliteRows.ClearCalcFields;
-begin
-
-end;
-
-function tSqliteRows.Add(pt: pChar;ptName : pChar):boolean;
-var tmp : int64;
-begin
-Push(tSqliteField.Create(nil));
-tmp:=internalCount-1;
-items[tmp].FieldKind:=fkData;
-items[tmp].SetFieldType(ftString);
-items[tmp].SetData(pt,true);
-end;
-
-
-procedure tSqlite.countMaxiLength(pt: pChar; index : int64);
-begin
-if length(pt)>maxil[index] then
- maxiL[index]:=length(pt);
-end;
-
-{ tSqliteField }
-
-constructor tSqliteField.create(aOwner: tObject);
-begin
-
-inherited create;
-fOwner:=aOwner;
-end;
-
-destructor tSqliteField.destroy;
-begin
-
- inherited;
-end;
-
-function tSqliteField.GetData(Buffer: Pointer) : boolean;
-
-begin
- Result:=GetData(Buffer,True);
-end ;
-
-function tSqliteField.GetData(Buffer: Pointer;
- NativeFormat: Boolean): boolean;
- var
- l,tIntegerType : integer;
- tDateTimeType : tDateTime;
-begin
-try
-result:=false;
-
-if not nativeFormat then begin
- Move(data,Buffer^,sizeOf(data));
- result:=true;
-end else begin
- case self.fieldType of
- ftInteger : begin
- tIntegerType:=StrToInt(data);
- Move(tIntegerType,Buffer^,sizeOf(data));
- end;
- ftDateTime : begin
- tDateTimeType:=StrToDate(data);
- Move(tDateTimeType,Buffer^,sizeOf(data));
- end;
- ftString : begin
- // L:=length(data);
- // Move(data,Buffer^,l);
- StrCopy (Buffer, pchar(data));
- end;
- else
- Move(data,Buffer^,sizeOf(data));
- end;
- result:=true;
-end;
-except
- Buffer:=nil;
-end;
-end;
-
-procedure tSqliteField.SetData(pt: pChar; NativeFormat: boolean);
-begin
-data:=pt;
-end;
-
-procedure tSqliteField.SetFieldKind(const Value: tFieldKind);
-begin
- fFieldKind := Value;
-end;
-
-procedure tSqliteField.SetFieldType(const Value: tFieldType);
-begin
- fFieldType := Value;
-end;
-{
-procedure tSqliteField.SetName(const Value: string);
-begin
- fName := Value;
-end;
- }
-function TSQLite.getCanModify: boolean;
-begin
-result:=false;
-exit;//temporary
-if length(fTableName)>0 then
- result:=true;
-end;
-
-procedure TSQLite.InitMaxLength(length: integer);
-begin
-if not maxLengthInit and (length>0) then begin
- maxLengthInit:=true;
- maxilcount:=length;
- getmem(maxiL,maxilcount*sizeof(integer));
-end;
-end;
-
-procedure TSQLite.clearBuffer;
-
-begin
-if assigned(fBuffer) then begin
- if fBuffer.count>0 then begin
- fBuffer.pack;
- fBuffer.clear;
- end;
-end;
-if assigned(fLstVal) then begin
- fLstVal.Clear;
-end;
-if assigned(fLstName) then begin
- fLstName.Clear;
-end;
-end;
-
-{
-procedure TSQLite.internalInsert;
-begin
- inherited;
- if not getCanModify then exit;
-end;
-}
-
-procedure Register;
-begin
- RegisterComponents('MK', [tSqlite]);
-end;
-
-initialization
-{$ifdef dynload}
- LibsLoaded := LoadLibs;
-{$endif}
-{$ifdef fpc}
- MsgNoError := SystemErrorMsg(0);
-{$else}
- MsgNoError := 'The operation completed successfully';
-{$endif}
-
-finalization
-{$ifdef dynload}
- if DLLHandle <> 0 then
- FreeLibrary(DLLHandle);
-{$endif}
-
-
-
-end.