diff options
author | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-03-16 20:14:56 +0000 |
---|---|---|
committer | joost <joost@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-03-16 20:14:56 +0000 |
commit | 2cc5f4c0984d30f9fc05c2a4fc66898914f6f93e (patch) | |
tree | 8b2c0fe983f0ad90bdcae8f82283a63d0d16c129 | |
parent | 6d6b6f1abd0b2106c406e16207aa98c407da1bca (diff) | |
download | fpc-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
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 Binary files differdeleted file mode 100644 index fafa587a2f..0000000000 --- a/packages/fcl-db/src/unmaintained/odbc/testodbc.mdb +++ /dev/null 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. |