Prechádzať zdrojové kódy

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 rokov pred
rodič
commit
79ad95c115
58 zmenil súbory, kde vykonal 621 pridanie a 22079 odobranie
  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/sqliteds.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.fpc -text
 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/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/*.exe
 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
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-embedded
@@ -233,157 +233,157 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-db
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/sqlite
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained  src/dbase src/sqlite
+override TARGET_DIRS+=src/sdf src/memds src/sqldb  src/dbase src/sqlite
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_DIRS+=src/sdf src/memds src/sqldb src/unmaintained
+override TARGET_DIRS+=src/sdf src/memds src/sqldb
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset
@@ -3352,7 +3352,6 @@ ifeq ($(FULL_TARGET),i386-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3360,13 +3359,11 @@ ifeq ($(FULL_TARGET),i386-go32v2)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3374,13 +3371,11 @@ ifeq ($(FULL_TARGET),i386-os2)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3388,76 +3383,64 @@ ifeq ($(FULL_TARGET),i386-beos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3465,19 +3448,16 @@ ifeq ($(FULL_TARGET),i386-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3485,7 +3465,6 @@ ifeq ($(FULL_TARGET),m68k-freebsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3493,45 +3472,38 @@ ifeq ($(FULL_TARGET),m68k-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3539,45 +3511,38 @@ ifeq ($(FULL_TARGET),powerpc-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3585,26 +3550,22 @@ ifeq ($(FULL_TARGET),sparc-netbsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3612,7 +3573,6 @@ ifeq ($(FULL_TARGET),x86_64-freebsd)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3620,20 +3580,17 @@ ifeq ($(FULL_TARGET),x86_64-win64)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3641,13 +3598,11 @@ ifeq ($(FULL_TARGET),arm-palmos)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3655,31 +3610,26 @@ ifeq ($(FULL_TARGET),arm-gba)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 TARGET_DIRS_SRC/DBASE=1
 TARGET_DIRS_SRC/SQLITE=1
 endif
@@ -3687,7 +3637,6 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
 TARGET_DIRS_SRC/SDF=1
 TARGET_DIRS_SRC/MEMDS=1
 TARGET_DIRS_SRC/SQLDB=1
-TARGET_DIRS_SRC/UNMAINTAINED=1
 endif
 ifdef TARGET_DIRS_SRC/SDF
 src/sdf_all:
@@ -3824,51 +3773,6 @@ src/sqldb:
 	$(MAKE) -C src/sqldb all
 .PHONY: src/sqldb_all src/sqldb_debug src/sqldb_smart src/sqldb_release src/sqldb_units src/sqldb_examples src/sqldb_shared src/sqldb_install src/sqldb_sourceinstall src/sqldb_exampleinstall src/sqldb_distinstall src/sqldb_zipinstall src/sqldb_zipsourceinstall src/sqldb_zipexampleinstall src/sqldb_zipdistinstall src/sqldb_clean src/sqldb_distclean src/sqldb_cleanall src/sqldb_info src/sqldb_makefiles src/sqldb
 endif
-ifdef TARGET_DIRS_SRC/UNMAINTAINED
-src/unmaintained_all:
-	$(MAKE) -C src/unmaintained all
-src/unmaintained_debug:
-	$(MAKE) -C src/unmaintained debug
-src/unmaintained_smart:
-	$(MAKE) -C src/unmaintained smart
-src/unmaintained_release:
-	$(MAKE) -C src/unmaintained release
-src/unmaintained_units:
-	$(MAKE) -C src/unmaintained units
-src/unmaintained_examples:
-	$(MAKE) -C src/unmaintained examples
-src/unmaintained_shared:
-	$(MAKE) -C src/unmaintained shared
-src/unmaintained_install:
-	$(MAKE) -C src/unmaintained install
-src/unmaintained_sourceinstall:
-	$(MAKE) -C src/unmaintained sourceinstall
-src/unmaintained_exampleinstall:
-	$(MAKE) -C src/unmaintained exampleinstall
-src/unmaintained_distinstall:
-	$(MAKE) -C src/unmaintained distinstall
-src/unmaintained_zipinstall:
-	$(MAKE) -C src/unmaintained zipinstall
-src/unmaintained_zipsourceinstall:
-	$(MAKE) -C src/unmaintained zipsourceinstall
-src/unmaintained_zipexampleinstall:
-	$(MAKE) -C src/unmaintained zipexampleinstall
-src/unmaintained_zipdistinstall:
-	$(MAKE) -C src/unmaintained zipdistinstall
-src/unmaintained_clean:
-	$(MAKE) -C src/unmaintained clean
-src/unmaintained_distclean:
-	$(MAKE) -C src/unmaintained distclean
-src/unmaintained_cleanall:
-	$(MAKE) -C src/unmaintained cleanall
-src/unmaintained_info:
-	$(MAKE) -C src/unmaintained info
-src/unmaintained_makefiles:
-	$(MAKE) -C src/unmaintained makefiles
-src/unmaintained:
-	$(MAKE) -C src/unmaintained all
-.PHONY: src/unmaintained_all src/unmaintained_debug src/unmaintained_smart src/unmaintained_release src/unmaintained_units src/unmaintained_examples src/unmaintained_shared src/unmaintained_install src/unmaintained_sourceinstall src/unmaintained_exampleinstall src/unmaintained_distinstall src/unmaintained_zipinstall src/unmaintained_zipsourceinstall src/unmaintained_zipexampleinstall src/unmaintained_zipdistinstall src/unmaintained_clean src/unmaintained_distclean src/unmaintained_cleanall src/unmaintained_info src/unmaintained_makefiles src/unmaintained
-endif
 ifdef TARGET_DIRS_SRC/DBASE
 src/dbase_all:
 	$(MAKE) -C src/dbase all

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

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

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

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

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

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

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

@@ -329,12 +329,12 @@ begin
           Error;
       vtAnsiString:
         AsString := string(VAnsiString);
-//      vtCurrency:
-//        AsCurrency := VCurrency^;
+      vtCurrency:
+        AsCurrency := VCurrency^;
       vtVariant:
         if not VarIsClear(VVariant^) then Self.Value := VVariant^;
       vtWideString:
-        AsString := WideString(VWideString);
+        AsWideString := WideString(VWideString);
       vtInt64:
 {$ifdef fpc}
         Self.Value := VInt64^;
@@ -429,6 +429,11 @@ begin
   Result := GetClassDesc;
 end;
 
+function TField.GetAsWideString: WideString;
+begin
+  Result := GetAsString;
+end;
+
 function TField.GetOldValue: Variant;
 
 var SaveState : TDatasetState;
@@ -750,6 +755,12 @@ begin
   Raise AccessError(SString);
 end;
 
+procedure TField.SetAsWideString(const aValue: WideString);
+begin
+  SetAsString(aValue);
+end;
+
+
 procedure TField.SetData(Buffer: Pointer);
 
 begin
@@ -793,7 +804,7 @@ end;
 procedure TField.SetFieldType(AValue: TFieldType);
 
 begin
-  //!! To be implemented
+  { empty }
 end;
 
 procedure TField.SetParentComponent(AParent: TComponent);
@@ -1077,6 +1088,91 @@ begin
   SetAsString(AValue);
 end;
 
+{ ---------------------------------------------------------------------
+    TWideStringField
+  ---------------------------------------------------------------------}
+
+class procedure TWideStringField.CheckTypeSize(aValue: Integer);
+begin
+  if aValue <= 0 then
+    DatabaseErrorFmt(SInvalidFieldSize,[aValue]);
+end;
+
+constructor TWideStringField.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  SetDataType(ftWideString);
+end;
+
+function TWideStringField.GetValue(var aValue: WideString): Boolean;
+var
+  FixBuffer : array[0..dsMaxStringSize div 2] of WideChar;
+  DynBuffer : array of WideChar;
+  Buffer    : PWideChar;
+begin
+  if DataSize <= dsMaxStringSize then begin
+    Result := GetData(@FixBuffer, False);
+    aValue := FixBuffer;
+  end else begin
+    SetLength(DynBuffer, Succ(Size));
+    Buffer := PWideChar(DynBuffer);
+    Result := GetData(Buffer, False);
+    if Result then
+      aValue := Buffer;
+  end;
+end;
+
+function TWideStringField.GetAsString: string;
+begin
+  Result := GetAsWideString;
+end;
+
+procedure TWideStringField.SetAsString(const aValue: string);
+begin
+  SetAsWideString(aValue);
+end;
+
+function TWideStringField.GetAsVariant: Variant;
+var
+  ws: WideString;
+begin
+  if GetValue(ws) then
+    Result := ws
+  else
+    Result := Null;
+end;
+
+procedure TWideStringField.SetVarValue(const aValue: Variant);
+begin
+  SetAsWideString(aValue);
+end;
+
+function TWideStringField.GetAsWideString: WideString;
+begin
+  if not GetValue(Result) then
+    Result := '';
+end;
+
+procedure TWideStringField.SetAsWideString(const aValue: WideString);
+const
+  NullWideChar : WideChar = #0;
+var
+  Buffer : PWideChar;
+begin
+  if Length(aValue)>0 then
+    Buffer := PWideChar(@aValue[1])
+  else
+    Buffer := @NullWideChar;
+  SetData(Buffer, False);
+end;
+
+function TWideStringField.GetDataSize: Word;
+begin
+  Result :=
+    (Size + 1) * 2;
+end;
+
+
 { ---------------------------------------------------------------------
     TNumericField
   ---------------------------------------------------------------------}
@@ -2181,14 +2277,37 @@ end;
 
 function TBlobField.GetAsString: string;
 var
-  Stream: TStream;
+  Stream : TStream;
+  Len    : Integer;
 begin
   Stream := GetBlobStream(bmRead);
   if Stream <> nil then
     With Stream do
       try
-        SetLength(Result,Size);
-        ReadBuffer(Pointer(Result)^,Size);
+        Len := Size;
+        SetLength(Result, Len);
+        if Len > 0 then
+          ReadBuffer(Result[1], Len);
+      finally
+        Free
+      end
+  else
+    Result := '';
+end;
+
+function TBlobField.GetAsWideString: WideString;
+var
+  Stream : TStream;
+  Len    : Integer;
+begin
+  Stream := GetBlobStream(bmRead);
+  if Stream <> nil then
+    With Stream do
+      try
+        Len := Size;
+        SetLength(Result,Len div 2);
+        if Len > 0 then
+          ReadBuffer(Result[1] ,Len);
       finally
         Free
       end
@@ -2250,11 +2369,29 @@ end;
 
 
 procedure TBlobField.SetAsString(const AValue: string);
+var
+  Len : Integer;
+begin
+  With GetBlobStream(bmwrite) do
+    try
+      Len := Length(Avalue);
+      if Len > 0 then
+        WriteBuffer(aValue[1], Len);
+    finally
+      Free;
+    end;
+end;
 
+
+procedure TBlobField.SetAsWideString(const AValue: WideString);
+var
+  Len : Integer;
 begin
   With GetBlobStream(bmwrite) do
     try
-      WriteBuffer(Pointer(Avalue)^,Length(Avalue));
+      Len := Length(Avalue) * 2;
+      if Len > 0 then
+        WriteBuffer(aValue[1], Len);
     finally
       Free;
     end;
@@ -2355,7 +2492,6 @@ begin
   end;
 end;
 
-
 procedure TBlobField.SetFieldType(AValue: TFieldType);
 
 begin
@@ -2363,8 +2499,6 @@ begin
     SetDatatype(Avalue);
 end;
 
-
-
 { TMemoField }
 
 constructor TMemoField.Create(AOwner: TComponent);
@@ -2374,6 +2508,51 @@ begin
   SetDataType(ftMemo);
 end;
 
+function TMemoField.GetAsWideString: WideString;
+begin
+  Result := GetAsString;
+end;
+
+procedure TMemoField.SetAsWideString(const aValue: WideString);
+begin
+  SetAsString(aValue);
+end;
+
+{ TWideMemoField }
+
+constructor TWideMemoField.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  SetDataType(ftWideMemo);
+end;
+
+function TWideMemoField.GetAsString: string;
+begin
+  Result := GetAsWideString;
+end;
+
+procedure TWideMemoField.SetAsString(const aValue: string);
+begin
+  SetAsWideString(aValue);
+end;
+
+function TWideMemoField.GetAsVariant: Variant;
+
+Var s : string;
+
+begin
+  if not GetIsNull then
+    begin
+    s := GetAsWideString;
+    result := s;
+    end
+  else result := Null;
+end;
+
+procedure TWideMemoField.SetVarValue(const AValue: Variant);
+begin
+  SetAsWideString(AValue);
+end;
 
 { TGraphicField }
 
@@ -2384,6 +2563,133 @@ begin
   SetDataType(ftGraphic);
 end;
 
+{ TGuidField }
+
+constructor TGuidField.Create(AOwner: TComponent);
+begin
+  Size := 38;
+  inherited Create(AOwner);
+  SetDataType(ftGuid);
+end;
+
+class procedure TGuidField.CheckTypeSize(AValue: LongInt);
+begin
+  if aValue <> 38 then
+    DatabaseErrorFmt(SInvalidFieldSize,[AValue]);
+end;
+
+function TGuidField.GetAsGuid: TGUID;
+const
+  nullguid: TGUID = '{00000000-0000-0000-0000-000000000000}';
+var
+  S: string;
+begin
+  S := GetAsString;
+  if S = '' then
+    Result := nullguid
+  else
+    Result := StringToGuid(S);
+end;
+
+function TGuidField.GetDefaultWidth: LongInt;
+begin
+  Result := 38;
+end;
+
+procedure TGuidField.SetAsGuid(const aValue: TGUID);
+begin
+  SetAsString(GuidToString(aValue));
+end;
+
+function TVariantField.GetDefaultWidth: Integer;
+begin
+  Result := 15;
+end;
+
+{ TVariantField }
+
+constructor TVariantField.Create(AOwner: TComponent);
+begin
+  inherited Create(AOwner);
+  SetDataType(ftVariant);
+end;
+
+class procedure TVariantField.CheckTypeSize(aValue: Integer);
+begin
+  { empty }
+end;
+
+function TVariantField.GetAsBoolean: Boolean;
+begin
+  Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsDateTime: TDateTime;
+begin
+  Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsFloat: Double;
+begin
+  Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsInteger: Longint;
+begin
+  Result := GetAsVariant;
+end;
+
+function TVariantField.GetAsString: string;
+begin
+  Result := VarToStr(GetAsVariant);
+end;
+
+function TVariantField.GetAsWideString: WideString;
+begin
+  Result := VarToWideStr(GetAsVariant);
+end;
+
+function TVariantField.GetAsVariant: Variant;
+begin
+  if not GetData(@Result) then
+    Result := Null;
+end;
+
+procedure TVariantField.SetAsBoolean(aValue: Boolean);
+begin
+  SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsDateTime(aValue: TDateTime);
+begin
+  SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsFloat(aValue: Double);
+begin
+  SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsInteger(aValue: Longint);
+begin
+  SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsString(const aValue: string);
+begin
+  SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetAsWideString(const aValue: WideString);
+begin
+  SetVarValue(aValue);
+end;
+
+procedure TVariantField.SetVarValue(const aValue: Variant);
+begin
+  SetData(@aValue);
+end;
+
 
 { TFields }
 

+ 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'
     );
 

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

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

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

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

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

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

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