Kaynağa Gözat

Merged revisions 8874,8879,8885-8889,8891-8893,8895,8897,8912,8917,8929,8933,8935-8937,8939,8941-8942,8950,8979-8982,8985,8987,8989,8997-8998,9000-9006,9008-9009,9021,9025,9033,9035,9059,9062,9065-9066,9074,9076-9082,9084,9086,9088-9090,9096,9108,9114,9116,9122,9124-9125,9132-9133,9140-9141,9145-9148,9167,9170,9185,9211,9216,9225-9227,9234,9236-9239 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r8874 | marco | 2007-10-21 12:41:51 +0200 (Sun, 21 Oct 2007) | 1 line

* Initial tregistryinfile skeletons. Still looking for test code.
........
r8929 | peter | 2007-10-25 21:19:03 +0200 (Thu, 25 Oct 2007) | 2 lines

* move paszlib
........
r8933 | peter | 2007-10-25 21:51:44 +0200 (Thu, 25 Oct 2007) | 2 lines

* new directory structur
........
r8935 | peter | 2007-10-25 22:12:36 +0200 (Thu, 25 Oct 2007) | 2 lines

* zipper,zstream moved to paszlib
........
r8936 | peter | 2007-10-25 22:16:21 +0200 (Thu, 25 Oct 2007) | 2 lines

* move hash
........
r8937 | peter | 2007-10-25 22:20:08 +0200 (Thu, 25 Oct 2007) | 2 lines

* forgot to update
........
r8939 | peter | 2007-10-25 22:34:45 +0200 (Thu, 25 Oct 2007) | 2 lines

* paszlib is needed for zstream
........
r8941 | jonas | 2007-10-25 23:00:21 +0200 (Thu, 25 Oct 2007) | 2 lines

* fixed (some?) missing dependencies
........
r8979 | peter | 2007-10-28 22:26:51 +0100 (Sun, 28 Oct 2007) | 2 lines

* created fcl-async and fcl-process packages
........
r8980 | peter | 2007-10-28 22:33:49 +0100 (Sun, 28 Oct 2007) | 2 lines

* regenerate to fix dependency
........
r8981 | peter | 2007-10-28 22:56:48 +0100 (Sun, 28 Oct 2007) | 2 lines

* depend on fcl-process
........
r8982 | peter | 2007-10-28 23:03:08 +0100 (Sun, 28 Oct 2007) | 2 lines

* fcl-web depends on fcl-process
........
r8985 | peter | 2007-10-28 23:15:50 +0100 (Sun, 28 Oct 2007) | 2 lines

* fcl-async is only for unix
........
r8987 | peter | 2007-10-29 10:04:22 +0100 (Mon, 29 Oct 2007) | 2 lines

* fpcdir fixed
........
r8989 | peter | 2007-10-29 17:07:13 +0100 (Mon, 29 Oct 2007) | 2 lines

* fixed includedirs
........
r8997 | peter | 2007-10-30 08:09:26 +0100 (Tue, 30 Oct 2007) | 2 lines

* fix unixcrypt target
........
r9008 | peter | 2007-10-30 22:56:09 +0100 (Tue, 30 Oct 2007) | 2 lines

* typo
........
r9009 | peter | 2007-10-30 22:56:35 +0100 (Tue, 30 Oct 2007) | 2 lines

* updated
........
r9062 | michael | 2007-11-02 21:21:11 +0100 (Fri, 02 Nov 2007) | 1 line

* Fixed needscompile for target
........
r9065 | michael | 2007-11-02 21:51:44 +0100 (Fri, 02 Nov 2007) | 1 line

* Fixed archiving. Added default source directory
........
r9066 | michael | 2007-11-02 21:52:16 +0100 (Fri, 02 Nov 2007) | 1 line

* Fixed paths
........
r9116 | peter | 2007-11-03 21:20:03 +0100 (Sat, 03 Nov 2007) | 2 lines

* merged into fpmake.pp
........
r9122 | peter | 2007-11-04 00:06:21 +0100 (Sun, 04 Nov 2007) | 2 lines

* updated
........
r9124 | peter | 2007-11-04 00:34:25 +0100 (Sun, 04 Nov 2007) | 2 lines

* add fcl-process dependency
........
r9125 | peter | 2007-11-04 00:37:27 +0100 (Sun, 04 Nov 2007) | 7 lines

* localunitdir,globalunitdir added that will be used during compiling, if not provided the
default is to use the unitinstalldir
* Add unit search dirs with wildcard, like fpc.cfg also does
* Check for dependencies is a simple check if the package has a directory in the
unit search dirs
* force exitcode setting in run to not force the user to use Halt(Run)
........
r9140 | peter | 2007-11-04 23:40:38 +0100 (Sun, 04 Nov 2007) | 2 lines

* fpmake.pp added
........
r9141 | peter | 2007-11-04 23:44:04 +0100 (Sun, 04 Nov 2007) | 3 lines

* sourcepath, includepath file searching
* dependency and path can be added for cpu, os combinations
........
r9145 | peter | 2007-11-05 23:35:14 +0100 (Mon, 05 Nov 2007) | 5 lines

* archive files for all targets
* add oscpupossible list to reduce the cpu-os combinations,
the table is copied from fpcmake
* add bigger separates to the source
........
r9146 | hajny | 2007-11-05 23:53:00 +0100 (Mon, 05 Nov 2007) | 1 line

* do not try to build fcl-process for GO32v2, Watcom, etc.
........
r9147 | peter | 2007-11-06 07:59:33 +0100 (Tue, 06 Nov 2007) | 2 lines

* fix OS macro
........
r9148 | peter | 2007-11-06 08:20:43 +0100 (Tue, 06 Nov 2007) | 2 lines

* remove old program after end.
........
r9167 | peter | 2007-11-09 01:59:39 +0100 (Fri, 09 Nov 2007) | 2 lines

* dependency checking improved and more verbose
........
r9170 | hajny | 2007-11-10 10:23:54 +0100 (Sat, 10 Nov 2007) | 1 line

* workaround trying to allow building GO32v2 snapshots (+ correction for rsts in Makefile)
........
r9216 | peter | 2007-11-12 18:08:36 +0100 (Mon, 12 Nov 2007) | 2 lines

* OSs to OSes
........
r9225 | hajny | 2007-11-12 23:56:55 +0100 (Mon, 12 Nov 2007) | 1 line

* yet another fix for GO32v2 building
........
r9226 | hajny | 2007-11-12 23:59:13 +0100 (Mon, 12 Nov 2007) | 1 line

* units for OS/2 missing in previous commit
........
r9227 | peter | 2007-11-13 09:24:32 +0100 (Tue, 13 Nov 2007) | 2 lines

* fix modetostring
........
r9234 | peter | 2007-11-13 19:38:14 +0100 (Tue, 13 Nov 2007) | 3 lines

* replace nodefaults with nofpccfg, the nodefaults was the same as not
specifying a config file
........
r9239 | peter | 2007-11-13 20:23:34 +0100 (Tue, 13 Nov 2007) | 2 lines

* fix executable not found exception
........

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

peter 18 yıl önce
ebeveyn
işleme
846ba32bca
100 değiştirilmiş dosya ile 6410 ekleme ve 4971 silme
  1. 122 98
      .gitattributes
  2. 15 71
      .gitignore
  3. 267 55
      packages/Makefile
  4. 38 23
      packages/Makefile.fpc
  5. 86 316
      packages/base/Makefile
  6. 8 15
      packages/base/Makefile.fpc
  7. 0 10
      packages/base/hash/fpmake.inc
  8. 0 17
      packages/base/hash/fpmake.pp
  9. 0 28
      packages/base/libasync/Makefile.fpc
  10. 0 21
      packages/base/libasync/fpmake.inc
  11. 0 17
      packages/base/libasync/fpmake.pp
  12. 0 24
      packages/base/paszlib/Makefile.fpc
  13. 0 17
      packages/base/paszlib/fpmake.pp
  14. 2249 0
      packages/fcl-async/Makefile
  15. 37 0
      packages/fcl-async/Makefile.fpc
  16. 0 0
      packages/fcl-async/src/fpasync.pp
  17. 0 0
      packages/fcl-async/src/libasync.inc
  18. 0 0
      packages/fcl-async/src/libasynch.inc
  19. 0 0
      packages/fcl-async/src/unix/asyncio.inc
  20. 0 0
      packages/fcl-async/src/unix/asyncioh.inc
  21. 0 0
      packages/fcl-async/src/unix/libasync.pp
  22. 134 564
      packages/fcl-base/Makefile
  23. 18 40
      packages/fcl-base/Makefile.fpc
  24. 0 39
      packages/fcl-base/src/amiga/classes.pp
  25. 0 92
      packages/fcl-base/src/amiga/thread.inc
  26. 0 42
      packages/fcl-base/src/beos/classes.pp
  27. 0 92
      packages/fcl-base/src/beos/thread.inc
  28. 0 618
      packages/fcl-base/src/inc/htmldefs.pp
  29. 0 440
      packages/fcl-base/src/inc/zstream.pp
  30. 0 42
      packages/fcl-base/src/qnx/classes.pp
  31. 0 22
      packages/fcl-base/src/qnx/eventlog.inc
  32. 965 965
      packages/fcl-base/src/win/ServiceManager.pas
  33. 44 150
      packages/fcl-image/Makefile
  34. 1 1
      packages/fcl-image/Makefile.fpc
  35. 328 226
      packages/fcl-net/Makefile
  36. 28 18
      packages/fcl-net/Makefile.fpc
  37. 0 0
      packages/fcl-net/src/netware/resolve.inc
  38. 0 0
      packages/fcl-net/src/netwlibc/resolve.inc
  39. 0 0
      packages/fcl-net/src/os2/resolve.inc
  40. 0 0
      packages/fcl-net/src/resolve.pp
  41. 0 0
      packages/fcl-net/src/ssockets.pp
  42. 0 0
      packages/fcl-net/src/unix/resolve.inc
  43. 0 0
      packages/fcl-net/src/win/resolve.inc
  44. 0 0
      packages/fcl-net/src/wince/resolve.inc
  45. 1 1
      packages/fcl-net/tests/Makefile
  46. 1 1
      packages/fcl-net/tests/Makefile.fpc
  47. 0 0
      packages/fcl-net/tests/readme.txt
  48. 0 0
      packages/fcl-net/tests/rpccli.pp
  49. 0 0
      packages/fcl-net/tests/rpcserv.pp
  50. 0 0
      packages/fcl-net/tests/svrclass.pp
  51. 0 0
      packages/fcl-net/tests/svrclass_xmlrpc.pp
  52. 538 163
      packages/fcl-process/Makefile
  53. 62 0
      packages/fcl-process/Makefile.fpc
  54. 42 0
      packages/fcl-process/fpmake.pp
  55. 0 0
      packages/fcl-process/src/amiga/pipes.inc
  56. 42 0
      packages/fcl-process/src/amiga/process.inc
  57. 0 0
      packages/fcl-process/src/beos/pipes.inc
  58. 0 0
      packages/fcl-process/src/dbugintf.pp
  59. 0 0
      packages/fcl-process/src/dbugmsg.pp
  60. 0 0
      packages/fcl-process/src/go32v2/pipes.inc
  61. 48 0
      packages/fcl-process/src/go32v2/process.inc
  62. 0 0
      packages/fcl-process/src/morphos/pipes.inc
  63. 42 0
      packages/fcl-process/src/morphos/process.inc
  64. 0 0
      packages/fcl-process/src/netware/pipes.inc
  65. 42 0
      packages/fcl-process/src/netware/process.inc
  66. 0 0
      packages/fcl-process/src/netwlibc/pipes.inc
  67. 42 0
      packages/fcl-process/src/netwlibc/process.inc
  68. 0 0
      packages/fcl-process/src/os2/pipes.inc
  69. 42 0
      packages/fcl-process/src/os2/process.inc
  70. 201 0
      packages/fcl-process/src/os2/simpleipc.inc
  71. 0 0
      packages/fcl-process/src/pipes.pp
  72. 0 0
      packages/fcl-process/src/process.pp
  73. 0 0
      packages/fcl-process/src/process.txt
  74. 0 0
      packages/fcl-process/src/simpleipc.pp
  75. 0 0
      packages/fcl-process/src/unix/pipes.inc
  76. 0 0
      packages/fcl-process/src/unix/process.inc
  77. 0 0
      packages/fcl-process/src/unix/simpleipc.inc
  78. 0 0
      packages/fcl-process/src/win/pipes.inc
  79. 0 0
      packages/fcl-process/src/win/process.inc
  80. 0 0
      packages/fcl-process/src/win/simpleipc.inc
  81. 0 0
      packages/fcl-process/src/wince/pipes.inc
  82. 0 0
      packages/fcl-process/src/wince/process.inc
  83. 0 0
      packages/fcl-process/src/wince/simpleipc.inc
  84. 171 295
      packages/fcl-web/Makefile
  85. 1 1
      packages/fcl-web/Makefile.fpc
  86. 106 248
      packages/fpmkunit/Makefile
  87. 2 3
      packages/fpmkunit/Makefile.fpc
  88. 0 9
      packages/fpmkunit/fpmake.inc
  89. 20 6
      packages/fpmkunit/fpmake.pp
  90. 396 173
      packages/fpmkunit/src/fpmkunit.pp
  91. 191 5
      packages/hash/Makefile
  92. 5 2
      packages/hash/Makefile.fpc
  93. 15 0
      packages/hash/fpmake.inc
  94. 33 0
      packages/hash/fpmake.pp
  95. 0 0
      packages/hash/src/crc.pas
  96. 0 0
      packages/hash/src/md5.pp
  97. 0 0
      packages/hash/src/ntlm.pas
  98. 0 0
      packages/hash/src/unixcrypt.pas
  99. 27 1
      packages/hash/src/uuid.pas
  100. 0 0
      packages/hash/tests/md5.ref

+ 122 - 98
.gitattributes

@@ -782,17 +782,6 @@ packages/base/gdbint/gdbver.pp svneol=native#text/plain
 packages/base/gdbint/gdbver_nogdb.inc svneol=native#text/x-pascal
 packages/base/gdbint/symify.pp svneol=native#text/plain
 packages/base/gdbint/testgdb.pp svneol=native#text/plain
-packages/base/hash/Makefile svneol=native#text/plain
-packages/base/hash/Makefile.fpc svneol=native#text/plain
-packages/base/hash/crc.pas -text
-packages/base/hash/fpmake.inc svneol=native#text/plain
-packages/base/hash/fpmake.pp svneol=native#text/plain
-packages/base/hash/md5.pp svneol=native#text/plain
-packages/base/hash/md5.ref -text
-packages/base/hash/mdtest.pas svneol=native#text/plain
-packages/base/hash/ntlm.pas svneol=native#text/plain
-packages/base/hash/unixcrypt.pas -text
-packages/base/hash/uuid.pas svneol=native#text/plain
 packages/base/httpd/Makefile svneol=native#text/plain
 packages/base/httpd/Makefile.fpc svneol=native#text/plain
 packages/base/httpd/examples/Makefile svneol=native#text/plain
@@ -967,13 +956,6 @@ packages/base/imagemagick/wand/magick_image.inc svneol=native#text/plain
 packages/base/imagemagick/wand/magick_wand.pas svneol=native#text/plain
 packages/base/imagemagick/wand/pixel_iterator.inc svneol=native#text/plain
 packages/base/imagemagick/wand/pixel_wand.inc svneol=native#text/plain
-packages/base/libasync/Makefile svneol=native#text/plain
-packages/base/libasync/Makefile.fpc svneol=native#text/plain
-packages/base/libasync/fpmake.inc svneol=native#text/plain
-packages/base/libasync/fpmake.pp svneol=native#text/plain
-packages/base/libasync/libasync.inc svneol=native#text/plain
-packages/base/libasync/libasynch.inc svneol=native#text/plain
-packages/base/libasync/unix/libasync.pp svneol=native#text/plain
 packages/base/libc/Makefile svneol=native#text/plain
 packages/base/libc/Makefile.fpc svneol=native#text/plain
 packages/base/libc/README -text
@@ -1418,36 +1400,6 @@ packages/base/pasjpeg/wrbmp.pas svneol=native#text/plain
 packages/base/pasjpeg/wrjpgcom.pas svneol=native#text/plain
 packages/base/pasjpeg/wrppm.pas svneol=native#text/plain
 packages/base/pasjpeg/wrtarga.pas svneol=native#text/plain
-packages/base/paszlib/Makefile svneol=native#text/plain
-packages/base/paszlib/Makefile.fpc svneol=native#text/plain
-packages/base/paszlib/adler.pas svneol=native#text/plain
-packages/base/paszlib/changes.txt svneol=native#text/plain
-packages/base/paszlib/demo/Makefile svneol=native#text/plain
-packages/base/paszlib/demo/Makefile.fpc svneol=native#text/plain
-packages/base/paszlib/demo/example.pas svneol=native#text/plain
-packages/base/paszlib/demo/minigzip.pas svneol=native#text/plain
-packages/base/paszlib/demo/miniunz.pas svneol=native#text/plain
-packages/base/paszlib/demo/minizip.pas svneol=native#text/plain
-packages/base/paszlib/fpmake.inc svneol=native#text/plain
-packages/base/paszlib/fpmake.pp svneol=native#text/plain
-packages/base/paszlib/gzio.pas svneol=native#text/plain
-packages/base/paszlib/infblock.pas svneol=native#text/plain
-packages/base/paszlib/infcodes.pas svneol=native#text/plain
-packages/base/paszlib/inffast.pas svneol=native#text/plain
-packages/base/paszlib/inftrees.pas svneol=native#text/plain
-packages/base/paszlib/infutil.pas svneol=native#text/plain
-packages/base/paszlib/paszlib.pas svneol=native#text/plain
-packages/base/paszlib/readme.txt svneol=native#text/plain
-packages/base/paszlib/trees.pas svneol=native#text/plain
-packages/base/paszlib/unzip.pas svneol=native#text/plain
-packages/base/paszlib/zbase.pas svneol=native#text/plain
-packages/base/paszlib/zcompres.pas svneol=native#text/plain
-packages/base/paszlib/zconf.inc svneol=native#text/plain
-packages/base/paszlib/zdeflate.pas svneol=native#text/plain
-packages/base/paszlib/zinflate.pas svneol=native#text/plain
-packages/base/paszlib/zip.pas svneol=native#text/plain
-packages/base/paszlib/ziputils.pas svneol=native#text/plain
-packages/base/paszlib/zuncompr.pas svneol=native#text/plain
 packages/base/postgres/Makefile svneol=native#text/plain
 packages/base/postgres/Makefile.fpc svneol=native#text/plain
 packages/base/postgres/README -text
@@ -3867,21 +3819,22 @@ packages/extra/zlib/Makefile.fpc svneol=native#text/plain
 packages/extra/zlib/fpmake.inc svneol=native#text/plain
 packages/extra/zlib/fpmake.pp svneol=native#text/plain
 packages/extra/zlib/zlib.pp svneol=native#text/plain
+packages/fcl-async/Makefile svneol=native#text/plain
+packages/fcl-async/Makefile.fpc svneol=native#text/plain
+packages/fcl-async/src/fpasync.pp svneol=native#text/plain
+packages/fcl-async/src/libasync.inc svneol=native#text/plain
+packages/fcl-async/src/libasynch.inc svneol=native#text/plain
+packages/fcl-async/src/unix/asyncio.inc svneol=native#text/plain
+packages/fcl-async/src/unix/asyncioh.inc svneol=native#text/plain
+packages/fcl-async/src/unix/libasync.pp svneol=native#text/plain
 packages/fcl-base/Makefile svneol=native#text/plain
 packages/fcl-base/Makefile.fpc svneol=native#text/plain
-packages/fcl-base/src/amiga/classes.pp svneol=native#text/plain
 packages/fcl-base/src/amiga/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/amiga/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/amiga/thread.inc svneol=native#text/plain
-packages/fcl-base/src/beos/classes.pp svneol=native#text/plain
 packages/fcl-base/src/beos/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/beos/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/beos/thread.inc svneol=native#text/plain
 packages/fcl-base/src/fpmake.inc svneol=native#text/plain
 packages/fcl-base/src/fpmake.pp svneol=native#text/plain
 packages/fcl-base/src/go32v2/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/go32v2/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/go32v2/pipes.inc svneol=native#text/plain
 packages/fcl-base/src/inc/avl_tree.pp svneol=native#text/plain
 packages/fcl-base/src/inc/base64.pp svneol=native#text/plain
 packages/fcl-base/src/inc/blowfish.pp svneol=native#text/plain
@@ -3891,30 +3844,20 @@ packages/fcl-base/src/inc/cgiapp.pp svneol=native#text/plain
 packages/fcl-base/src/inc/contnrs.pp svneol=native#text/plain
 packages/fcl-base/src/inc/custapp.pp svneol=native#text/plain
 packages/fcl-base/src/inc/daemonapp.pp svneol=native#text/plain
-packages/fcl-base/src/inc/dbugintf.pp svneol=native#text/plain
-packages/fcl-base/src/inc/dbugmsg.pp svneol=native#text/plain
 packages/fcl-base/src/inc/eventlog.pp svneol=native#text/plain
 packages/fcl-base/src/inc/ezcgi.pp svneol=native#text/plain
 packages/fcl-base/src/inc/felog.inc svneol=native#text/plain
-packages/fcl-base/src/inc/fpasync.pp svneol=native#text/plain
 packages/fcl-base/src/inc/fptimer.pp svneol=native#text/plain
 packages/fcl-base/src/inc/gettext.pp svneol=native#text/plain
-packages/fcl-base/src/inc/htmldefs.pp svneol=native#text/plain
 packages/fcl-base/src/inc/idea.pp svneol=native#text/plain
 packages/fcl-base/src/inc/inicol.pp svneol=native#text/plain
 packages/fcl-base/src/inc/inifiles.pp svneol=native#text/plain
 packages/fcl-base/src/inc/iostream.pp svneol=native#text/plain
 packages/fcl-base/src/inc/libtar.pas svneol=native#text/plain
-packages/fcl-base/src/inc/pipes.pp svneol=native#text/plain
 packages/fcl-base/src/inc/pooledmm.pp svneol=native#text/plain
-packages/fcl-base/src/inc/process.pp svneol=native#text/plain
-packages/fcl-base/src/inc/process.txt svneol=native#text/plain
-packages/fcl-base/src/inc/resolve.pp svneol=native#text/plain
 packages/fcl-base/src/inc/rtfdata.inc svneol=native#text/plain
 packages/fcl-base/src/inc/rtfpars.pp svneol=native#text/plain
 packages/fcl-base/src/inc/rttiutils.pp svneol=native#text/plain
-packages/fcl-base/src/inc/simpleipc.pp svneol=native#text/plain
-packages/fcl-base/src/inc/ssockets.pp svneol=native#text/plain
 packages/fcl-base/src/inc/streamcoll.pp svneol=native#text/plain
 packages/fcl-base/src/inc/streamex.pp svneol=native#text/plain
 packages/fcl-base/src/inc/streamio.pp svneol=native#text/plain
@@ -3922,32 +3865,15 @@ packages/fcl-base/src/inc/syncobjs.pp svneol=native#text/plain
 packages/fcl-base/src/inc/wformat.pp svneol=native#text/plain
 packages/fcl-base/src/inc/whtml.pp svneol=native#text/plain
 packages/fcl-base/src/inc/wtex.pp svneol=native#text/plain
-packages/fcl-base/src/inc/zipper.pp svneol=native#text/plain
-packages/fcl-base/src/inc/zstream.pp svneol=native#text/plain
 packages/fcl-base/src/morphos/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/morphos/pipes.inc svneol=native#text/plain
 packages/fcl-base/src/netware/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/netware/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/netware/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/netware/resolve.inc svneol=native#text/plain
 packages/fcl-base/src/netwlibc/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/netwlibc/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/netwlibc/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/netwlibc/resolve.inc svneol=native#text/plain
 packages/fcl-base/src/os2/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/os2/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/os2/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/os2/resolve.inc svneol=native#text/plain
-packages/fcl-base/src/qnx/classes.pp svneol=native#text/plain
-packages/fcl-base/src/qnx/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/unix/asyncio.inc svneol=native#text/plain
-packages/fcl-base/src/unix/asyncioh.inc svneol=native#text/plain
 packages/fcl-base/src/unix/daemonapp.inc svneol=native#text/plain
 packages/fcl-base/src/unix/eventlog.inc svneol=native#text/plain
-packages/fcl-base/src/unix/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/unix/process.inc svneol=native#text/plain
-packages/fcl-base/src/unix/resolve.inc svneol=native#text/plain
-packages/fcl-base/src/unix/simpleipc.inc svneol=native#text/plain
 packages/fcl-base/src/win/ServiceManager.pas -text
 packages/fcl-base/src/win/daemonapp.inc svneol=native#text/plain
 packages/fcl-base/src/win/eventlog.inc svneol=native#text/plain
@@ -3956,16 +3882,8 @@ packages/fcl-base/src/win/fclel.rc -text
 packages/fcl-base/src/win/fclel.res -text
 packages/fcl-base/src/win/fileinfo.pp svneol=native#text/plain
 packages/fcl-base/src/win/httpapp.pp svneol=native#text/plain
-packages/fcl-base/src/win/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/win/process.inc svneol=native#text/plain
-packages/fcl-base/src/win/resolve.inc svneol=native#text/plain
-packages/fcl-base/src/win/simpleipc.inc svneol=native#text/plain
 packages/fcl-base/src/wince/eventlog.inc svneol=native#text/plain
 packages/fcl-base/src/wince/fileinfo.pp svneol=native#text/plain
-packages/fcl-base/src/wince/pipes.inc svneol=native#text/plain
-packages/fcl-base/src/wince/process.inc svneol=native#text/plain
-packages/fcl-base/src/wince/resolve.inc svneol=native#text/plain
-packages/fcl-base/src/wince/simpleipc.inc svneol=native#text/plain
 packages/fcl-base/tests/Makefile svneol=native#text/plain
 packages/fcl-base/tests/Makefile.fpc svneol=native#text/plain
 packages/fcl-base/tests/README -text
@@ -4310,15 +4228,23 @@ packages/fcl-net/src/httpbase.pp svneol=native#text/plain
 packages/fcl-net/src/httpclient.pp svneol=native#text/plain
 packages/fcl-net/src/httpsvlt.pp svneol=native#text/plain
 packages/fcl-net/src/mkxmlrpc.pp svneol=native#text/plain
+packages/fcl-net/src/netware/resolve.inc svneol=native#text/plain
+packages/fcl-net/src/netwlibc/resolve.inc svneol=native#text/plain
+packages/fcl-net/src/os2/resolve.inc svneol=native#text/plain
+packages/fcl-net/src/resolve.pp svneol=native#text/plain
 packages/fcl-net/src/servlets.pp svneol=native#text/plain
-packages/fcl-net/src/tests/Makefile svneol=native#text/plain
-packages/fcl-net/src/tests/Makefile.fpc svneol=native#text/plain
-packages/fcl-net/src/tests/readme.txt svneol=native#text/plain
-packages/fcl-net/src/tests/rpccli.pp svneol=native#text/plain
-packages/fcl-net/src/tests/rpcserv.pp svneol=native#text/plain
-packages/fcl-net/src/tests/svrclass.pp svneol=native#text/plain
-packages/fcl-net/src/tests/svrclass_xmlrpc.pp svneol=native#text/plain
+packages/fcl-net/src/ssockets.pp svneol=native#text/plain
+packages/fcl-net/src/unix/resolve.inc svneol=native#text/plain
+packages/fcl-net/src/win/resolve.inc svneol=native#text/plain
+packages/fcl-net/src/wince/resolve.inc svneol=native#text/plain
 packages/fcl-net/src/xmlrpc.pp svneol=native#text/plain
+packages/fcl-net/tests/Makefile svneol=native#text/plain
+packages/fcl-net/tests/Makefile.fpc svneol=native#text/plain
+packages/fcl-net/tests/readme.txt svneol=native#text/plain
+packages/fcl-net/tests/rpccli.pp svneol=native#text/plain
+packages/fcl-net/tests/rpcserv.pp svneol=native#text/plain
+packages/fcl-net/tests/svrclass.pp svneol=native#text/plain
+packages/fcl-net/tests/svrclass_xmlrpc.pp svneol=native#text/plain
 packages/fcl-passrc/Makefile svneol=native#text/plain
 packages/fcl-passrc/Makefile.fpc svneol=native#text/plain
 packages/fcl-passrc/src/fpmake.inc svneol=native#text/plain
@@ -4328,6 +4254,38 @@ packages/fcl-passrc/src/paswrite.pp svneol=native#text/plain
 packages/fcl-passrc/src/pparser.pp svneol=native#text/plain
 packages/fcl-passrc/src/pscanner.pp svneol=native#text/plain
 packages/fcl-passrc/src/readme.txt svneol=native#text/plain
+packages/fcl-process/Makefile svneol=native#text/plain
+packages/fcl-process/Makefile.fpc svneol=native#text/plain
+packages/fcl-process/fpmake.pp svneol=native#text/plain
+packages/fcl-process/src/amiga/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/amiga/process.inc svneol=native#text/plain
+packages/fcl-process/src/beos/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/dbugintf.pp svneol=native#text/plain
+packages/fcl-process/src/dbugmsg.pp svneol=native#text/plain
+packages/fcl-process/src/go32v2/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/go32v2/process.inc svneol=native#text/plain
+packages/fcl-process/src/morphos/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/morphos/process.inc svneol=native#text/plain
+packages/fcl-process/src/netware/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/netware/process.inc svneol=native#text/plain
+packages/fcl-process/src/netwlibc/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/netwlibc/process.inc svneol=native#text/plain
+packages/fcl-process/src/os2/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/os2/process.inc svneol=native#text/plain
+packages/fcl-process/src/os2/simpleipc.inc svneol=native#text/plain
+packages/fcl-process/src/pipes.pp svneol=native#text/plain
+packages/fcl-process/src/process.pp svneol=native#text/plain
+packages/fcl-process/src/process.txt svneol=native#text/plain
+packages/fcl-process/src/simpleipc.pp svneol=native#text/plain
+packages/fcl-process/src/unix/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/unix/process.inc svneol=native#text/plain
+packages/fcl-process/src/unix/simpleipc.inc svneol=native#text/plain
+packages/fcl-process/src/win/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/win/process.inc svneol=native#text/plain
+packages/fcl-process/src/win/simpleipc.inc svneol=native#text/plain
+packages/fcl-process/src/wince/pipes.inc svneol=native#text/plain
+packages/fcl-process/src/wince/process.inc svneol=native#text/plain
+packages/fcl-process/src/wince/simpleipc.inc svneol=native#text/plain
 packages/fcl-registry/Makefile svneol=native#text/plain
 packages/fcl-registry/Makefile.fpc svneol=native#text/plain
 packages/fcl-registry/src/regdef.inc svneol=native#text/plain
@@ -4387,9 +4345,75 @@ packages/fcl-xml/tests/xmlts.pp svneol=native#text/plain
 packages/fpmake.pp svneol=native#text/plain
 packages/fpmkunit/Makefile svneol=native#text/plain
 packages/fpmkunit/Makefile.fpc svneol=native#text/plain
-packages/fpmkunit/fpmake.inc svneol=native#text/plain
 packages/fpmkunit/fpmake.pp svneol=native#text/plain
 packages/fpmkunit/src/fpmkunit.pp svneol=native#text/plain
+packages/hash/Makefile svneol=native#text/plain
+packages/hash/Makefile.fpc svneol=native#text/plain
+packages/hash/fpmake.inc svneol=native#text/plain
+packages/hash/fpmake.pp svneol=native#text/plain
+packages/hash/src/crc.pas svneol=native#text/plain
+packages/hash/src/md5.pp svneol=native#text/plain
+packages/hash/src/ntlm.pas svneol=native#text/plain
+packages/hash/src/unixcrypt.pas svneol=native#text/plain
+packages/hash/src/uuid.pas svneol=native#text/plain
+packages/hash/tests/md5.ref svneol=native#text/plain
+packages/hash/tests/mdtest.pas svneol=native#text/plain
+packages/paszlib/Makefile svneol=native#text/plain
+packages/paszlib/Makefile.fpc svneol=native#text/plain
+packages/paszlib/adler.pas svneol=native#text/plain
+packages/paszlib/changes.txt svneol=native#text/plain
+packages/paszlib/demo/Makefile svneol=native#text/plain
+packages/paszlib/demo/Makefile.fpc svneol=native#text/plain
+packages/paszlib/demo/example.pas svneol=native#text/plain
+packages/paszlib/demo/minigzip.pas svneol=native#text/plain
+packages/paszlib/demo/miniunz.pas svneol=native#text/plain
+packages/paszlib/demo/minizip.pas svneol=native#text/plain
+packages/paszlib/fpmake.inc svneol=native#text/plain
+packages/paszlib/fpmake.pp svneol=native#text/plain
+packages/paszlib/gzio.pas svneol=native#text/plain
+packages/paszlib/infblock.pas svneol=native#text/plain
+packages/paszlib/infcodes.pas svneol=native#text/plain
+packages/paszlib/inffast.pas svneol=native#text/plain
+packages/paszlib/inftrees.pas svneol=native#text/plain
+packages/paszlib/infutil.pas svneol=native#text/plain
+packages/paszlib/paszlib.pas svneol=native#text/plain
+packages/paszlib/readme.txt svneol=native#text/plain
+packages/paszlib/src/adler.pas svneol=native#text/plain
+packages/paszlib/src/gzio.pas svneol=native#text/plain
+packages/paszlib/src/infblock.pas svneol=native#text/plain
+packages/paszlib/src/infcodes.pas svneol=native#text/plain
+packages/paszlib/src/inffast.pas svneol=native#text/plain
+packages/paszlib/src/inftrees.pas svneol=native#text/plain
+packages/paszlib/src/infutil.pas svneol=native#text/plain
+packages/paszlib/src/paszlib.pas svneol=native#text/plain
+packages/paszlib/src/trees.pas svneol=native#text/plain
+packages/paszlib/src/unzip.pas svneol=native#text/plain
+packages/paszlib/src/zbase.pas svneol=native#text/plain
+packages/paszlib/src/zcompres.pas svneol=native#text/plain
+packages/paszlib/src/zconf.inc svneol=native#text/plain
+packages/paszlib/src/zdeflate.pas svneol=native#text/plain
+packages/paszlib/src/zinflate.pas svneol=native#text/plain
+packages/paszlib/src/zip.pas svneol=native#text/plain
+packages/paszlib/src/zipper.pp svneol=native#text/plain
+packages/paszlib/src/ziputils.pas svneol=native#text/plain
+packages/paszlib/src/zstream.pp svneol=native#text/plain
+packages/paszlib/src/zuncompr.pas svneol=native#text/plain
+packages/paszlib/tests/Makefile svneol=native#text/plain
+packages/paszlib/tests/Makefile.fpc svneol=native#text/plain
+packages/paszlib/tests/example.pas svneol=native#text/plain
+packages/paszlib/tests/minigzip.pas svneol=native#text/plain
+packages/paszlib/tests/miniunz.pas svneol=native#text/plain
+packages/paszlib/tests/minizip.pas svneol=native#text/plain
+packages/paszlib/trees.pas svneol=native#text/plain
+packages/paszlib/unzip.pas svneol=native#text/plain
+packages/paszlib/zbase.pas svneol=native#text/plain
+packages/paszlib/zcompres.pas svneol=native#text/plain
+packages/paszlib/zconf.inc svneol=native#text/plain
+packages/paszlib/zdeflate.pas svneol=native#text/plain
+packages/paszlib/zinflate.pas svneol=native#text/plain
+packages/paszlib/zip.pas svneol=native#text/plain
+packages/paszlib/ziputils.pas svneol=native#text/plain
+packages/paszlib/zuncompr.pas svneol=native#text/plain
 rtl/COPYING -text
 rtl/COPYING.FPC -text
 rtl/Makefile svneol=native#text/plain

+ 15 - 71
.gitignore

@@ -214,13 +214,6 @@ packages/base/gdbint/*.ppu
 packages/base/gdbint/*.s
 packages/base/gdbint/fpcmade.*
 packages/base/gdbint/units
-packages/base/hash/*.bak
-packages/base/hash/*.exe
-packages/base/hash/*.o
-packages/base/hash/*.ppu
-packages/base/hash/*.s
-packages/base/hash/fpcmade.*
-packages/base/hash/units
 packages/base/ibase/*.bak
 packages/base/ibase/*.exe
 packages/base/ibase/*.o
@@ -228,20 +221,6 @@ packages/base/ibase/*.ppu
 packages/base/ibase/*.s
 packages/base/ibase/fpcmade.*
 packages/base/ibase/units
-packages/base/libasync/*.bak
-packages/base/libasync/*.exe
-packages/base/libasync/*.o
-packages/base/libasync/*.ppu
-packages/base/libasync/*.s
-packages/base/libasync/fpcmade.*
-packages/base/libasync/units
-packages/base/libasync/unix/*.bak
-packages/base/libasync/unix/*.exe
-packages/base/libasync/unix/*.o
-packages/base/libasync/unix/*.ppu
-packages/base/libasync/unix/*.s
-packages/base/libasync/unix/fpcmade.*
-packages/base/libasync/unix/units
 packages/base/libc/*.bak
 packages/base/libc/*.exe
 packages/base/libc/*.o
@@ -312,14 +291,6 @@ packages/base/pasjpeg/*.ppu
 packages/base/pasjpeg/*.s
 packages/base/pasjpeg/fpcmade.*
 packages/base/pasjpeg/units
-packages/base/paszlib/*.bak
-packages/base/paszlib/*.exe
-packages/base/paszlib/*.o
-packages/base/paszlib/*.ppu
-packages/base/paszlib/*.s
-packages/base/paszlib/.gdbinit
-packages/base/paszlib/fpcmade.*
-packages/base/paszlib/units
 packages/base/postgres/*.bak
 packages/base/postgres/*.exe
 packages/base/postgres/*.o
@@ -1391,27 +1362,6 @@ packages/fcl-base/src/beos/*.ppu
 packages/fcl-base/src/beos/*.s
 packages/fcl-base/src/beos/fpcmade.*
 packages/fcl-base/src/beos/units
-packages/fcl-base/src/darwin/*.bak
-packages/fcl-base/src/darwin/*.exe
-packages/fcl-base/src/darwin/*.o
-packages/fcl-base/src/darwin/*.ppu
-packages/fcl-base/src/darwin/*.s
-packages/fcl-base/src/darwin/fpcmade.*
-packages/fcl-base/src/darwin/units
-packages/fcl-base/src/emx/*.bak
-packages/fcl-base/src/emx/*.exe
-packages/fcl-base/src/emx/*.o
-packages/fcl-base/src/emx/*.ppu
-packages/fcl-base/src/emx/*.s
-packages/fcl-base/src/emx/fpcmade.*
-packages/fcl-base/src/emx/units
-packages/fcl-base/src/freebsd/*.bak
-packages/fcl-base/src/freebsd/*.exe
-packages/fcl-base/src/freebsd/*.o
-packages/fcl-base/src/freebsd/*.ppu
-packages/fcl-base/src/freebsd/*.s
-packages/fcl-base/src/freebsd/fpcmade.*
-packages/fcl-base/src/freebsd/units
 packages/fcl-base/src/go32v2/*.bak
 packages/fcl-base/src/go32v2/*.exe
 packages/fcl-base/src/go32v2/*.o
@@ -1426,13 +1376,6 @@ packages/fcl-base/src/inc/*.ppu
 packages/fcl-base/src/inc/*.s
 packages/fcl-base/src/inc/fpcmade.*
 packages/fcl-base/src/inc/units
-packages/fcl-base/src/linux/*.bak
-packages/fcl-base/src/linux/*.exe
-packages/fcl-base/src/linux/*.o
-packages/fcl-base/src/linux/*.ppu
-packages/fcl-base/src/linux/*.s
-packages/fcl-base/src/linux/fpcmade.*
-packages/fcl-base/src/linux/units
 packages/fcl-base/src/netware/*.bak
 packages/fcl-base/src/netware/*.exe
 packages/fcl-base/src/netware/*.o
@@ -1454,13 +1397,6 @@ packages/fcl-base/src/os2/*.ppu
 packages/fcl-base/src/os2/*.s
 packages/fcl-base/src/os2/fpcmade.*
 packages/fcl-base/src/os2/units
-packages/fcl-base/src/qnx/*.bak
-packages/fcl-base/src/qnx/*.exe
-packages/fcl-base/src/qnx/*.o
-packages/fcl-base/src/qnx/*.ppu
-packages/fcl-base/src/qnx/*.s
-packages/fcl-base/src/qnx/fpcmade.*
-packages/fcl-base/src/qnx/units
 packages/fcl-base/src/unix/*.bak
 packages/fcl-base/src/unix/*.exe
 packages/fcl-base/src/unix/*.o
@@ -1593,14 +1529,14 @@ packages/fcl-net/src/*.o
 packages/fcl-net/src/*.ppu
 packages/fcl-net/src/*.s
 packages/fcl-net/src/fpcmade.*
-packages/fcl-net/src/tests/*.bak
-packages/fcl-net/src/tests/*.exe
-packages/fcl-net/src/tests/*.o
-packages/fcl-net/src/tests/*.ppu
-packages/fcl-net/src/tests/*.s
-packages/fcl-net/src/tests/fpcmade.*
-packages/fcl-net/src/tests/units
 packages/fcl-net/src/units
+packages/fcl-net/tests/*.bak
+packages/fcl-net/tests/*.exe
+packages/fcl-net/tests/*.o
+packages/fcl-net/tests/*.ppu
+packages/fcl-net/tests/*.s
+packages/fcl-net/tests/fpcmade.*
+packages/fcl-net/tests/units
 packages/fcl-passrc/src/*.bak
 packages/fcl-passrc/src/*.exe
 packages/fcl-passrc/src/*.o
@@ -1616,6 +1552,14 @@ packages/fcl-xml/src/*.s
 packages/fcl-xml/src/fpcmade.*
 packages/fcl-xml/src/units
 packages/fpcmade.*
+packages/paszlib/*.bak
+packages/paszlib/*.exe
+packages/paszlib/*.o
+packages/paszlib/*.ppu
+packages/paszlib/*.s
+packages/paszlib/.gdbinit
+packages/paszlib/fpcmade.*
+packages/paszlib/units
 packages/units
 rtl/*.bak
 rtl/*.exe

Dosya farkı çok büyük olduğundan ihmal edildi
+ 267 - 55
packages/Makefile


+ 38 - 23
packages/Makefile.fpc

@@ -3,13 +3,13 @@
 #
 
 [target]
-dirs=base fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
-dirs_freebsd=fcl-web
-dirs_darwin=fcl-web
-dirs_solaris=fcl-web
-dirs_netbsd=fcl-web
-dirs_openbsd=fcl-web
-dirs_linux=fcl-web
+dirs=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra fcl-process
+dirs_freebsd=fcl-web fcl-async
+dirs_darwin=fcl-web fcl-async
+dirs_solaris=fcl-web fcl-async
+dirs_netbsd=fcl-web fcl-async
+dirs_openbsd=fcl-web fcl-async
+dirs_linux=fcl-web fcl-async
 dirs_win32=fcl-web
 dirs_win64=fcl-web
 dirs_wince=fcl-web
@@ -22,11 +22,11 @@ fpcsubdir=packages
 fpcdir=..
 
 [rules]
-fpmkunit_all: fcl-base_all
-fpmkunit_debug: fcl-base_debug
-fpmkunit_smart: fcl-base_smart
-fpmkunit_release: fcl-base_release
-fpmkunit_shared: fcl-base_shared
+fpmkunit_all: fcl-base_all fcl-process_all paszlib_all
+fpmkunit_debug: fcl-base_debug fcl-process_debug paszlib_debug
+fpmkunit_smart: fcl-base_smart fcl-process_smart paszlib_smart
+fpmkunit_release: fcl-base_release fcl-process_release paszlib_release
+fpmkunit_shared: fcl-base_shared fcl-process_shared paszlib_shared
 
 extra_all: base_all fcl-xml_all
 extra_debug: base_debug fcl-xml_debug
@@ -52,11 +52,11 @@ fcl-json_smart: fcl-base_smart
 fcl-json_release: fcl-base_release
 fcl-json_shared: fcl-base_shared
 
-fcl-image_all: fcl-base_all
-fcl-image_debug: fcl-base_debug
-fcl-image_smart: fcl-base_smart
-fcl-image_release: fcl-base_release
-fcl-image_shared: fcl-base_shared
+fcl-image_all: fcl-base_all paszlib_all
+fcl-image_debug: fcl-base_debug paszlib_debug
+fcl-image_smart: fcl-base_smart paszlib_smart
+fcl-image_release: fcl-base_release paszlib_release
+fcl-image_shared: fcl-base_shared paszlib_shared
 
 fcl-fpcunit_all: fcl-xml_all
 fcl-fpcunit_debug: fcl-xml_debug
@@ -70,17 +70,25 @@ fcl-registry_smart: fcl-xml_smart
 fcl-registry_release: fcl-xml_release
 fcl-registry_shared: fcl-xml_shared
 
+ifeq ($(findstring $(OS_TARGET),linux darwin freebsd openbsd netbsd solaris),)
 fcl-net_all: fcl-passrc_all fcl-xml_all
 fcl-net_debug: fcl-passrc_debug fcl-xml_debug
 fcl-net_smart: fcl-passrc_smart fcl-xml_smart
 fcl-net_release: fcl-passrc_release fcl-xml_release
 fcl-net_shared: fcl-passrc_shared fcl-xml_shared
-
-fcl-web_all: fcl-db_all fcl-xml_all
-fcl-web_debug: fcl-db_debug fcl-xml_debug
-fcl-web_smart: fcl-db_smart fcl-xml_smart
-fcl-web_release: fcl-db_release fcl-xml_release
-fcl-web_shared: fcl-db_shared fcl-xml_shared
+else
+fcl-net_all: fcl-passrc_all fcl-xml_all fcl-async_all
+fcl-net_debug: fcl-passrc_debug fcl-xml_debug fcl-async_debug
+fcl-net_smart: fcl-passrc_smart fcl-xml_smart fcl-async_smart
+fcl-net_release: fcl-passrc_release fcl-xml_release fcl-async_release
+fcl-net_shared: fcl-passrc_shared fcl-xml_shared fcl-async_shared
+endif
+
+fcl-web_all: fcl-db_all fcl-xml_all fcl-process_all
+fcl-web_debug: fcl-db_debug fcl-xml_debug fcl-process_debug
+fcl-web_smart: fcl-db_smart fcl-xml_smart fcl-process_smart
+fcl-web_release: fcl-db_release fcl-xml_release fcl-process_release
+fcl-web_shared: fcl-db_shared fcl-xml_shared fcl-process_shared
 
 fcl-db_all: fcl-base_all
 fcl-db_debug: fcl-base_debug
@@ -94,3 +102,10 @@ fcl_smart: fcl-base_smart fcl-xml_smart fcl-fpcunit_smart fcl-db_smart fcl-web_s
 fcl_release: fcl-base_release fcl-xml_release fcl-fpcunit_release fcl-db_release fcl-web_release fcl-registry_release fcl-passrc_release fcl-image_release fcl-net_release fcl-json_release
 fcl_shared: fcl-base_shared fcl-xml_shared fcl-fpcunit_shared fcl-db_shared fcl-web_shared fcl-registry_shared fcl-passrc_shared fcl-image_shared fcl-net_shared fcl-json_shared
 
+paszlib_all: hash_all
+paszlib_debug: hash_debug
+paszlib_smart: hash_smart
+paszlib_release: hash_release
+paszlib_shared: hash_shared
+
+

+ 86 - 316
packages/base/Makefile

@@ -1,11 +1,12 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/21]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/12/01]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 PATHSEP=/
 else
@@ -102,7 +108,11 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
 FPC:=$(shell $(FPCPROG) -PB)
+endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
@@ -231,160 +241,163 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd libc
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd libc
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd winunits
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd winunits
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres odbc sqlite pthreads imagemagick
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres odbc sqlite pthreads imagemagick
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  ibase sqlite postgres
+override TARGET_DIRS+=pasjpeg regexpr netdb  ibase sqlite postgres
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  mysql ibase odbc sqlite postgres oracle winunits
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase odbc sqlite postgres oracle winunits
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  ibase sqlite postgres
+override TARGET_DIRS+=pasjpeg regexpr netdb  ibase sqlite postgres
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  gdbint libasync mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb  libasync mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_DIRS+=hash paszlib pasjpeg regexpr netdb
+override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages/base
@@ -1149,7 +1162,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -1281,9 +1294,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 endif
 endif
+endif
 ifdef TARGET_RSTS
 override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
 override CLEANRSTFILES+=$(RSTFILES)
@@ -1462,13 +1479,10 @@ fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIR
 fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
 fpc_makefiles: fpc_makefile fpc_makefile_dirs
 ifeq ($(FULL_TARGET),i386-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1482,16 +1496,12 @@ TARGET_DIRS_HTTPD=1
 TARGET_DIRS_LIBC=1
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
@@ -1507,20 +1517,15 @@ TARGET_DIRS_HTTPD=1
 TARGET_DIRS_WINUNITS=1
 endif
 ifeq ($(FULL_TARGET),i386-os2)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1532,13 +1537,10 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),i386-beos)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1548,13 +1550,10 @@ TARGET_DIRS_PTHREADS=1
 TARGET_DIRS_IMAGEMAGICK=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1564,12 +1563,9 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1581,27 +1577,20 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-netware)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1611,19 +1600,14 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1635,29 +1619,21 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),i386-emx)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
@@ -1666,27 +1642,20 @@ TARGET_DIRS_SQLITE=1
 TARGET_DIRS_POSTGRES=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1699,13 +1668,10 @@ TARGET_DIRS_DBUS=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1717,13 +1683,10 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1733,27 +1696,20 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1763,27 +1719,20 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1796,13 +1745,10 @@ TARGET_DIRS_DBUS=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1812,26 +1758,19 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1843,27 +1782,20 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1876,13 +1808,10 @@ TARGET_DIRS_DBUS=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1892,12 +1821,9 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1909,20 +1835,15 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1935,13 +1856,24 @@ TARGET_DIRS_DBUS=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
+TARGET_DIRS_MYSQL=1
+TARGET_DIRS_IBASE=1
+TARGET_DIRS_POSTGRES=1
+TARGET_DIRS_ORACLE=1
+TARGET_DIRS_ODBC=1
+TARGET_DIRS_SQLITE=1
+TARGET_DIRS_PTHREADS=1
+TARGET_DIRS_IMAGEMAGICK=1
+TARGET_DIRS_HTTPD=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+TARGET_DIRS_PASJPEG=1
+TARGET_DIRS_REGEXPR=1
+TARGET_DIRS_NETDB=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1953,8 +1885,6 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
@@ -1967,20 +1897,15 @@ TARGET_DIRS_ORACLE=1
 TARGET_DIRS_WINUNITS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -1993,15 +1918,11 @@ TARGET_DIRS_DBUS=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
@@ -2010,41 +1931,30 @@ TARGET_DIRS_SQLITE=1
 TARGET_DIRS_POSTGRES=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),arm-nds)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -2057,12 +1967,9 @@ TARGET_DIRS_DBUS=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
@@ -2074,102 +1981,10 @@ TARGET_DIRS_IMAGEMAGICK=1
 TARGET_DIRS_HTTPD=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-TARGET_DIRS_HASH=1
-TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 endif
-ifdef TARGET_DIRS_HASH
-hash_all:
-	$(MAKE) -C hash all
-hash_debug:
-	$(MAKE) -C hash debug
-hash_smart:
-	$(MAKE) -C hash smart
-hash_release:
-	$(MAKE) -C hash release
-hash_units:
-	$(MAKE) -C hash units
-hash_examples:
-	$(MAKE) -C hash examples
-hash_shared:
-	$(MAKE) -C hash shared
-hash_install:
-	$(MAKE) -C hash install
-hash_sourceinstall:
-	$(MAKE) -C hash sourceinstall
-hash_exampleinstall:
-	$(MAKE) -C hash exampleinstall
-hash_distinstall:
-	$(MAKE) -C hash distinstall
-hash_zipinstall:
-	$(MAKE) -C hash zipinstall
-hash_zipsourceinstall:
-	$(MAKE) -C hash zipsourceinstall
-hash_zipexampleinstall:
-	$(MAKE) -C hash zipexampleinstall
-hash_zipdistinstall:
-	$(MAKE) -C hash zipdistinstall
-hash_clean:
-	$(MAKE) -C hash clean
-hash_distclean:
-	$(MAKE) -C hash distclean
-hash_cleanall:
-	$(MAKE) -C hash cleanall
-hash_info:
-	$(MAKE) -C hash info
-hash_makefiles:
-	$(MAKE) -C hash makefiles
-hash:
-	$(MAKE) -C hash all
-.PHONY: hash_all hash_debug hash_smart hash_release hash_units hash_examples hash_shared hash_install hash_sourceinstall hash_exampleinstall hash_distinstall hash_zipinstall hash_zipsourceinstall hash_zipexampleinstall hash_zipdistinstall hash_clean hash_distclean hash_cleanall hash_info hash_makefiles hash
-endif
-ifdef TARGET_DIRS_PASZLIB
-paszlib_all:
-	$(MAKE) -C paszlib all
-paszlib_debug:
-	$(MAKE) -C paszlib debug
-paszlib_smart:
-	$(MAKE) -C paszlib smart
-paszlib_release:
-	$(MAKE) -C paszlib release
-paszlib_units:
-	$(MAKE) -C paszlib units
-paszlib_examples:
-	$(MAKE) -C paszlib examples
-paszlib_shared:
-	$(MAKE) -C paszlib shared
-paszlib_install:
-	$(MAKE) -C paszlib install
-paszlib_sourceinstall:
-	$(MAKE) -C paszlib sourceinstall
-paszlib_exampleinstall:
-	$(MAKE) -C paszlib exampleinstall
-paszlib_distinstall:
-	$(MAKE) -C paszlib distinstall
-paszlib_zipinstall:
-	$(MAKE) -C paszlib zipinstall
-paszlib_zipsourceinstall:
-	$(MAKE) -C paszlib zipsourceinstall
-paszlib_zipexampleinstall:
-	$(MAKE) -C paszlib zipexampleinstall
-paszlib_zipdistinstall:
-	$(MAKE) -C paszlib zipdistinstall
-paszlib_clean:
-	$(MAKE) -C paszlib clean
-paszlib_distclean:
-	$(MAKE) -C paszlib distclean
-paszlib_cleanall:
-	$(MAKE) -C paszlib cleanall
-paszlib_info:
-	$(MAKE) -C paszlib info
-paszlib_makefiles:
-	$(MAKE) -C paszlib makefiles
-paszlib:
-	$(MAKE) -C paszlib all
-.PHONY: paszlib_all paszlib_debug paszlib_smart paszlib_release paszlib_units paszlib_examples paszlib_shared paszlib_install paszlib_sourceinstall paszlib_exampleinstall paszlib_distinstall paszlib_zipinstall paszlib_zipsourceinstall paszlib_zipexampleinstall paszlib_zipdistinstall paszlib_clean paszlib_distclean paszlib_cleanall paszlib_info paszlib_makefiles paszlib
-endif
 ifdef TARGET_DIRS_PASJPEG
 pasjpeg_all:
 	$(MAKE) -C pasjpeg all
@@ -2350,51 +2165,6 @@ gdbint:
 	$(MAKE) -C gdbint all
 .PHONY: gdbint_all gdbint_debug gdbint_smart gdbint_release gdbint_units gdbint_examples gdbint_shared gdbint_install gdbint_sourceinstall gdbint_exampleinstall gdbint_distinstall gdbint_zipinstall gdbint_zipsourceinstall gdbint_zipexampleinstall gdbint_zipdistinstall gdbint_clean gdbint_distclean gdbint_cleanall gdbint_info gdbint_makefiles gdbint
 endif
-ifdef TARGET_DIRS_LIBASYNC
-libasync_all:
-	$(MAKE) -C libasync all
-libasync_debug:
-	$(MAKE) -C libasync debug
-libasync_smart:
-	$(MAKE) -C libasync smart
-libasync_release:
-	$(MAKE) -C libasync release
-libasync_units:
-	$(MAKE) -C libasync units
-libasync_examples:
-	$(MAKE) -C libasync examples
-libasync_shared:
-	$(MAKE) -C libasync shared
-libasync_install:
-	$(MAKE) -C libasync install
-libasync_sourceinstall:
-	$(MAKE) -C libasync sourceinstall
-libasync_exampleinstall:
-	$(MAKE) -C libasync exampleinstall
-libasync_distinstall:
-	$(MAKE) -C libasync distinstall
-libasync_zipinstall:
-	$(MAKE) -C libasync zipinstall
-libasync_zipsourceinstall:
-	$(MAKE) -C libasync zipsourceinstall
-libasync_zipexampleinstall:
-	$(MAKE) -C libasync zipexampleinstall
-libasync_zipdistinstall:
-	$(MAKE) -C libasync zipdistinstall
-libasync_clean:
-	$(MAKE) -C libasync clean
-libasync_distclean:
-	$(MAKE) -C libasync distclean
-libasync_cleanall:
-	$(MAKE) -C libasync cleanall
-libasync_info:
-	$(MAKE) -C libasync info
-libasync_makefiles:
-	$(MAKE) -C libasync makefiles
-libasync:
-	$(MAKE) -C libasync all
-.PHONY: libasync_all libasync_debug libasync_smart libasync_release libasync_units libasync_examples libasync_shared libasync_install libasync_sourceinstall libasync_exampleinstall libasync_distinstall libasync_zipinstall libasync_zipsourceinstall libasync_zipexampleinstall libasync_zipdistinstall libasync_clean libasync_distclean libasync_cleanall libasync_info libasync_makefiles libasync
-endif
 ifdef TARGET_DIRS_MYSQL
 mysql_all:
 	$(MAKE) -C mysql all

+ 8 - 15
packages/base/Makefile.fpc

@@ -3,26 +3,19 @@
 #
 
 [target]
-dirs=hash paszlib pasjpeg regexpr netdb
+dirs=pasjpeg regexpr netdb
 dirs_i386_linux=libc
-dirs_linux=gdbint libasync mysql ibase postgres oracle odbc \
-            pthreads sqlite imagemagick dbus httpd
+dirs_linux=gdbint mysql ibase postgres oracle odbc pthreads sqlite imagemagick dbus httpd
 dirs_win32=gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd winunits
 dirs_win64=mysql ibase odbc sqlite postgres oracle winunits
 dirs_wince=ibase sqlite postgres
 dirs_go32v2=gdbint
-dirs_netbsd=gdbint libasync \
-            mysql ibase postgres oracle odbc imagemagick httpd
-dirs_openbsd=gdbint libasync \
-            mysql ibase postgres oracle odbc imagemagick httpd
-dirs_beos=gdbint libasync \
-             mysql ibase postgres odbc sqlite pthreads imagemagick
-dirs_freebsd=gdbint libasync \
-             mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
-dirs_darwin=libasync \
-             mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
-dirs_solaris=libasync \
-             mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+dirs_netbsd=gdbint mysql ibase postgres oracle odbc imagemagick httpd
+dirs_openbsd=gdbint mysql ibase postgres oracle odbc imagemagick httpd
+dirs_beos=gdbint mysql ibase postgres odbc sqlite pthreads imagemagick
+dirs_freebsd=gdbint mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+dirs_darwin=mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
+dirs_solaris=mysql ibase postgres oracle odbc sqlite pthreads imagemagick httpd
 
 
 [rules]

+ 0 - 10
packages/base/hash/fpmake.inc

@@ -1,10 +0,0 @@
-    StartPackage('md5');
-    {$IF defined(ALLPACKAGES)}
-    Directory:='base/md5';
-    {$ELSEIF defined(BASEPACKAGES)}
-    Directory:='md5';
-    {$ENDIF}
-    Version:='2.0.0';
-    T:=Targets.AddUnit('md5');
-    T:=Targets.AddExampleunit('md5test');
-    EndPackage;

+ 0 - 17
packages/base/hash/fpmake.pp

@@ -1,17 +0,0 @@
-{$mode objfpc}{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
-  T : TTarget;
-
-begin
-  With Installer do 
-    begin
-    { Base packages }
-    {$i fpmake.inc}
-    Run;
-    end;
-end.
-

+ 0 - 28
packages/base/libasync/Makefile.fpc

@@ -1,28 +0,0 @@
-#
-#   Makefile.fpc for libasync
-#
-
-[package]
-name=libasync
-version=2.2.1
-
-[target]
-units=libasync
-
-[install]
-fpcpackage=y
-
-[compiler]
-sourcedir_linux=unix
-sourcedir_beos=unix
-sourcedir_freebsd=unix
-sourcedir_darwin=unix
-sourcedir_solaris=unix
-sourcedir_netbsd=unix
-sourcedir_openbsd=unix
-
-[default]
-fpcdir=../../..
-
-[rules]
-.NOTPARALLEL:

+ 0 - 21
packages/base/libasync/fpmake.inc

@@ -1,21 +0,0 @@
-    StartPackage('libasync');
-    {$IF defined(ALLPACKAGES)}
-    Directory:='base/libasync';
-    {$ELSEIF defined(BASEPACKAGES)}
-    Directory:='libasync';
-    {$ENDIF}
-    OS:=[linux,netbsd,openbsd,freebsd,darwin];
-    T:=Targets.AddUnit('libasync');
-    if (Defaults.OS=linux) then
-      T.Directory:='unix';
-    if (Defaults.OS=freebsd) then
-      T.Directory:='unix';
-    if (Defaults.OS=darwin) then
-      T.Directory:='unix';
-    if (Defaults.OS=netbsd) then
-      T.Directory:='unix';
-    if (Defaults.OS=openbsd) then
-      T.Directory:='unix';
-    if (Defaults.OS=solaris) then
-      T.Directory:='unix';
-    EndPackage;

+ 0 - 17
packages/base/libasync/fpmake.pp

@@ -1,17 +0,0 @@
-{$mode objfpc}{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
-  T : TTarget;
-
-begin
-  With Installer do 
-    begin
-    { Base packages }
-    {$i fpmake.inc}
-    Run;
-    end;
-end.
-

+ 0 - 24
packages/base/paszlib/Makefile.fpc

@@ -1,24 +0,0 @@
-#
-#   Makefile.fpc for PasZLib
-#
-
-[package]
-name=paszlib
-version=2.2.0
-
-[require]
-packages=hash
-
-[target]
-units=paszlib adler gzio infblock infcodes inffast inftrees infutil trees zcompres zdeflate zinflate zbase zuncompr zip ziputils unzip
-exampledirs=demo
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../..
-
-[rules]
-.NOTPARALLEL:
-

+ 0 - 17
packages/base/paszlib/fpmake.pp

@@ -1,17 +0,0 @@
-{$mode objfpc}{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
-  T : TTarget;
-
-begin
-  With Installer do 
-    begin
-    { Base packages }
-    {$i fpmake.inc}
-    Run;
-    end;
-end.
-

+ 2249 - 0
packages/fcl-async/Makefile

@@ -0,0 +1,2249 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
+#
+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-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+BSDs = freebsd netbsd openbsd darwin
+UNIXs = linux $(BSDs) solaris qnx
+LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 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 COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+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))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
+FPC:=$(shell $(FPCPROG) -PB)
+endif
+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-async
+override PACKAGE_VERSION=2.0.0
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_UNITS+=libasync fpasync
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_UNITS+=libasync fpasync
+endif
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_INCLUDEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_INCLUDEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=src
+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-darwin)
+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-darwin)
+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)
+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))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
+EXECPPAS:=@$(PPAS)
+endif
+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 %.inc $(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_distinstall
+fpc_distinstall: install exampleinstall
+.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
+ifndef PACKDIR
+ifndef inUnix
+PACKDIR=$(BASEDIR)/../fpc-pack
+else
+PACKDIR=/tmp/fpc-pack
+endif
+endif
+ifndef ZIPNAME
+ifdef DIST_ZIPNAME
+ZIPNAME=$(DIST_ZIPNAME)
+else
+ZIPNAME=$(PACKAGE_NAME)
+endif
+endif
+ifndef FULLZIPNAME
+FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
+endif
+ifndef ZIPTARGET
+ifdef DIST_ZIPTARGET
+ZIPTARGET=DIST_ZIPTARGET
+else
+ZIPTARGET=install
+endif
+endif
+ifndef USEZIP
+ifdef inUnix
+USETAR=1
+endif
+endif
+ifndef inUnix
+USEZIPWRAPPER=1
+endif
+ifdef USEZIPWRAPPER
+ZIPPATHSEP=$(PATHSEP)
+ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
+else
+ZIPPATHSEP=/
+endif
+ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
+ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
+ifdef USETAR
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
+ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
+else
+ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
+ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
+endif
+fpc_zipinstall:
+	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
+	$(MKDIR) $(DIST_DESTDIR)
+	$(DEL) $(ZIPDESTFILE)
+ifdef USEZIPWRAPPER
+ifneq ($(ECHOREDIR),echo)
+	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
+	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
+	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
+else
+	echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
+	echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
+	echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
+endif
+ifdef inUnix
+	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
+else
+	$(ZIPWRAPPER)
+endif
+endif
+	$(DEL) $(ZIPWRAPPER)
+else
+	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
+endif
+	$(DELTREE) $(PACKDIR)
+fpc_zipsourceinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
+fpc_zipexampleinstall:
+ifdef HASEXAMPLES
+	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
+endif
+fpc_zipdistinstall:
+	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
+.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: fpc_distinstall
+zipinstall: fpc_zipinstall
+zipsourceinstall: fpc_zipsourceinstall
+zipexampleinstall: fpc_zipexampleinstall
+zipdistinstall: fpc_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:

+ 37 - 0
packages/fcl-async/Makefile.fpc

@@ -0,0 +1,37 @@
+#
+#   Makefile.fpc for libasync
+#
+
+[package]
+name=fcl-async
+version=2.0.0
+
+[target]
+units=libasync fpasync
+
+[install]
+fpcpackage=y
+
+[compiler]
+sourcedir=src
+sourcedir_linux=src/unix
+sourcedir_beos=src/unix
+sourcedir_freebsd=src/unix
+sourcedir_darwin=src/unix
+sourcedir_solaris=src/unix
+sourcedir_netbsd=src/unix
+sourcedir_openbsd=src/unix
+includedir=src
+includedir_linux=src/unix
+includedir_beos=src/unix
+includedir_freebsd=src/unix
+includedir_darwin=src/unix
+includedir_solaris=src/unix
+includedir_netbsd=src/unix
+includedir_openbsd=src/unix
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:

+ 0 - 0
packages/fcl-base/src/inc/fpasync.pp → packages/fcl-async/src/fpasync.pp


+ 0 - 0
packages/base/libasync/libasync.inc → packages/fcl-async/src/libasync.inc


+ 0 - 0
packages/base/libasync/libasynch.inc → packages/fcl-async/src/libasynch.inc


+ 0 - 0
packages/fcl-base/src/unix/asyncio.inc → packages/fcl-async/src/unix/asyncio.inc


+ 0 - 0
packages/fcl-base/src/unix/asyncioh.inc → packages/fcl-async/src/unix/asyncioh.inc


+ 0 - 0
packages/base/libasync/unix/libasync.pp → packages/fcl-async/src/unix/libasync.pp


Dosya farkı çok büyük olduğundan ihmal edildi
+ 134 - 564
packages/fcl-base/Makefile


+ 18 - 40
packages/fcl-base/Makefile.fpc

@@ -7,50 +7,28 @@ name=fcl-base
 version=2.0.0
 
 [require]
-packages=paszlib hash
-packages_linux=netdb libasync pthreads
-packages_beos=netdb libasync pthreads
-packages_freebsd=netdb libasync pthreads
-packages_darwin=netdb libasync pthreads
-packages_solaris=netdb libasync pthreads
-packages_netbsd=netdb libasync
-packages_openbsd=netdb libasync
-packages_win32=netdb winunits
-packages_win64=netdb winunits
-packages_wince=netdb
-packages_os2=netdb
-packages_emx=netdb
-packages_netware=netdb
-packages_netwlibc=netdb
-
-# clean package units
-[clean]
-units=adler gzcrc gzio infblock infcodes inffast inftrees infutil\
-      minigzip paszlib trees zbase zcompres zdeflate zinflate\
-      zuncompr zutil pthreads streamio blowfish testutils fpcunit
+packages_win32=winunits
+packages_win64=winunits
 
 [target]
-# Leave xmlreg and registry last, they require xml.
-units=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
-      iostream zstream cachecls avl_tree \
+units=contnrs inifiles ezcgi rtfpars idea base64 gettext \
+      iostream cachecls avl_tree \
       eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \
-      streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
-units_beos=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf 
-units_freebsd=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
-units_darwin=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer 
-units_solaris=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
-units_netbsd=process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
-units_openbsd=process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
-units_linux=process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
-units_win32=process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager fptimer
-units_win64=process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager fptimer
-units_wince=process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf fptimer
-units_os2=resolve ssockets
-units_emx=resolve ssockets
+      streamex blowfish streamio inicol pooledmm libtar streamcoll
+units_beos=syncobjs 
+units_freebsd=syncobjs daemonapp fptimer
+units_darwin=syncobjs daemonapp fptimer 
+units_solaris=syncobjs daemonapp fptimer
+units_netbsd=daemonapp fptimer
+units_openbsd=daemonapp fptimer
+units_linux=syncobjs daemonapp fptimer
+units_win32=fileinfo syncobjs daemonapp ServiceManager fptimer
+units_win64=fileinfo syncobjs daemonapp ServiceManager fptimer
+units_wince=fileinfo syncobjs fptimer
 # syncobjs requires GetLastOSError function
-units_netware=resolve ssockets syncobjs
-units_netwlibc=resolve ssockets syncobjs
-rsts=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+units_netware=syncobjs
+units_netwlibc=syncobjs
+rsts=cachecls custapp cgiapp eventlog registry streamcoll inicol
 
 [compiler]
 options=-S2h

+ 0 - 39
packages/fcl-base/src/amiga/classes.pp

@@ -1,39 +0,0 @@
-{
-    This file is part of the Free Component Library (FCL)
-    Copyright (c) 1999-2000 by Michael Van Canneyt and Florian Klaempfl
-
-    Classes unit for Class AmigaOS
-
-    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}
-
-unit Classes;
-
-interface
-
-uses
-  typinfo,
-  sysutils;
-
-{$i classesh.inc}
-
-implementation
-
-{ OS - independent class implementations are in /inc directory. }
-{$i classes.inc}
-
-initialization
-  CommonInit;
-
-finalization
-  CommonCleanup;
-
-end.

+ 0 - 92
packages/fcl-base/src/amiga/thread.inc

@@ -1,92 +0,0 @@
-{
-    This file is part of the Free Component Library (FCL)
-    Copyright (c) 1999-2000 by the Free Pascal development team
-
-    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.
-
- **********************************************************************}
-{****************************************************************************}
-{*                             TThread                                      *}
-{****************************************************************************}
-
-
-procedure TThread.CallOnTerminate;
-
-begin
-end;
-
-
-function TThread.GetPriority: TThreadPriority;
-
-begin
-  GetPriority:=tpNormal;
-end;
-
-
-procedure TThread.SetPriority(Value: TThreadPriority);
-
-begin
-end;
-
-
-procedure TThread.SetSuspended(Value: Boolean);
-
-begin
-end;
-
-
-procedure TThread.DoTerminate;
-
-begin
-end;
-
-
-procedure TThread.Synchronize(Method: TThreadMethod);
-
-begin
-end;
-
-
-constructor TThread.Create(CreateSuspended: Boolean);
-
-begin
- {IsMultiThread := TRUE; }
-end;
-
-
-destructor TThread.Destroy;
-
-begin
-end;
-
-
-procedure TThread.Resume;
-
-begin
-end;
-
-
-procedure TThread.Suspend;
-
-begin
-end;
-
-
-procedure TThread.Terminate;
-
-begin
-end;
-
-
-function TThread.WaitFor: Integer;
-
-begin
-  WaitFor:=0;
-end;
-
-

+ 0 - 42
packages/fcl-base/src/beos/classes.pp

@@ -1,42 +0,0 @@
-{
-    This file is part of the Free Component Library (FCL)
-    Copyright (c) 1999-2000 by Michael Van Canneyt and Florian Klaempfl
-
-    Classes unit for BeOS
-
-    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}
-
-{ determine the type of the resource/form file }
-{$define Win16Res}
-
-unit Classes;
-
-interface
-
-uses
-  typinfo,
-  sysutils;
-
-{$i classesh.inc}
-
-implementation
-
-{ OS - independent class implementations are in /inc directory. }
-{$i classes.inc}
-
-initialization
-  CommonInit;
-
-finalization
-  CommonCleanup;
-
-end.

+ 0 - 92
packages/fcl-base/src/beos/thread.inc

@@ -1,92 +0,0 @@
-{
-    This file is part of the Free Component Library (FCL)
-    Copyright (c) 1999-2000 by the Free Pascal development team
-
-    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.
-
- **********************************************************************}
-{****************************************************************************}
-{*                             TThread                                      *}
-{****************************************************************************}
-
-
-procedure TThread.CallOnTerminate;
-
-begin
-end;
-
-
-function TThread.GetPriority: TThreadPriority;
-
-begin
-  GetPriority:=tpNormal;
-end;
-
-
-procedure TThread.SetPriority(Value: TThreadPriority);
-
-begin
-end;
-
-
-procedure TThread.SetSuspended(Value: Boolean);
-
-begin
-end;
-
-
-procedure TThread.DoTerminate;
-
-begin
-end;
-
-
-procedure TThread.Synchronize(Method: TThreadMethod);
-
-begin
-end;
-
-
-constructor TThread.Create(CreateSuspended: Boolean);
-
-begin
- { IsMultiThread := TRUE; }
-end;
-
-
-destructor TThread.Destroy;
-
-begin
-end;
-
-
-procedure TThread.Resume;
-
-begin
-end;
-
-
-procedure TThread.Suspend;
-
-begin
-end;
-
-
-procedure TThread.Terminate;
-
-begin
-end;
-
-
-function TThread.WaitFor: Integer;
-
-begin
-  WaitFor:=0;
-end;
-
-

+ 0 - 618
packages/fcl-base/src/inc/htmldefs.pp

@@ -1,618 +0,0 @@
-{
-    $Id: htmldefs.pp,v 1.2 2006/01/03 23:33:23 lukvdl Exp $
-    This file is part of the Free Component Library
-
-    HTML definitions and utility functions
-    Copyright (c) 2000-2002 by
-      Areca Systems GmbH / Sebastian Guenther, [email protected]
-
-    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 HTMLDefs;
-
-{$MODE objfpc}
-{$H+}
-
-interface
-
-type
-
-  THTMLCData = string;
-  THTMLID = string;
-  THTMLName = string;
-  THTMLIDRef = string;
-  THTMLIDRefs = string;
-  THTMLNumber = longint;
-
-  THTMLText = THTMLCData;
-  THTMLCharsets = THTMLCData;
-  THTMLContentTypes = THTMLCData;
-  THTMLURI = string;
-  THTMLCharacter = char;
-
-  THTMLDir = (dirEmpty,dirLeftToRight,dirRightToLeft);
-  THTMLalign = (alEmpty,alleft,alcenter,alright,aljustify,alchar);
-  THTMLvalign = (vaEmpty,vatop,vamiddle,vabottom,vabaseline);
-  THTMLframe = (frEmpty,frvoid,frabove,frbelow,frhsides,frvsides,frlefthandsise,frrighthandside,frbox,frborder);
-  THTMLrules = (ruEmpty,runone,rugroups,rurows,rucols,ruall);
-  THTMLvaluetype = (vtEmpty,vtdata,vtref,vtobject);
-  THTMLshape = (shEmpty,shdefault,shrect,shcircle,shpoly);
-  THTMLinputtype = (itEmpty,ittext,itpassword,itcheckbox,itradio,itsubmit,itreset,itfile,ithidden,itimage,itbutton);
-  THTMLbuttontype = (btEmpty,btsubmit,btreset,btbutton);
-
-  THTMLColor = (
-      clHTMLBlack, clHTMLSilver, clHTMLGray,   clHTMLWhite, clHTMLMaroon,
-    //  #000000      #C0C0C0       #808080       #FFFFFF      #800000
-      clHTMLRed,   clHTMLPurple, clHTMLFuchsia,clHTMLGreen, clHTMLLime, clHTMLOlive,
-    //  #FF0000      #800080       #FF00FF       #008000      #00FF00     #808000
-      clHTMLYellow,clHTMLNavy,   clHTMLBlue,   clHTMLTeal,  clHTMLAqua
-    //  #FFFF00      #000080       #0000FF       #008080      #00FFFF
-      );
-
-  THTMLAttributeTag = (
-      atabbr, atacceptcharset, ataccept, ataccesskey, ataction, atalign, atalt, atarchive,
-      ataxis, atborder, atcellpadding, atcellspacing, atchar, atcharoff, atcharset,
-      atchecked, atcite, atclass, atclassid, atcodebase, atcodetype, atcols,
-      atcolspan, atcontent, atcoords, atdata, atdatetime, atdeclare,atdefer,
-      atdir, atdisabled, atenctype, atfor, atframe, atframeborder, atheaders,
-      atheight, athref, athreflang, athttpequiv, atid, atismap, atlabel, atlang,
-      atlongdesc, atmarginheight, atmarginwidth, atmaxlength, atmedia, atmethod,
-      atmultiple, atname, atnohref, atnoresize, atonblur, atonchange, atonclick,
-      atondblclick, atonfocus, atonkeydown, atonkeypress, atonkeyup, atonload,
-      atonmousedown, atonmousemove, atonmouseout, atonmouseover, atonmouseup,
-      atonreset, atonselect, atonsubmit, atonunload, atprofile, atreadonly,
-      atrel, atrev, atrows, atrowspan, atrules, atscheme, atscope, atscrolling,
-      atselected, atshape, atsize, atspan, atsrc, atstandby, atstyle, atsummary,
-      attabindex, attarget, attitle, attype, atusemap, atvalign, atvalue,
-      atvaluetype, atwidth
-      );
-  THTMLAttributeSet = set of THTMLAttributeTag;
-
-  THTMLElementTag = (
-      eta, etabbr, etacronym, etaddress, etapplet, etarea, etb, etbase,
-      etbasefont, etbdo, etbig, etblockquote, etbody, etbr, etbutton,
-      etcaption, etcenter, etcite, etcode, etcol, etcolgroup, etdd, etdel,
-      etdfn, etdir, etdiv, etdl, etdt, etem, etfieldset, etfont, etform,
-      etframe, etframeset, eth1, eth2, eth3, eth4, eth5, eth6, ethead, ethr,
-      ethtml, eti, etiframe, etimg, etinput, etins, etisindex, etkbd, etlabel,
-      etlegend, etli, etlink, etmap, etmenu, etmeta, etnoframes, etnoscript,
-      etobject, etol, etoptgroup, etoption, etp, etparam, etpre, etq, ets,
-      etsamp, etscript, etselect, etsmall, etspan, etstrike, etstrong,
-      etstyle, etsub, etsup, ettable, ettbody, ettd, ettextarea, ettfoot,
-      etth, etthead, ettitle, ettr, ettt, etu, etul, etvar,
-      etText, etUnknown
-      );
-  THTMLElementTagSet = set of THTMLElementTag;
-
-  THTMLElementFlag = (
-    efSubelementContent,                // may have subelements
-    efPCDATAContent,                    // may have PCDATA content
-    efPreserveWhitespace,               // preserve all whitespace
-    efDeprecated,                       // can be dropped in future versions
-    efNoChecks                          // Checks (attributes,subtags,...) can only be implemented in descendants
-    );
-  THTMLElementFlags = set of THTMLElementFlag;
-
-  PHTMLElementProps = ^THTMLElementProps;
-  THTMLElementProps = record
-    Name: String;
-    Flags: THTMLElementFlags;
-    Attributes: THTMLAttributeSet;
-  end;
-
-
-const
-
-  BooleanAttributes = [atchecked,atdeclare,atdefer,atdisabled,atnohref,atnoresize,
-                    atmultiple,atreadonly,atselected];
-
-  efSubcontent = [efSubelementContent, efPCDATAContent];
-
-  atsi18n = [atlang, atdir];
-  atscoreattrs = [atid,atclass,atstyle,attitle];
-  atsevents = [atonclick,atondblclick,atonmousedown,atonmouseup,atonmouseover,
-               atonmousemove,atonmouseout,atonkeypress,atonkeydown,atonkeyup];
-  atsattrs = atsevents + atscoreattrs + atsi18n;
-  atscellhalign = [atalign, atchar, atcharoff];
-
-{  etsStructured := [];
-  etsDivisions := [];
-  etsLists := [];
-  etsLinks := [];
-  etsObjects := [etImg, etObject, etApplet, etMap, etArea];
-  etsForms := [etForm];
-
-  etsText = etsStructured + etsDivisions + etsLists + etsLinks + etsObjects +
-          etsForms +
-          etTable + etText + etScript + ;      }
-
-  HTMLElementProps: array[THTMLElementTag] of THTMLElementProps = (
-    (Name: 'a';         Flags: efSubcontent;
-     Attributes: atsattrs+[atcharset,attype,atname,athref,athreflang,atrel,atrev,
-                 ataccesskey,atshape,atcoords,attabindex,atonfocus,atonblur]),
-
-    (Name: 'abbr';      Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'acronym';   Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'address';   Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'applet';    Flags: efSubcontent+[efDeprecated];
-     Attributes: atscoreattrs+[atcodebase,atarchive,atalt,atname,atwidth,atheight]),
-
-    (Name: 'area';      Flags: [];
-     Attributes: atsattrs+[atshape,atcoords,athref,atnohref,atalt,attabindex,
-     ataccesskey,atonfocus,atonblur]),
-
-    (Name: 'b';         Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'base';      Flags: []; Attributes: [athref]),
-
-    (Name: 'basefont';  Flags: [efDeprecated]; Attributes: [atid]),
-
-    (Name: 'bdo';       Flags: efSubcontent; Attributes: atscoreattrs+[atlang,atdir]),
-
-    (Name: 'big';       Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'blockquote';Flags: [efSubelementContent]; Attributes: atsattrs+[atcite]),
-
-    (Name: 'body';      Flags: [efSubelementContent];
-     Attributes: atsAttrs+[atonload, atonunload]),
-
-    (Name: 'br';        Flags: []; Attributes: atscoreattrs),
-
-    (Name: 'button';    Flags: efSubcontent;
-     Attributes: atsattrs+[atname,atvalue,attype,atdisabled,attabindex,
-                 ataccesskey,atonfocus,atonblur]),
-
-    (Name: 'caption';   Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'center';    Flags: [efSubelementContent,efDeprecated]; Attributes: []),
-
-    (Name: 'cite';      Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'code';      Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'col';       Flags: [];
-     Attributes: atsattrs+atscellhalign+[atvalign,atspan,atwidth]),
-
-    (Name: 'colgroup';  Flags: [efSubelementContent];
-     Attributes: atsattrs+atscellhalign+[atvalign,atspan,atwidth]),
-
-    (Name: 'dd';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'del';       Flags: [efSubelementContent]; Attributes: atsattrs+[atcite,atdatetime]),
-
-    (Name: 'dfn';       Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'dir';       Flags: [efSubelementContent,efDeprecated]; Attributes: atsattrs),
-
-    (Name: 'div';       Flags: [efSubelementContent]; Attributes: atsattrs),
-
-    (Name: 'dl';        Flags: [efSubelementContent]; Attributes: atsattrs),
-
-    (Name: 'dt';        Flags: [efPCDataContent]; Attributes: atsattrs),
-
-    (Name: 'em';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'fieldset';  Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'font';      Flags: efSubcontent+[efDeprecated]; Attributes: atscoreattrs+atsi18n),
-
-    (Name: 'form';      Flags: [efSubelementContent];
-     Attributes: atsattrs+[ataction,atmethod,atenctype,atonsubmit,atonreset,atacceptcharset]),
-
-    (Name: 'frame';     Flags: [];
-     Attributes: atscoreattrs+[atlongdesc,atname,atsrc,atframeborder,
-                 atmarginwidth,atmarginheight,atnoresize,atscrolling]),
-
-    (Name: 'frameset';  Flags: efSubcontent;
-     Attributes: atsCoreattrs+[atrows,atcols,atonload,atonunload]),
-
-    (Name: 'h1';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'h2';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'h3';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'h4';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'h5';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'h6';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'head';      Flags: [efSubelementContent]; Attributes: atsi18n+[atprofile]),
-
-    (Name: 'hr';        Flags: []; Attributes: atscoreattrs+atsevents),
-
-    (Name: 'html';      Flags: [efSubelementContent]; Attributes: atsi18n),
-
-    (Name: 'i';         Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'iframe';    Flags: [efSubelementContent];
-     Attributes: atscoreattrs+[atlongdesc,atname,atsrc,atframeborder,atmarginwidth,
-                 atmarginheight,atscrolling,atalign,atheight,atwidth]),
-
-    (Name: 'img';       Flags: [];
-     Attributes: atsattrs+[atsrc,atalt,atlongdesc,atheight,atwidth,atusemap,atismap]),
-
-    (Name: 'input';     Flags: [];
-     Attributes: atsattrs+[attype,atname,atvalue,atchecked,atdisabled,
-                 atreadonly,atsize,atmaxlength,atsrc,atalt,atusemap,attabindex,
-                 ataccesskey,atonfocus,atonblur,atonselect,atonchange,ataccept]),
-
-    (Name: 'ins';       Flags: [efSubelementContent]; Attributes: atsattrs+[atcite,atdatetime]),
-
-    (Name: 'isindex';   Flags: [efDeprecated]; Attributes: atscoreattrs+atsi18n),
-
-    (Name: 'kbd';       Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'label';     Flags: efSubcontent;
-     Attributes: atsattrs+[atfor,ataccesskey,atonfocus,atonblur]),
-
-    (Name: 'legend';    Flags: efSubcontent; Attributes: atsattrs+[ataccesskey]),
-
-    (Name: 'li';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'link';      Flags: [];
-     Attributes: atsattrs+[atcharset,athref,athreflang,attype,atrel,atrev,atmedia]),
-
-    (Name: 'map';       Flags: [efSubelementContent]; Attributes: atsattrs+[atname]),
-
-    (Name: 'menu';      Flags: [efSubelementContent,efDeprecated]; Attributes: atsattrs),
-
-    (Name: 'meta';      Flags: []; Attributes: atsi18n+[athttpequiv,atname,atcontent,atscheme]),
-
-    (Name: 'noframes';  Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'noscript';  Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'object';    Flags: efSubcontent;
-     Attributes: atsattrs+[atdeclare,atclassid,atcodebase,atdata,attype,atcodetype,
-                 atarchive,atstandby,atheight,atwidth,atusemap,atname,attabindex]),
-
-    (Name: 'ol';        Flags: [efSubelementContent]; Attributes: atsattrs),
-
-    (Name: 'optgroup';  Flags: efSubcontent; Attributes: atsattrs+[atdisabled,atlabel]),
-
-    (Name: 'option';    Flags: efSubcontent;
-     Attributes: atsattrs+[atselected,atdisabled,atlabel,atvalue]),
-
-    (Name: 'p';         Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'param';     Flags: []; Attributes: [atid,atname,atvalue,atvaluetype,attype]),
-
-    (Name: 'pre';       Flags: efSubcontent + [efPreserveWhitespace]; Attributes: atsattrs),
-
-    (Name: 'q';         Flags: efSubcontent; Attributes: atsattrs+[atcite]),
-
-    (Name: 's';         Flags: efSubcontent+[efDeprecated]; Attributes: atsattrs),
-
-    (Name: 'samp';      Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'script';    Flags: [efPCDATAContent]; Attributes: [atcharset,attype,atsrc,atdefer]),
-
-    (Name: 'select';    Flags: [efSubelementContent];
-     Attributes: atsattrs+[atname,atsize,atmultiple,atdisabled,attabindex,atonfocus,
-                 atonblur,atonchange]),
-
-    (Name: 'small';     Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'span';      Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'strike';    Flags: efSubcontent+[efDeprecated]; Attributes: atsattrs),
-
-    (Name: 'strong';    Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'style';     Flags: [efPCDATAContent];
-     Attributes: atsi18n+[attype,atmedia,attitle]),
-
-    (Name: 'sub';       Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'sup';       Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'table';     Flags: [efSubelementContent];
-     Attributes: atsattrs+[atsummary,atwidth,atborder,atframe,atrules,atcellspacing,atcellpadding]),
-
-    (Name: 'tbody';     Flags: [efSubelementContent]; Attributes: atsattrs+atscellhalign+[atvalign]),
-
-    (Name: 'td';        Flags: efSubcontent;
-     Attributes: atsattrs+atscellhalign+[atvalign,atabbr,ataxis,atheaders,atscope,atrowspan,atcolspan]),
-
-    (Name: 'textarea';  Flags: [efPCDATAContent];
-     Attributes: atsattrs+[atname,atrows,atcols,atdisabled,atreadonly,attabindex,
-                 ataccesskey,atonfocus,atonblur,atonselect,atonchange]),
-
-    (Name: 'tfoot';     Flags: [efSubelementContent]; Attributes: atsattrs+atscellhalign+[atvalign]),
-
-    (Name: 'th';        Flags: efSubcontent;
-     Attributes: atsattrs+atscellhalign+[atvalign,atabbr,ataxis,atheaders,atscope,atrowspan,atcolspan]),
-
-    (Name: 'thead';     Flags: [efSubelementContent]; Attributes: atsattrs+atscellhalign+[atvalign]),
-
-    (Name: 'title';     Flags: efSubcontent; Attributes: atsi18n),
-
-    (Name: 'tr';        Flags: [efSubelementContent];
-     Attributes: atsattrs+atscellhalign+[atvalign]),
-
-    (Name: 'tt';        Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'u';         Flags: efSubcontent+[efDeprecated]; Attributes: atsattrs),
-
-    (Name: 'ul';        Flags: [efSubelementContent]; Attributes: atsattrs),
-
-    (Name: 'var';       Flags: efSubcontent; Attributes: atsattrs),
-
-    (Name: 'text';      Flags: efSubcontent; Attributes: []),
-
-    (Name: 'unknown';   Flags: efSubcontent+[efNoChecks]; Attributes: [])
-
-    );
-
-  HTMLAttributeTag : array [THTMLAttributeTag] of string = (
-      'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alt', 'archive',
-      'axis', 'border', 'cellpadding', 'cellspacing', 'char', 'charoff', 'charset',
-      'checked', 'cite', 'class', 'classid', 'codebase', 'codetype', 'cols',
-      'colspan', 'content', 'coords', 'data', 'datetime', 'declare', 'defer',
-      'dir', 'disabled', 'enctype', 'for', 'frame', 'frameborder', 'headers',
-      'height', 'href', 'hreflang', 'http-equiv', 'id', 'ismap', 'label', 'lang',
-      'longdesc', 'marginheight', 'marginwidth', 'maxlength', 'media', 'method',
-      'multiple', 'name', 'nohref', 'noresize', 'onblur', 'onchange', 'onclick',
-      'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload',
-      'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup',
-      'onreset', 'onselect', 'onsubmit', 'onunload', 'profile', 'readonly',
-      'rel', 'rev', 'rows', 'rowspan', 'rules', 'scheme', 'scope', 'scrolling',
-      'selected', 'shape', 'size', 'span', 'src', 'standby', 'style', 'summary',
-      'tabindex', 'target', 'title', 'type', 'usemap', 'valign', 'value',
-      'valuetype', 'width');
-
-  HTMLColor : array [THTMLColor] of string =
-    ('Black', 'Silver', 'Gray', 'White', 'Maroon', 'Red', 'Purple', 'Fuchsia',
-     'Green', 'Lime', 'Olive', 'Yellow', 'Navy', 'Blue', 'Teal', 'Aqua');
-  HTMLDir : array [THTMLDir] of string = ('','LTR','RTL');
-  HTMLAlign : array [THTMLalign] of string = ('','left','center','right','justify','char');
-  HTMLvalign : array [THTMLvalign] of string = ('','top','middle','bottom','baseline');
-  HTMLframe : array [THTMLframe] of string =
-      ('','void','above','below','hsides','vsides','lhs','rhs','box','border');
-  HTMLrules : array [THTMLrules] of string = ('','none','groups','rows','cols','all');
-  HTMLvaluetype : array [THTMLvaluetype] of string = ('','data','ref','object');
-  HTMLshape : array [THTMLshape] of string = ('','default','rect','circle','poly');
-  HTMLinputtype : array [THTMLinputtype] of string = ('','text','password','checkbox',
-      'radio','submit','reset','file','hidden','image','button');
-  HTMLbuttontype : array [THTMLbuttontype] of string = ('','submit','reset','button');
-
-
-  // ISO8859-1 mapping:
-  HTMLEntities: array[#160..#255] of String = (
-    // 160-191
-    'nbsp', 'iexcl', 'cent', 'pound', 'curren', 'yen', 'brvbar', 'sect',
-    'uml', 'copy', 'ordf', 'laquo', 'not', 'shy', 'reg', 'macr',
-    'deg', 'plusmn', 'sup2', 'sup3', 'acute', 'micro', 'para', 'middot',
-    'cedil', 'sup1', 'ordm', 'raquo', 'frac14', 'frac12', 'frac34', 'iquest',
-    // 192-223
-    'Agrave', 'Aacute', 'Acirc', 'Atilde', 'Auml', 'Aring', 'AElig', 'Ccedil',
-    'Egrave', 'Eacute', 'Ecirc', 'Euml', 'Igrave', 'Iacute', 'Icirc', 'Iuml',
-    'ETH', 'Ntilde', 'Ograve', 'Oacute', 'Ocirc', 'Otilde', 'Ouml', 'times',
-    'Oslash', 'Ugrave', 'Uacute', 'Ucirc', 'Uuml', 'Yacute', 'THORN', 'szlig',
-    // 224-255
-    'agrave', 'aacute', 'acirc', 'atilde', 'auml', 'aring', 'aelig', 'ccedil',
-    'egrave', 'eacute', 'ecirc', 'euml', 'igrave', 'iacute', 'icirc', 'iuml',
-    'eth', 'ntilde', 'ograve', 'oacute', 'ocirc', 'otilde', 'ouml', 'divide',
-    'oslash', 'ugrave', 'uacute', 'ucirc', 'uuml', 'yacute', 'thorn', 'yuml');
-
-
-  UnicodeHTMLEntities: array[0..141] of String = (
-    'Alpha',    // #913
-    'Beta',     // #914
-    'Gamma',    // #915
-    'Delta',    // #916
-    'Epsilon',  // #917
-    'Zeta',     // #918
-    'Eta',      // #919
-    'Theta',    // #920
-    'Iota',     // #921
-    'Kappa',    // #922
-    'Lambda',   // #923
-    'Mu',       // #924
-    'Nu',       // #925
-    'Xi',       // #926
-    'Omicron',  // #927
-    'Pi',       // #928
-    'Rho',      // #929
-    'Sigma',    // #931
-    'Tau',      // #932
-    'Upsilon',  // #933
-    'Phi',      // #934
-    'Chi',      // #935
-    'Psi',      // #936
-    'Omega',    // #937
-    'alpha',    // #945
-    'beta',     // #946
-    'gamma',    // #947
-    'delta',    // #948
-    'epsilon',  // #949
-    'zeta',     // #950
-    'eta',      // #951
-    'theta',    // #952
-    'iota',     // #953
-    'kappa',    // #954
-    'lambda',   // #955
-    'mu',       // #956
-    'nu',       // #957
-    'xi',       // #958
-    'omicron',  // #959
-    'pi',       // #960
-    'rho',      // #961
-    'sigmaf',   // #962
-    'sigma',    // #963
-    'tau',      // #964
-    'upsilon',  // #965
-    'phi',      // #966
-    'chi',      // #967
-    'psi',      // #968
-    'omega',    // #969
-    'thetasym', // #977
-    'upsih',    // #978
-    'piv',      // #982
-    'ensp',     // #8194
-    'emsp',     // #8195
-    'thinsp',   // #8201
-    'zwnj',     // #8204
-    'zwj',      // #8205
-    'lrm',      // #8206
-    'rlm',      // #8207
-    'ndash',    // #8211
-    'mdash',    // #8212
-    'lsquo',    // #8216
-    'rsquo',    // #8217
-    'sbquo',    // #8218
-    'ldquo',    // #8220
-    'rdquo',    // #8221
-    'bdquo',    // #8222
-    'dagger',   // #8224
-    'Dagger',   // #8225
-    'bull',     // #8226
-    'hellip',   // #8230
-    'permil',   // #8240
-    'prime',    // #8242
-    'lsaquo',   // #8249
-    'rsaquo',   // #8250
-    'oline',    // #8254
-    'frasl',    // #8260
-    'image',    // #8465
-    'weierp',   // #8472
-    'real',     // #8476
-    'trade',    // #8482
-    'alefsym',  // #8501
-    'larr',     // #8592
-    'uarr',     // #8593
-    'rarr',     // #8594
-    'darr',     // #8595
-    'harr',     // #8596
-    'crarr',    // #8629
-    'lArr',     // #8656
-    'uArr',     // #8657
-    'rArr',     // #8658
-    'dArr',     // #8659
-    'hArr',     // #8660
-    'forall',   // #8704
-    'part',     // #8706
-    'exist',    // #8707
-    'empty',    // #8709
-    'nabla',    // #8711
-    'isin',     // #8712
-    'notin',    // #8713
-    'ni',       // #8715
-    'prod',     // #8719
-    'sum',      // #8721
-    'minus',    // #8722
-    'lowast',   // #8727
-    'radic',    // #8730
-    'prop',     // #8733
-    'infin',    // #8734
-    'ang',      // #8736
-    'and',      // #8743
-    'or',       // #8744
-    'cap',      // #8745
-    'cup',      // #8746
-    'int',      // #8747
-    'there4',   // #8756
-    'sim',      // #8764
-    'cong',     // #8773
-    'asymp',    // #8776
-    'ne',       // #8800
-    'equiv',    // #8801
-    'le',       // #8804
-    'ge',       // #8805
-    'sub',      // #8834
-    'sup',      // #8835
-    'nsub',     // #8836
-    'sube',     // #8838
-    'supe',     // #8839
-    'oplus',    // #8853
-    'otimes',   // #8855
-    'perp',     // #8869
-    'sdot',     // #8901
-    'lceil',    // #8968
-    'rceil',    // #8969
-    'lfloor',   // #8970
-    'rfloor',   // #8971
-    'lang',     // #9001
-    'rang',     // #9002
-    'loz',      // #9674
-    'spades',   // #9824
-    'clubs',    // #9827
-    'hearts',   // #9829
-    'diams'     // #9830
-  );
-
-
-
-function ResolveHTMLEntityReference(const Name: String;
-  var Entity: Char): Boolean;
-
-
-
-implementation
-
-uses SysUtils;
-
-function ResolveHTMLEntityReference(const Name: String;
-  var Entity: Char): Boolean;
-var
-  Ent: Char;
-  i: Integer;
-begin
-  if Name = 'quot' then
-  begin
-    Entity := '"';
-    Result := True;
-  end else if Name = 'apos' then
-  begin
-    Entity := '''';
-    Result := True;
-  end else if Name = 'amp' then
-  begin
-    Entity := '&';
-    Result := True;
-  end else if Name = 'lt' then
-  begin
-    Entity := '<';
-    Result := True;
-  end else if Name = 'gt' then
-  begin
-    Entity := '>';
-    Result := True;
-  end else if (Length(Name) > 0) and (Name[1] = '#') then
-  begin
-    for i := 2 to Length(Name) do
-      if (Name[i] < '0') or (Name[i] > '9') then
-        break;
-    if i > 2 then
-    begin
-      Entity := Chr(StrToInt(Copy(Name, 2, i - 1)));
-      Result := True;
-    end else
-      Result := False;
-  end else
-  begin
-    for Ent := Low(HTMLEntities) to High(HTMLEntities) do
-      if HTMLEntities[Ent] = Name then
-      begin
-        Entity := Ent;
-        Result := True;
-        exit;
-      end;
-    Result := False;
-  end;
-end;
-
-end.

+ 0 - 440
packages/fcl-base/src/inc/zstream.pp

@@ -1,440 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 1999-2000 by the Free Pascal development team
-
-    Implementation of compression streams.
-
-    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}
-
-unit zstream;
-
-
-{ ---------------------------------------------------------------------
-  For linux and freebsd it's also possible to use ZLib instead
-  of paszlib. You need to undefine 'usepaszlib'.
-  ---------------------------------------------------------------------}
-
-{$define usepaszlib}
-
-
-interface
-
-uses
-  Sysutils, Classes
-{$ifdef usepaszlib}
-  ,paszlib,zbase
-{$else}
-  ,zlib
-{$endif}
-  ;
-
-{$H+}
-
-type
-  // Error reporting.
-  EZlibError = class(EStreamError);
-  ECompressionError = class(EZlibError);
-  EDecompressionError = class(EZlibError);
-
-  TCustomZlibStream = class(TOwnerStream)
-  private
-    FStrmPos: Integer;
-    FOnProgress: TNotifyEvent;
-    FZRec: TZStream;
-    FBuffer: array [Word] of Byte;
-  protected
-    procedure Progress(Sender: TObject); dynamic;
-    property OnProgress: TNotifyEvent read FOnProgress write FOnProgress;
-  public
-    constructor Create(Strm: TStream);
-  end;
-
-  TCompressionLevel = (clNone, clFastest, clDefault, clMax);
-
-  TCompressionStream = class(TCustomZlibStream)
-  private
-    function GetCompressionRate: extended;
-    function CompressionCheck(code: Integer): Integer;
-    procedure CompressBuf(const InBuf: Pointer; InBytes: Integer;
-                          var OutBuf: Pointer; var OutBytes: Integer);
-  public
-    constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream; ASkipHeader : Boolean = False);
-    destructor Destroy; override;
-    function Read(var Buffer; Count: Longint): Longint; override;
-    function Write(const Buffer; Count: Longint): Longint; override;
-    function Seek(Offset: Longint; Origin: Word): Longint; override;
-    property CompressionRate: extended read GetCompressionRate;
-    property OnProgress;
-  end;
-
-  TDecompressionStream = class(TCustomZlibStream)
-  private
-    function DecompressionCheck(code: Integer): Integer;
-    procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer;
-    OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer);
-  public
-    constructor Create(ASource: TStream; ASkipHeader : Boolean = False);
-    destructor Destroy; override;
-    function Read(var Buffer; Count: Longint): Longint; override;
-    function Write(const Buffer; Count: Longint): Longint; override;
-    function Seek(Offset: Longint; Origin: Word): Longint; override;
-    property OnProgress;
-  end;
-
-  TGZOpenMode = (gzOpenRead,gzOpenWrite);
-
-  TGZFileStream = Class(TStream)
-    Private
-    FOpenMode : TGZOpenmode;
-    FFIle : gzfile;
-    Public
-    Constructor Create(FileName: String;FileMode: TGZOpenMode);
-    Destructor Destroy;override;
-    Function Read(Var Buffer; Count : longint): longint;override;
-    function Write(const Buffer; Count: Longint): Longint; override;
-    function Seek(Offset: Longint; Origin: Word): Longint; override;
-    end;
-
-
-implementation
-
-Const
-  ErrorStrings : array [0..6] of string =
-    ('Unknown error %d','Z_ERRNO','Z_STREAM_ERROR',
-     'Z_DATA_ERROR','Z_MEM_ERROR','Z_BUF_ERROR','Z_VERSION_ERROR');
-  SCouldntOpenFile = 'Couldn''t open file : %s';
-  SReadOnlyStream = 'Decompression streams are read-only';
-  SWriteOnlyStream = 'Compression streams are write-only';
-  SSeekError = 'Compression stream seek error';
-  SInvalidSeek = 'Invalid Compression seek operation';
-
-procedure TCompressionStream.CompressBuf(const InBuf: Pointer; InBytes: Integer;
-                      var OutBuf: Pointer; var OutBytes: Integer);
-var
-  strm: TZStream;
-  P: Pointer;
-begin
-  FillChar(strm, sizeof(strm), 0);
-  OutBytes := ((InBytes + (InBytes div 10) + 12) + 255) and not 255;
-  OutBuf:=GetMem(OutBytes);
-  try
-    strm.next_in := InBuf;
-    strm.avail_in := InBytes;
-    strm.next_out := OutBuf;
-    strm.avail_out := OutBytes;
-    CompressionCheck(deflateInit(strm, Z_BEST_COMPRESSION));
-    try
-      while CompressionCheck(deflate(strm, Z_FINISH)) <> Z_STREAM_END do
-      begin
-        P := OutBuf;
-        Inc(OutBytes, 256);
-        ReallocMem(OutBuf,OutBytes);
-        strm.next_out := PByte(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
-        strm.avail_out := 256;
-      end;
-    finally
-      CompressionCheck(deflateEnd(strm));
-    end;
-    ReallocMem(OutBuf,strm.total_out);
-    OutBytes := strm.total_out;
-  except
-    FreeMem(OutBuf);
-    raise;
-  end;
-end;
-
-
-procedure TDecompressionStream.DecompressBuf(const InBuf: Pointer; InBytes: Integer;
-       OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer);
-var
-  strm: TZStream;
-  P: Pointer;
-  BufInc: Integer;
-Type
-  PByte = ^Byte;
-begin
-  FillChar(strm, sizeof(strm), 0);
-  BufInc := (InBytes + 255) and not 255;
-  if OutEstimate = 0 then
-    OutBytes := BufInc
-  else
-    OutBytes := OutEstimate;
-  OutBuf:=GetMem(OutBytes);
-  try
-    strm.next_in := InBuf;
-    strm.avail_in := InBytes;
-    strm.next_out := OutBuf;
-    strm.avail_out := OutBytes;
-    DecompressionCheck(inflateInit(strm));
-    try
-      while DecompressionCheck(inflate(strm, Z_FINISH)) <> Z_STREAM_END do
-      begin
-        P := OutBuf;
-        Inc(OutBytes, BufInc);
-        ReallocMem(OutBuf, OutBytes);
-        strm.next_out := PByte(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P)));
-        strm.avail_out := BufInc;
-      end;
-    finally
-      DecompressionCheck(inflateEnd(strm));
-    end;
-    ReallocMem(OutBuf, strm.total_out);
-    OutBytes := strm.total_out;
-  except
-    FreeMem(OutBuf);
-    raise;
-  end;
-end;
-
-
-// TCustomZlibStream
-
-constructor TCustomZLibStream.Create(Strm: TStream);
-begin
-  inherited Create(Strm);
-  FStrmPos := Strm.Position;
-end;
-
-procedure TCustomZLibStream.Progress(Sender: TObject);
-begin
-  if Assigned(FOnProgress) then FOnProgress(Sender);
-end;
-
-
-// TCompressionStream
-
-constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel;
-  Dest: TStream; ASkipHeader : Boolean = False);
-const
-  Levels: array [TCompressionLevel] of ShortInt =
-    (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION);
-begin
-  inherited Create(Dest);
-  FZRec.next_out := @FBuffer[0];
-  FZRec.avail_out := sizeof(FBuffer);
-  If ASkipHeader then
-    CompressionCheck(deflateInit2(FZRec, Levels[CompressionLevel],Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, 0))
-  else
-    CompressionCheck(deflateInit(FZRec, Levels[CompressionLevel]));
-end;
-
-destructor TCompressionStream.Destroy;
-begin
-  FZRec.next_in := nil;
-  FZRec.avail_in := 0;
-  try
-    if Source.Position <> FStrmPos then Source.Position := FStrmPos;
-    while (CompressionCheck(deflate(FZRec, Z_FINISH)) <> Z_STREAM_END)
-      and (FZRec.avail_out = 0) do
-    begin
-      Source.WriteBuffer(FBuffer, sizeof(FBuffer));
-      FZRec.next_out := @FBuffer[0];
-      FZRec.avail_out := sizeof(FBuffer);
-    end;
-    if FZRec.avail_out < sizeof(FBuffer) then
-      Source.WriteBuffer(FBuffer, sizeof(FBuffer) - FZRec.avail_out);
-  finally
-    deflateEnd(FZRec);
-  end;
-  inherited Destroy;
-end;
-
-function TCompressionStream.CompressionCheck(code: Integer): Integer;
-begin
-  Result := code;
-  if (code < 0) then
-    if code < -6 then
-      raise ECompressionError.CreateFmt(Errorstrings[0],[Code])
-    else
-      raise ECompressionError.Create(ErrorStrings[Abs(Code)]);
-end;
-
-
-function TCompressionStream.Read(var Buffer; Count: Longint): Longint;
-begin
-  raise ECompressionError.Create('Invalid stream operation');
-  result:=0;
-end;
-
-function TCompressionStream.Write(const Buffer; Count: Longint): Longint;
-begin
-  FZRec.next_in := @Buffer;
-  FZRec.avail_in := Count;
-  if Source.Position <> FStrmPos then Source.Position := FStrmPos;
-  while (FZRec.avail_in > 0) do
-  begin
-    CompressionCheck(deflate(FZRec, 0));
-    if FZRec.avail_out = 0 then
-    begin
-      Source.WriteBuffer(FBuffer, sizeof(FBuffer));
-      FZRec.next_out := @FBuffer[0];
-      FZRec.avail_out := sizeof(FBuffer);
-      FStrmPos := Source.Position;
-      Progress(Self);
-    end;
-  end;
-  Result := Count;
-end;
-
-function TCompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
-begin
-  if (Offset = 0) and (Origin = soFromCurrent) then
-    Result := FZRec.total_in
-  else
-    raise ECompressionError.Create(SInvalidSeek);
-end;
-
-function TCompressionStream.GetCompressionRate: extended;
-begin
-  Result:=0.0;
-{  With FZrec do
-    if total_in = 0 then
-      GetCompressionRate:=0.0
-    else
-      GetCompressionRate:=1.0E2*(1.0E0-(total_out/total_in));
-}
-end;
-
-
-// TDecompressionStream
-
-constructor TDecompressionStream.Create(ASource: TStream; ASkipHeader : Boolean = False);
-begin
-  inherited Create(ASource);
-  FZRec.next_in := @FBuffer[0];
-  If ASkipHeader then
-    DeCompressionCheck(inflateInit2(FZRec,-MAX_WBITS))
-  else
-    DeCompressionCheck(inflateInit(FZRec));
-end;
-
-destructor TDecompressionStream.Destroy;
-begin
-  if FZRec.avail_in <> 0 then
-    Source.Seek(-FZRec.avail_in, soFromCurrent);
-  inflateEnd(FZRec);
-  inherited Destroy;
-end;
-
-function TDecompressionStream.DecompressionCheck(code: Integer): Integer;
-begin
-  Result := code;
-  If Code<0 then
-    if code < -6 then
-      raise EDecompressionError.CreateFmt(Errorstrings[0],[Code])
-    else
-      raise EDecompressionError.Create(ErrorStrings[Abs(Code)]);
-end;
-
-function TDecompressionStream.Read(var Buffer; Count: Longint): Longint;
-begin
-  FZRec.next_out := @Buffer;
-  FZRec.avail_out := Count;
-  if Source.Position <> FStrmPos then Source.Position := FStrmPos;
-  while (FZRec.avail_out > 0) do
-  begin
-    if FZRec.avail_in = 0 then
-    begin
-      FZRec.avail_in := Source.Read(FBuffer, sizeof(FBuffer));
-      if FZRec.avail_in = 0 then
-        begin
-          Result := Count - FZRec.avail_out;
-          Exit;
-        end;
-      FZRec.next_in := @FBuffer[0];
-      FStrmPos := Source.Position;
-      Progress(Self);
-    end;
-    if DeCompressionCheck(inflate(FZRec, 0)) = Z_STREAM_END then
-        begin
-          Result := Count - FZRec.avail_out;
-          Exit;
-        end;
-  end;
-  Result := Count;
-end;
-
-function TDecompressionStream.Write(const Buffer; Count: Longint): Longint;
-begin
-  raise EDecompressionError.Create('Invalid stream operation');
-  result:=0;
-end;
-
-function TDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint;
-var
-  I: Integer;
-  Buf: array [0..4095] of Char;
-begin
-  if (Offset = 0) and (Origin = soFromBeginning) then
-  begin
-    DecompressionCheck(inflateReset(FZRec));
-    FZRec.next_in := @FBuffer[0];
-    FZRec.avail_in := 0;
-    Source.Position := 0;
-    FStrmPos := 0;
-  end
-  else if ( (Offset >= 0) and (Origin = soFromCurrent)) or
-          ( ((Offset - FZRec.total_out) > 0) and (Origin = soFromBeginning)) then
-  begin
-    if Origin = soFromBeginning then Dec(Offset, FZRec.total_out);
-    if Offset > 0 then
-    begin
-      for I := 1 to Offset div sizeof(Buf) do
-        ReadBuffer(Buf, sizeof(Buf));
-      ReadBuffer(Buf, Offset mod sizeof(Buf));
-    end;
-  end
-  else
-    raise EDecompressionError.Create(SInvalidSeek);
-  Result := FZRec.total_out;
-end;
-
-// TGZFileStream
-
-Constructor TGZFileStream.Create(FileName: String;FileMode: TGZOpenMode);
-
-Const OpenStrings : array[TGZOpenMode] of pchar = ('rb','wb');
-
-begin
-   FOpenMode:=FileMode;
-   FFile:=gzopen (PChar(FileName),Openstrings[FileMode]);
-   If FFile=Nil then
-     Raise ezlibError.CreateFmt (SCouldntOpenFIle,[FileName]);
-end;
-
-Destructor TGZFileStream.Destroy;
-begin
-  gzclose(FFile);
-  Inherited Destroy;
-end;
-
-Function TGZFileStream.Read(Var Buffer; Count : longint): longint;
-begin
-  If FOpenMode=gzOpenWrite then
-    Raise ezliberror.create(SWriteOnlyStream);
-  Result:=gzRead(FFile,@Buffer,Count);
-end;
-
-function TGZFileStream.Write(const Buffer; Count: Longint): Longint;
-begin
-  If FOpenMode=gzOpenRead then
-    Raise EzlibError.Create(SReadonlyStream);
-  Result:=gzWrite(FFile,@Buffer,Count);
-end;
-
-function TGZFileStream.Seek(Offset: Longint; Origin: Word): Longint;
-begin
-  Result:=gzseek(FFile,Offset,Origin);
-  If Result=-1 then
-    Raise eZlibError.Create(SSeekError);
-end;
-
-end.

+ 0 - 42
packages/fcl-base/src/qnx/classes.pp

@@ -1,42 +0,0 @@
-{
-    This file is part of the Free Component Library (FCL)
-    Copyright (c) 1999-2000 by Michael Van Canneyt and Florian Klaempfl
-
-    Classes unit for QNX Real time platform
-
-    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}
-
-{ determine the type of the resource/form file }
-{$define Win16Res}
-
-unit Classes;
-
-interface
-
-uses
-  typinfo,
-  sysutils;
-
-{$i classesh.inc}
-
-implementation
-
-{ OS - independent class implementations are in /inc directory. }
-{$i classes.inc}
-
-initialization
-  CommonInit;
-
-finalization
-  CommonCleanup;
-
-end.

+ 0 - 22
packages/fcl-base/src/qnx/eventlog.inc

@@ -1,22 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2003 by the Free Pascal development team
-
-    Generic event logging facility.
-
-    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.
-
- **********************************************************************}
-
-{ ---------------------------------------------------------------------
-    Include event log that maps to file event log.
-  ---------------------------------------------------------------------}
-
-{$i felog.inc}
-
-

+ 965 - 965
packages/fcl-base/src/win/ServiceManager.pas

@@ -11,968 +11,968 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  **********************************************************************}
-{$mode objfpc}
-{$h+}
-unit ServiceManager;
-
-interface
-
-uses
-  Windows, SysUtils, Classes, jwawinnt, jwawinsvc;
-
-type
-
-  TServiceEntry = Class(TCollectionItem)
-  Private
-    FServiceName,
-    FDisplayName : String;
-    FServiceType,
-    FCurrentState,
-    FControlsAccepted,
-    FWin32ExitCode,
-    FServiceSpecificExitCode,
-    FCheckPoint,
-    FWaitHint: DWORD;
-  Private
-    Procedure SetStatusFields(Const Status : TServiceStatus);
-  Public
-    Property ServiceName : String Read FServiceName;
-    Property DisplayName : String read FDIsplayName;
-    Property ServiceType : DWord Read FServiceType;
-    Property CurrentState : DWord Read FCurrentState;
-    Property ControlsAccepted : DWord Read FControlsAccepted;
-    Property Win32ExitCode : DWord Read FWin32ExitCode;
-    Property ServiceSpecificExitCode : DWord Read FServiceSpecificExitCode;
-    Property CheckPoint : DWord Read FCheckPoint;
-    Property WaitHint: DWORD Read FWaitHint;
-  end;
-
-  TServiceEntries = Class(TOwnedCollection)
-  Private
-    Function GetService (Index : Integer) : TServiceEntry;
-  Public
-    Function FindService(ServiceName : String) : TServiceEntry;
-    Function ServiceByName(ServiceName : String) : TServiceEntry;
-    Property Items [index : Integer] : TServiceEntry Read GetService;default;
-  end;
-
-  { Record used in
-    registerservice,
-    configservice or
-    queryserviceconfig
-   }
-
-  TServiceDescriptor = Record
-    Name : ShortString;
-    DisplayName : ShortString;
-    DesiredAccess : DWord;
-    ServiceType : DWord;
-    StartType : DWord;
-    ErrorControl : DWord;
-    CommandLine : String;
-    LoadOrderGroup : String;
-    TagID : DWord;
-    Dependencies : String; // Separated by slash signs (/)
-    UserName : String;
-    Password : String;
-  end;
-
-  TServiceManager = class(TComponent)
-  private
-    { Private declarations }
-    FReconnect : Boolean;
-    FMachineName : String;
-    FAccess : DWord;
-    FHandle : THandle;
-    FDBLock : SC_LOCK;
-    FServices : TServiceEntries;
-    FAfterRefresh : TNotifyEvent;
-    FAfterConnect: TNotifyEvent;
-    FRefreshOnConnect: Boolean;
-    FBeforeDisConnect: TNotifyEvent;
-    function GetConnected: Boolean;
-    procedure SetConnected(const Value: Boolean);
-    procedure SetMachineName(const Value: string);
-  protected
-    { Protected declarations }
-    procedure Loaded;override;
-    Procedure SMError(Msg : String);
-    Procedure CheckConnected(Msg : String);
-    Procedure DoBeforeDisConnect; virtual;
-    Procedure DoAfterConnect; virtual;
-    Procedure DoAfterRefresh; virtual;
-  public
-    { Public declarations }
-    Constructor Create(AOwner: TComponent); override;
-    Destructor Destroy; override;
-    Procedure ClearServices;
-    Procedure Refresh;
-    Procedure Connect;
-    Procedure Disconnect;
-    function GetServiceHandle(ServiceName: String; SAccess: DWord): THandle;
-    procedure ContinueService(SHandle: THandle); overload;
-    procedure ContinueService(ServiceName : String); overload;
-    procedure StartService(SHandle: THandle; Args: TStrings);overload;
-    procedure StartService(ServiceName : String; Args: TStrings); overload;
-    procedure StopService(ServiceName: String; StopDependent: Boolean); overload;
-    procedure StopService(SHandle : THandle; StopDependent: Boolean); overload;
-    procedure PauseService(SHandle: THandle);overload;
-    procedure PauseService(ServiceName: String);Overload;
-    procedure CustomControlService(ServiceName : String; ControlCode : DWord); overload;
-    procedure CustomControlService(Shandle : THandle; ControlCode : DWord); overload;
-    procedure ListDependentServices(SHandle: THandle; ServiceState: DWord;  List: TStrings); overload;
-    procedure ListDependentServices(ServiceName : String; ServiceState : DWord; List : TStrings); overload;
-    Procedure LockServiceDatabase;
-    Procedure UnlockServiceDatabase;
-    procedure QueryServiceConfig(SHandle : THandle; Var Config : TServiceDescriptor);overload;
-    procedure QueryServiceConfig(ServiceName : String; Var Config : TServiceDescriptor);overload;
-    Function  RegisterService(Var Desc : TServiceDescriptor) : THandle;
-    procedure SetStartupType(ServiceName: String; StartupType: DWord); overload;
-    procedure SetStartupType(SHandle : THandle; StartupType: DWord); overload;
-    Procedure UnregisterService(ServiceName : String);
-    procedure ConfigService(SHandle: THandle; Config: TServiceDescriptor); overload;
-    procedure ConfigService(ServiceName : string; Config: TServiceDescriptor); overload;
-    procedure RefreshServiceStatus(ServiceName: String);
-    procedure GetServiceStatus(SHandle : THandle; Var Status : TServiceStatus); overload;
-    procedure GetServiceStatus(ServiceName : String; Var Status : TServiceStatus); overload;
-    Property  Handle : THandle Read FHandle;
-    Property  Acces : DWord read FAccess Write FAccess;
-    Property  Services : TServiceEntries Read FServices;
-  published
-    { Published declarations }
-    Property Connected : Boolean Read GetConnected Write SetConnected;
-    Property MachineName : string Read FMachineName Write SetMachineName;
-    Property RefreshOnConnect : Boolean Read FRefreshOnConnect Write FrefreshOnConnect;
-    Property AfterRefresh : TNotifyEvent Read FAfterRefresh Write FAfterRefresh;
-    Property AfterConnect : TNotifyEvent Read FAfterConnect Write FAfterConnect;
-    Property BeforeDisConnect : TNotifyEvent Read FBeforeDisConnect Write FBeforeDisConnect;
-  end;
-
-  EServiceManager = Class(Exception);
-
-Const
-  StartTypes : Array[0..4] of DWord = (
-    SERVICE_AUTO_START,SERVICE_BOOT_START, SERVICE_DEMAND_START,
-    SERVICE_SYSTEM_START, SERVICE_DISABLED );
-  ServiceTypes : Array[0..3] of DWord = (
-    SERVICE_FILE_SYSTEM_DRIVER, SERVICE_KERNEL_DRIVER,
-    SERVICE_WIN32_OWN_PROCESS, SERVICE_WIN32_SHARE_PROCESS );
-  StartErrors : Array[0..3] of DWord = (
-    SERVICE_ERROR_IGNORE, SERVICE_ERROR_NORMAL,
-    SERVICE_ERROR_SEVERE, SERVICE_ERROR_CRITICAL);
-
-Function ServiceTypeToString(AType : Dword) : String;
-Function ServiceStateToString(AState : DWord) : String;
-Function ControlsAcceptedToString(AValue : DWord) : String;
-Function IsInteractiveService(AType : Dword) : Boolean;
-
-implementation
-
-
-ResourceString
-  SErrConnected       = 'Operation not permitted while connected to Service Control Manager';
-  SErrNotConnected    = 'Not connected to Service control manager. Cannot %s';
-  SErrInvalidControlCode = 'Invalid custom control code : %d';
-  SQueryServiceList   = 'Query service list';
-  SActive             = 'Active';
-  SInactive           = 'Inactive';
-  SStopped            = 'Stopped';
-  SStartPending       = 'Start pending';
-  SStopPending        = 'Stop pending';
-  SRunning            = 'Running';
-  SContinuePending    = 'Continue pending';
-  SPausePending       = 'Pause pending';
-  SPaused             = 'Paused';
-  SUnknownState       = 'Unknown State (%d)';
-  SUnknownType        = 'Unknown type (%d)';
-  SStop               = 'Stop';
-  SPauseContinue      = 'Pause/continue';
-  SShutDown           = 'Shutdown';
-  SDeviceDriver       = 'Device driver';
-  SFileSystemDriver   = 'Filesystem driver';
-  SAdapter            = 'Adapter';
-  SRecognizer         = 'Recognizer';
-  SService            = 'Service';
-  SSHaredService      = 'Service (shared)';
-  SErrServiceNotFound = 'Service "%s" not found.';
-
-
-{ TServiceManager }
-
-{$ifdef ver130}
-
-Type
-  PPChar = ^PChar;
-  PCharArray = Array[Word] of PChar;
-  PPCharArray = ^PCharArray;
-
-Procedure RaiseLastOSError;
-
-begin
-  RaiseLastWin32Error;
-end;
-{$endif}
-
-procedure TServiceManager.CheckConnected(Msg: String);
-begin
-  If Not Connected then
-    SMError(Format(SErrNotConnected,[Msg]));
-end;
-
-procedure TServiceManager.ClearServices;
-begin
-  FServices.Clear;
-end;
-
-procedure TServiceManager.Connect;
-
-Var
-   P : PChar;
-
-begin
-  If (FHandle=0) then
-    begin
-    P:=Nil;
-    If (MachineName<>'') then
-      P:=PChar(MachineName);
-    FHandle:=OpenSCManager(P,Nil,FAccess);
-    If (FHandle=0) then
-      RaiseLastOSError;
-    DoAfterConnect;
-    If RefreshOnConnect then
-      Refresh;
-    end;
-end;
-
-constructor TServiceManager.Create(AOwner: TComponent);
-begin
-  inherited;
-  FServices:=TServiceEntries.Create(Self,TServiceEntry);
-  FAccess:=SC_MANAGER_ALL_ACCESS;
-end;
-
-destructor TServiceManager.Destroy;
-begin
-  FServices.Free;
-  Inherited;
-end;
-
-procedure TServiceManager.Disconnect;
-begin
-  IF (FHandle<>0) then
-    begin
-    DoBeforeDisConnect;
-    CloseServiceHandle(FHandle);
-    FHandle:=0;
-    end;
-end;
-
-function TServiceManager.GetConnected: Boolean;
-begin
-  Result:=(Handle<>0);
-end;
-
-procedure TServiceManager.Refresh;
-
-Var
-  BytesNeeded,
-  ServicesReturned,
-  ResumeHandle : DWord;
-  Info,P : PEnumServiceStatus;
-  E : TServiceEntry;
-  I : integer;
-
-begin
-  ClearServices;
-  CheckConnected(SQueryServiceList);
-  BytesNeeded:=0;
-  ServicesReturned:=0;
-  ResumeHandle:=0;
-  Info:=Nil;
-  EnumServicesStatus(FHandle,SERVICE_WIN32,SERVICE_STATE_ALL,Info,0,
-                     BytesNeeded,ServicesReturned,Resumehandle);
-  if (GetLastError<>ERROR_MORE_DATA) then
-    RaiseLastOSError;
-  Getmem(Info,BytesNeeded);
-  Try
-    P:=Info;
-    If Not EnumServicesStatus(FHandle,SERVICE_WIN32,SERVICE_STATE_ALL,Info,BytesNeeded,
-                       BytesNeeded,ServicesReturned,Resumehandle) then
-      RaiseLastOSError;
-    For I:=1 to Servicesreturned do
-      begin
-      E:=FServices.Add as TServiceEntry;
-      With E,P^ do
-        begin
-        FServiceName:=StrPas(lpServiceName);
-        FDisplayName:=StrPas(lpDisplayName);
-        SetStatusFields(ServiceStatus);
-        end;
-      PChar(P):=Pchar(P)+SizeOf(TEnumServiceStatus);
-      end;
-    Finally
-    FreeMem(Info);
-  end;
-  DoAfterRefresh;
-end;
-
-procedure TServiceManager.SetConnected(const Value: Boolean);
-begin
-  If (([csLoading,csdesigning] * ComponentState)<>[]) then
-    FReconnect:=Value
-  else
-    If Value<>GetConnected then
-      If Value then
-        Connect
-      Else
-        Disconnect;
-end;
-
-procedure TServiceManager.Loaded;
-
-begin
-  Inherited;
-  If FReconnect then
-    Connect;
-end;
-
-procedure TServiceManager.SetMachineName(const Value: string);
-begin
-  If Connected then
-    SMError(SErrConnected);
-  FMachineName := Value;
-end;
-
-procedure TServiceManager.SMError(Msg: String);
-begin
-  raise EServiceManager.Create(Msg);
-end;
-
-Function ServiceTypeToString(AType : Dword) : String;
-
-begin
-  Case (AType and $FF) of
-    SERVICE_KERNEL_DRIVER       : Result:=SDeviceDriver;
-    SERVICE_FILE_SYSTEM_DRIVER  : Result:=SFileSystemDriver;
-    SERVICE_ADAPTER             : Result:=SAdapter;
-    SERVICE_RECOGNIZER_DRIVER   : Result:=SRecognizer;
-    SERVICE_WIN32_OWN_PROCESS   : Result:=SService;
-    SERVICE_WIN32_SHARE_PROCESS : Result:=SSHaredService;
-  else
-    Result:=Format(SUnknownType,[AType]);
-  end;
-end;
-
-Function IsInteractiveService(AType : Dword) : Boolean;
-
-begin
-  Result:=(Atype and SERVICE_INTERACTIVE_PROCESS)<>0;
-end;
-
-Function ServiceStateToString(AState : Dword) : String;
-
-begin
-  Case AState of
-    SERVICE_STOPPED          : Result:=SStopped;
-    SERVICE_START_PENDING    : Result:=SStartPending;
-    SERVICE_STOP_PENDING     : Result:=SStopPending;
-    SERVICE_RUNNING          : Result:=SRunning;
-    SERVICE_CONTINUE_PENDING : Result:=SContinuePending;
-    SERVICE_PAUSE_PENDING    : Result:=SPausePending;
-    SERVICE_PAUSED           : Result:=SPaused;
-  else
-    Result:=Format(SUnknownState,[AState]);
-  end;
-end;
-
-Function ControlsAcceptedToString(AValue : DWord) : String;
-
-  Procedure AddToResult(S : String);
-  begin
-    If (Result='') then
-      Result:=S
-    else
-      Result:=Result+','+S
-  end;
-
-begin
-  Result:='';
-  If (AValue and SERVICE_ACCEPT_STOP)<>0 then
-    AddToResult(SStop);
-  If (AValue and SERVICE_ACCEPT_PAUSE_CONTINUE)<>0 then
-    AddToResult(SPauseContinue);
-  If (AValue and SERVICE_ACCEPT_SHUTDOWN)<>0 then
-    AddToResult(SShutDown)
-end;
-
-procedure TServiceManager.DoAfterConnect;
-begin
-  If Assigned(FAfterConnect) then
-    FAfterConnect(Self);
-end;
-
-procedure TServiceManager.DoAfterRefresh;
-begin
-  If Assigned(FAfterRefresh) then
-    FAfterRefresh(Self);
-
-end;
-
-procedure TServiceManager.DoBeforeDisConnect;
-begin
-  If Assigned(FBeforeDisconnect) then
-    FBeforeDisconnect(Self);
-end;
-
-Function AllocDependencyList (Const S : String) : PChar;
-
-Var
-  I,L : Integer;
-
-begin
-  Result:=Nil;
-  If (S<>'') then
-    begin
-    // Double Null terminated list of null-terminated strings.
-    L:=Length(S);
-    GetMem(Result,L+3);
-    Move(S[1],Result^,L+1); // Move terminating null as well.
-    Result[L+1]:=#0;
-    Result[L+2]:=#0;
-    For I:=0 to L-1 do
-      If Result[i]='/' then // Change / to #0.
-        Result[i]:=#0;
-    end;
-end;
-
-Function TServiceManager.RegisterService(var Desc: TServiceDescriptor) : Thandle;
-
-Var
-  PDep,PLO,PUser,PPWd : PChar; // We need Nil for some things.
-  N,D : String;
-  ReturnTag : DWord;
-
-begin
-  With Desc do
-    begin
-    N:=Name;
-    D:=DisplayName;
-    If (LoadOrderGroup='') then
-      PLO:=Nil
-    else
-      PLO:=PChar(LoadOrderGroup);
-    PPwd:=Nil;
-    PUser:=Nil;
-    If (UserName<>'') then
-      begin
-      PUser:=PChar(UserName);
-      If (Password<>'') then
-        PPWd:=PChar(Password);
-      end;
-    PDep:=AllocDependencyList(Dependencies);
-    Try
-      Result:=CreateService(Self.Handle,PChar(N),PChar(D),DesiredAccess,ServiceType,
-                            StartType,ErrorControl,PChar(CommandLine),PLO,Nil,
-                            PDep,PUser,PPwd);
-      If (Result=0) then
-        RaiseLastOSError;
-    Finally
-      If PDep<>Nil then
-        FreeMem(PDep);
-    end;
-    end;
-end;
-
-procedure TServiceManager.ListDependentServices(ServiceName : String; ServiceState : DWord; List : TStrings);
-
-Var
-  H : THandle;
-
-begin
-  H:=OpenService(Handle,PChar(ServiceName),SERVICE_ENUMERATE_DEPENDENTS);
-  try
-    ListDependentServices(H,ServiceState,List);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-
-procedure TServiceManager.ListDependentServices(SHandle: THandle; ServiceState : DWord; List : TStrings);
-
-Var
-  P,E : PEnumServiceStatus;
-  I,BytesNeeded,Count : DWord;
-
-begin
-  P:=Nil;
-  List.Clear;
-  // If call succeeds with size 0, then there are no dependent services...
-  if Not EnumDependentServices(SHandle,ServiceState,P,0,BytesNeeded,Count) then
-    begin
-    If (GetLastError<>ERROR_MORE_DATA) then
-      RaiseLastOSError;
-    GetMem(P,BytesNeeded);
-    Try
-      If Not EnumDependentServices(SHandle,ServiceState,P,bytesNeeded,BytesNeeded,Count) Then
-        RaiseLastOSError;
-      E:=P;
-      For I:=0 to Count-1 do
-        begin
-        List.Add(StrPas(E^.lpServiceName));
-        Pchar(E):=PChar(E)+SizeOf(TEnumServiceStatus);
-        end;
-    Finally
-      FreeMem(P);
-    end;
-    end;
-end;
-
-
-Procedure TServiceManager.StopService(SHandle : THandle; StopDependent : Boolean);
-
-Var
-  I : Integer;
-  List : TStrings;
-  Status : TServiceStatus;
-
-begin
-  If Not QueryServiceStatus(SHandle,Status) then
-    RaiseLastOSError;
-  If Not (Status.dwCurrentState=SERVICE_STOPPED) then
-    begin
-    If StopDependent then
-      begin
-      List:=TStringList.Create;
-      Try
-        ListDependentServices(SHandle,SERVICE_ACTIVE,List);
-        For I:=0 to List.Count-1 do
-          StopService(List[i],False); // Do not recurse !!
-      Finally
-        List.Free;
-      end;
-      end;
-    If Not ControlService(SHandle,SERVICE_CONTROL_STOP,Status) then
-      RaiseLastOSError;
-    end;
-end;
-
-Procedure TServiceManager.StopService(ServiceName : String; StopDependent : Boolean);
-
-Var
-  H : THandle;
-  A : DWORD;
-
-begin
-  A:=SERVICE_STOP or SERVICE_QUERY_STATUS;
-  If StopDependent then
-    A:=A or SERVICE_ENUMERATE_DEPENDENTS;
-  H:=OpenService(Handle,PChar(ServiceName),A);
-  Try
-    StopService(H,StopDependent);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-
-Function TServiceManager.GetServiceHandle(ServiceName : String; SAccess : DWord) : THandle;
-
-begin
-  Result:=OpenService(Handle,PChar(ServiceName),SAccess);
-  If (Result=0) then
-    RaiseLastOSError;
-end;
-
-procedure TServiceManager.UnregisterService(ServiceName: String);
-
-Var
-  H : THandle;
-  Status : TServiceStatus;
-
-begin
-  StopService(ServiceName,True);
-  H:=GetServiceHandle(ServiceName,SERVICE_STOP or SERVICE_QUERY_STATUS or SERVICE_DELETE);
-  Try
-    If Not DeleteService(H) then
-      RaiseLastOSError;
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-Procedure TServiceManager.PauseService(SHandle : THandle);
-
-Var
-  Status : TServiceStatus;
-
-begin
-  If Not ControlService(SHandle,SERVICE_CONTROL_PAUSE,Status) then
-    RaiseLastOSError;
-end;
-
-Procedure TServiceManager.PauseService(ServiceName : String);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_PAUSE_CONTINUE);
-  Try
-    PauseService(H);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-Procedure TServiceManager.ContinueService(SHandle : THandle);
-
-Var
-  Status : TServiceStatus;
-
-begin
-  If Not ControlService(SHandle,SERVICE_CONTROL_CONTINUE,Status) then
-    RaiseLastOSError;
-end;
-
-Procedure TServiceManager.ContinueService(ServiceName : String);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_PAUSE_CONTINUE);
-  Try
-    ContinueService(H);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-Function StringsToPCharList(List : TStrings) : PPChar;
-
-Var
-  I : Integer;
-  S : String;
-
-begin
-  I:=(List.Count)+1;
-  GetMem(Result,I*sizeOf(PChar));
-  PPCharArray(Result)^[List.Count]:=Nil;
-  For I:=0 to List.Count-1 do
-    begin
-    S:=List[i];
-    PPCharArray(Result)^[i]:=StrNew(PChar(S));
-    end;
-end;
-
-Procedure FreePCharList(List : PPChar);
-
-Var
-  I : integer;
-
-begin
-  I:=0;
-  While PPChar(List)[i]<>Nil do
-    begin
-    StrDispose(PPChar(List)[i]);
-    Inc(I);
-    end;
-  FreeMem(List);
-end;
-
-Procedure TServiceManager.StartService(SHandle : THandle; Args : TStrings);
-
-Var
-  Argc : DWord;
-  PArgs : PPchar;
-
-begin
-  If (Args=Nil) or (Args.Count>0) then
-    begin
-    Argc:=0;
-    Pargs:=Nil;
-    end
-  else
-    begin
-    ArgC:=Args.Count;
-    Pargs:=StringsToPcharList(Args);
-    end;
-  Try
-    If not jwawinsvc.StartService(SHandle,Argc,PArgs^) then
-      RaiseLastOSError;
-  Finally
-    If (PArgs<>Nil) then
-      FreePCharList(PArgs);
-  end;
-end;
-
-
-Procedure TServiceManager.StartService(ServiceName : String; Args : TStrings);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_START);
-  Try
-    StartService(H,Args);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-Procedure TServiceManager.LockServiceDatabase;
-
-begin
-  FDBLock:=jwawinsvc.LockServiceDatabase(Handle);
-  If FDBLock=Nil then
-    RaiseLastOSError;
-end;
-
-procedure TServiceManager.UnlockServiceDatabase;
-begin
-  If (FDBLock<>Nil) then
-    begin
-    Try
-      If Not jwawinsvc.UnLockServiceDatabase(FDBLock) then
-        RaiseLastOSError;
-    Finally
-      FDBLock:=Nil;
-    end;
-    end;
-end;
-
-procedure TServiceManager.QueryServiceConfig(SHandle : THandle; Var Config : TServiceDescriptor);
-
-Var
-  SvcCfg : PQueryServiceConfig;
-  BytesNeeded : DWord;
-
-begin
-  jwawinsvc.QueryServiceConfig(SHandle,Nil,0,BytesNeeded);
-  If (GetLastError<>ERROR_INSUFFICIENT_BUFFER) then
-    RaiseLastOSError;
-  GetMem(SvcCfg,BytesNeeded);
-  Try
-    If Not jwawinsvc.QueryServiceConfig(SHandle,SvcCfg,BytesNeeded,BytesNeeded) then
-      RaiseLastOSError;
-    With config,SvcCfg^ do
-      begin
-      Password:='';
-      Name:='';
-      DesiredAccess:=0;
-      ErrorControl:=dwErrorControl;
-      ServiceType:=dwServiceType;
-      StartType:=dwStartType;
-      TagID:=dwTagID;
-      CommandLine:=lpBinaryPathName;
-      LoadOrderGroup:=lpLoadOrderGroup;
-      Dependencies:=lpDependencies;
-      UserName:=lpServiceStartName;
-      DisplayName:=lpDisplayName;
-      end;
-  Finally
-    FreeMem(SvcCfg,BytesNeeded);
-  end;
-end;
-
-procedure TServiceManager.QueryServiceConfig(ServiceName : String; Var Config : TServiceDescriptor);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_QUERY_CONFIG);
-  Try
-    QueryServiceConfig(H,Config);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-procedure TServiceManager.SetStartupType(ServiceName : String; StartupType : DWord);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_CHANGE_CONFIG);
-  Try
-    SetStartupType(H,StartupType);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-procedure TServiceManager.SetStartupType(SHandle : THandle; StartupType: DWord);
-
-Const
-  SNC = SERVICE_NO_CHANGE;  // Shortcut
-
-begin
-  If Not ChangeServiceConfig(SHandle,SNC,StartupType,SNC,Nil,Nil,Nil,Nil,Nil,Nil,Nil) then
-    RaiseLastOSError;
-end;
-
-procedure TServiceManager.ConfigService(SHandle : THandle ; Config : TServiceDescriptor);
-
-  Function SToPchar(Var S : String) : PChar;
-
-  begin
-    If (S='') then
-      Result:=Nil
-    else
-      Result:=PChar(S);
-  end;
-
-Var
-  PDep,PLO,PUser,PPWd,PCmd,PDisp : PChar; // We need Nil for some things.
-  D : String;
-  ReturnTag : DWord;
-
-begin
-  With Config do
-    begin
-    PCmd:=SToPChar(CommandLine);
-    D:=DisplayName;
-    PDisp:=StoPChar(D);
-    PLO:=SToPChar(LoadOrderGroup);
-    PUser:=SToPChar(UserName);
-    PPwd:=SToPchar(Password);
-    PDep:=AllocDependencyList(Dependencies);
-    Try
-      If Not ChangeServiceConfig(SHandle,ServiceType,StartType,ErrorControl,
-                                  PCmd,PLO,Nil,PDep,PUser,PPwd,PDisp) then
-        RaiseLastOSError;
-    Finally
-      If PDep<>Nil then
-        FreeMem(PDep);
-    end;
-    end;
-end;
-
-procedure TServiceManager.GetServiceStatus(SHandle : THandle; Var Status: TServiceStatus);
-
-begin
-  If Not QueryServiceStatus(SHandle,Status) then
-    RaiseLastOSError;
-end;
-
-procedure TServiceManager.GetServiceStatus(ServiceName : String; Var Status: TServiceStatus);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_QUERY_STATUS);
-  Try
-    GetServiceStatus(H,Status);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-procedure TServiceManager.RefreshServiceStatus(ServiceName : String);
-
-Var
-  Status : TServiceStatus;
-  SE : TServiceEntry;
-
-
-begin
-  SE:=Services.ServiceByName(ServiceName);
-  GetServiceStatus(ServiceName,Status);
-  SE.SetStatusFields(Status);
-end;
-
-
-procedure TServiceManager.ConfigService(ServiceName : String; Config : TServiceDescriptor);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_CHANGE_CONFIG);
-  Try
-    ConfigService(H,Config);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-
-procedure TServiceManager.CustomControlService(ServiceName: String; ControlCode: DWord);
-
-Var
-  H : THandle;
-
-begin
-  H:=GetServiceHandle(ServiceName,SERVICE_USER_DEFINED_CONTROL);
-  Try
-    CustomControlService(H,ControlCode);
-  Finally
-    CloseServiceHandle(H);
-  end;
-end;
-
-procedure TServiceManager.CustomControlService(Shandle: THandle;
-  ControlCode: DWord);
-
-Var
-  Status : TServiceStatus;
-
-begin
-  If (ControlCode<128) or (ControlCode>255) then
-    Raise EServiceManager.CreateFmt(SErrInvalidControlCode,[ControlCode]);
-  If Not ControlService(SHandle,ControlCode,Status) then
-    RaiseLastOSError;
-end;
-
-{ TServiceEntries }
-
-function TServiceEntries.FindService(ServiceName: String): TServiceEntry;
-
-Var
-  I : Integer;
-
-begin
-  Result:=Nil;
-  I:=Count-1;
-  While (I>=0) and (Result=Nil) do
-    If CompareText(Items[i].ServiceName,ServiceName)=0 then
-      Result:=Items[i]
-    else
-      Dec(I);
-end;
-
-function TServiceEntries.GetService(Index: Integer): TServiceEntry;
-begin
-  Result:=inherited Items[Index] as TServiceEntry;
-end;
-
-function TServiceEntries.ServiceByName(ServiceName: String): TServiceEntry;
-
-begin
-  Result:=FindService(ServiceName);
-  If Result=Nil then
-    Raise EServiceManager.CreateFmt(SErrServiceNotFound,[ServiceName]);
-end;
-
-{ TServiceEntry }
-
-procedure TServiceEntry.SetStatusFields(const Status: TServiceStatus);
-begin
-  With Status do
-    begin
-    FServiceType:=dwServiceType;
-    FCurrentState:=dwCurrentState;
-    FControlsAccepted:=dwControlsAccepted;
-    FWin32ExitCode:=dwWin32ExitCode;
-    FServiceSpecificExitCode:=dwServiceSpecificExitCode;
-    FCheckPoint:=dwCheckPoint;
-    FWaitHint:=dwWaitHint;
-    end;
-end;
-
-end.
+{$mode objfpc}
+{$h+}
+unit ServiceManager;
+
+interface
+
+uses
+  Windows, SysUtils, Classes, jwawinnt, jwawinsvc;
+
+type
+
+  TServiceEntry = Class(TCollectionItem)
+  Private
+    FServiceName,
+    FDisplayName : String;
+    FServiceType,
+    FCurrentState,
+    FControlsAccepted,
+    FWin32ExitCode,
+    FServiceSpecificExitCode,
+    FCheckPoint,
+    FWaitHint: DWORD;
+  Private
+    Procedure SetStatusFields(Const Status : TServiceStatus);
+  Public
+    Property ServiceName : String Read FServiceName;
+    Property DisplayName : String read FDIsplayName;
+    Property ServiceType : DWord Read FServiceType;
+    Property CurrentState : DWord Read FCurrentState;
+    Property ControlsAccepted : DWord Read FControlsAccepted;
+    Property Win32ExitCode : DWord Read FWin32ExitCode;
+    Property ServiceSpecificExitCode : DWord Read FServiceSpecificExitCode;
+    Property CheckPoint : DWord Read FCheckPoint;
+    Property WaitHint: DWORD Read FWaitHint;
+  end;
+
+  TServiceEntries = Class(TOwnedCollection)
+  Private
+    Function GetService (Index : Integer) : TServiceEntry;
+  Public
+    Function FindService(ServiceName : String) : TServiceEntry;
+    Function ServiceByName(ServiceName : String) : TServiceEntry;
+    Property Items [index : Integer] : TServiceEntry Read GetService;default;
+  end;
+
+  { Record used in
+    registerservice,
+    configservice or
+    queryserviceconfig
+   }
+
+  TServiceDescriptor = Record
+    Name : ShortString;
+    DisplayName : ShortString;
+    DesiredAccess : DWord;
+    ServiceType : DWord;
+    StartType : DWord;
+    ErrorControl : DWord;
+    CommandLine : String;
+    LoadOrderGroup : String;
+    TagID : DWord;
+    Dependencies : String; // Separated by slash signs (/)
+    UserName : String;
+    Password : String;
+  end;
+
+  TServiceManager = class(TComponent)
+  private
+    { Private declarations }
+    FReconnect : Boolean;
+    FMachineName : String;
+    FAccess : DWord;
+    FHandle : THandle;
+    FDBLock : SC_LOCK;
+    FServices : TServiceEntries;
+    FAfterRefresh : TNotifyEvent;
+    FAfterConnect: TNotifyEvent;
+    FRefreshOnConnect: Boolean;
+    FBeforeDisConnect: TNotifyEvent;
+    function GetConnected: Boolean;
+    procedure SetConnected(const Value: Boolean);
+    procedure SetMachineName(const Value: string);
+  protected
+    { Protected declarations }
+    procedure Loaded;override;
+    Procedure SMError(Msg : String);
+    Procedure CheckConnected(Msg : String);
+    Procedure DoBeforeDisConnect; virtual;
+    Procedure DoAfterConnect; virtual;
+    Procedure DoAfterRefresh; virtual;
+  public
+    { Public declarations }
+    Constructor Create(AOwner: TComponent); override;
+    Destructor Destroy; override;
+    Procedure ClearServices;
+    Procedure Refresh;
+    Procedure Connect;
+    Procedure Disconnect;
+    function GetServiceHandle(ServiceName: String; SAccess: DWord): THandle;
+    procedure ContinueService(SHandle: THandle); overload;
+    procedure ContinueService(ServiceName : String); overload;
+    procedure StartService(SHandle: THandle; Args: TStrings);overload;
+    procedure StartService(ServiceName : String; Args: TStrings); overload;
+    procedure StopService(ServiceName: String; StopDependent: Boolean); overload;
+    procedure StopService(SHandle : THandle; StopDependent: Boolean); overload;
+    procedure PauseService(SHandle: THandle);overload;
+    procedure PauseService(ServiceName: String);Overload;
+    procedure CustomControlService(ServiceName : String; ControlCode : DWord); overload;
+    procedure CustomControlService(Shandle : THandle; ControlCode : DWord); overload;
+    procedure ListDependentServices(SHandle: THandle; ServiceState: DWord;  List: TStrings); overload;
+    procedure ListDependentServices(ServiceName : String; ServiceState : DWord; List : TStrings); overload;
+    Procedure LockServiceDatabase;
+    Procedure UnlockServiceDatabase;
+    procedure QueryServiceConfig(SHandle : THandle; Var Config : TServiceDescriptor);overload;
+    procedure QueryServiceConfig(ServiceName : String; Var Config : TServiceDescriptor);overload;
+    Function  RegisterService(Var Desc : TServiceDescriptor) : THandle;
+    procedure SetStartupType(ServiceName: String; StartupType: DWord); overload;
+    procedure SetStartupType(SHandle : THandle; StartupType: DWord); overload;
+    Procedure UnregisterService(ServiceName : String);
+    procedure ConfigService(SHandle: THandle; Config: TServiceDescriptor); overload;
+    procedure ConfigService(ServiceName : string; Config: TServiceDescriptor); overload;
+    procedure RefreshServiceStatus(ServiceName: String);
+    procedure GetServiceStatus(SHandle : THandle; Var Status : TServiceStatus); overload;
+    procedure GetServiceStatus(ServiceName : String; Var Status : TServiceStatus); overload;
+    Property  Handle : THandle Read FHandle;
+    Property  Acces : DWord read FAccess Write FAccess;
+    Property  Services : TServiceEntries Read FServices;
+  published
+    { Published declarations }
+    Property Connected : Boolean Read GetConnected Write SetConnected;
+    Property MachineName : string Read FMachineName Write SetMachineName;
+    Property RefreshOnConnect : Boolean Read FRefreshOnConnect Write FrefreshOnConnect;
+    Property AfterRefresh : TNotifyEvent Read FAfterRefresh Write FAfterRefresh;
+    Property AfterConnect : TNotifyEvent Read FAfterConnect Write FAfterConnect;
+    Property BeforeDisConnect : TNotifyEvent Read FBeforeDisConnect Write FBeforeDisConnect;
+  end;
+
+  EServiceManager = Class(Exception);
+
+Const
+  StartTypes : Array[0..4] of DWord = (
+    SERVICE_AUTO_START,SERVICE_BOOT_START, SERVICE_DEMAND_START,
+    SERVICE_SYSTEM_START, SERVICE_DISABLED );
+  ServiceTypes : Array[0..3] of DWord = (
+    SERVICE_FILE_SYSTEM_DRIVER, SERVICE_KERNEL_DRIVER,
+    SERVICE_WIN32_OWN_PROCESS, SERVICE_WIN32_SHARE_PROCESS );
+  StartErrors : Array[0..3] of DWord = (
+    SERVICE_ERROR_IGNORE, SERVICE_ERROR_NORMAL,
+    SERVICE_ERROR_SEVERE, SERVICE_ERROR_CRITICAL);
+
+Function ServiceTypeToString(AType : Dword) : String;
+Function ServiceStateToString(AState : DWord) : String;
+Function ControlsAcceptedToString(AValue : DWord) : String;
+Function IsInteractiveService(AType : Dword) : Boolean;
+
+implementation
+
+
+ResourceString
+  SErrConnected       = 'Operation not permitted while connected to Service Control Manager';
+  SErrNotConnected    = 'Not connected to Service control manager. Cannot %s';
+  SErrInvalidControlCode = 'Invalid custom control code : %d';
+  SQueryServiceList   = 'Query service list';
+  SActive             = 'Active';
+  SInactive           = 'Inactive';
+  SStopped            = 'Stopped';
+  SStartPending       = 'Start pending';
+  SStopPending        = 'Stop pending';
+  SRunning            = 'Running';
+  SContinuePending    = 'Continue pending';
+  SPausePending       = 'Pause pending';
+  SPaused             = 'Paused';
+  SUnknownState       = 'Unknown State (%d)';
+  SUnknownType        = 'Unknown type (%d)';
+  SStop               = 'Stop';
+  SPauseContinue      = 'Pause/continue';
+  SShutDown           = 'Shutdown';
+  SDeviceDriver       = 'Device driver';
+  SFileSystemDriver   = 'Filesystem driver';
+  SAdapter            = 'Adapter';
+  SRecognizer         = 'Recognizer';
+  SService            = 'Service';
+  SSHaredService      = 'Service (shared)';
+  SErrServiceNotFound = 'Service "%s" not found.';
+
+
+{ TServiceManager }
+
+{$ifdef ver130}
+
+Type
+  PPChar = ^PChar;
+  PCharArray = Array[Word] of PChar;
+  PPCharArray = ^PCharArray;
+
+Procedure RaiseLastOSError;
+
+begin
+  RaiseLastWin32Error;
+end;
+{$endif}
+
+procedure TServiceManager.CheckConnected(Msg: String);
+begin
+  If Not Connected then
+    SMError(Format(SErrNotConnected,[Msg]));
+end;
+
+procedure TServiceManager.ClearServices;
+begin
+  FServices.Clear;
+end;
+
+procedure TServiceManager.Connect;
+
+Var
+   P : PChar;
+
+begin
+  If (FHandle=0) then
+    begin
+    P:=Nil;
+    If (MachineName<>'') then
+      P:=PChar(MachineName);
+    FHandle:=OpenSCManager(P,Nil,FAccess);
+    If (FHandle=0) then
+      RaiseLastOSError;
+    DoAfterConnect;
+    If RefreshOnConnect then
+      Refresh;
+    end;
+end;
+
+constructor TServiceManager.Create(AOwner: TComponent);
+begin
+  inherited;
+  FServices:=TServiceEntries.Create(Self,TServiceEntry);
+  FAccess:=SC_MANAGER_ALL_ACCESS;
+end;
+
+destructor TServiceManager.Destroy;
+begin
+  FServices.Free;
+  Inherited;
+end;
+
+procedure TServiceManager.Disconnect;
+begin
+  IF (FHandle<>0) then
+    begin
+    DoBeforeDisConnect;
+    CloseServiceHandle(FHandle);
+    FHandle:=0;
+    end;
+end;
+
+function TServiceManager.GetConnected: Boolean;
+begin
+  Result:=(Handle<>0);
+end;
+
+procedure TServiceManager.Refresh;
+
+Var
+  BytesNeeded,
+  ServicesReturned,
+  ResumeHandle : DWord;
+  Info,P : PEnumServiceStatus;
+  E : TServiceEntry;
+  I : integer;
+
+begin
+  ClearServices;
+  CheckConnected(SQueryServiceList);
+  BytesNeeded:=0;
+  ServicesReturned:=0;
+  ResumeHandle:=0;
+  Info:=Nil;
+  EnumServicesStatus(FHandle,SERVICE_WIN32,SERVICE_STATE_ALL,Info,0,
+                     BytesNeeded,ServicesReturned,Resumehandle);
+  if (GetLastError<>ERROR_MORE_DATA) then
+    RaiseLastOSError;
+  Getmem(Info,BytesNeeded);
+  Try
+    P:=Info;
+    If Not EnumServicesStatus(FHandle,SERVICE_WIN32,SERVICE_STATE_ALL,Info,BytesNeeded,
+                       BytesNeeded,ServicesReturned,Resumehandle) then
+      RaiseLastOSError;
+    For I:=1 to Servicesreturned do
+      begin
+      E:=FServices.Add as TServiceEntry;
+      With E,P^ do
+        begin
+        FServiceName:=StrPas(lpServiceName);
+        FDisplayName:=StrPas(lpDisplayName);
+        SetStatusFields(ServiceStatus);
+        end;
+      PChar(P):=Pchar(P)+SizeOf(TEnumServiceStatus);
+      end;
+    Finally
+    FreeMem(Info);
+  end;
+  DoAfterRefresh;
+end;
+
+procedure TServiceManager.SetConnected(const Value: Boolean);
+begin
+  If (([csLoading,csdesigning] * ComponentState)<>[]) then
+    FReconnect:=Value
+  else
+    If Value<>GetConnected then
+      If Value then
+        Connect
+      Else
+        Disconnect;
+end;
+
+procedure TServiceManager.Loaded;
+
+begin
+  Inherited;
+  If FReconnect then
+    Connect;
+end;
+
+procedure TServiceManager.SetMachineName(const Value: string);
+begin
+  If Connected then
+    SMError(SErrConnected);
+  FMachineName := Value;
+end;
+
+procedure TServiceManager.SMError(Msg: String);
+begin
+  raise EServiceManager.Create(Msg);
+end;
+
+Function ServiceTypeToString(AType : Dword) : String;
+
+begin
+  Case (AType and $FF) of
+    SERVICE_KERNEL_DRIVER       : Result:=SDeviceDriver;
+    SERVICE_FILE_SYSTEM_DRIVER  : Result:=SFileSystemDriver;
+    SERVICE_ADAPTER             : Result:=SAdapter;
+    SERVICE_RECOGNIZER_DRIVER   : Result:=SRecognizer;
+    SERVICE_WIN32_OWN_PROCESS   : Result:=SService;
+    SERVICE_WIN32_SHARE_PROCESS : Result:=SSHaredService;
+  else
+    Result:=Format(SUnknownType,[AType]);
+  end;
+end;
+
+Function IsInteractiveService(AType : Dword) : Boolean;
+
+begin
+  Result:=(Atype and SERVICE_INTERACTIVE_PROCESS)<>0;
+end;
+
+Function ServiceStateToString(AState : Dword) : String;
+
+begin
+  Case AState of
+    SERVICE_STOPPED          : Result:=SStopped;
+    SERVICE_START_PENDING    : Result:=SStartPending;
+    SERVICE_STOP_PENDING     : Result:=SStopPending;
+    SERVICE_RUNNING          : Result:=SRunning;
+    SERVICE_CONTINUE_PENDING : Result:=SContinuePending;
+    SERVICE_PAUSE_PENDING    : Result:=SPausePending;
+    SERVICE_PAUSED           : Result:=SPaused;
+  else
+    Result:=Format(SUnknownState,[AState]);
+  end;
+end;
+
+Function ControlsAcceptedToString(AValue : DWord) : String;
+
+  Procedure AddToResult(S : String);
+  begin
+    If (Result='') then
+      Result:=S
+    else
+      Result:=Result+','+S
+  end;
+
+begin
+  Result:='';
+  If (AValue and SERVICE_ACCEPT_STOP)<>0 then
+    AddToResult(SStop);
+  If (AValue and SERVICE_ACCEPT_PAUSE_CONTINUE)<>0 then
+    AddToResult(SPauseContinue);
+  If (AValue and SERVICE_ACCEPT_SHUTDOWN)<>0 then
+    AddToResult(SShutDown)
+end;
+
+procedure TServiceManager.DoAfterConnect;
+begin
+  If Assigned(FAfterConnect) then
+    FAfterConnect(Self);
+end;
+
+procedure TServiceManager.DoAfterRefresh;
+begin
+  If Assigned(FAfterRefresh) then
+    FAfterRefresh(Self);
+
+end;
+
+procedure TServiceManager.DoBeforeDisConnect;
+begin
+  If Assigned(FBeforeDisconnect) then
+    FBeforeDisconnect(Self);
+end;
+
+Function AllocDependencyList (Const S : String) : PChar;
+
+Var
+  I,L : Integer;
+
+begin
+  Result:=Nil;
+  If (S<>'') then
+    begin
+    // Double Null terminated list of null-terminated strings.
+    L:=Length(S);
+    GetMem(Result,L+3);
+    Move(S[1],Result^,L+1); // Move terminating null as well.
+    Result[L+1]:=#0;
+    Result[L+2]:=#0;
+    For I:=0 to L-1 do
+      If Result[i]='/' then // Change / to #0.
+        Result[i]:=#0;
+    end;
+end;
+
+Function TServiceManager.RegisterService(var Desc: TServiceDescriptor) : Thandle;
+
+Var
+  PDep,PLO,PUser,PPWd : PChar; // We need Nil for some things.
+  N,D : String;
+  ReturnTag : DWord;
+
+begin
+  With Desc do
+    begin
+    N:=Name;
+    D:=DisplayName;
+    If (LoadOrderGroup='') then
+      PLO:=Nil
+    else
+      PLO:=PChar(LoadOrderGroup);
+    PPwd:=Nil;
+    PUser:=Nil;
+    If (UserName<>'') then
+      begin
+      PUser:=PChar(UserName);
+      If (Password<>'') then
+        PPWd:=PChar(Password);
+      end;
+    PDep:=AllocDependencyList(Dependencies);
+    Try
+      Result:=CreateService(Self.Handle,PChar(N),PChar(D),DesiredAccess,ServiceType,
+                            StartType,ErrorControl,PChar(CommandLine),PLO,Nil,
+                            PDep,PUser,PPwd);
+      If (Result=0) then
+        RaiseLastOSError;
+    Finally
+      If PDep<>Nil then
+        FreeMem(PDep);
+    end;
+    end;
+end;
+
+procedure TServiceManager.ListDependentServices(ServiceName : String; ServiceState : DWord; List : TStrings);
+
+Var
+  H : THandle;
+
+begin
+  H:=OpenService(Handle,PChar(ServiceName),SERVICE_ENUMERATE_DEPENDENTS);
+  try
+    ListDependentServices(H,ServiceState,List);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+
+procedure TServiceManager.ListDependentServices(SHandle: THandle; ServiceState : DWord; List : TStrings);
+
+Var
+  P,E : PEnumServiceStatus;
+  I,BytesNeeded,Count : DWord;
+
+begin
+  P:=Nil;
+  List.Clear;
+  // If call succeeds with size 0, then there are no dependent services...
+  if Not EnumDependentServices(SHandle,ServiceState,P,0,BytesNeeded,Count) then
+    begin
+    If (GetLastError<>ERROR_MORE_DATA) then
+      RaiseLastOSError;
+    GetMem(P,BytesNeeded);
+    Try
+      If Not EnumDependentServices(SHandle,ServiceState,P,bytesNeeded,BytesNeeded,Count) Then
+        RaiseLastOSError;
+      E:=P;
+      For I:=0 to Count-1 do
+        begin
+        List.Add(StrPas(E^.lpServiceName));
+        Pchar(E):=PChar(E)+SizeOf(TEnumServiceStatus);
+        end;
+    Finally
+      FreeMem(P);
+    end;
+    end;
+end;
+
+
+Procedure TServiceManager.StopService(SHandle : THandle; StopDependent : Boolean);
+
+Var
+  I : Integer;
+  List : TStrings;
+  Status : TServiceStatus;
+
+begin
+  If Not QueryServiceStatus(SHandle,Status) then
+    RaiseLastOSError;
+  If Not (Status.dwCurrentState=SERVICE_STOPPED) then
+    begin
+    If StopDependent then
+      begin
+      List:=TStringList.Create;
+      Try
+        ListDependentServices(SHandle,SERVICE_ACTIVE,List);
+        For I:=0 to List.Count-1 do
+          StopService(List[i],False); // Do not recurse !!
+      Finally
+        List.Free;
+      end;
+      end;
+    If Not ControlService(SHandle,SERVICE_CONTROL_STOP,Status) then
+      RaiseLastOSError;
+    end;
+end;
+
+Procedure TServiceManager.StopService(ServiceName : String; StopDependent : Boolean);
+
+Var
+  H : THandle;
+  A : DWORD;
+
+begin
+  A:=SERVICE_STOP or SERVICE_QUERY_STATUS;
+  If StopDependent then
+    A:=A or SERVICE_ENUMERATE_DEPENDENTS;
+  H:=OpenService(Handle,PChar(ServiceName),A);
+  Try
+    StopService(H,StopDependent);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+
+Function TServiceManager.GetServiceHandle(ServiceName : String; SAccess : DWord) : THandle;
+
+begin
+  Result:=OpenService(Handle,PChar(ServiceName),SAccess);
+  If (Result=0) then
+    RaiseLastOSError;
+end;
+
+procedure TServiceManager.UnregisterService(ServiceName: String);
+
+Var
+  H : THandle;
+  Status : TServiceStatus;
+
+begin
+  StopService(ServiceName,True);
+  H:=GetServiceHandle(ServiceName,SERVICE_STOP or SERVICE_QUERY_STATUS or SERVICE_DELETE);
+  Try
+    If Not DeleteService(H) then
+      RaiseLastOSError;
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+Procedure TServiceManager.PauseService(SHandle : THandle);
+
+Var
+  Status : TServiceStatus;
+
+begin
+  If Not ControlService(SHandle,SERVICE_CONTROL_PAUSE,Status) then
+    RaiseLastOSError;
+end;
+
+Procedure TServiceManager.PauseService(ServiceName : String);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_PAUSE_CONTINUE);
+  Try
+    PauseService(H);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+Procedure TServiceManager.ContinueService(SHandle : THandle);
+
+Var
+  Status : TServiceStatus;
+
+begin
+  If Not ControlService(SHandle,SERVICE_CONTROL_CONTINUE,Status) then
+    RaiseLastOSError;
+end;
+
+Procedure TServiceManager.ContinueService(ServiceName : String);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_PAUSE_CONTINUE);
+  Try
+    ContinueService(H);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+Function StringsToPCharList(List : TStrings) : PPChar;
+
+Var
+  I : Integer;
+  S : String;
+
+begin
+  I:=(List.Count)+1;
+  GetMem(Result,I*sizeOf(PChar));
+  PPCharArray(Result)^[List.Count]:=Nil;
+  For I:=0 to List.Count-1 do
+    begin
+    S:=List[i];
+    PPCharArray(Result)^[i]:=StrNew(PChar(S));
+    end;
+end;
+
+Procedure FreePCharList(List : PPChar);
+
+Var
+  I : integer;
+
+begin
+  I:=0;
+  While PPChar(List)[i]<>Nil do
+    begin
+    StrDispose(PPChar(List)[i]);
+    Inc(I);
+    end;
+  FreeMem(List);
+end;
+
+Procedure TServiceManager.StartService(SHandle : THandle; Args : TStrings);
+
+Var
+  Argc : DWord;
+  PArgs : PPchar;
+
+begin
+  If (Args=Nil) or (Args.Count>0) then
+    begin
+    Argc:=0;
+    Pargs:=Nil;
+    end
+  else
+    begin
+    ArgC:=Args.Count;
+    Pargs:=StringsToPcharList(Args);
+    end;
+  Try
+    If not jwawinsvc.StartService(SHandle,Argc,PArgs^) then
+      RaiseLastOSError;
+  Finally
+    If (PArgs<>Nil) then
+      FreePCharList(PArgs);
+  end;
+end;
+
+
+Procedure TServiceManager.StartService(ServiceName : String; Args : TStrings);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_START);
+  Try
+    StartService(H,Args);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+Procedure TServiceManager.LockServiceDatabase;
+
+begin
+  FDBLock:=jwawinsvc.LockServiceDatabase(Handle);
+  If FDBLock=Nil then
+    RaiseLastOSError;
+end;
+
+procedure TServiceManager.UnlockServiceDatabase;
+begin
+  If (FDBLock<>Nil) then
+    begin
+    Try
+      If Not jwawinsvc.UnLockServiceDatabase(FDBLock) then
+        RaiseLastOSError;
+    Finally
+      FDBLock:=Nil;
+    end;
+    end;
+end;
+
+procedure TServiceManager.QueryServiceConfig(SHandle : THandle; Var Config : TServiceDescriptor);
+
+Var
+  SvcCfg : PQueryServiceConfig;
+  BytesNeeded : DWord;
+
+begin
+  jwawinsvc.QueryServiceConfig(SHandle,Nil,0,BytesNeeded);
+  If (GetLastError<>ERROR_INSUFFICIENT_BUFFER) then
+    RaiseLastOSError;
+  GetMem(SvcCfg,BytesNeeded);
+  Try
+    If Not jwawinsvc.QueryServiceConfig(SHandle,SvcCfg,BytesNeeded,BytesNeeded) then
+      RaiseLastOSError;
+    With config,SvcCfg^ do
+      begin
+      Password:='';
+      Name:='';
+      DesiredAccess:=0;
+      ErrorControl:=dwErrorControl;
+      ServiceType:=dwServiceType;
+      StartType:=dwStartType;
+      TagID:=dwTagID;
+      CommandLine:=lpBinaryPathName;
+      LoadOrderGroup:=lpLoadOrderGroup;
+      Dependencies:=lpDependencies;
+      UserName:=lpServiceStartName;
+      DisplayName:=lpDisplayName;
+      end;
+  Finally
+    FreeMem(SvcCfg,BytesNeeded);
+  end;
+end;
+
+procedure TServiceManager.QueryServiceConfig(ServiceName : String; Var Config : TServiceDescriptor);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_QUERY_CONFIG);
+  Try
+    QueryServiceConfig(H,Config);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+procedure TServiceManager.SetStartupType(ServiceName : String; StartupType : DWord);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_CHANGE_CONFIG);
+  Try
+    SetStartupType(H,StartupType);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+procedure TServiceManager.SetStartupType(SHandle : THandle; StartupType: DWord);
+
+Const
+  SNC = SERVICE_NO_CHANGE;  // Shortcut
+
+begin
+  If Not ChangeServiceConfig(SHandle,SNC,StartupType,SNC,Nil,Nil,Nil,Nil,Nil,Nil,Nil) then
+    RaiseLastOSError;
+end;
+
+procedure TServiceManager.ConfigService(SHandle : THandle ; Config : TServiceDescriptor);
+
+  Function SToPchar(Var S : String) : PChar;
+
+  begin
+    If (S='') then
+      Result:=Nil
+    else
+      Result:=PChar(S);
+  end;
+
+Var
+  PDep,PLO,PUser,PPWd,PCmd,PDisp : PChar; // We need Nil for some things.
+  D : String;
+  ReturnTag : DWord;
+
+begin
+  With Config do
+    begin
+    PCmd:=SToPChar(CommandLine);
+    D:=DisplayName;
+    PDisp:=StoPChar(D);
+    PLO:=SToPChar(LoadOrderGroup);
+    PUser:=SToPChar(UserName);
+    PPwd:=SToPchar(Password);
+    PDep:=AllocDependencyList(Dependencies);
+    Try
+      If Not ChangeServiceConfig(SHandle,ServiceType,StartType,ErrorControl,
+                                  PCmd,PLO,Nil,PDep,PUser,PPwd,PDisp) then
+        RaiseLastOSError;
+    Finally
+      If PDep<>Nil then
+        FreeMem(PDep);
+    end;
+    end;
+end;
+
+procedure TServiceManager.GetServiceStatus(SHandle : THandle; Var Status: TServiceStatus);
+
+begin
+  If Not QueryServiceStatus(SHandle,Status) then
+    RaiseLastOSError;
+end;
+
+procedure TServiceManager.GetServiceStatus(ServiceName : String; Var Status: TServiceStatus);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_QUERY_STATUS);
+  Try
+    GetServiceStatus(H,Status);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+procedure TServiceManager.RefreshServiceStatus(ServiceName : String);
+
+Var
+  Status : TServiceStatus;
+  SE : TServiceEntry;
+
+
+begin
+  SE:=Services.ServiceByName(ServiceName);
+  GetServiceStatus(ServiceName,Status);
+  SE.SetStatusFields(Status);
+end;
+
+
+procedure TServiceManager.ConfigService(ServiceName : String; Config : TServiceDescriptor);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_CHANGE_CONFIG);
+  Try
+    ConfigService(H,Config);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+
+procedure TServiceManager.CustomControlService(ServiceName: String; ControlCode: DWord);
+
+Var
+  H : THandle;
+
+begin
+  H:=GetServiceHandle(ServiceName,SERVICE_USER_DEFINED_CONTROL);
+  Try
+    CustomControlService(H,ControlCode);
+  Finally
+    CloseServiceHandle(H);
+  end;
+end;
+
+procedure TServiceManager.CustomControlService(Shandle: THandle;
+  ControlCode: DWord);
+
+Var
+  Status : TServiceStatus;
+
+begin
+  If (ControlCode<128) or (ControlCode>255) then
+    Raise EServiceManager.CreateFmt(SErrInvalidControlCode,[ControlCode]);
+  If Not ControlService(SHandle,ControlCode,Status) then
+    RaiseLastOSError;
+end;
+
+{ TServiceEntries }
+
+function TServiceEntries.FindService(ServiceName: String): TServiceEntry;
+
+Var
+  I : Integer;
+
+begin
+  Result:=Nil;
+  I:=Count-1;
+  While (I>=0) and (Result=Nil) do
+    If CompareText(Items[i].ServiceName,ServiceName)=0 then
+      Result:=Items[i]
+    else
+      Dec(I);
+end;
+
+function TServiceEntries.GetService(Index: Integer): TServiceEntry;
+begin
+  Result:=inherited Items[Index] as TServiceEntry;
+end;
+
+function TServiceEntries.ServiceByName(ServiceName: String): TServiceEntry;
+
+begin
+  Result:=FindService(ServiceName);
+  If Result=Nil then
+    Raise EServiceManager.CreateFmt(SErrServiceNotFound,[ServiceName]);
+end;
+
+{ TServiceEntry }
+
+procedure TServiceEntry.SetStatusFields(const Status: TServiceStatus);
+begin
+  With Status do
+    begin
+    FServiceType:=dwServiceType;
+    FCurrentState:=dwCurrentState;
+    FControlsAccepted:=dwControlsAccepted;
+    FWin32ExitCode:=dwWin32ExitCode;
+    FServiceSpecificExitCode:=dwServiceSpecificExitCode;
+    FCheckPoint:=dwCheckPoint;
+    FWaitHint:=dwWaitHint;
+    end;
+end;
+
+end.

+ 44 - 150
packages/fcl-image/Makefile

@@ -1,11 +1,12 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/21]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/12/01]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 PATHSEP=/
 else
@@ -102,7 +108,11 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
 FPC:=$(shell $(FPCPROG) -PB)
+endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
@@ -352,6 +362,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_UNITS+=fpimgcmn fpimage pngcomn fpreadpng fpwritepng fpreadxpm fpwritexpm clipping fpcanvas pixtools fppixlcanv fpimgcanv pscanvas fpwritebmp fpreadbmp bmpcomn fpreadpnm fpwritepnm fpreadjpeg fpwritejpeg targacmn fpreadtga fpwritetga ellipses fpcolhash fpditherer fpquantizer extinterpolation  freetypeh freetype ftfont
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=fpimgcmn fpimage pngcomn fpreadpng fpwritepng fpreadxpm fpwritexpm clipping fpcanvas pixtools fppixlcanv fpimgcanv pscanvas fpwritebmp fpreadbmp bmpcomn fpreadpnm fpwritepnm fpreadjpeg fpwritejpeg targacmn fpreadtga fpwritetga ellipses fpcolhash fpditherer fpquantizer extinterpolation  freetypeh freetype ftfont
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=fpimgcmn fpimage pngcomn fpreadpng fpwritepng fpreadxpm fpwritexpm clipping fpcanvas pixtools fppixlcanv fpimgcanv pscanvas fpwritebmp fpreadbmp bmpcomn fpreadpnm fpwritepnm fpreadjpeg fpwritejpeg targacmn fpreadtga fpwritetga ellipses fpcolhash fpditherer fpquantizer extinterpolation
 endif
@@ -508,6 +521,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_RSTS+=pscanvas
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=pscanvas
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_RSTS+=pscanvas
 endif
@@ -664,6 +680,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_EXAMPLES+=imgconv
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_EXAMPLES+=imgconv
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_EXAMPLES+=imgconv
 endif
@@ -821,6 +840,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -977,6 +999,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_SOURCEDIR+=src
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_SOURCEDIR+=src
 endif
@@ -1760,15 +1785,12 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-override REQUIRE_PACKAGES=rtl pasjpeg fcl-base
+override REQUIRE_PACKAGES=rtl pasjpeg paszlib fcl-base
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
@@ -1783,7 +1805,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
@@ -1792,7 +1813,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
@@ -1800,9 +1820,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-beos)
@@ -1810,9 +1827,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
@@ -1820,8 +1834,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
@@ -1829,9 +1841,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
@@ -1846,7 +1855,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
@@ -1854,8 +1862,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
@@ -1870,9 +1876,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-emx)
@@ -1880,7 +1883,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
@@ -1895,7 +1897,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
@@ -1903,7 +1904,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
@@ -1925,9 +1925,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
@@ -1935,9 +1932,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
@@ -1945,8 +1939,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
@@ -1968,8 +1960,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
@@ -1991,9 +1981,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
@@ -2001,8 +1988,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
@@ -2024,9 +2009,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
@@ -2048,9 +2030,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
@@ -2058,8 +2037,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
@@ -2067,9 +2044,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
@@ -2084,9 +2058,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
@@ -2094,9 +2065,13 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASJPEG=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
@@ -2104,7 +2079,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
@@ -2120,9 +2094,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
@@ -2137,7 +2108,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
@@ -2173,9 +2143,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
@@ -2183,9 +2150,6 @@ REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_PASJPEG=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
@@ -2299,84 +2263,6 @@ ifdef UNITDIR_PASZLIB
 override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
 endif
 endif
-ifdef REQUIRE_PACKAGES_NETDB
-PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(TARGETSUFFIX)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(TARGETSUFFIX)
-else
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_NETDB)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_NETDB) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_NETDB)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_NETDB=
-UNITDIR_NETDB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /netdb/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_NETDB),)
-UNITDIR_NETDB:=$(firstword $(UNITDIR_NETDB))
-else
-UNITDIR_NETDB=
-endif
-endif
-ifdef UNITDIR_NETDB
-override COMPILER_UNITDIR+=$(UNITDIR_NETDB)
-endif
-endif
-ifdef REQUIRE_PACKAGES_LIBASYNC
-PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)
-else
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_LIBASYNC)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_LIBASYNC) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBASYNC)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_LIBASYNC=
-UNITDIR_LIBASYNC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libasync/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_LIBASYNC),)
-UNITDIR_LIBASYNC:=$(firstword $(UNITDIR_LIBASYNC))
-else
-UNITDIR_LIBASYNC=
-endif
-endif
-ifdef UNITDIR_LIBASYNC
-override COMPILER_UNITDIR+=$(UNITDIR_LIBASYNC)
-endif
-endif
-ifdef REQUIRE_PACKAGES_PTHREADS
-PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_PTHREADS)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_PTHREADS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PTHREADS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_PTHREADS=
-UNITDIR_PTHREADS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_PTHREADS),)
-UNITDIR_PTHREADS:=$(firstword $(UNITDIR_PTHREADS))
-else
-UNITDIR_PTHREADS=
-endif
-endif
-ifdef UNITDIR_PTHREADS
-override COMPILER_UNITDIR+=$(UNITDIR_PTHREADS)
-endif
-endif
 ifdef REQUIRE_PACKAGES_FCL-BASE
 PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL-BASE),)
@@ -2443,7 +2329,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -2575,9 +2461,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 endif
 endif
+endif
 .PHONY: fpc_units
 ifneq ($(TARGET_UNITS),)
 override ALLTARGET+=fpc_units
@@ -2819,8 +2709,12 @@ else
 endif
 ifdef inUnix
 	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
 else
 	$(ZIPWRAPPER)
+endif
 endif
 	$(DEL) $(ZIPWRAPPER)
 else

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

@@ -21,7 +21,7 @@ rsts=pscanvas
 examples=imgconv
 
 [require]
-packages=pasjpeg fcl-base
+packages=pasjpeg paszlib fcl-base
 
 [compiler]
 options=-S2h

Dosya farkı çok büyük olduğundan ihmal edildi
+ 328 - 226
packages/fcl-net/Makefile


+ 28 - 18
packages/fcl-net/Makefile.fpc

@@ -8,10 +8,19 @@ version=2.2.1
 
 [target]
 units=servlets
-units_linux=fpsock httpbase httpclient httpsvlt xmlrpc
-units_freebsd=fpsock httpbase httpclient httpsvlt xmlrpc
-units_netbsd=fpsock httpbase httpclient httpsvlt xmlrpc
-units_openbsd=fpsock httpbase httpclient httpsvlt xmlrpc
+units_linux=resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc
+units_freebsd=resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc
+units_netbsd=resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc
+units_openbsd=resolve ssockets fpsock httpbase httpclient httpsvlt xmlrpc
+units_darwin=resolve ssockets 
+units_solaris=resolve ssockets 
+units_qnx=resolve ssockets 
+units_beos=resolve ssockets 
+units_emx=resolve ssockets 
+units_os2=resolve ssockets 
+units_win32=resolve ssockets 
+units_win64=resolve ssockets 
+units_wince=resolve ssockets 
 programs_linux=mkxmlrpc
 programs_freebsd=mkxmlrpc
 programs_darwin=mkxmlrpc
@@ -23,25 +32,26 @@ rsts_freebsd=fpsock httpsvlt mkxmlrpc
 rsts_darwin=fpsock httpsvlt mkxmlrpc
 rsts_netbsd=fpsock httpsvlt mkxmlrpc
 rsts_openbsd=fpsock httpsvlt mkxmlrpc
-#exampledirs_linux=tests
-#exampledirs_freebsd=tests
-#exampledirs_darwin=tests
-#exampledirs_netbsd=tests
-#exampledirs_openbsd=tests
 
 [require]
-packages=netdb fcl-base fcl-xml fcl-passrc
-
-packages_linux=libasync 
-packages_freebsd=libasync 
-packages_darwin=libasync 
-packages_solaris=libasync 
-packages_netbsd=libasync
-packages_openbsd=libasync
+packages=netdb fcl-base fcl-xml fcl-passrc fcl-async
 
 [compiler]
 options=-S2h
-sourcedir=src
+includedir=src/$(OS_TARGET)
+includedir_linux=src/unix
+includedir_freebsd=src/unix
+includedir_darwin=src/unix
+includedir_netbsd=src/unix
+includedir_openbsd=src/unix
+includedir_solaris=src/unix
+includedir_qnx=src/unix
+includedir_beos=src/unix
+includedir_emx=src/os2
+includedir_win32=src/win
+includedir_win64=src/win
+includedir_wince=src/win
+sourcedir=src/$(OS_TARGET) src
 
 [install]
 fpcpackage=y

+ 0 - 0
packages/fcl-base/src/netware/resolve.inc → packages/fcl-net/src/netware/resolve.inc


+ 0 - 0
packages/fcl-base/src/netwlibc/resolve.inc → packages/fcl-net/src/netwlibc/resolve.inc


+ 0 - 0
packages/fcl-base/src/os2/resolve.inc → packages/fcl-net/src/os2/resolve.inc


+ 0 - 0
packages/fcl-base/src/inc/resolve.pp → packages/fcl-net/src/resolve.pp


+ 0 - 0
packages/fcl-base/src/inc/ssockets.pp → packages/fcl-net/src/ssockets.pp


+ 0 - 0
packages/fcl-base/src/unix/resolve.inc → packages/fcl-net/src/unix/resolve.inc


+ 0 - 0
packages/fcl-base/src/win/resolve.inc → packages/fcl-net/src/win/resolve.inc


+ 0 - 0
packages/fcl-base/src/wince/resolve.inc → packages/fcl-net/src/wince/resolve.inc


+ 1 - 1
packages/fcl-net/src/tests/Makefile → packages/fcl-net/tests/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/21]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/08/22]
 #
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded

+ 1 - 1
packages/fcl-net/src/tests/Makefile.fpc → packages/fcl-net/tests/Makefile.fpc

@@ -16,7 +16,7 @@ options=-S2h
 fpcpackage=y
 
 [default]
-fpcdir=../../../..
+fpcdir=../../..
 
 
 [rules]

+ 0 - 0
packages/fcl-net/src/tests/readme.txt → packages/fcl-net/tests/readme.txt


+ 0 - 0
packages/fcl-net/src/tests/rpccli.pp → packages/fcl-net/tests/rpccli.pp


+ 0 - 0
packages/fcl-net/src/tests/rpcserv.pp → packages/fcl-net/tests/rpcserv.pp


+ 0 - 0
packages/fcl-net/src/tests/svrclass.pp → packages/fcl-net/tests/svrclass.pp


+ 0 - 0
packages/fcl-net/src/tests/svrclass_xmlrpc.pp → packages/fcl-net/tests/svrclass_xmlrpc.pp


Dosya farkı çok büyük olduğundan ihmal edildi
+ 538 - 163
packages/fcl-process/Makefile


+ 62 - 0
packages/fcl-process/Makefile.fpc

@@ -0,0 +1,62 @@
+#
+#   Makefile.fpc for Free Component Library
+#
+
+[package]
+name=fcl-process
+version=2.0.0
+
+[target]
+units=pipes process
+units_beos=simpleipc dbugmsg dbugintf
+units_freebsd=simpleipc dbugmsg dbugintf
+units_darwin=simpleipc dbugmsg dbugintf
+units_solaris=simpleipc dbugmsg dbugintf
+units_netbsd=simpleipc dbugmsg dbugintf
+units_openbsd=simpleipc dbugmsg dbugintf
+units_linux=simpleipc dbugmsg dbugintf
+units_win32=simpleipc dbugmsg dbugintf
+units_win64=simpleipc dbugmsg dbugintf
+units_wince=simpleipc dbugmsg dbugintf
+units_qnx=simpleipc dbugmsg dbugintf
+units_os2=simpleipc dbugmsg dbugintf
+units_emx=simpleipc dbugmsg dbugintf
+rsts_beos=process simpleipc
+rsts_freebsd=process simpleipc
+rsts_darwin=process simpleipc
+rsts_solaris=process simpleipc
+rsts_netbsd=process simpleipc
+rsts_openbsd=process simpleipc
+rsts_linux=process simpleipc
+rsts_qnx=process simpleipc
+rsts_win32=simpleipc
+rsts_win64=simpleipc
+rsts_wince=simpleipc
+rsts_os2=simpleipc
+rsts_emx=simpleipc
+
+[compiler]
+options=-S2h
+includedir=src/$(OS_TARGET) src
+includedir_linux=src/unix
+includedir_freebsd=src/unix
+includedir_darwin=src/unix
+includedir_netbsd=src/unix
+includedir_openbsd=src/unix
+includedir_solaris=src/unix
+includedir_qnx=src/unix
+includedir_beos=src/unix
+includedir_emx=src/os2
+includedir_win32=src/win
+includedir_win64=src/win
+includedir_wince=src/win
+sourcedir=src/$(OS_TARGET) src
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:

+ 42 - 0
packages/fcl-process/fpmake.pp

@@ -0,0 +1,42 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+  T : TTarget;
+  P : TPackage;
+begin
+  With Installer do
+    begin
+{$endif ALLPACKAGES}
+
+    P:=StartPackage('fcl-process');
+{$ifdef ALLPACKAGES}
+    Directory:='fcl-process';
+{$endif ALLPACKAGES}
+    Version:='2.0.0';
+    P.SourcePath.Add('src');
+    P.IncludePath.Add('src/unix',AllUnixOSes);
+    P.IncludePath.Add('src/win',AllWindowsOSes);
+    P.IncludePath.Add('src/$(OS)',AllOSes-AllWindowsOSes-AllUnixOSes);
+    T:=Targets.AddUnit('pipes.pp');
+      T.Dependencies.AddInclude('pipes.inc');
+    T:=Targets.AddUnit('process.pp');
+      T.Dependencies.AddInclude('process.inc');
+      T.ResourceStrings:=True;
+    T:=Targets.AddUnit('simpleipc.pp');
+      T.Dependencies.AddInclude('simpleipc.inc');
+      T.ResourceStrings:=True;
+    T:=Targets.AddUnit('dbugmsg.pp');
+      T.ResourceStrings:=True;
+    T:=Targets.AddUnit('dbugintf.pp');
+      T.ResourceStrings:=True;
+    EndPackage;
+
+{$ifndef ALLPACKAGES}
+    Run;
+    end;
+end.
+{$endif ALLPACKAGES}

+ 0 - 0
packages/fcl-base/src/amiga/pipes.inc → packages/fcl-process/src/amiga/pipes.inc


+ 42 - 0
packages/fcl-process/src/amiga/process.inc

@@ -0,0 +1,42 @@
+{
+  Dummy process.inc
+}
+
+procedure TProcess.CloseProcessHandles;
+begin
+end;
+
+Function TProcess.PeekExitStatus : Boolean;
+begin
+end;
+
+Procedure TProcess.Execute;
+begin
+end;
+
+Function TProcess.WaitOnExit : Boolean;
+begin
+  Result:=False;
+end;
+
+Function TProcess.Suspend : Longint;
+begin
+  Result:=0;
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=0;
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+begin
+  Result:=False;
+end;
+
+Procedure TProcess.SetShowWindow (Value : TShowWindowOptions);
+begin
+end;
+
+

+ 0 - 0
packages/fcl-base/src/beos/pipes.inc → packages/fcl-process/src/beos/pipes.inc


+ 0 - 0
packages/fcl-base/src/inc/dbugintf.pp → packages/fcl-process/src/dbugintf.pp


+ 0 - 0
packages/fcl-base/src/inc/dbugmsg.pp → packages/fcl-process/src/dbugmsg.pp


+ 0 - 0
packages/fcl-base/src/go32v2/pipes.inc → packages/fcl-process/src/go32v2/pipes.inc


+ 48 - 0
packages/fcl-process/src/go32v2/process.inc

@@ -0,0 +1,48 @@
+{
+  Dummy process.inc
+}
+
+{$if defined(VER2_2_1) or defined(VER2_3_1)}
+{$warning Temporary workaround - unit does nothing}
+{$else}
+{$fatal Proper implementation of TProcess needed}
+{$endif}
+
+procedure TProcess.CloseProcessHandles;
+begin
+end;
+
+Function TProcess.PeekExitStatus : Boolean;
+begin
+end;
+
+Procedure TProcess.Execute;
+begin
+end;
+
+Function TProcess.WaitOnExit : Boolean;
+begin
+  Result:=False;
+end;
+
+Function TProcess.Suspend : Longint;
+begin
+  Result:=0;
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=0;
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+begin
+  Result:=False;
+end;
+
+Procedure TProcess.SetShowWindow (Value : TShowWindowOptions);
+begin
+end;
+
+

+ 0 - 0
packages/fcl-base/src/morphos/pipes.inc → packages/fcl-process/src/morphos/pipes.inc


+ 42 - 0
packages/fcl-process/src/morphos/process.inc

@@ -0,0 +1,42 @@
+{
+  Dummy process.inc
+}
+
+procedure TProcess.CloseProcessHandles;
+begin
+end;
+
+Function TProcess.PeekExitStatus : Boolean;
+begin
+end;
+
+Procedure TProcess.Execute;
+begin
+end;
+
+Function TProcess.WaitOnExit : Boolean;
+begin
+  Result:=False;
+end;
+
+Function TProcess.Suspend : Longint;
+begin
+  Result:=0;
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=0;
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+begin
+  Result:=False;
+end;
+
+Procedure TProcess.SetShowWindow (Value : TShowWindowOptions);
+begin
+end;
+
+

+ 0 - 0
packages/fcl-base/src/netware/pipes.inc → packages/fcl-process/src/netware/pipes.inc


+ 42 - 0
packages/fcl-process/src/netware/process.inc

@@ -0,0 +1,42 @@
+{
+  Dummy process.inc
+}
+
+procedure TProcess.CloseProcessHandles;
+begin
+end;
+
+Function TProcess.PeekExitStatus : Boolean;
+begin
+end;
+
+Procedure TProcess.Execute;
+begin
+end;
+
+Function TProcess.WaitOnExit : Boolean;
+begin
+  Result:=False;
+end;
+
+Function TProcess.Suspend : Longint;
+begin
+  Result:=0;
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=0;
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+begin
+  Result:=False;
+end;
+
+Procedure TProcess.SetShowWindow (Value : TShowWindowOptions);
+begin
+end;
+
+

+ 0 - 0
packages/fcl-base/src/netwlibc/pipes.inc → packages/fcl-process/src/netwlibc/pipes.inc


+ 42 - 0
packages/fcl-process/src/netwlibc/process.inc

@@ -0,0 +1,42 @@
+{
+  Dummy process.inc
+}
+
+procedure TProcess.CloseProcessHandles;
+begin
+end;
+
+Function TProcess.PeekExitStatus : Boolean;
+begin
+end;
+
+Procedure TProcess.Execute;
+begin
+end;
+
+Function TProcess.WaitOnExit : Boolean;
+begin
+  Result:=False;
+end;
+
+Function TProcess.Suspend : Longint;
+begin
+  Result:=0;
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=0;
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+begin
+  Result:=False;
+end;
+
+Procedure TProcess.SetShowWindow (Value : TShowWindowOptions);
+begin
+end;
+
+

+ 0 - 0
packages/fcl-base/src/os2/pipes.inc → packages/fcl-process/src/os2/pipes.inc


+ 42 - 0
packages/fcl-process/src/os2/process.inc

@@ -0,0 +1,42 @@
+{
+  Dummy process.inc
+}
+
+procedure TProcess.CloseProcessHandles;
+begin
+end;
+
+Function TProcess.PeekExitStatus : Boolean;
+begin
+end;
+
+Procedure TProcess.Execute;
+begin
+end;
+
+Function TProcess.WaitOnExit : Boolean;
+begin
+  Result:=False;
+end;
+
+Function TProcess.Suspend : Longint;
+begin
+  Result:=0;
+end;
+
+Function TProcess.Resume : LongInt;
+
+begin
+  Result:=0;
+end;
+
+Function TProcess.Terminate(AExitCode : Integer) : Boolean;
+begin
+  Result:=False;
+end;
+
+Procedure TProcess.SetShowWindow (Value : TShowWindowOptions);
+begin
+end;
+
+

+ 201 - 0
packages/fcl-process/src/os2/simpleipc.inc

@@ -0,0 +1,201 @@
+{
+    This file is part of the Free Component library.
+    Copyright (c) 2007 by Tomas Hajny, member of
+    the Free Pascal development team
+
+    OS/2 implementation of one-way IPC between 2 processes
+
+    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.
+
+ **********************************************************************}
+
+uses DosCalls, OS2Def;
+
+ResourceString
+  SErrFailedToCreatePipe = 'Failed to create named pipe: %s';
+  SErrFailedToDisconnectPipe = 'Failed to disconnect named pipe: %s';
+
+const
+(* Constant used as key identifying a pipe connected to event semaphore. *)
+(* 'FP' *)
+  PipeKey = $4650;
+  PipeBufSize = 256;
+
+{ ---------------------------------------------------------------------
+    TPipeClientComm
+  ---------------------------------------------------------------------}
+
+Type
+  TPipeClientComm = Class(TIPCClientComm)
+  Private
+    FFileName: String;
+    FStream: TFileStream;
+  Public
+    Constructor Create(AOWner : TSimpleIPCClient); override;
+    Procedure Connect; override;
+    Procedure Disconnect; override;
+    Procedure SendMessage(MsgType : TMessageType; AStream : TStream); override;
+    Function  ServerRunning : Boolean; override;
+    Property FileName : String Read FFileName;
+    Property Stream : TFileStream Read FStream;
+  end;
+
+
+constructor TPipeClientComm.Create (AOWner: TSimpleIPCClient);
+begin
+  inherited Create (AOWner);
+  FFileName:= '\PIPE\' + Owner.ServerID;
+  If (Owner.ServerInstance <> '') then
+    FFileName := FFileName + '.' + Owner.ServerInstance;
+end;
+
+
+procedure TPipeClientComm.Connect;
+begin
+  If Not ServerRunning then
+    Owner.DoError (SErrServerNotActive, [Owner.ServerID]);
+  FStream := TFileStream.Create (FFileName, fmOpenWrite);
+end;
+
+
+procedure TPipeClientComm.Disconnect;
+begin
+  FreeAndNil (FStream);
+end;
+
+
+procedure TPipeClientComm.SendMessage (MsgType: TMessageType; AStream: TStream);
+var
+  Hdr: TMsgHeader;
+begin
+  Hdr.Version := MsgVersion;
+  Hdr.MsgType := MsgType;
+  Hdr.MsgLen := AStream.Size;
+  FStream.WriteBuffer (Hdr, SizeOf (Hdr));
+  FStream.CopyFrom (AStream, 0);
+end;
+
+
+function TPipeClientComm.ServerRunning: boolean;
+begin
+  Result := FileExists (FFileName);
+end;
+
+
+{ ---------------------------------------------------------------------
+    TPipeServerComm
+  ---------------------------------------------------------------------}
+
+type
+  TPipeServerComm = class (TIPCServerComm)
+  private
+    FFileName: string;
+    FStream: THandleStream;
+    EventSem: THandle;
+    SemName: string;
+  public
+    constructor Create (AOWner: TSimpleIPCServer); override;
+    procedure StartServer; override;
+    procedure StopServer; override;
+    function  PeekMessage (TimeOut: integer): boolean; override;
+    procedure ReadMessage; override;
+    function GetInstanceID: string; override;
+    property FileName: string read FFileName;
+    property Stream: THandleStream read FStream;
+  end;
+
+
+constructor TPipeServerComm.Create (AOWner: TSimpleIPCServer);
+begin
+  inherited Create (AOWner);
+  FFileName := '\PIPE\' + Owner.ServerID;
+  SemName := '\SEM32\PIPE\' + Owner.ServerID;
+  If not Owner.Global then
+    FFileName := FFileName + '.' + IntToStr (GetProcessID);
+end;
+
+
+procedure TPipeServerComm.StartServer;
+var
+  H: THandle;
+begin
+  if not FileExists (FFileName) then
+    if (DosCreateNPipe (PChar (FFileName), H, np_Access_Inbound,
+        np_ReadMode_Message or np_WriteMode_Message or 1, PipeBufSize,
+                                               PipeBufSize, 0) <> 0) or
+           (DosCreateEventSem (PChar (SemName), EventSem, 0, 0) <> 0) or
+                          (DosSetNPipeSem (H, EventSem, PipeKey) <> 0) or
+                                            (DosConnectNPipe (H) <> 0) then
+                           Owner.DoError (SErrFailedToCreatePipe, [FFileName]);
+  FStream := THandleStream.Create (H);
+end;
+
+
+procedure TPipeServerComm.StopServer;
+begin
+  if (DosDisconnectNPipe (FStream.Handle) <> 0) or
+                 (DosCloseEventSem (EventSem) <> 0) then
+                       Owner.DoError (SErrFailedToDisconnectPipe, [FFileName]);
+  FreeAndNil (FStream);
+end;
+
+
+function TPipeServerComm.PeekMessage (TimeOut: integer): boolean;
+var
+  PipeSemState: TPipeSemState;
+begin
+  Result := (DosQueryNPipeSemState (EventSem, PipeSemState,
+             SizeOf (PipeSemState)) = 0) and (PipeSemState.Status = 1) and
+                (PipeSemState.Avail <> 0) and (PipeSemState.Key = PipeKey);
+  if not (Result) then
+    Result := (DosWaitEventSem (EventSem, TimeOut) = 0) and
+               (DosQueryNPipeSemState (EventSem, PipeSemState,
+                SizeOf (PipeSemState)) = 0) and (PipeSemState.Status = 1) and
+                    (PipeSemState.Avail <> 0) and (PipeSemState.Key = PipeKey);
+end;
+
+
+procedure TPipeServerComm.ReadMessage;
+var
+  Hdr: TMsgHeader;
+begin
+  FStream.ReadBuffer (Hdr, SizeOf (Hdr));
+  Owner.FMsgType := Hdr.MsgType;
+  if Hdr.MsgLen > 0 then
+    begin
+      Owner.FMsgData.Seek (0, soFromBeginning);
+      Owner.FMsgData.CopyFrom (FStream, Hdr.MsgLen);
+    end
+  else
+    Owner.FMsgData.Size := 0;
+end;
+
+function TPipeServerComm.GetInstanceID: string;
+begin
+  Result := IntToStr (GetProcessID);
+end;
+
+{ ---------------------------------------------------------------------
+    Set TSimpleIPCClient / TSimpleIPCServer defaults.
+  ---------------------------------------------------------------------}
+
+function TSimpleIPCServer.CommClass: TIPCServerCommClass;
+begin
+  if (DefaultIPCServerClass <> nil) then
+    Result := DefaultIPCServerClass
+  else
+    Result := TPipeServerComm;
+end;
+
+function TSimpleIPCClient.CommClass: TIPCClientCommClass;
+begin
+  if (DefaultIPCClientClass <> nil) then
+    Result := DefaultIPCClientClass
+  else
+    Result := TPipeClientComm;
+end;

+ 0 - 0
packages/fcl-base/src/inc/pipes.pp → packages/fcl-process/src/pipes.pp


+ 0 - 0
packages/fcl-base/src/inc/process.pp → packages/fcl-process/src/process.pp


+ 0 - 0
packages/fcl-base/src/inc/process.txt → packages/fcl-process/src/process.txt


+ 0 - 0
packages/fcl-base/src/inc/simpleipc.pp → packages/fcl-process/src/simpleipc.pp


+ 0 - 0
packages/fcl-base/src/unix/pipes.inc → packages/fcl-process/src/unix/pipes.inc


+ 0 - 0
packages/fcl-base/src/unix/process.inc → packages/fcl-process/src/unix/process.inc


+ 0 - 0
packages/fcl-base/src/unix/simpleipc.inc → packages/fcl-process/src/unix/simpleipc.inc


+ 0 - 0
packages/fcl-base/src/win/pipes.inc → packages/fcl-process/src/win/pipes.inc


+ 0 - 0
packages/fcl-base/src/win/process.inc → packages/fcl-process/src/win/process.inc


+ 0 - 0
packages/fcl-base/src/win/simpleipc.inc → packages/fcl-process/src/win/simpleipc.inc


+ 0 - 0
packages/fcl-base/src/wince/pipes.inc → packages/fcl-process/src/wince/pipes.inc


+ 0 - 0
packages/fcl-base/src/wince/process.inc → packages/fcl-process/src/wince/process.inc


+ 0 - 0
packages/fcl-base/src/wince/simpleipc.inc → packages/fcl-process/src/wince/simpleipc.inc


+ 171 - 295
packages/fcl-web/Makefile

@@ -1,11 +1,12 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/21]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/12/01]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 PATHSEP=/
 else
@@ -102,7 +108,11 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
 FPC:=$(shell $(FPCPROG) -PB)
+endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
@@ -352,6 +362,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_UNITS+=httpdefs fphttp custcgi fpcgi fptemplate fphtml websession fpweb webutil fpdatasetform
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=httpdefs fphttp custcgi fpcgi fptemplate fphtml websession fpweb webutil fpdatasetform
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=httpdefs fphttp custcgi fpcgi fptemplate fphtml websession fpweb webutil fpdatasetform
 endif
@@ -508,6 +521,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_RSTS+=fpcgi fphtml fpweb websession
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_RSTS+=fpcgi fphtml fpweb websession
 endif
@@ -665,6 +681,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_OPTIONS+=-S2h
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_OPTIONS+=-S2h
 endif
@@ -821,6 +840,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_SOURCEDIR+=src
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_SOURCEDIR+=src
 endif
@@ -1635,17 +1657,14 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-override REQUIRE_PACKAGES=rtl fcl-base fcl-xml fcl-db
+override REQUIRE_PACKAGES=rtl fcl-base fcl-xml fcl-db fcl-process
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1655,22 +1674,20 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1680,23 +1697,19 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1706,24 +1719,19 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1733,43 +1741,36 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1779,23 +1780,19 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1805,71 +1802,62 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1879,14 +1867,11 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1896,13 +1881,11 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1912,31 +1895,27 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1946,32 +1925,27 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1981,13 +1955,11 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -1997,32 +1969,27 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2032,32 +1999,27 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2067,13 +2029,11 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2083,35 +2043,28 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2121,14 +2074,25 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+REQUIRE_PACKAGES_IBASE=1
+REQUIRE_PACKAGES_POSTGRES=1
+REQUIRE_PACKAGES_MYSQL=1
+REQUIRE_PACKAGES_ODBC=1
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2138,13 +2102,12 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_ODBC=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2152,23 +2115,19 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2178,71 +2137,62 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2252,14 +2202,11 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
 REQUIRE_PACKAGES_MYSQL=1
@@ -2269,12 +2216,11 @@ REQUIRE_PACKAGES_SQLITE=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -2302,56 +2248,30 @@ ifdef UNITDIR_RTL
 override COMPILER_UNITDIR+=$(UNITDIR_RTL)
 endif
 endif
-ifdef REQUIRE_PACKAGES_HASH
-PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_HASH),)
-ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)),)
-UNITDIR_HASH=$(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)
-else
-UNITDIR_HASH=$(PACKAGEDIR_HASH)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_HASH)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_HASH)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_HASH=
-UNITDIR_HASH:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /hash/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_HASH),)
-UNITDIR_HASH:=$(firstword $(UNITDIR_HASH))
-else
-UNITDIR_HASH=
-endif
-endif
-ifdef UNITDIR_HASH
-override COMPILER_UNITDIR+=$(UNITDIR_HASH)
-endif
-endif
-ifdef REQUIRE_PACKAGES_PASZLIB
-PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_PASZLIB),)
-ifneq ($(wildcard $(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)),)
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)/units/$(TARGETSUFFIX)
+ifdef REQUIRE_PACKAGES_FCL-BASE
+PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-BASE),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)
 else
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
+UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)
 endif
 ifdef CHECKDEPEND
-$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PASZLIB)/$(FPCMADE)
+$(PACKAGEDIR_FCL-BASE)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE)
 endif
 else
-PACKAGEDIR_PASZLIB=
-UNITDIR_PASZLIB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_PASZLIB),)
-UNITDIR_PASZLIB:=$(firstword $(UNITDIR_PASZLIB))
+PACKAGEDIR_FCL-BASE=
+UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-BASE),)
+UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE))
 else
-UNITDIR_PASZLIB=
+UNITDIR_FCL-BASE=
 endif
 endif
-ifdef UNITDIR_PASZLIB
-override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
+ifdef UNITDIR_FCL-BASE
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE)
 endif
 endif
 ifdef REQUIRE_PACKAGES_NETDB
@@ -2380,84 +2300,6 @@ ifdef UNITDIR_NETDB
 override COMPILER_UNITDIR+=$(UNITDIR_NETDB)
 endif
 endif
-ifdef REQUIRE_PACKAGES_LIBASYNC
-PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)
-else
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_LIBASYNC)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_LIBASYNC) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBASYNC)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_LIBASYNC=
-UNITDIR_LIBASYNC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libasync/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_LIBASYNC),)
-UNITDIR_LIBASYNC:=$(firstword $(UNITDIR_LIBASYNC))
-else
-UNITDIR_LIBASYNC=
-endif
-endif
-ifdef UNITDIR_LIBASYNC
-override COMPILER_UNITDIR+=$(UNITDIR_LIBASYNC)
-endif
-endif
-ifdef REQUIRE_PACKAGES_PTHREADS
-PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_PTHREADS)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_PTHREADS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PTHREADS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_PTHREADS=
-UNITDIR_PTHREADS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_PTHREADS),)
-UNITDIR_PTHREADS:=$(firstword $(UNITDIR_PTHREADS))
-else
-UNITDIR_PTHREADS=
-endif
-endif
-ifdef UNITDIR_PTHREADS
-override COMPILER_UNITDIR+=$(UNITDIR_PTHREADS)
-endif
-endif
-ifdef REQUIRE_PACKAGES_FCL-BASE
-PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-BASE),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-BASE)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-BASE=
-UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-BASE),)
-UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE))
-else
-UNITDIR_FCL-BASE=
-endif
-endif
-ifdef UNITDIR_FCL-BASE
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE)
-endif
-endif
 ifdef REQUIRE_PACKAGES_FCL-XML
 PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL-XML),)
@@ -2510,6 +2352,32 @@ ifdef UNITDIR_FCL-DB
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-DB)
 endif
 endif
+ifdef REQUIRE_PACKAGES_FCL-PROCESS
+PACKAGEDIR_FCL-PROCESS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-PROCESS),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_FCL-PROCESS) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FCL-PROCESS=
+UNITDIR_FCL-PROCESS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-PROCESS),)
+UNITDIR_FCL-PROCESS:=$(firstword $(UNITDIR_FCL-PROCESS))
+else
+UNITDIR_FCL-PROCESS=
+endif
+endif
+ifdef UNITDIR_FCL-PROCESS
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-PROCESS)
+endif
+endif
 ifdef REQUIRE_PACKAGES_IBASE
 PACKAGEDIR_IBASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /ibase/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_IBASE),)
@@ -2706,7 +2574,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -2844,9 +2712,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 endif
 endif
+endif
 .PHONY: fpc_units
 ifneq ($(TARGET_UNITS),)
 override ALLTARGET+=fpc_units
@@ -3070,8 +2942,12 @@ else
 endif
 ifdef inUnix
 	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
 else
 	$(ZIPWRAPPER)
+endif
 endif
 	$(DEL) $(ZIPWRAPPER)
 else

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

@@ -12,7 +12,7 @@ units=httpdefs fphttp custcgi fpcgi fptemplate fphtml websession fpweb \
 rsts=fpcgi fphtml fpweb websession
 
 [require]
-packages=fcl-base fcl-xml fcl-db
+packages=fcl-base fcl-xml fcl-db fcl-process
 
 [compiler]
 options=-S2h

+ 106 - 248
packages/fpmkunit/Makefile

@@ -1,11 +1,12 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/21]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 PATHSEP=/
 else
@@ -102,7 +108,11 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
 FPC:=$(shell $(FPCPROG) -PB)
+endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
@@ -231,7 +241,7 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=fpmkunit
-override PACKAGE_VERSION=2.2.1
+override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=fpmkunit
 endif
@@ -352,6 +362,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_UNITS+=fpmkunit
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=fpmkunit
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=fpmkunit
 endif
@@ -509,6 +522,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_INCLUDEDIR+=src
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_INCLUDEDIR+=src
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_INCLUDEDIR+=src
 endif
@@ -665,6 +681,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override COMPILER_SOURCEDIR+=src
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override COMPILER_SOURCEDIR+=src
 endif
@@ -1448,388 +1467,324 @@ else
 TAROPT=vz
 TAREXT=.tar.gz
 endif
-override REQUIRE_PACKAGES=rtl fcl-base
+override REQUIRE_PACKAGES=rtl paszlib fcl-process
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_WINUNITS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_HASH=1
+REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_WINUNITS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -1909,134 +1864,30 @@ ifdef UNITDIR_PASZLIB
 override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
 endif
 endif
-ifdef REQUIRE_PACKAGES_NETDB
-PACKAGEDIR_NETDB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /netdb/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_NETDB),)
-ifneq ($(wildcard $(PACKAGEDIR_NETDB)/units/$(TARGETSUFFIX)),)
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)/units/$(TARGETSUFFIX)
-else
-UNITDIR_NETDB=$(PACKAGEDIR_NETDB)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_NETDB)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_NETDB) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_NETDB)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_NETDB=
-UNITDIR_NETDB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /netdb/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_NETDB),)
-UNITDIR_NETDB:=$(firstword $(UNITDIR_NETDB))
-else
-UNITDIR_NETDB=
-endif
-endif
-ifdef UNITDIR_NETDB
-override COMPILER_UNITDIR+=$(UNITDIR_NETDB)
-endif
-endif
-ifdef REQUIRE_PACKAGES_LIBASYNC
-PACKAGEDIR_LIBASYNC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libasync/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_LIBASYNC),)
-ifneq ($(wildcard $(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)),)
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)/units/$(TARGETSUFFIX)
-else
-UNITDIR_LIBASYNC=$(PACKAGEDIR_LIBASYNC)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_LIBASYNC)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_LIBASYNC) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBASYNC)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_LIBASYNC=
-UNITDIR_LIBASYNC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libasync/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_LIBASYNC),)
-UNITDIR_LIBASYNC:=$(firstword $(UNITDIR_LIBASYNC))
-else
-UNITDIR_LIBASYNC=
-endif
-endif
-ifdef UNITDIR_LIBASYNC
-override COMPILER_UNITDIR+=$(UNITDIR_LIBASYNC)
-endif
-endif
-ifdef REQUIRE_PACKAGES_PTHREADS
-PACKAGEDIR_PTHREADS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_PTHREADS),)
-ifneq ($(wildcard $(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)),)
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_PTHREADS=$(PACKAGEDIR_PTHREADS)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_PTHREADS)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_PTHREADS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PTHREADS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_PTHREADS=
-UNITDIR_PTHREADS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /pthreads/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_PTHREADS),)
-UNITDIR_PTHREADS:=$(firstword $(UNITDIR_PTHREADS))
-else
-UNITDIR_PTHREADS=
-endif
-endif
-ifdef UNITDIR_PTHREADS
-override COMPILER_UNITDIR+=$(UNITDIR_PTHREADS)
-endif
-endif
-ifdef REQUIRE_PACKAGES_FCL-BASE
-PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-BASE),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)/units/$(TARGETSUFFIX)
+ifdef REQUIRE_PACKAGES_FCL-PROCESS
+PACKAGEDIR_FCL-PROCESS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-PROCESS),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)/units/$(TARGETSUFFIX)
 else
-UNITDIR_FCL-BASE=$(PACKAGEDIR_FCL-BASE)
+UNITDIR_FCL-PROCESS=$(PACKAGEDIR_FCL-PROCESS)
 endif
 ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-BASE)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_FCL-BASE) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-BASE)/$(FPCMADE)
+$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_FCL-PROCESS) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-PROCESS)/$(FPCMADE)
 endif
 else
-PACKAGEDIR_FCL-BASE=
-UNITDIR_FCL-BASE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-BASE),)
-UNITDIR_FCL-BASE:=$(firstword $(UNITDIR_FCL-BASE))
+PACKAGEDIR_FCL-PROCESS=
+UNITDIR_FCL-PROCESS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-process/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-PROCESS),)
+UNITDIR_FCL-PROCESS:=$(firstword $(UNITDIR_FCL-PROCESS))
 else
-UNITDIR_FCL-BASE=
+UNITDIR_FCL-PROCESS=
 endif
 endif
-ifdef UNITDIR_FCL-BASE
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-BASE)
-endif
-endif
-ifdef REQUIRE_PACKAGES_WINUNITS
-PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_WINUNITS),)
-ifneq ($(wildcard $(PACKAGEDIR_WINUNITS)/units/$(TARGETSUFFIX)),)
-UNITDIR_WINUNITS=$(PACKAGEDIR_WINUNITS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_WINUNITS=$(PACKAGEDIR_WINUNITS)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_WINUNITS)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_WINUNITS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_WINUNITS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_WINUNITS=
-UNITDIR_WINUNITS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /winunits/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_WINUNITS),)
-UNITDIR_WINUNITS:=$(firstword $(UNITDIR_WINUNITS))
-else
-UNITDIR_WINUNITS=
-endif
-endif
-ifdef UNITDIR_WINUNITS
-override COMPILER_UNITDIR+=$(UNITDIR_WINUNITS)
+ifdef UNITDIR_FCL-PROCESS
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-PROCESS)
 endif
 endif
 ifndef NOCPUDEF
@@ -2053,7 +1904,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -2185,9 +2036,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 endif
 endif
+endif
 .PHONY: fpc_units
 ifneq ($(TARGET_UNITS),)
 override ALLTARGET+=fpc_units
@@ -2411,8 +2266,12 @@ else
 endif
 ifdef inUnix
 	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
 else
 	$(ZIPWRAPPER)
+endif
 endif
 	$(DEL) $(ZIPWRAPPER)
 else
@@ -2625,4 +2484,3 @@ ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 endif
 .NOTPARALLEL:
-fpmkunit$(PPUEXT) : fpmkunit.pp

+ 2 - 3
packages/fpmkunit/Makefile.fpc

@@ -4,7 +4,7 @@
 
 [package]
 name=fpmkunit
-version=2.2.1
+version=2.0.0
 
 [target]
 units=fpmkunit
@@ -13,7 +13,7 @@ units=fpmkunit
 fpcpackage=y
 
 [require]
-packages=fcl-base
+packages=paszlib fcl-process
 
 [compiler]
 sourcedir=src
@@ -24,4 +24,3 @@ fpcdir=../..
 
 [rules]
 .NOTPARALLEL:
-fpmkunit$(PPUEXT) : fpmkunit.pp

+ 0 - 9
packages/fpmkunit/fpmake.inc

@@ -1,9 +0,0 @@
-    StartPackage('fpmkunit');
-    Version:='2.0.0';
-    Description:='Free Pascal Make Tool';
-    T:=Targets.AddUnit('fpmkunit');
-    T.Directory:='src';
-    S:=Sources.AddSrcFiles('src/*');
-    S:=Sources.AddSrcFiles('fpmake.inc');
-    S:=Sources.AddSrcFiles('fpmake.pp');
-    EndPackage;

+ 20 - 6
packages/fpmkunit/fpmake.pp

@@ -1,16 +1,30 @@
+{$ifndef ALLPACKAGES}
 {$mode objfpc}{$H+}
 program fpmake;
 
 uses fpmkunit;
 
-var
+Var
   T : TTarget;
-  S : TSource;
+
 begin
-  with Installer do
+  With Installer do
     begin
-      {$i fpmake.inc}
-      Run;
+{$endif ALLPACKAGES}
+
+    StartPackage('fpmkunit');
+{$ifdef ALLPACKAGES}
+    Directory:='fpmkunit';
+{$endif ALLPACKAGES}
+    AddDependency('paszlib');
+    AddDependency('fcl-process');
+    Version:='2.2.0';
+    Description:='Free Pascal Make Tool';
+    T:=Targets.AddUnit('src/fpmkunit.pp');
+    EndPackage;
+
+{$ifndef ALLPACKAGES}
+    Run;
     end;
 end.
-
+{$endif ALLPACKAGES}

Dosya farkı çok büyük olduğundan ihmal edildi
+ 396 - 173
packages/fpmkunit/src/fpmkunit.pp


+ 191 - 5
packages/base/hash/Makefile → packages/hash/Makefile

@@ -1,11 +1,12 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/21]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/12/01]
 #
 default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 PATHSEP=/
 else
@@ -92,7 +98,7 @@ endif
 endif
 export ECHO
 endif
-override DEFAULT_FPCDIR=../../..
+override DEFAULT_FPCDIR=../..
 ifndef FPC
 ifdef PP
 FPC=$(PP)
@@ -102,7 +108,11 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
+ifneq ($(CPU_TARGET),)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+else
 FPC:=$(shell $(FPCPROG) -PB)
+endif
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
@@ -231,7 +241,7 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 override PACKAGE_NAME=hash
-override PACKAGE_VERSION=2.2.1
+override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_UNITS+=md5 crc ntlm uuid  unixcrypt
 endif
@@ -352,6 +362,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_UNITS+=md5 crc ntlm uuid
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=md5 crc ntlm uuid
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_UNITS+=md5 crc ntlm uuid
 endif
@@ -508,6 +521,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 override TARGET_EXAMPLES+=mdtest
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_EXAMPLES+=mdtest
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_EXAMPLES+=mdtest
 endif
@@ -545,6 +561,165 @@ ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_EXAMPLES+=mdtest
 endif
 override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=src
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=src
+endif
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 endif
@@ -1413,6 +1588,9 @@ endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
 endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+REQUIRE_PACKAGES_RTL=1
+endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 endif
@@ -1489,7 +1667,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -1621,9 +1799,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 endif
 endif
+endif
 .PHONY: fpc_units
 ifneq ($(TARGET_UNITS),)
 override ALLTARGET+=fpc_units
@@ -1865,8 +2047,12 @@ else
 endif
 ifdef inUnix
 	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
 else
 	$(ZIPWRAPPER)
+endif
 endif
 	$(DEL) $(ZIPWRAPPER)
 else

+ 5 - 2
packages/base/hash/Makefile.fpc → packages/hash/Makefile.fpc

@@ -4,7 +4,7 @@
 
 [package]
 name=hash
-version=2.2.1
+version=2.0.0
 
 [target]
 units=md5 crc ntlm uuid
@@ -14,8 +14,11 @@ examples=mdtest
 [install]
 fpcpackage=y
 
+[compiler]
+sourcedir=src
+
 [default]
-fpcdir=../../..
+fpcdir=../..
 
 [rules]
 .NOTPARALLEL:

+ 15 - 0
packages/hash/fpmake.inc

@@ -0,0 +1,15 @@
+    StartPackage('hash');
+    Version:='2.0.0';
+    T:=Targets.AddUnit('md5');
+      T.Directory:='src';
+    T:=Targets.AddUnit('crc');
+      T.Directory:='src';
+    T:=Targets.AddUnit('ntlm');
+      T.Directory:='src';
+    T:=Targets.AddUnit('uuid');
+      T.Directory:='src';
+    T:=Targets.AddUnit('unixcrypt');
+    T:=Targets.AddExampleunit('mdtest');
+      T.Directory:='tests';
+    EndPackage;
+

+ 33 - 0
packages/hash/fpmake.pp

@@ -0,0 +1,33 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+  T : TTarget;
+
+begin
+  With Installer do
+    begin
+{$endif ALLPACKAGES}
+
+    StartPackage('hash');
+{$ifdef ALLPACKAGES}
+    Directory:='hash';
+{$endif ALLPACKAGES}
+    Version:='2.0.0';
+    T:=Targets.AddUnit('src/md5.pp');
+    T:=Targets.AddUnit('src/crc.pas');
+    T:=Targets.AddUnit('src/ntlm.pas');
+    T:=Targets.AddUnit('src/uuid.pas');
+    T:=Targets.AddUnit('src/unixcrypt.pas');
+      T.OSes:=[Linux];
+    T:=Targets.AddExampleunit('tests/mdtest.pas');
+    EndPackage;
+
+{$ifndef ALLPACKAGES}
+    Run;
+    end;
+end.
+{$endif ALLPACKAGES}

+ 0 - 0
packages/base/hash/crc.pas → packages/hash/src/crc.pas


+ 0 - 0
packages/base/hash/md5.pp → packages/hash/src/md5.pp


+ 0 - 0
packages/base/hash/ntlm.pas → packages/hash/src/ntlm.pas


+ 0 - 0
packages/base/hash/unixcrypt.pas → packages/hash/src/unixcrypt.pas


+ 27 - 1
packages/base/hash/uuid.pas → packages/hash/src/uuid.pas

@@ -30,7 +30,33 @@ uses
  ******************************************************************************)
 
 type
+{$ifdef VER2_0}
+       uuid_t = packed record
+          case integer of
+             1 : (
+                  Data1 : DWord;
+                  Data2 : word;
+                  Data3 : word;
+                  Data4 : array[0..7] of byte;
+                 );
+             2 : (
+                  D1 : DWord;
+                  D2 : word;
+                  D3 : word;
+                  D4 : array[0..7] of byte;
+                 );
+             3 : ( { uuid fields according to RFC4122 }
+                  time_low : dword;     // The low field of the timestamp
+                  time_mid : word;                      // The middle field of the timestamp
+                  time_hi_and_version : word;           // The high field of the timestamp multiplexed with the version
+                  clock_seq_hi_and_reserved : byte;     // The high field of the clock sequence multiplexed with the var
+                  clock_seq_low : byte;                 // The low field of the clock sequence
+                  node : array[0..5] of byte;           // The spatially unique node identifier
+                 );
+       end;
+{$else VER2_0}
   uuid_t          = TGuid;
+{$endif VER2_0}
   uuid_time_t     = qword;
   uuid_node_t     = array[0..5] of byte;
   unsigned16      = word;
@@ -140,7 +166,7 @@ end;
 
 { uuid_create }
 
-function uuid_create(var uuid: TGuid): boolean;
+function uuid_create(var uuid: uuid_t): boolean;
 var
   timestamp: uuid_time_t;
   last_time: uuid_time_t;

+ 0 - 0
packages/base/hash/md5.ref → packages/hash/tests/md5.ref


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor