Browse Source

Merged revisions 6879-6880,6884,6886-6887 via svnmerge from
svn+ssh://[email protected]/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: branches/fixes_2_2@6889 -

joost 18 years ago
parent
commit
79ad95c115
58 changed files with 621 additions and 22079 deletions
  1. 0 47
      .gitattributes
  2. 0 28
      .gitignore
  3. 52 148
      packages/fcl-db/Makefile
  4. 1 1
      packages/fcl-db/Makefile.fpc
  5. 114 10
      packages/fcl-db/src/db.pas
  6. 43 7
      packages/fcl-db/src/dsparams.inc
  7. 317 11
      packages/fcl-db/src/fields.inc
  8. 2 0
      packages/fcl-db/src/sqldb/postgres/pqconnection.pp
  9. 36 20
      packages/fcl-db/src/sqlite/customsqliteds.pas
  10. 28 18
      packages/fcl-db/src/sqlite/sqlite3ds.pas
  11. 28 18
      packages/fcl-db/src/sqlite/sqliteds.pas
  12. 0 2208
      packages/fcl-db/src/unmaintained/Makefile
  13. 0 29
      packages/fcl-db/src/unmaintained/Makefile.fpc
  14. 0 19
      packages/fcl-db/src/unmaintained/README
  15. 0 1971
      packages/fcl-db/src/unmaintained/ddg/Makefile
  16. 0 22
      packages/fcl-db/src/unmaintained/ddg/Makefile.fpc
  17. 0 65
      packages/fcl-db/src/unmaintained/ddg/createds.pp
  18. 0 522
      packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp
  19. 0 32
      packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp
  20. 0 20
      packages/fcl-db/src/unmaintained/ddg/fpmake.pp
  21. 0 177
      packages/fcl-db/src/unmaintained/ddg/testds.pp
  22. 0 235
      packages/fcl-db/src/unmaintained/ddg/tested.pp
  23. 0 2
      packages/fcl-db/src/unmaintained/interbase/BUGS.known
  24. 0 2409
      packages/fcl-db/src/unmaintained/interbase/Makefile
  25. 0 28
      packages/fcl-db/src/unmaintained/interbase/Makefile.fpc
  26. 0 67
      packages/fcl-db/src/unmaintained/interbase/README
  27. 0 18
      packages/fcl-db/src/unmaintained/interbase/fpmake.inc
  28. 0 20
      packages/fcl-db/src/unmaintained/interbase/fpmake.pp
  29. 0 1264
      packages/fcl-db/src/unmaintained/interbase/interbase.pp
  30. 0 49
      packages/fcl-db/src/unmaintained/interbase/mkdb
  31. 0 92
      packages/fcl-db/src/unmaintained/interbase/testib.pp
  32. 0 2562
      packages/fcl-db/src/unmaintained/mysql/Makefile
  33. 0 29
      packages/fcl-db/src/unmaintained/mysql/Makefile.fpc
  34. 0 21
      packages/fcl-db/src/unmaintained/mysql/fpmake.inc
  35. 0 20
      packages/fcl-db/src/unmaintained/mysql/fpmake.pp
  36. 0 198
      packages/fcl-db/src/unmaintained/mysql/mtest.pp
  37. 0 924
      packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp
  38. 0 982
      packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp
  39. 0 2256
      packages/fcl-db/src/unmaintained/odbc/Makefile
  40. 0 30
      packages/fcl-db/src/unmaintained/odbc/Makefile.fpc
  41. 0 181
      packages/fcl-db/src/unmaintained/odbc/README
  42. 0 20
      packages/fcl-db/src/unmaintained/odbc/fpmake.pp
  43. 0 1464
      packages/fcl-db/src/unmaintained/odbc/fpodbc.pp
  44. 0 63
      packages/fcl-db/src/unmaintained/odbc/testbcon.pp
  45. 0 19
      packages/fcl-db/src/unmaintained/odbc/testcon.pp
  46. 0 20
      packages/fcl-db/src/unmaintained/odbc/testdrcon.pp
  47. 0 45
      packages/fcl-db/src/unmaintained/odbc/testenv.pp
  48. 0 29
      packages/fcl-db/src/unmaintained/odbc/testfl.pp
  49. BIN
      packages/fcl-db/src/unmaintained/odbc/testodbc.mdb
  50. 0 33
      packages/fcl-db/src/unmaintained/odbc/testpa.pp
  51. 0 29
      packages/fcl-db/src/unmaintained/odbc/testpk.pp
  52. 0 29
      packages/fcl-db/src/unmaintained/odbc/testpr.pp
  53. 0 102
      packages/fcl-db/src/unmaintained/odbc/testsql.pp
  54. 0 62
      packages/fcl-db/src/unmaintained/odbc/testst.pp
  55. 0 31
      packages/fcl-db/src/unmaintained/odbc/testtl.pp
  56. 0 2048
      packages/fcl-db/src/unmaintained/sqlite/Makefile
  57. 0 24
      packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc
  58. 0 1301
      packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas

+ 0 - 47
.gitattributes

@@ -4041,53 +4041,6 @@ packages/fcl-db/src/sqlite/fpmake.pp svneol=native#text/plain
 packages/fcl-db/src/sqlite/sqlite3ds.pas svneol=native#text/plain
 packages/fcl-db/src/sqlite/sqlite3ds.pas svneol=native#text/plain
 packages/fcl-db/src/sqlite/sqliteds.pas svneol=native#text/plain
 packages/fcl-db/src/sqlite/sqliteds.pas svneol=native#text/plain
 packages/fcl-db/src/sqlite/testds.pas svneol=native#text/plain
 packages/fcl-db/src/sqlite/testds.pas svneol=native#text/plain
-packages/fcl-db/src/unmaintained/Makefile -text
-packages/fcl-db/src/unmaintained/Makefile.fpc -text
-packages/fcl-db/src/unmaintained/README -text
-packages/fcl-db/src/unmaintained/ddg/Makefile svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/Makefile.fpc svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/createds.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/fpmake.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/testds.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/ddg/tested.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/interbase/BUGS.known -text
-packages/fcl-db/src/unmaintained/interbase/Makefile svneol=native#text/plain
-packages/fcl-db/src/unmaintained/interbase/Makefile.fpc svneol=native#text/plain
-packages/fcl-db/src/unmaintained/interbase/README -text
-packages/fcl-db/src/unmaintained/interbase/fpmake.inc svneol=native#text/plain
-packages/fcl-db/src/unmaintained/interbase/fpmake.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/interbase/interbase.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/interbase/mkdb -text
-packages/fcl-db/src/unmaintained/interbase/testib.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/Makefile svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/Makefile.fpc svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/fpmake.inc svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/fpmake.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/mtest.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/Makefile svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/Makefile.fpc svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/README -text
-packages/fcl-db/src/unmaintained/odbc/fpmake.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/fpodbc.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testbcon.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testcon.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testdrcon.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testenv.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testfl.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testodbc.mdb -text
-packages/fcl-db/src/unmaintained/odbc/testpa.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testpk.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testpr.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testsql.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testst.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/odbc/testtl.pp svneol=native#text/plain
-packages/fcl-db/src/unmaintained/sqlite/Makefile -text
-packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc -text
-packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas svneol=native#text/plain
 packages/fcl-db/tests/Makefile -text
 packages/fcl-db/tests/Makefile -text
 packages/fcl-db/tests/Makefile.fpc -text
 packages/fcl-db/tests/Makefile.fpc -text
 packages/fcl-db/tests/README.txt svneol=native#text/plain
 packages/fcl-db/tests/README.txt svneol=native#text/plain

+ 0 - 28
.gitignore

@@ -1545,34 +1545,6 @@ packages/fcl-db/src/sqlite/*.s
 packages/fcl-db/src/sqlite/fpcmade.*
 packages/fcl-db/src/sqlite/fpcmade.*
 packages/fcl-db/src/sqlite/units
 packages/fcl-db/src/sqlite/units
 packages/fcl-db/src/units
 packages/fcl-db/src/units
-packages/fcl-db/src/unmaintained/ddg/*.bak
-packages/fcl-db/src/unmaintained/ddg/*.exe
-packages/fcl-db/src/unmaintained/ddg/*.o
-packages/fcl-db/src/unmaintained/ddg/*.ppu
-packages/fcl-db/src/unmaintained/ddg/*.s
-packages/fcl-db/src/unmaintained/ddg/fpcmade.*
-packages/fcl-db/src/unmaintained/ddg/units
-packages/fcl-db/src/unmaintained/interbase/*.bak
-packages/fcl-db/src/unmaintained/interbase/*.exe
-packages/fcl-db/src/unmaintained/interbase/*.o
-packages/fcl-db/src/unmaintained/interbase/*.ppu
-packages/fcl-db/src/unmaintained/interbase/*.s
-packages/fcl-db/src/unmaintained/interbase/fpcmade.*
-packages/fcl-db/src/unmaintained/interbase/units
-packages/fcl-db/src/unmaintained/mysql/*.bak
-packages/fcl-db/src/unmaintained/mysql/*.exe
-packages/fcl-db/src/unmaintained/mysql/*.o
-packages/fcl-db/src/unmaintained/mysql/*.ppu
-packages/fcl-db/src/unmaintained/mysql/*.s
-packages/fcl-db/src/unmaintained/mysql/fpcmade.*
-packages/fcl-db/src/unmaintained/mysql/units
-packages/fcl-db/src/unmaintained/odbc/*.bak
-packages/fcl-db/src/unmaintained/odbc/*.exe
-packages/fcl-db/src/unmaintained/odbc/*.o
-packages/fcl-db/src/unmaintained/odbc/*.ppu
-packages/fcl-db/src/unmaintained/odbc/*.s
-packages/fcl-db/src/unmaintained/odbc/fpcmade.*
-packages/fcl-db/src/unmaintained/odbc/units
 packages/fcl-fpcunit/src/*.bak
 packages/fcl-fpcunit/src/*.bak
 packages/fcl-fpcunit/src/*.exe
 packages/fcl-fpcunit/src/*.exe
 packages/fcl-fpcunit/src/*.o
 packages/fcl-fpcunit/src/*.o

+ 52 - 148
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
 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
 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_NAME=fcl-db
 override PACKAGE_VERSION=2.0.0
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
 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
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 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
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 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
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 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
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 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
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 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
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 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
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 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
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 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
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 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
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 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
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 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
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 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
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 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
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 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
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 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
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 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
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 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
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 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
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 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
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 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
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 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
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 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
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 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
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 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
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 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
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 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
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 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
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 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
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 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
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 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
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
 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/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3360,13 +3359,11 @@ ifeq ($(FULL_TARGET),i386-go32v2)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3374,13 +3371,11 @@ ifeq ($(FULL_TARGET),i386-os2)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3388,76 +3383,64 @@ ifeq ($(FULL_TARGET),i386-beos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3465,19 +3448,16 @@ ifeq ($(FULL_TARGET),i386-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3485,7 +3465,6 @@ ifeq ($(FULL_TARGET),m68k-freebsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3493,45 +3472,38 @@ ifeq ($(FULL_TARGET),m68k-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3539,45 +3511,38 @@ ifeq ($(FULL_TARGET),powerpc-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3585,26 +3550,22 @@ ifeq ($(FULL_TARGET),sparc-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3612,7 +3573,6 @@ ifeq ($(FULL_TARGET),x86_64-freebsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3620,20 +3580,17 @@ ifeq ($(FULL_TARGET),x86_64-win64)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3641,13 +3598,11 @@ ifeq ($(FULL_TARGET),arm-palmos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3655,31 +3610,26 @@ ifeq ($(FULL_TARGET),arm-gba)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 endif
@@ -3687,7 +3637,6 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 endif
 ifdef TARGET_DIRS_SRC/SDF
 ifdef TARGET_DIRS_SRC/SDF
 src/sdf_all:
 src/sdf_all:
@@ -3824,51 +3773,6 @@ src/sqldb:
 	$(MAKE) -C src/sqldb all
 	$(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
 .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
 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
 ifdef TARGET_DIRS_SRC/DBASE
 src/dbase_all:
 src/dbase_all:
 	$(MAKE) -C src/dbase all
 	$(MAKE) -C src/dbase all

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

@@ -7,7 +7,7 @@ name=fcl-db
 version=2.0.0
 version=2.0.0
 
 
 [target]
 [target]
-dirs=src/sdf src/memds src/sqldb src/unmaintained
+dirs=src/sdf src/memds src/sqldb 
 dirs_linux=src/dbase src/sqlite
 dirs_linux=src/dbase src/sqlite
 dirs_freebsd=src/dbase src/sqlite
 dirs_freebsd=src/dbase src/sqlite
 dirs_darwin=src/sqlite
 dirs_darwin=src/sqlite

+ 114 - 10
packages/fcl-db/src/db.pas

@@ -128,7 +128,7 @@ type
     ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar,
     ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar,
     ftWideString, ftLargeint, ftADT, ftArray, ftReference,
     ftWideString, ftLargeint, ftADT, ftArray, ftReference,
     ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface,
     ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftInterface,
-    ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd);
+    ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd, ftFixedWideChar, ftWideMemo);
 
 
 { Part of DBCommon, but temporary defined here (bug 8206) }
 { Part of DBCommon, but temporary defined here (bug 8206) }
 
 
@@ -339,6 +339,7 @@ type
     function GetAsVariant: variant; virtual;
     function GetAsVariant: variant; virtual;
     function GetOldValue: variant; virtual;
     function GetOldValue: variant; virtual;
     function GetAsString: string; virtual;
     function GetAsString: string; virtual;
+    function GetAsWideString: WideString; virtual;
     function GetCanModify: Boolean; virtual;
     function GetCanModify: Boolean; virtual;
     function GetClassDesc: String; virtual;
     function GetClassDesc: String; virtual;
     function GetDataSize: Word; virtual;
     function GetDataSize: Word; virtual;
@@ -362,6 +363,7 @@ type
     procedure SetAsLargeint(AValue: Largeint); virtual;
     procedure SetAsLargeint(AValue: Largeint); virtual;
     procedure SetAsVariant(AValue: variant); virtual;
     procedure SetAsVariant(AValue: variant); virtual;
     procedure SetAsString(const AValue: string); virtual;
     procedure SetAsString(const AValue: string); virtual;
+    procedure SetAsWideString(const aValue: WideString); virtual;
     procedure SetDataType(AValue: TFieldType);
     procedure SetDataType(AValue: TFieldType);
     procedure SetNewValue(const AValue: Variant);
     procedure SetNewValue(const AValue: Variant);
     procedure SetSize(AValue: Word); virtual;
     procedure SetSize(AValue: Word); virtual;
@@ -392,6 +394,7 @@ type
     property AsLargeInt: LargeInt read GetAsLargeInt write SetAsLargeInt;
     property AsLargeInt: LargeInt read GetAsLargeInt write SetAsLargeInt;
     property AsInteger: Integer read GetAsInteger write SetAsInteger;
     property AsInteger: Integer read GetAsInteger write SetAsInteger;
     property AsString: string read GetAsString write SetAsString;
     property AsString: string read GetAsString write SetAsString;
+    property AsWideString: WideString read GetAsWideString write SetAsWideString;
     property AsVariant: variant read GetAsVariant write SetAsVariant;
     property AsVariant: variant read GetAsVariant write SetAsVariant;
     property AttributeSet: string read FAttributeSet write FAttributeSet;
     property AttributeSet: string read FAttributeSet write FAttributeSet;
     property Calculated: Boolean read FCalculated write FCalculated;
     property Calculated: Boolean read FCalculated write FCalculated;
@@ -474,6 +477,30 @@ type
     property Size default 20;
     property Size default 20;
   end;
   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 }
   TNumericField = class(TField)
   TNumericField = class(TField)
   Private
   Private
@@ -608,7 +635,7 @@ type
     property Value: Double read GetAsFloat write SetAsFloat;
     property Value: Double read GetAsFloat write SetAsFloat;
 
 
   published
   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 MaxValue: Double read FMaxValue write FMaxValue;
     property MinValue: Double read FMinValue write FMinValue;
     property MinValue: Double read FMinValue write FMinValue;
     property Precision: Longint read FPrecision write FPrecision default 15;
     property Precision: Longint read FPrecision write FPrecision default 15;
@@ -619,6 +646,8 @@ type
   TCurrencyField = class(TFloatField)
   TCurrencyField = class(TFloatField)
   public
   public
     constructor Create(AOwner: TComponent); override;
     constructor Create(AOwner: TComponent); override;
+  published
+    property Currency default True;
   end;
   end;
 
 
 { TBooleanField }
 { TBooleanField }
@@ -757,7 +786,7 @@ type
 
 
 { TBlobField }
 { TBlobField }
   TBlobStreamMode = (bmRead, bmWrite, bmReadWrite);
   TBlobStreamMode = (bmRead, bmWrite, bmReadWrite);
-  TBlobType = ftBlob..ftTypedBinary;
+  TBlobType = ftBlob..ftWideMemo;
 
 
   TBlobField = class(TField)
   TBlobField = class(TField)
   private
   private
@@ -777,6 +806,8 @@ type
     procedure SetAsString(const AValue: string); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetText(const AValue: string); override;
     procedure SetText(const AValue: string); override;
     procedure SetVarValue(const AValue: Variant); override;
     procedure SetVarValue(const AValue: Variant); override;
+    function GetAsWideString: WideString; override;
+    procedure SetAsWideString(const aValue: WideString); override;
   public
   public
     constructor Create(AOwner: TComponent); override;
     constructor Create(AOwner: TComponent); override;
     procedure Assign(Source: TPersistent); override;
     procedure Assign(Source: TPersistent); override;
@@ -799,12 +830,31 @@ type
 { TMemoField }
 { TMemoField }
 
 
   TMemoField = class(TBlobField)
   TMemoField = class(TBlobField)
+  protected
+    function GetAsWideString: WideString; override;
+    procedure SetAsWideString(const aValue: WideString); override;
   public
   public
     constructor Create(AOwner: TComponent); override;
     constructor Create(AOwner: TComponent); override;
   published
   published
     property Transliterate default True;
     property Transliterate default True;
   end;
   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 }
 
 
   TGraphicField = class(TBlobField)
   TGraphicField = class(TBlobField)
@@ -812,6 +862,52 @@ type
     constructor Create(AOwner: TComponent); override;
     constructor Create(AOwner: TComponent); override;
   end;
   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 }
 { TIndexDef }
 
 
   TIndexDefs = class;
   TIndexDefs = class;
@@ -1614,6 +1710,8 @@ type
     Procedure SetAsWord(AValue: LongInt);
     Procedure SetAsWord(AValue: LongInt);
     Procedure SetDataType(AValue: TFieldType);
     Procedure SetDataType(AValue: TFieldType);
     Procedure SetText(const AValue: string);
     Procedure SetText(const AValue: string);
+    function GetAsWideString: WideString;
+    procedure SetAsWideString(const aValue: WideString);
   public
   public
     constructor Create(ACollection: TCollection); overload; override;
     constructor Create(ACollection: TCollection); overload; override;
     constructor Create(AParams: TParams; AParamType: TParamType); reintroduce; overload;
     constructor Create(AParams: TParams; AParamType: TParamType); reintroduce; overload;
@@ -1648,6 +1746,7 @@ type
     Property NativeStr : string read FNativeStr write FNativeStr;
     Property NativeStr : string read FNativeStr write FNativeStr;
     Property Text : string read GetAsString write SetText;
     Property Text : string read GetAsString write SetText;
     Property Value : Variant read GetAsVariant write SetAsVariant stored IsParamStored;
     Property Value : Variant read GetAsVariant write SetAsVariant stored IsParamStored;
+    property AsWideString: WideString read GetAsWideString write SetAsWideString;
   published
   published
     Property DataType : TFieldType read FDataType write SetDataType;
     Property DataType : TFieldType read FDataType write SetDataType;
     Property Name : string read FName write FName;
     Property Name : string read FName write FName;
@@ -1712,7 +1811,8 @@ const
     varDate, varDate, varDate, varOleStr, varOleStr, varInteger, varOleStr,
     varDate, varDate, varDate, varOleStr, varOleStr, varInteger, varOleStr,
     varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varError,
     varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varOleStr, varError,
     varOleStr, varOleStr, varError, varError, varError, varError, 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
 Const
@@ -1755,7 +1855,9 @@ Const
       'IDispatch',
       'IDispatch',
       'Guid',
       'Guid',
       'TimeStamp',
       'TimeStamp',
-      'FMTBcd'
+      'FMTBcd',
+      'FixedWideChar',
+      'WideMemo'
     );
     );
     { 'Unknown',
     { 'Unknown',
       'String',
       'String',
@@ -1800,13 +1902,13 @@ const
       { ftBlob} TBlobField,
       { ftBlob} TBlobField,
       { ftMemo} TMemoField,
       { ftMemo} TMemoField,
       { ftGraphic} TGraphicField,
       { ftGraphic} TGraphicField,
-      { ftFmtMemo} TMemoField,
+      { ftFmtMemo} TBlobField,
       { ftParadoxOle} TBlobField,
       { ftParadoxOle} TBlobField,
       { ftDBaseOle} TBlobField,
       { ftDBaseOle} TBlobField,
       { ftTypedBinary} TBlobField,
       { ftTypedBinary} TBlobField,
       { ftCursor} Nil,
       { ftCursor} Nil,
       { ftFixedChar} TStringField,
       { ftFixedChar} TStringField,
-      { ftWideString} Nil,
+      { ftWideString} TWideStringField,
       { ftLargeint} TLargeIntField,
       { ftLargeint} TLargeIntField,
       { ftADT} Nil,
       { ftADT} Nil,
       { ftArray} Nil,
       { ftArray} Nil,
@@ -1814,12 +1916,14 @@ const
       { ftDataSet} Nil,
       { ftDataSet} Nil,
       { ftOraBlob} TBlobField,
       { ftOraBlob} TBlobField,
       { ftOraClob} TMemoField,
       { ftOraClob} TMemoField,
-      { ftVariant} Nil,
+      { ftVariant} TVariantField,
       { ftInterface} Nil,
       { ftInterface} Nil,
       { ftIDispatch} Nil,
       { ftIDispatch} Nil,
-      { ftGuid} Nil,
+      { ftGuid} TGuidField,
       { ftTimeStamp} Nil,
       { ftTimeStamp} Nil,
-      { ftFMTBcd} Nil
+      { ftFMTBcd} Nil,
+      { ftFixedWideString} TWideStringField,
+      { ftWideMemo} TWideMemoField
     );
     );
 
 
   dsEditModes = [dsEdit, dsInsert, dsSetKey];
   dsEditModes = [dsEdit, dsInsert, dsSetKey];

+ 43 - 7
packages/fcl-db/src/dsparams.inc

@@ -537,6 +537,15 @@ begin
     Result:=FValue;
     Result:=FValue;
 end;
 end;
 
 
+function TParam.GetAsWideString: WideString;
+begin
+  if IsNull then
+    Result := ''
+  else
+    Result := FValue;
+end;
+
+
 Function TParam.GetAsVariant: Variant;
 Function TParam.GetAsVariant: Variant;
 begin
 begin
   if IsNull then
   if IsNull then
@@ -637,9 +646,18 @@ end;
 Procedure TParam.SetAsString(const AValue: string);
 Procedure TParam.SetAsString(const AValue: string);
 begin
 begin
   FValue:=AValue;
   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;
 end;
 
 
+
 Procedure TParam.SetAsTime(const AValue: TDateTime);
 Procedure TParam.SetAsTime(const AValue: TDateTime);
 begin
 begin
   FValue:=AValue;
   FValue:=AValue;
@@ -832,18 +850,26 @@ Procedure TParam.AssignFieldValue(Field: TField; const AValue: Variant);
 begin
 begin
   If Assigned(Field) then
   If Assigned(Field) then
     begin
     begin
+
     if (Field.DataType = ftString) and TStringField(Field).FixedChar then
     if (Field.DataType = ftString) and TStringField(Field).FixedChar then
-      DataType:=ftFixedChar
+      DataType := ftFixedChar
     else if (Field.DataType = ftMemo) and (Field.Size > 255) then
     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
     else
-      DataType:=Field.DataType;
+      DataType := Field.DataType;
+
     if VarIsNull(AValue) then
     if VarIsNull(AValue) then
       Clear
       Clear
     else
     else
       Value:=AValue;
       Value:=AValue;
+
     Size:=Field.DataSize;
     Size:=Field.DataSize;
     FBound:=True;
     FBound:=True;
+
     end;
     end;
 end;
 end;
 
 
@@ -855,9 +881,10 @@ end;
 Procedure TParam.GetData(Buffer: Pointer);
 Procedure TParam.GetData(Buffer: Pointer);
 
 
 Var
 Var
-  P : Pointer;
-  S : String;
-
+  P  : Pointer;
+  S  : String;
+  ws : WideString;
+  l  : Integer;
 begin
 begin
   case FDataType of
   case FDataType of
     ftUnknown  : DatabaseErrorFmt(SUnknownParamFieldType,[Name],DataSet);
     ftUnknown  : DatabaseErrorFmt(SUnknownParamFieldType,[Name],DataSet);
@@ -876,6 +903,15 @@ begin
       S:=AsString;
       S:=AsString;
       StrMove(PChar(Buffer),Pchar(S),Length(S)+1);
       StrMove(PChar(Buffer),Pchar(S),Length(S)+1);
       end;
       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;
     ftTime     : PInteger(Buffer)^:=DateTimeToTimeStamp(AsTime).Time;
     ftDate     : PInteger(Buffer)^:=DateTimeToTimeStamp(AsTime).Date;
     ftDate     : PInteger(Buffer)^:=DateTimeToTimeStamp(AsTime).Date;
     ftDateTime : PDouble(Buffer)^:=TimeStampToMSecs(DateTimeToTimeStamp(AsDateTime));
     ftDateTime : PDouble(Buffer)^:=TimeStampToMSecs(DateTimeToTimeStamp(AsDateTime));

+ 317 - 11
packages/fcl-db/src/fields.inc

@@ -329,12 +329,12 @@ begin
           Error;
           Error;
       vtAnsiString:
       vtAnsiString:
         AsString := string(VAnsiString);
         AsString := string(VAnsiString);
-//      vtCurrency:
-//        AsCurrency := VCurrency^;
+      vtCurrency:
+        AsCurrency := VCurrency^;
       vtVariant:
       vtVariant:
         if not VarIsClear(VVariant^) then Self.Value := VVariant^;
         if not VarIsClear(VVariant^) then Self.Value := VVariant^;
       vtWideString:
       vtWideString:
-        AsString := WideString(VWideString);
+        AsWideString := WideString(VWideString);
       vtInt64:
       vtInt64:
 {$ifdef fpc}
 {$ifdef fpc}
         Self.Value := VInt64^;
         Self.Value := VInt64^;
@@ -429,6 +429,11 @@ begin
   Result := GetClassDesc;
   Result := GetClassDesc;
 end;
 end;
 
 
+function TField.GetAsWideString: WideString;
+begin
+  Result := GetAsString;
+end;
+
 function TField.GetOldValue: Variant;
 function TField.GetOldValue: Variant;
 
 
 var SaveState : TDatasetState;
 var SaveState : TDatasetState;
@@ -750,6 +755,12 @@ begin
   Raise AccessError(SString);
   Raise AccessError(SString);
 end;
 end;
 
 
+procedure TField.SetAsWideString(const aValue: WideString);
+begin
+  SetAsString(aValue);
+end;
+
+
 procedure TField.SetData(Buffer: Pointer);
 procedure TField.SetData(Buffer: Pointer);
 
 
 begin
 begin
@@ -793,7 +804,7 @@ end;
 procedure TField.SetFieldType(AValue: TFieldType);
 procedure TField.SetFieldType(AValue: TFieldType);
 
 
 begin
 begin
-  //!! To be implemented
+  { empty }
 end;
 end;
 
 
 procedure TField.SetParentComponent(AParent: TComponent);
 procedure TField.SetParentComponent(AParent: TComponent);
@@ -1077,6 +1088,91 @@ begin
   SetAsString(AValue);
   SetAsString(AValue);
 end;
 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
     TNumericField
   ---------------------------------------------------------------------}
   ---------------------------------------------------------------------}
@@ -2181,14 +2277,37 @@ end;
 
 
 function TBlobField.GetAsString: string;
 function TBlobField.GetAsString: string;
 var
 var
-  Stream: TStream;
+  Stream : TStream;
+  Len    : Integer;
 begin
 begin
   Stream := GetBlobStream(bmRead);
   Stream := GetBlobStream(bmRead);
   if Stream <> nil then
   if Stream <> nil then
     With Stream do
     With Stream do
       try
       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
       finally
         Free
         Free
       end
       end
@@ -2250,11 +2369,29 @@ end;
 
 
 
 
 procedure TBlobField.SetAsString(const AValue: string);
 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
 begin
   With GetBlobStream(bmwrite) do
   With GetBlobStream(bmwrite) do
     try
     try
-      WriteBuffer(Pointer(Avalue)^,Length(Avalue));
+      Len := Length(Avalue) * 2;
+      if Len > 0 then
+        WriteBuffer(aValue[1], Len);
     finally
     finally
       Free;
       Free;
     end;
     end;
@@ -2355,7 +2492,6 @@ begin
   end;
   end;
 end;
 end;
 
 
-
 procedure TBlobField.SetFieldType(AValue: TFieldType);
 procedure TBlobField.SetFieldType(AValue: TFieldType);
 
 
 begin
 begin
@@ -2363,8 +2499,6 @@ begin
     SetDatatype(Avalue);
     SetDatatype(Avalue);
 end;
 end;
 
 
-
-
 { TMemoField }
 { TMemoField }
 
 
 constructor TMemoField.Create(AOwner: TComponent);
 constructor TMemoField.Create(AOwner: TComponent);
@@ -2374,6 +2508,51 @@ begin
   SetDataType(ftMemo);
   SetDataType(ftMemo);
 end;
 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 }
 { TGraphicField }
 
 
@@ -2384,6 +2563,133 @@ begin
   SetDataType(ftGraphic);
   SetDataType(ftGraphic);
 end;
 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 }
 { TFields }
 
 

+ 2 - 0
packages/fcl-db/src/sqldb/postgres/pqconnection.pp

@@ -458,6 +458,8 @@ const TypeStrings : array[TFieldType] of string =
       'Unknown',
       'Unknown',
       'Unknown',
       'Unknown',
       'Unknown',
       'Unknown',
+      'Unknown',
+      'Unknown',
       'Unknown'
       'Unknown'
     );
     );
 
 

+ 36 - 20
packages/fcl-db/src/sqlite/customsqliteds.pas

@@ -1,24 +1,34 @@
 unit customsqliteds;
 unit customsqliteds;
 
 
 {
 {
-    This is TCustomSqliteDataset, a TDataset descendant class for use with fpc compiler
-    Copyright (C) 2004  Luiz Américo Pereira Câmara
-    Email: [email protected]
-
-    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: [email protected]
+
+  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}
 {$Mode ObjFpc}
@@ -139,6 +149,7 @@ type
     //TDataSet overrides
     //TDataSet overrides
     function AllocRecordBuffer: PChar; override;
     function AllocRecordBuffer: PChar; override;
     function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override;
     function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; override;
+    procedure DoBeforeClose; override;
     procedure DoAfterInsert; override;
     procedure DoAfterInsert; override;
     procedure DoBeforeInsert; override;
     procedure DoBeforeInsert; override;
     procedure FreeRecordBuffer(var Buffer: PChar); override;
     procedure FreeRecordBuffer(var Buffer: PChar); override;
@@ -420,6 +431,13 @@ begin
   Result:= TDSStream.Create(PPDataRecord(ActiveBuffer)^,Field.FieldNo - 1);
   Result:= TDSStream.Create(PPDataRecord(ActiveBuffer)^,Field.FieldNo - 1);
 end;
 end;
 
 
+procedure TCustomSqliteDataset.DoBeforeClose;
+begin
+  if FSaveOnClose then
+    ApplyUpdates;
+  inherited DoBeforeClose;
+end;
+
 procedure TCustomSqliteDataset.DoAfterInsert;
 procedure TCustomSqliteDataset.DoAfterInsert;
 begin
 begin
   //an append or an insert in an empty dataset
   //an append or an insert in an empty dataset
@@ -717,8 +735,6 @@ end;
 
 
 procedure TCustomSqliteDataset.InternalClose;
 procedure TCustomSqliteDataset.InternalClose;
 begin
 begin
-  if FSaveOnClose then
-    ApplyUpdates;
   //BindFields(False);
   //BindFields(False);
   if DefaultFields then
   if DefaultFields then
     DestroyFields;
     DestroyFields;

+ 28 - 18
packages/fcl-db/src/sqlite/sqlite3ds.pas

@@ -1,24 +1,34 @@
 unit sqlite3ds;
 unit sqlite3ds;
 
 
 {
 {
-    This is TSqlite3Dataset, a TDataset descendant class for use with fpc compiler
-    Copyright (C) 2004  Luiz Américo Pereira Câmara
-    Email: [email protected]
-
-    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: [email protected]
+
+  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}
 {$mode objfpc}

+ 28 - 18
packages/fcl-db/src/sqlite/sqliteds.pas

@@ -1,24 +1,34 @@
 unit sqliteds;
 unit sqliteds;
 
 
 {
 {
-    This is TSqliteDataset, a TDataset descendant class for use with fpc compiler
-    Copyright (C) 2004  Luiz Américo Pereira Câmara
-    Email: [email protected]
-
-    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: [email protected]
+    
+  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}
 {$mode objfpc}

+ 0 - 2208
packages/fcl-db/src/unmaintained/Makefile

@@ -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:

+ 0 - 29
packages/fcl-db/src/unmaintained/Makefile.fpc

@@ -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:

+ 0 - 19
packages/fcl-db/src/unmaintained/README

@@ -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, [email protected], feb 2006

+ 0 - 1971
packages/fcl-db/src/unmaintained/ddg/Makefile

@@ -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:

+ 0 - 22
packages/fcl-db/src/unmaintained/ddg/Makefile.fpc

@@ -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:

+ 0 - 65
packages/fcl-db/src/unmaintained/ddg/createds.pp

@@ -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.

+ 0 - 522
packages/fcl-db/src/unmaintained/ddg/ddg_ds.pp

@@ -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.

+ 0 - 32
packages/fcl-db/src/unmaintained/ddg/ddg_rec.pp

@@ -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.

+ 0 - 20
packages/fcl-db/src/unmaintained/ddg/fpmake.pp

@@ -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.
-

+ 0 - 177
packages/fcl-db/src/unmaintained/ddg/testds.pp

@@ -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.

+ 0 - 235
packages/fcl-db/src/unmaintained/ddg/tested.pp

@@ -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.

+ 0 - 2
packages/fcl-db/src/unmaintained/interbase/BUGS.known

@@ -1,2 +0,0 @@
-  * TDateTime field interpretation
-  * Some problems with TIBDataset.Close (fields)

+ 0 - 2409
packages/fcl-db/src/unmaintained/interbase/Makefile

@@ -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:

+ 0 - 28
packages/fcl-db/src/unmaintained/interbase/Makefile.fpc

@@ -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:

+ 0 - 67
packages/fcl-db/src/unmaintained/interbase/README

@@ -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
[email protected] 

+ 0 - 18
packages/fcl-db/src/unmaintained/interbase/fpmake.inc

@@ -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;

+ 0 - 20
packages/fcl-db/src/unmaintained/interbase/fpmake.pp

@@ -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.
-

+ 0 - 1264
packages/fcl-db/src/unmaintained/interbase/interbase.pp

@@ -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.

+ 0 - 49
packages/fcl-db/src/unmaintained/interbase/mkdb

@@ -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','[email protected]');
-insert into FPdev values ('2','Florian Klaempfl','[email protected]');
-insert into FPdev values ('3','Carl-Eric Codere','[email protected]');
-insert into FPdev values ('4','Daniel Mantione','[email protected]');
-insert into FPdev values ('5','Pierre Muller','[email protected]');
-insert into FPdev values ('6','Jonas Maebe','[email protected]');
-insert into FPdev values ('7','Peter Vreman','[email protected]');
-insert into FPdev values ('8','Gerry Dubois','[email protected]');
-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

+ 0 - 92
packages/fcl-db/src/unmaintained/interbase/testib.pp

@@ -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'',''[email protected]'')');
-    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.

+ 0 - 2562
packages/fcl-db/src/unmaintained/mysql/Makefile

@@ -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:

+ 0 - 29
packages/fcl-db/src/unmaintained/mysql/Makefile.fpc

@@ -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:

+ 0 - 21
packages/fcl-db/src/unmaintained/mysql/fpmake.inc

@@ -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;

+ 0 - 20
packages/fcl-db/src/unmaintained/mysql/fpmake.pp

@@ -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.
-

+ 0 - 198
packages/fcl-db/src/unmaintained/mysql/mtest.pp

@@ -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.

+ 0 - 924
packages/fcl-db/src/unmaintained/mysql/mysqldb3.pp

@@ -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.

+ 0 - 982
packages/fcl-db/src/unmaintained/mysql/mysqldb4.pp

@@ -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.

+ 0 - 2256
packages/fcl-db/src/unmaintained/odbc/Makefile

@@ -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:

+ 0 - 30
packages/fcl-db/src/unmaintained/odbc/Makefile.fpc

@@ -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:

+ 0 - 181
packages/fcl-db/src/unmaintained/odbc/README

@@ -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.

+ 0 - 20
packages/fcl-db/src/unmaintained/odbc/fpmake.pp

@@ -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.
-

+ 0 - 1464
packages/fcl-db/src/unmaintained/odbc/fpodbc.pp

@@ -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.

+ 0 - 63
packages/fcl-db/src/unmaintained/odbc/testbcon.pp

@@ -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:[email protected];
-    Conn.Active:=True;
-    Writeln('Connected !!');
-    Conn.Active:=False;
-  Finally
-    Conn.free;
-  end;
-end;
-
-begin
-  With Tapp.Create do
-    Try
-      Run;
-    Finally
-      Free;
-    end;
-end.

+ 0 - 19
packages/fcl-db/src/unmaintained/odbc/testcon.pp

@@ -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.

+ 0 - 20
packages/fcl-db/src/unmaintained/odbc/testdrcon.pp

@@ -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.

+ 0 - 45
packages/fcl-db/src/unmaintained/odbc/testenv.pp

@@ -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.

+ 0 - 29
packages/fcl-db/src/unmaintained/odbc/testfl.pp

@@ -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.

BIN
packages/fcl-db/src/unmaintained/odbc/testodbc.mdb


+ 0 - 33
packages/fcl-db/src/unmaintained/odbc/testpa.pp

@@ -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.

+ 0 - 29
packages/fcl-db/src/unmaintained/odbc/testpk.pp

@@ -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.

+ 0 - 29
packages/fcl-db/src/unmaintained/odbc/testpr.pp

@@ -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.

+ 0 - 102
packages/fcl-db/src/unmaintained/odbc/testsql.pp

@@ -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.

+ 0 - 62
packages/fcl-db/src/unmaintained/odbc/testst.pp

@@ -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.

+ 0 - 31
packages/fcl-db/src/unmaintained/odbc/testtl.pp

@@ -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.

+ 0 - 2048
packages/fcl-db/src/unmaintained/sqlite/Makefile

@@ -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:

+ 0 - 24
packages/fcl-db/src/unmaintained/sqlite/Makefile.fpc

@@ -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:

+ 0 - 1301
packages/fcl-db/src/unmaintained/sqlite/sqlitedataset.pas

@@ -1,1301 +0,0 @@
-{$mode objfpc}
-{$h+}
-unit SQLiteDataset;
-{
-Improved class sqLite,copyright(c) 2002-2003 Marcin Krzetowski
[email protected]
-http://www.a-i.prv.pl
-simple class interface for SQLite. Hacked in by Ben Hochstrasser ([email protected])
-Thanks to Roger Reghin ([email protected]) 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.