Przeglądaj źródła

* created fcl-async and fcl-process packages

git-svn-id: trunk@8979 -
peter 18 lat temu
rodzic
commit
0760bea214
78 zmienionych plików z 4903 dodań i 2515 usunięć
  1. 53 53
      .gitattributes
  2. 7 56
      .gitignore
  3. 227 64
      packages/Makefile
  4. 17 17
      packages/Makefile.fpc
  5. 22 89
      packages/base/Makefile
  6. 7 14
      packages/base/Makefile.fpc
  7. 0 28
      packages/base/libasync/Makefile.fpc
  8. 0 21
      packages/base/libasync/fpmake.inc
  9. 0 17
      packages/base/libasync/fpmake.pp
  10. 339 79
      packages/fcl-async/Makefile
  11. 37 0
      packages/fcl-async/Makefile.fpc
  12. 0 0
      packages/fcl-async/src/fpasync.pp
  13. 0 0
      packages/fcl-async/src/libasync.inc
  14. 0 0
      packages/fcl-async/src/libasynch.inc
  15. 0 0
      packages/fcl-async/src/unix/asyncio.inc
  16. 0 0
      packages/fcl-async/src/unix/asyncioh.inc
  17. 0 0
      packages/fcl-async/src/unix/libasync.pp
  18. 105 407
      packages/fcl-base/Makefile
  19. 16 31
      packages/fcl-base/Makefile.fpc
  20. 0 39
      packages/fcl-base/src/amiga/classes.pp
  21. 0 92
      packages/fcl-base/src/amiga/thread.inc
  22. 0 42
      packages/fcl-base/src/beos/classes.pp
  23. 0 92
      packages/fcl-base/src/beos/thread.inc
  24. 0 42
      packages/fcl-base/src/qnx/classes.pp
  25. 0 22
      packages/fcl-base/src/qnx/eventlog.inc
  26. 965 965
      packages/fcl-base/src/win/ServiceManager.pas
  27. 116 301
      packages/fcl-net/Makefile
  28. 2 14
      packages/fcl-net/Makefile.fpc
  29. 0 0
      packages/fcl-net/src/netware/resolve.inc
  30. 0 0
      packages/fcl-net/src/netwlibc/resolve.inc
  31. 0 0
      packages/fcl-net/src/os2/resolve.inc
  32. 0 0
      packages/fcl-net/src/resolve.pp
  33. 0 0
      packages/fcl-net/src/ssockets.pp
  34. 0 0
      packages/fcl-net/src/unix/resolve.inc
  35. 0 0
      packages/fcl-net/src/win/resolve.inc
  36. 0 0
      packages/fcl-net/src/wince/resolve.inc
  37. 0 0
      packages/fcl-net/tests/Makefile
  38. 0 0
      packages/fcl-net/tests/Makefile.fpc
  39. 0 0
      packages/fcl-net/tests/readme.txt
  40. 0 0
      packages/fcl-net/tests/rpccli.pp
  41. 0 0
      packages/fcl-net/tests/rpcserv.pp
  42. 0 0
      packages/fcl-net/tests/svrclass.pp
  43. 0 0
      packages/fcl-net/tests/svrclass_xmlrpc.pp
  44. 2545 0
      packages/fcl-process/Makefile
  45. 37 0
      packages/fcl-process/Makefile.fpc
  46. 0 0
      packages/fcl-process/src/amiga/pipes.inc
  47. 42 0
      packages/fcl-process/src/amiga/process.inc
  48. 0 0
      packages/fcl-process/src/beos/pipes.inc
  49. 0 0
      packages/fcl-process/src/dbugintf.pp
  50. 0 0
      packages/fcl-process/src/dbugmsg.pp
  51. 0 0
      packages/fcl-process/src/go32v2/pipes.inc
  52. 42 0
      packages/fcl-process/src/go32v2/process.inc
  53. 0 0
      packages/fcl-process/src/morphos/pipes.inc
  54. 42 0
      packages/fcl-process/src/morphos/process.inc
  55. 0 0
      packages/fcl-process/src/netware/pipes.inc
  56. 42 0
      packages/fcl-process/src/netware/process.inc
  57. 0 0
      packages/fcl-process/src/netwlibc/pipes.inc
  58. 42 0
      packages/fcl-process/src/netwlibc/process.inc
  59. 0 0
      packages/fcl-process/src/os2/pipes.inc
  60. 42 0
      packages/fcl-process/src/os2/process.inc
  61. 0 0
      packages/fcl-process/src/pipes.pp
  62. 0 0
      packages/fcl-process/src/process.pp
  63. 0 0
      packages/fcl-process/src/process.txt
  64. 0 0
      packages/fcl-process/src/simpleipc.pp
  65. 0 0
      packages/fcl-process/src/unix/pipes.inc
  66. 0 0
      packages/fcl-process/src/unix/process.inc
  67. 0 0
      packages/fcl-process/src/unix/simpleipc.inc
  68. 0 0
      packages/fcl-process/src/win/pipes.inc
  69. 0 0
      packages/fcl-process/src/win/process.inc
  70. 0 0
      packages/fcl-process/src/win/simpleipc.inc
  71. 0 0
      packages/fcl-process/src/wince/pipes.inc
  72. 0 0
      packages/fcl-process/src/wince/process.inc
  73. 0 0
      packages/fcl-process/src/wince/simpleipc.inc
  74. 79 2
      packages/fpmkunit/Makefile
  75. 1 2
      packages/fpmkunit/Makefile.fpc
  76. 1 4
      packages/fpmkunit/fpmake.inc
  77. 0 1
      packages/fpmkunit/fpmake.pp
  78. 75 21
      packages/fpmkunit/src/fpmkunit.pp

+ 53 - 53
.gitattributes

@@ -958,13 +958,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/magick_wand.pas svneol=native#text/plain
 packages/base/imagemagick/wand/pixel_iterator.inc 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/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 svneol=native#text/plain
 packages/base/libc/Makefile.fpc svneol=native#text/plain
 packages/base/libc/Makefile.fpc svneol=native#text/plain
 packages/base/libc/README -text
 packages/base/libc/README -text
@@ -3808,21 +3801,22 @@ packages/extra/zlib/Makefile.fpc svneol=native#text/plain
 packages/extra/zlib/fpmake.inc 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/fpmake.pp svneol=native#text/plain
 packages/extra/zlib/zlib.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 svneol=native#text/plain
 packages/fcl-base/Makefile.fpc 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/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/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.inc svneol=native#text/plain
 packages/fcl-base/src/fpmake.pp 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/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/go32v2/eventlog.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/avl_tree.pp svneol=native#text/plain
 packages/fcl-base/src/inc/base64.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
 packages/fcl-base/src/inc/blowfish.pp svneol=native#text/plain
@@ -3832,12 +3826,9 @@ 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/contnrs.pp svneol=native#text/plain
 packages/fcl-base/src/inc/custapp.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/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/eventlog.pp svneol=native#text/plain
 packages/fcl-base/src/inc/ezcgi.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/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/fptimer.pp svneol=native#text/plain
 packages/fcl-base/src/inc/gettext.pp svneol=native#text/plain
 packages/fcl-base/src/inc/gettext.pp svneol=native#text/plain
 packages/fcl-base/src/inc/idea.pp svneol=native#text/plain
 packages/fcl-base/src/inc/idea.pp svneol=native#text/plain
@@ -3845,16 +3836,10 @@ 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/inifiles.pp svneol=native#text/plain
 packages/fcl-base/src/inc/iostream.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/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/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/rtfdata.inc svneol=native#text/plain
 packages/fcl-base/src/inc/rtfpars.pp 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/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/streamcoll.pp svneol=native#text/plain
 packages/fcl-base/src/inc/streamex.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
 packages/fcl-base/src/inc/streamio.pp svneol=native#text/plain
@@ -3863,29 +3848,14 @@ 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/whtml.pp svneol=native#text/plain
 packages/fcl-base/src/inc/wtex.pp svneol=native#text/plain
 packages/fcl-base/src/inc/wtex.pp svneol=native#text/plain
 packages/fcl-base/src/morphos/eventlog.inc 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/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/netware/eventlog.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/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/netwlibc/eventlog.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/custapp.inc svneol=native#text/plain
 packages/fcl-base/src/os2/eventlog.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/daemonapp.inc svneol=native#text/plain
 packages/fcl-base/src/unix/eventlog.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/ServiceManager.pas -text
 packages/fcl-base/src/win/daemonapp.inc svneol=native#text/plain
 packages/fcl-base/src/win/daemonapp.inc svneol=native#text/plain
 packages/fcl-base/src/win/eventlog.inc svneol=native#text/plain
 packages/fcl-base/src/win/eventlog.inc svneol=native#text/plain
@@ -3894,16 +3864,8 @@ packages/fcl-base/src/win/fclel.rc -text
 packages/fcl-base/src/win/fclel.res -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/fileinfo.pp svneol=native#text/plain
 packages/fcl-base/src/win/httpapp.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/eventlog.inc svneol=native#text/plain
 packages/fcl-base/src/wince/fileinfo.pp 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 svneol=native#text/plain
 packages/fcl-base/tests/Makefile.fpc svneol=native#text/plain
 packages/fcl-base/tests/Makefile.fpc svneol=native#text/plain
 packages/fcl-base/tests/README -text
 packages/fcl-base/tests/README -text
@@ -4248,15 +4210,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/httpclient.pp svneol=native#text/plain
 packages/fcl-net/src/httpsvlt.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/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/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/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 svneol=native#text/plain
 packages/fcl-passrc/Makefile.fpc svneol=native#text/plain
 packages/fcl-passrc/Makefile.fpc svneol=native#text/plain
 packages/fcl-passrc/src/fpmake.inc svneol=native#text/plain
 packages/fcl-passrc/src/fpmake.inc svneol=native#text/plain
@@ -4266,6 +4236,36 @@ packages/fcl-passrc/src/paswrite.pp svneol=native#text/plain
 packages/fcl-passrc/src/pparser.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/pscanner.pp svneol=native#text/plain
 packages/fcl-passrc/src/readme.txt 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/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/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 svneol=native#text/plain
 packages/fcl-registry/Makefile.fpc svneol=native#text/plain
 packages/fcl-registry/Makefile.fpc svneol=native#text/plain
 packages/fcl-registry/src/regdef.inc svneol=native#text/plain
 packages/fcl-registry/src/regdef.inc svneol=native#text/plain

+ 7 - 56
.gitignore

@@ -221,20 +221,6 @@ packages/base/ibase/*.ppu
 packages/base/ibase/*.s
 packages/base/ibase/*.s
 packages/base/ibase/fpcmade.*
 packages/base/ibase/fpcmade.*
 packages/base/ibase/units
 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/*.bak
 packages/base/libc/*.exe
 packages/base/libc/*.exe
 packages/base/libc/*.o
 packages/base/libc/*.o
@@ -1376,27 +1362,6 @@ packages/fcl-base/src/beos/*.ppu
 packages/fcl-base/src/beos/*.s
 packages/fcl-base/src/beos/*.s
 packages/fcl-base/src/beos/fpcmade.*
 packages/fcl-base/src/beos/fpcmade.*
 packages/fcl-base/src/beos/units
 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/*.bak
 packages/fcl-base/src/go32v2/*.exe
 packages/fcl-base/src/go32v2/*.exe
 packages/fcl-base/src/go32v2/*.o
 packages/fcl-base/src/go32v2/*.o
@@ -1411,13 +1376,6 @@ packages/fcl-base/src/inc/*.ppu
 packages/fcl-base/src/inc/*.s
 packages/fcl-base/src/inc/*.s
 packages/fcl-base/src/inc/fpcmade.*
 packages/fcl-base/src/inc/fpcmade.*
 packages/fcl-base/src/inc/units
 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/*.bak
 packages/fcl-base/src/netware/*.exe
 packages/fcl-base/src/netware/*.exe
 packages/fcl-base/src/netware/*.o
 packages/fcl-base/src/netware/*.o
@@ -1439,13 +1397,6 @@ packages/fcl-base/src/os2/*.ppu
 packages/fcl-base/src/os2/*.s
 packages/fcl-base/src/os2/*.s
 packages/fcl-base/src/os2/fpcmade.*
 packages/fcl-base/src/os2/fpcmade.*
 packages/fcl-base/src/os2/units
 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/*.bak
 packages/fcl-base/src/unix/*.exe
 packages/fcl-base/src/unix/*.exe
 packages/fcl-base/src/unix/*.o
 packages/fcl-base/src/unix/*.o
@@ -1578,14 +1529,14 @@ packages/fcl-net/src/*.o
 packages/fcl-net/src/*.ppu
 packages/fcl-net/src/*.ppu
 packages/fcl-net/src/*.s
 packages/fcl-net/src/*.s
 packages/fcl-net/src/fpcmade.*
 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/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/*.bak
 packages/fcl-passrc/src/*.exe
 packages/fcl-passrc/src/*.exe
 packages/fcl-passrc/src/*.o
 packages/fcl-passrc/src/*.o

+ 227 - 64
packages/Makefile

@@ -1,5 +1,5 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/20]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/25]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-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-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
@@ -108,7 +108,7 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
 FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
 ifneq ($(findstring Error,$(FPC)),)
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
 endif
@@ -237,160 +237,160 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_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-web
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra  fcl-web fcl-async
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+override TARGET_DIRS+=base hash paszlib fpmkunit fcl-base fcl-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCSUBDIR=packages
 override INSTALL_FPCSUBDIR=packages
@@ -1477,6 +1477,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1487,6 +1488,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1494,6 +1496,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1510,6 +1513,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1527,6 +1531,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1543,6 +1548,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1553,6 +1559,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1560,6 +1567,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1576,6 +1584,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1586,6 +1595,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1593,6 +1603,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1603,6 +1614,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1610,6 +1622,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1626,6 +1639,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1642,6 +1656,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1652,6 +1667,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1659,6 +1675,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1675,6 +1692,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1685,6 +1703,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1692,6 +1711,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1708,6 +1728,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1724,6 +1745,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1740,6 +1762,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1757,6 +1780,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1773,6 +1797,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1789,6 +1814,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1799,6 +1825,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1806,6 +1833,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1816,6 +1844,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1823,6 +1852,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1833,6 +1863,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1840,6 +1871,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1856,6 +1888,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1872,6 +1905,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1882,6 +1916,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1889,6 +1924,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1905,6 +1941,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1921,6 +1958,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1931,6 +1969,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1938,6 +1977,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1948,6 +1988,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -1955,6 +1996,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1971,6 +2013,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1987,6 +2030,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -1997,6 +2041,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2004,6 +2049,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2020,6 +2066,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2036,6 +2083,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2046,6 +2094,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2053,6 +2102,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2063,6 +2113,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2070,6 +2121,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2080,6 +2132,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2087,6 +2140,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2103,6 +2157,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2113,6 +2168,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2120,6 +2176,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2130,6 +2187,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2137,6 +2195,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2154,6 +2213,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2170,6 +2230,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2180,6 +2241,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2187,6 +2249,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2203,6 +2266,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2220,6 +2284,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2236,6 +2301,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2252,6 +2318,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2268,6 +2335,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2284,6 +2352,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2294,6 +2363,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2301,6 +2371,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2311,6 +2382,7 @@ TARGET_DIRS_FCL-FPCUNIT=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_FCL-JSON=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_EXTRA=1
 TARGET_DIRS_FCL-WEB=1
 TARGET_DIRS_FCL-WEB=1
+TARGET_DIRS_FCL-ASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 TARGET_DIRS_BASE=1
 TARGET_DIRS_BASE=1
@@ -2318,6 +2390,7 @@ TARGET_DIRS_HASH=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_PASZLIB=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FPMKUNIT=1
 TARGET_DIRS_FCL-BASE=1
 TARGET_DIRS_FCL-BASE=1
+TARGET_DIRS_FCL-PROCESS=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-DB=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-IMAGE=1
 TARGET_DIRS_FCL-NET=1
 TARGET_DIRS_FCL-NET=1
@@ -2553,6 +2626,51 @@ fcl-base:
 	$(MAKE) -C fcl-base all
 	$(MAKE) -C fcl-base all
 .PHONY: fcl-base_all fcl-base_debug fcl-base_smart fcl-base_release fcl-base_units fcl-base_examples fcl-base_shared fcl-base_install fcl-base_sourceinstall fcl-base_exampleinstall fcl-base_distinstall fcl-base_zipinstall fcl-base_zipsourceinstall fcl-base_zipexampleinstall fcl-base_zipdistinstall fcl-base_clean fcl-base_distclean fcl-base_cleanall fcl-base_info fcl-base_makefiles fcl-base
 .PHONY: fcl-base_all fcl-base_debug fcl-base_smart fcl-base_release fcl-base_units fcl-base_examples fcl-base_shared fcl-base_install fcl-base_sourceinstall fcl-base_exampleinstall fcl-base_distinstall fcl-base_zipinstall fcl-base_zipsourceinstall fcl-base_zipexampleinstall fcl-base_zipdistinstall fcl-base_clean fcl-base_distclean fcl-base_cleanall fcl-base_info fcl-base_makefiles fcl-base
 endif
 endif
+ifdef TARGET_DIRS_FCL-PROCESS
+fcl-process_all:
+	$(MAKE) -C fcl-process all
+fcl-process_debug:
+	$(MAKE) -C fcl-process debug
+fcl-process_smart:
+	$(MAKE) -C fcl-process smart
+fcl-process_release:
+	$(MAKE) -C fcl-process release
+fcl-process_units:
+	$(MAKE) -C fcl-process units
+fcl-process_examples:
+	$(MAKE) -C fcl-process examples
+fcl-process_shared:
+	$(MAKE) -C fcl-process shared
+fcl-process_install:
+	$(MAKE) -C fcl-process install
+fcl-process_sourceinstall:
+	$(MAKE) -C fcl-process sourceinstall
+fcl-process_exampleinstall:
+	$(MAKE) -C fcl-process exampleinstall
+fcl-process_distinstall:
+	$(MAKE) -C fcl-process distinstall
+fcl-process_zipinstall:
+	$(MAKE) -C fcl-process zipinstall
+fcl-process_zipsourceinstall:
+	$(MAKE) -C fcl-process zipsourceinstall
+fcl-process_zipexampleinstall:
+	$(MAKE) -C fcl-process zipexampleinstall
+fcl-process_zipdistinstall:
+	$(MAKE) -C fcl-process zipdistinstall
+fcl-process_clean:
+	$(MAKE) -C fcl-process clean
+fcl-process_distclean:
+	$(MAKE) -C fcl-process distclean
+fcl-process_cleanall:
+	$(MAKE) -C fcl-process cleanall
+fcl-process_info:
+	$(MAKE) -C fcl-process info
+fcl-process_makefiles:
+	$(MAKE) -C fcl-process makefiles
+fcl-process:
+	$(MAKE) -C fcl-process all
+.PHONY: fcl-process_all fcl-process_debug fcl-process_smart fcl-process_release fcl-process_units fcl-process_examples fcl-process_shared fcl-process_install fcl-process_sourceinstall fcl-process_exampleinstall fcl-process_distinstall fcl-process_zipinstall fcl-process_zipsourceinstall fcl-process_zipexampleinstall fcl-process_zipdistinstall fcl-process_clean fcl-process_distclean fcl-process_cleanall fcl-process_info fcl-process_makefiles fcl-process
+endif
 ifdef TARGET_DIRS_FCL-DB
 ifdef TARGET_DIRS_FCL-DB
 fcl-db_all:
 fcl-db_all:
 	$(MAKE) -C fcl-db all
 	$(MAKE) -C fcl-db all
@@ -3003,6 +3121,51 @@ fcl-web:
 	$(MAKE) -C fcl-web all
 	$(MAKE) -C fcl-web all
 .PHONY: fcl-web_all fcl-web_debug fcl-web_smart fcl-web_release fcl-web_units fcl-web_examples fcl-web_shared fcl-web_install fcl-web_sourceinstall fcl-web_exampleinstall fcl-web_distinstall fcl-web_zipinstall fcl-web_zipsourceinstall fcl-web_zipexampleinstall fcl-web_zipdistinstall fcl-web_clean fcl-web_distclean fcl-web_cleanall fcl-web_info fcl-web_makefiles fcl-web
 .PHONY: fcl-web_all fcl-web_debug fcl-web_smart fcl-web_release fcl-web_units fcl-web_examples fcl-web_shared fcl-web_install fcl-web_sourceinstall fcl-web_exampleinstall fcl-web_distinstall fcl-web_zipinstall fcl-web_zipsourceinstall fcl-web_zipexampleinstall fcl-web_zipdistinstall fcl-web_clean fcl-web_distclean fcl-web_cleanall fcl-web_info fcl-web_makefiles fcl-web
 endif
 endif
+ifdef TARGET_DIRS_FCL-ASYNC
+fcl-async_all:
+	$(MAKE) -C fcl-async all
+fcl-async_debug:
+	$(MAKE) -C fcl-async debug
+fcl-async_smart:
+	$(MAKE) -C fcl-async smart
+fcl-async_release:
+	$(MAKE) -C fcl-async release
+fcl-async_units:
+	$(MAKE) -C fcl-async units
+fcl-async_examples:
+	$(MAKE) -C fcl-async examples
+fcl-async_shared:
+	$(MAKE) -C fcl-async shared
+fcl-async_install:
+	$(MAKE) -C fcl-async install
+fcl-async_sourceinstall:
+	$(MAKE) -C fcl-async sourceinstall
+fcl-async_exampleinstall:
+	$(MAKE) -C fcl-async exampleinstall
+fcl-async_distinstall:
+	$(MAKE) -C fcl-async distinstall
+fcl-async_zipinstall:
+	$(MAKE) -C fcl-async zipinstall
+fcl-async_zipsourceinstall:
+	$(MAKE) -C fcl-async zipsourceinstall
+fcl-async_zipexampleinstall:
+	$(MAKE) -C fcl-async zipexampleinstall
+fcl-async_zipdistinstall:
+	$(MAKE) -C fcl-async zipdistinstall
+fcl-async_clean:
+	$(MAKE) -C fcl-async clean
+fcl-async_distclean:
+	$(MAKE) -C fcl-async distclean
+fcl-async_cleanall:
+	$(MAKE) -C fcl-async cleanall
+fcl-async_info:
+	$(MAKE) -C fcl-async info
+fcl-async_makefiles:
+	$(MAKE) -C fcl-async makefiles
+fcl-async:
+	$(MAKE) -C fcl-async all
+.PHONY: fcl-async_all fcl-async_debug fcl-async_smart fcl-async_release fcl-async_units fcl-async_examples fcl-async_shared fcl-async_install fcl-async_sourceinstall fcl-async_exampleinstall fcl-async_distinstall fcl-async_zipinstall fcl-async_zipsourceinstall fcl-async_zipexampleinstall fcl-async_zipdistinstall fcl-async_clean fcl-async_distclean fcl-async_cleanall fcl-async_info fcl-async_makefiles fcl-async
+endif
 all: $(addsuffix _all,$(TARGET_DIRS))
 all: $(addsuffix _all,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 debug: $(addsuffix _debug,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
 smart: $(addsuffix _smart,$(TARGET_DIRS))
@@ -3027,11 +3190,11 @@ makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
 ifneq ($(wildcard fpcmake.loc),)
 ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
-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_all: base_all fcl-xml_all
 extra_debug: base_debug fcl-xml_debug
 extra_debug: base_debug fcl-xml_debug
 extra_smart: base_smart fcl-xml_smart
 extra_smart: base_smart fcl-xml_smart
@@ -3067,11 +3230,11 @@ fcl-registry_debug: fcl-xml_debug
 fcl-registry_smart: fcl-xml_smart
 fcl-registry_smart: fcl-xml_smart
 fcl-registry_release: fcl-xml_release
 fcl-registry_release: fcl-xml_release
 fcl-registry_shared: fcl-xml_shared
 fcl-registry_shared: fcl-xml_shared
-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-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
 fcl-web_all: fcl-db_all fcl-xml_all
 fcl-web_all: fcl-db_all fcl-xml_all
 fcl-web_debug: fcl-db_debug fcl-xml_debug
 fcl-web_debug: fcl-db_debug fcl-xml_debug
 fcl-web_smart: fcl-db_smart fcl-xml_smart
 fcl-web_smart: fcl-db_smart fcl-xml_smart

+ 17 - 17
packages/Makefile.fpc

@@ -3,13 +3,13 @@
 #
 #
 
 
 [target]
 [target]
-dirs=base hash paszlib 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-process fcl-db fcl-image fcl-net fcl-passrc fcl-registry fcl-xml fcl-fpcunit fcl-json extra
+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_win32=fcl-web
 dirs_win64=fcl-web
 dirs_win64=fcl-web
 dirs_wince=fcl-web
 dirs_wince=fcl-web
@@ -22,11 +22,11 @@ fpcsubdir=packages
 fpcdir=..
 fpcdir=..
 
 
 [rules]
 [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_all: base_all fcl-xml_all
 extra_debug: base_debug fcl-xml_debug
 extra_debug: base_debug fcl-xml_debug
@@ -70,11 +70,11 @@ fcl-registry_smart: fcl-xml_smart
 fcl-registry_release: fcl-xml_release
 fcl-registry_release: fcl-xml_release
 fcl-registry_shared: fcl-xml_shared
 fcl-registry_shared: fcl-xml_shared
 
 
-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-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
 
 
 fcl-web_all: fcl-db_all fcl-xml_all
 fcl-web_all: fcl-db_all fcl-xml_all
 fcl-web_debug: fcl-db_debug fcl-xml_debug
 fcl-web_debug: fcl-db_debug fcl-xml_debug

+ 22 - 89
packages/base/Makefile

@@ -237,7 +237,7 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
 override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint
 override TARGET_DIRS+=pasjpeg regexpr netdb  gdbint
@@ -249,16 +249,16 @@ ifeq ($(FULL_TARGET),i386-os2)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -267,13 +267,13 @@ ifeq ($(FULL_TARGET),i386-netware)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -294,13 +294,13 @@ ifeq ($(FULL_TARGET),i386-symbian)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -309,7 +309,7 @@ ifeq ($(FULL_TARGET),m68k-atari)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -318,10 +318,10 @@ ifeq ($(FULL_TARGET),m68k-embedded)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -330,7 +330,7 @@ ifeq ($(FULL_TARGET),powerpc-macos)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -339,22 +339,22 @@ ifeq ($(FULL_TARGET),powerpc-embedded)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase odbc sqlite postgres oracle winunits
 override TARGET_DIRS+=pasjpeg regexpr netdb  mysql ibase odbc sqlite postgres oracle winunits
@@ -363,7 +363,7 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -384,10 +384,10 @@ ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_DIRS+=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
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_DIRS+=pasjpeg regexpr netdb
 override TARGET_DIRS+=pasjpeg regexpr netdb
@@ -1476,7 +1476,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1520,7 +1519,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1536,7 +1534,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1550,7 +1547,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1563,7 +1559,6 @@ ifeq ($(FULL_TARGET),i386-solaris)
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1589,7 +1584,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1607,7 +1601,6 @@ ifeq ($(FULL_TARGET),i386-darwin)
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1656,7 +1649,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1673,7 +1665,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1689,7 +1680,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1713,7 +1703,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1737,7 +1726,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1754,7 +1742,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1777,7 +1764,6 @@ ifeq ($(FULL_TARGET),powerpc-darwin)
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1803,7 +1789,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1820,7 +1805,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1833,7 +1817,6 @@ ifeq ($(FULL_TARGET),sparc-solaris)
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1854,7 +1837,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1871,7 +1853,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1904,7 +1885,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1954,7 +1934,6 @@ TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_GDBINT=1
 TARGET_DIRS_GDBINT=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -1970,7 +1949,6 @@ ifeq ($(FULL_TARGET),powerpc64-darwin)
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_PASJPEG=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_REGEXPR=1
 TARGET_DIRS_NETDB=1
 TARGET_DIRS_NETDB=1
-TARGET_DIRS_LIBASYNC=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_MYSQL=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_IBASE=1
 TARGET_DIRS_POSTGRES=1
 TARGET_DIRS_POSTGRES=1
@@ -2166,51 +2144,6 @@ gdbint:
 	$(MAKE) -C gdbint all
 	$(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
 .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
 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
 ifdef TARGET_DIRS_MYSQL
 mysql_all:
 mysql_all:
 	$(MAKE) -C mysql all
 	$(MAKE) -C mysql all

+ 7 - 14
packages/base/Makefile.fpc

@@ -5,24 +5,17 @@
 [target]
 [target]
 dirs=pasjpeg regexpr netdb
 dirs=pasjpeg regexpr netdb
 dirs_i386_linux=libc
 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_win32=gdbint mysql ibase odbc sqlite postgres oracle imagemagick httpd winunits
 dirs_win64=mysql ibase odbc sqlite postgres oracle winunits
 dirs_win64=mysql ibase odbc sqlite postgres oracle winunits
 dirs_wince=ibase sqlite postgres
 dirs_wince=ibase sqlite postgres
 dirs_go32v2=gdbint
 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]
 [rules]

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

@@ -1,28 +0,0 @@
-#
-#   Makefile.fpc for libasync
-#
-
-[package]
-name=libasync
-version=2.0.0
-
-[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.
-

+ 339 - 79
packages/base/libasync/Makefile → packages/fcl-async/Makefile

@@ -1,11 +1,12 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/08/22]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/25]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-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-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
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 SRCBATCHEXT=.bat
 endif
 endif
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 ifdef inUnix
 PATHSEP=/
 PATHSEP=/
 else
 else
@@ -92,7 +98,7 @@ endif
 endif
 endif
 export ECHO
 export ECHO
 endif
 endif
-override DEFAULT_FPCDIR=../../..
+override DEFAULT_FPCDIR=../..
 ifndef FPC
 ifndef FPC
 ifdef PP
 ifdef PP
 FPC=$(PP)
 FPC=$(PP)
@@ -102,7 +108,7 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
 FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
 ifneq ($(findstring Error,$(FPC)),)
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
 endif
@@ -230,230 +236,476 @@ ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override PACKAGE_NAME=libasync
+override PACKAGE_NAME=fcl-async
 override PACKAGE_VERSION=2.0.0
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=libasync
+override TARGET_UNITS+=libasync fpasync
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_SOURCEDIR+=unix
+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-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
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=src
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=src
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_SOURCEDIR+=unix
+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
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_SOURCEDIR+=unix
+override COMPILER_SOURCEDIR+=src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=src
 endif
 endif
 ifdef REQUIRE_UNITSDIR
 ifdef REQUIRE_UNITSDIR
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
 override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1399,7 +1651,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 endif
 ifndef CROSSBOOTSTRAP
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 endif
 ifneq ($(BINUTILSPREFIX),)
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -1531,9 +1783,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 EXECPPAS=
 else
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
+endif
 .PHONY: fpc_units
 .PHONY: fpc_units
 ifneq ($(TARGET_UNITS),)
 ifneq ($(TARGET_UNITS),)
 override ALLTARGET+=fpc_units
 override ALLTARGET+=fpc_units
@@ -1757,8 +2013,12 @@ else
 endif
 endif
 ifdef inUnix
 ifdef inUnix
 	/bin/sh $(ZIPWRAPPER)
 	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
 else
 else
 	$(ZIPWRAPPER)
 	$(ZIPWRAPPER)
+endif
 endif
 endif
 	$(DEL) $(ZIPWRAPPER)
 	$(DEL) $(ZIPWRAPPER)
 else
 else

+ 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


+ 105 - 407
packages/fcl-base/Makefile

@@ -239,316 +239,316 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-base
 override PACKAGE_NAME=fcl-base
 override PACKAGE_VERSION=2.0.0
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  fileinfo syncobjs daemonapp ServiceManager fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  resolve ssockets
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  resolve ssockets syncobjs
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  resolve ssockets
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  resolve ssockets syncobjs
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  fileinfo syncobjs fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  fileinfo syncobjs daemonapp ServiceManager fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  fileinfo syncobjs fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll  syncobjs daemonapp fptimer
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
+override TARGET_UNITS+=contnrs inifiles ezcgi rtfpars idea base64 gettext iostream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish streamio inicol pooledmm libtar streamcoll
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol
+override TARGET_RSTS+=cachecls custapp cgiapp eventlog registry streamcoll inicol
 endif
 endif
 override INSTALL_FPCPACKAGE=y
 override INSTALL_FPCPACKAGE=y
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
@@ -1766,336 +1766,164 @@ else
 TAROPT=vz
 TAROPT=vz
 TAREXT=.tar.gz
 TAREXT=.tar.gz
 endif
 endif
-override REQUIRE_PACKAGES=rtl paszlib hash
+override REQUIRE_PACKAGES=rtl 
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_WINUNITS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_WINUNITS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_HASH=1
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -2123,136 +1951,6 @@ ifdef UNITDIR_RTL
 override COMPILER_UNITDIR+=$(UNITDIR_RTL)
 override COMPILER_UNITDIR+=$(UNITDIR_RTL)
 endif
 endif
 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)
-else
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PASZLIB)/$(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))
-else
-UNITDIR_PASZLIB=
-endif
-endif
-ifdef UNITDIR_PASZLIB
-override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
-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_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_WINUNITS
 ifdef REQUIRE_PACKAGES_WINUNITS
 PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_WINUNITS),)
 ifneq ($(PACKAGEDIR_WINUNITS),)

+ 16 - 31
packages/fcl-base/Makefile.fpc

@@ -7,43 +7,28 @@ name=fcl-base
 version=2.0.0
 version=2.0.0
 
 
 [require]
 [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
+packages_win32=winunits
+packages_win64=winunits
 
 
 [target]
 [target]
-units=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
+units=contnrs inifiles ezcgi rtfpars idea base64 gettext \
       iostream cachecls avl_tree \
       iostream cachecls avl_tree \
       eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \
       eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \
       streamex blowfish streamio inicol pooledmm libtar streamcoll
       streamex blowfish 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
+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
 # 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]
 [compiler]
 options=-S2h
 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 - 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.
     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.

+ 116 - 301
packages/fcl-net/Makefile

@@ -1,11 +1,12 @@
 #
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/08/22]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/25]
 #
 #
 default: all
 default: all
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-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-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
 BSDs = freebsd netbsd openbsd darwin
 UNIXs = linux $(BSDs) solaris qnx
 UNIXs = linux $(BSDs) solaris qnx
 LIMIT83fs = go32v2 os2 emx watcom
 LIMIT83fs = go32v2 os2 emx watcom
+OSNeedsComspecToRunBatch = go32v2 watcom
 FORCE:
 FORCE:
 .PHONY: FORCE
 .PHONY: FORCE
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
 override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
@@ -56,6 +57,11 @@ else
 SRCBATCHEXT=.bat
 SRCBATCHEXT=.bat
 endif
 endif
 endif
 endif
+ifdef COMSPEC
+ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
+RUNBATCH=$(COMSPEC) /C
+endif
+endif
 ifdef inUnix
 ifdef inUnix
 PATHSEP=/
 PATHSEP=/
 else
 else
@@ -102,7 +108,7 @@ ifndef FPC
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
 ifneq ($(FPCPROG),)
 ifneq ($(FPCPROG),)
 FPCPROG:=$(firstword $(FPCPROG))
 FPCPROG:=$(firstword $(FPCPROG))
-FPC:=$(shell $(FPCPROG) -PB)
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
 ifneq ($(findstring Error,$(FPC)),)
 ifneq ($(findstring Error,$(FPC)),)
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
 endif
 endif
@@ -296,160 +302,160 @@ ifeq ($(FULL_TARGET),powerpc64-darwin)
 override TARGET_PROGRAMS+=mkxmlrpc
 override TARGET_PROGRAMS+=mkxmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=servlets  fpsock httpbase httpclient httpsvlt xmlrpc
+override TARGET_UNITS+=servlets resolve ssockets  fpsock httpbase httpclient httpsvlt xmlrpc
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=servlets
+override TARGET_UNITS+=servlets resolve ssockets
 endif
 endif
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 override TARGET_RSTS+=fpsock httpsvlt mkxmlrpc
 override TARGET_RSTS+=fpsock httpsvlt mkxmlrpc
@@ -1572,19 +1578,14 @@ override REQUIRE_PACKAGES=rtl netdb fcl-base fcl-xml fcl-passrc
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1592,8 +1593,6 @@ endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
@@ -1602,8 +1601,6 @@ endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1611,21 +1608,14 @@ endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1633,29 +1623,22 @@ endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1663,8 +1646,6 @@ endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1672,18 +1653,14 @@ endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1691,19 +1668,14 @@ endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1711,8 +1683,6 @@ endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1720,8 +1690,6 @@ endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1729,8 +1697,6 @@ endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1738,8 +1704,6 @@ endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1747,8 +1711,6 @@ endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1756,40 +1718,30 @@ endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1797,8 +1749,6 @@ endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1806,18 +1756,14 @@ endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1825,8 +1771,6 @@ endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1834,29 +1778,22 @@ endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1864,8 +1801,6 @@ endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1873,19 +1808,14 @@ endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1893,8 +1823,6 @@ endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1902,40 +1830,30 @@ endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1943,30 +1861,22 @@ endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_WINUNITS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
@@ -1975,8 +1885,6 @@ endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -1984,19 +1892,14 @@ endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2004,8 +1907,6 @@ endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2013,8 +1914,6 @@ endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2022,8 +1921,6 @@ endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2031,8 +1928,6 @@ endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2040,8 +1935,6 @@ endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2049,30 +1942,22 @@ endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
-REQUIRE_PACKAGES_LIBASYNC=1
-REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_LIBASYNC=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_NETDB=1
-REQUIRE_PACKAGES_HASH=1
-REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
@@ -2129,110 +2014,6 @@ ifdef UNITDIR_NETDB
 override COMPILER_UNITDIR+=$(UNITDIR_NETDB)
 override COMPILER_UNITDIR+=$(UNITDIR_NETDB)
 endif
 endif
 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)
-else
-UNITDIR_PASZLIB=$(PACKAGEDIR_PASZLIB)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_PASZLIB)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_PASZLIB) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PASZLIB)/$(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))
-else
-UNITDIR_PASZLIB=
-endif
-endif
-ifdef UNITDIR_PASZLIB
-override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
-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
 ifdef REQUIRE_PACKAGES_FCL-BASE
 PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_FCL-BASE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-base/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL-BASE),)
 ifneq ($(PACKAGEDIR_FCL-BASE),)
@@ -2311,6 +2092,32 @@ ifdef UNITDIR_FCL-PASSRC
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-PASSRC)
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-PASSRC)
 endif
 endif
 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_WINUNITS
 ifdef REQUIRE_PACKAGES_WINUNITS
 PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_WINUNITS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /winunits/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_WINUNITS),)
 ifneq ($(PACKAGEDIR_WINUNITS),)
@@ -2351,7 +2158,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 endif
 ifndef CROSSBOOTSTRAP
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX)
 endif
 endif
 ifneq ($(BINUTILSPREFIX),)
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -2483,9 +2290,13 @@ ifeq (,$(findstring -s ,$(COMPILER)))
 EXECPPAS=
 EXECPPAS=
 else
 else
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
 ifeq ($(FULL_SOURCE),$(FULL_TARGET))
+ifdef RUNBATCH
+EXECPPAS:=@$(RUNBATCH) $(PPAS)
+else
 EXECPPAS:=@$(PPAS)
 EXECPPAS:=@$(PPAS)
 endif
 endif
 endif
 endif
+endif
 .PHONY: fpc_units
 .PHONY: fpc_units
 ifneq ($(TARGET_UNITS),)
 ifneq ($(TARGET_UNITS),)
 override ALLTARGET+=fpc_units
 override ALLTARGET+=fpc_units
@@ -2726,8 +2537,12 @@ else
 endif
 endif
 ifdef inUnix
 ifdef inUnix
 	/bin/sh $(ZIPWRAPPER)
 	/bin/sh $(ZIPWRAPPER)
+else
+ifdef RUNBATCH
+	$(RUNBATCH) (ZIPWRAPPER)
 else
 else
 	$(ZIPWRAPPER)
 	$(ZIPWRAPPER)
+endif
 endif
 endif
 	$(DEL) $(ZIPWRAPPER)
 	$(DEL) $(ZIPWRAPPER)
 else
 else

+ 2 - 14
packages/fcl-net/Makefile.fpc

@@ -7,7 +7,7 @@ name=fcl-net
 version=2.0.0
 version=2.0.0
 
 
 [target]
 [target]
-units=servlets
+units=servlets resolve ssockets
 units_linux=fpsock httpbase httpclient httpsvlt xmlrpc
 units_linux=fpsock httpbase httpclient httpsvlt xmlrpc
 units_freebsd=fpsock httpbase httpclient httpsvlt xmlrpc
 units_freebsd=fpsock httpbase httpclient httpsvlt xmlrpc
 units_netbsd=fpsock httpbase httpclient httpsvlt xmlrpc
 units_netbsd=fpsock httpbase httpclient httpsvlt xmlrpc
@@ -23,21 +23,9 @@ rsts_freebsd=fpsock httpsvlt mkxmlrpc
 rsts_darwin=fpsock httpsvlt mkxmlrpc
 rsts_darwin=fpsock httpsvlt mkxmlrpc
 rsts_netbsd=fpsock httpsvlt mkxmlrpc
 rsts_netbsd=fpsock httpsvlt mkxmlrpc
 rsts_openbsd=fpsock httpsvlt mkxmlrpc
 rsts_openbsd=fpsock httpsvlt mkxmlrpc
-#exampledirs_linux=tests
-#exampledirs_freebsd=tests
-#exampledirs_darwin=tests
-#exampledirs_netbsd=tests
-#exampledirs_openbsd=tests
 
 
 [require]
 [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]
 [compiler]
 options=-S2h
 options=-S2h

+ 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


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


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


+ 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


+ 2545 - 0
packages/fcl-process/Makefile

@@ -0,0 +1,2545 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/10/25]
+#
+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
+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))
+FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
+ifneq ($(findstring Error,$(FPC)),)
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+else
+override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
+endif
+endif
+override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
+override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
+FOUNDFPC:=$(strip $(wildcard $(FPC)))
+ifeq ($(FOUNDFPC),)
+FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
+ifeq ($(FOUNDFPC),)
+$(error Compiler $(FPC) not found)
+endif
+endif
+ifndef FPC_COMPILERINFO
+FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
+endif
+ifndef FPC_VERSION
+FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
+endif
+export FPC FPC_VERSION FPC_COMPILERINFO
+unexport CHECKDEPEND ALLDEPENDENCIES
+ifndef CPU_TARGET
+ifdef CPU_TARGET_DEFAULT
+CPU_TARGET=$(CPU_TARGET_DEFAULT)
+endif
+endif
+ifndef OS_TARGET
+ifdef OS_TARGET_DEFAULT
+OS_TARGET=$(OS_TARGET_DEFAULT)
+endif
+endif
+ifneq ($(words $(FPC_COMPILERINFO)),5)
+FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
+FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
+FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
+FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
+endif
+ifndef CPU_SOURCE
+CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
+endif
+ifndef CPU_TARGET
+CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
+endif
+ifndef OS_SOURCE
+OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
+endif
+ifndef OS_TARGET
+OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
+endif
+FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
+FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
+ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
+TARGETSUFFIX=$(OS_TARGET)
+SOURCESUFFIX=$(OS_SOURCE)
+else
+TARGETSUFFIX=$(FULL_TARGET)
+SOURCESUFFIX=$(FULL_SOURCE)
+endif
+ifneq ($(FULL_TARGET),$(FULL_SOURCE))
+CROSSCOMPILE=1
+endif
+ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
+ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
+$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
+endif
+endif
+ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
+BSDhier=1
+endif
+ifeq ($(OS_TARGET),linux)
+linuxHier=1
+endif
+export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
+ifdef FPCDIR
+override FPCDIR:=$(subst \,/,$(FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR=wrong
+endif
+else
+override FPCDIR=wrong
+endif
+ifdef DEFAULT_FPCDIR
+ifeq ($(FPCDIR),wrong)
+override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR=wrong
+endif
+endif
+endif
+ifeq ($(FPCDIR),wrong)
+ifdef inUnix
+override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
+ifeq ($(wildcard $(FPCDIR)/units),)
+override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+endif
+else
+override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR=c:/pp
+endif
+endif
+endif
+endif
+endif
+ifndef CROSSBINDIR
+CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
+endif
+ifndef BINUTILSPREFIX
+ifndef CROSSBINDIR
+ifdef CROSSCOMPILE
+BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
+endif
+endif
+endif
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
+ifeq ($(UNITSDIR),)
+UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
+endif
+PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+override PACKAGE_NAME=fcl-process
+override PACKAGE_VERSION=2.0.0
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_UNITS+=pipes process simpleipc dbugmsg dbugintf
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_RSTS+=process
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_RSTS+=process
+endif
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/win
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/os2
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/win
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/win
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/win
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src  src/unix
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_INCLUDEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) src
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=src/$(OS_TARGET) 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-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-process/Makefile.fpc

@@ -0,0 +1,37 @@
+#
+#   Makefile.fpc for Free Component Library
+#
+
+[package]
+name=fcl-process
+version=2.0.0
+
+[target]
+units=pipes process simpleipc dbugmsg dbugintf
+rsts=process
+
+[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:

+ 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


+ 42 - 0
packages/fcl-process/src/go32v2/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/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;
+
+

+ 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


+ 79 - 2
packages/fpmkunit/Makefile

@@ -1454,266 +1454,318 @@ else
 TAROPT=vz
 TAROPT=vz
 TAREXT=.tar.gz
 TAREXT=.tar.gz
 endif
 endif
-override REQUIRE_PACKAGES=rtl paszlib
+override REQUIRE_PACKAGES=rtl paszlib fcl-process
 ifeq ($(FULL_TARGET),i386-linux)
 ifeq ($(FULL_TARGET),i386-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 ifeq ($(FULL_TARGET),i386-go32v2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-win32)
 ifeq ($(FULL_TARGET),i386-win32)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 ifeq ($(FULL_TARGET),i386-os2)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
 ifeq ($(FULL_TARGET),i386-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
 ifeq ($(FULL_TARGET),i386-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
 ifeq ($(FULL_TARGET),i386-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 ifeq ($(FULL_TARGET),i386-qnx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
 ifeq ($(FULL_TARGET),i386-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 ifeq ($(FULL_TARGET),i386-wdosx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
 ifeq ($(FULL_TARGET),i386-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 ifeq ($(FULL_TARGET),i386-emx)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
 ifeq ($(FULL_TARGET),i386-watcom)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-wince)
 ifeq ($(FULL_TARGET),i386-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 ifeq ($(FULL_TARGET),i386-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
 ifeq ($(FULL_TARGET),i386-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
 ifeq ($(FULL_TARGET),m68k-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
 ifeq ($(FULL_TARGET),m68k-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 ifeq ($(FULL_TARGET),m68k-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 ifeq ($(FULL_TARGET),m68k-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
 ifeq ($(FULL_TARGET),m68k-atari)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
 ifeq ($(FULL_TARGET),m68k-openbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 ifeq ($(FULL_TARGET),m68k-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
 ifeq ($(FULL_TARGET),m68k-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
 ifeq ($(FULL_TARGET),powerpc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 ifeq ($(FULL_TARGET),powerpc-amiga)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
 ifeq ($(FULL_TARGET),powerpc-macos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
 ifeq ($(FULL_TARGET),powerpc-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 ifeq ($(FULL_TARGET),powerpc-morphos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
 ifeq ($(FULL_TARGET),powerpc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
 ifeq ($(FULL_TARGET),sparc-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 ifeq ($(FULL_TARGET),sparc-netbsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
 ifeq ($(FULL_TARGET),sparc-solaris)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 ifeq ($(FULL_TARGET),sparc-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
 ifeq ($(FULL_TARGET),x86_64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 ifeq ($(FULL_TARGET),x86_64-freebsd)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 ifeq ($(FULL_TARGET),x86_64-win64)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 ifeq ($(FULL_TARGET),x86_64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-linux)
 ifeq ($(FULL_TARGET),arm-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 ifeq ($(FULL_TARGET),arm-palmos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-wince)
 ifeq ($(FULL_TARGET),arm-wince)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 ifeq ($(FULL_TARGET),arm-gba)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-nds)
 ifeq ($(FULL_TARGET),arm-nds)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
 ifeq ($(FULL_TARGET),arm-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
 ifeq ($(FULL_TARGET),arm-symbian)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
 ifeq ($(FULL_TARGET),powerpc64-linux)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 ifeq ($(FULL_TARGET),powerpc64-darwin)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_FCL-PROCESS=1
 endif
 endif
 ifdef REQUIRE_PACKAGES_RTL
 ifdef REQUIRE_PACKAGES_RTL
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
 PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -1793,6 +1845,32 @@ ifdef UNITDIR_PASZLIB
 override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
 override COMPILER_UNITDIR+=$(UNITDIR_PASZLIB)
 endif
 endif
 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
 ifndef NOCPUDEF
 ifndef NOCPUDEF
 override FPCOPTDEF=$(CPU_TARGET)
 override FPCOPTDEF=$(CPU_TARGET)
 endif
 endif
@@ -2387,4 +2465,3 @@ ifneq ($(wildcard fpcmake.loc),)
 include fpcmake.loc
 include fpcmake.loc
 endif
 endif
 .NOTPARALLEL:
 .NOTPARALLEL:
-fpmkunit$(PPUEXT) : fpmkunit.pp

+ 1 - 2
packages/fpmkunit/Makefile.fpc

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

+ 1 - 4
packages/fpmkunit/fpmake.inc

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

+ 0 - 1
packages/fpmkunit/fpmake.pp

@@ -5,7 +5,6 @@ uses fpmkunit;
 
 
 var
 var
   T : TTarget;
   T : TTarget;
-  S : TSource;
 begin
 begin
   with Installer do
   with Installer do
     begin
     begin

+ 75 - 21
packages/fpmkunit/src/fpmkunit.pp

@@ -21,9 +21,23 @@ unit fpmkunit;
 
 
 Interface
 Interface
 
 
+{$ifndef NO_UNIT_PROCESS}
+  {$define HAS_UNIT_PROCESS}
+{$endif NO_UNIT_PROCESS}
+
+{$ifndef NO_UNIT_ZIPPER}
+  {$define HAS_UNIT_ZIPPER}
+{$endif NO_UNIT_ZIPPER}
+
 uses
 uses
-  {$IFNDEF EXTERNALZIP} zipper, {$ENDIF}
-  SysUtils, Classes, StrUtils;
+  SysUtils, Classes, StrUtils
+{$ifdef HAS_UNIT_PROCESS}
+  ,process
+{$endif HAS_UNIT_PROCESS}
+{$ifdef HAS_UNIT_ZIPPER}
+  ,zipper
+{$endif HAS_UNIT_ZIPPER}
+  ;
 
 
 Type
 Type
   TFileType = (ftSource,ftUnit,ftObject,ftResource,ftExecutable,ftStaticLibrary,
   TFileType = (ftSource,ftUnit,ftObject,ftResource,ftExecutable,ftStaticLibrary,
@@ -475,7 +489,7 @@ Type
     Property DocInstallDir : String Read GetDocInstallDir Write FDocInstallDir;
     Property DocInstallDir : String Read GetDocInstallDir Write FDocInstallDir;
     Property ExamplesInstallDir : String Read GetExamplesInstallDir Write FExamplesInstallDir;
     Property ExamplesInstallDir : String Read GetExamplesInstallDir Write FExamplesInstallDir;
     // Command tools. If not set, internal commands  will be used.
     // Command tools. If not set, internal commands  will be used.
-    Property Compiler : String Read GetCompiler Write FCompiler; // Compiler. Defaults to fpc/ppc386
+    Property Compiler : String Read GetCompiler Write FCompiler; // Compiler. Defaults to fpc
     Property Copy : String Read FCopy Write FCopy;             // copy $(FILES) to $(DEST)
     Property Copy : String Read FCopy Write FCopy;             // copy $(FILES) to $(DEST)
     Property Move : String Read FMove Write FMove;             // Move $(FILES) to $(DEST)
     Property Move : String Read FMove Write FMove;             // Move $(FILES) to $(DEST)
     Property Remove : String Read FRemove Write FRemove;       // Delete $(FILES)
     Property Remove : String Read FRemove Write FRemove;       // Delete $(FILES)
@@ -506,9 +520,9 @@ Type
     FDefaults : TCustomDefaults;
     FDefaults : TCustomDefaults;
     FForceCompile : Boolean;
     FForceCompile : Boolean;
     FListMode : Boolean;
     FListMode : Boolean;
-    {$IFNDEF EXTERNALZIP}
+{$ifdef HAS_UNIT_ZIPPER}
     FZipFile: TZipper;
     FZipFile: TZipper;
-    {$ENDIF}
+{$endif HAS_UNIT_ZIPPER}
     // Variables used when compiling a package.
     // Variables used when compiling a package.
     // Only valid during compilation of the package.
     // Only valid during compilation of the package.
     FCurrentOutputDir : String;
     FCurrentOutputDir : String;
@@ -807,6 +821,7 @@ ResourceString
   SErrNoDictionaryItem  = 'No item called "%s" in the dictionary';
   SErrNoDictionaryItem  = 'No item called "%s" in the dictionary';
   SErrNoDictionaryValue = 'The item "%s" in the dictionary is not a value.';
   SErrNoDictionaryValue = 'The item "%s" in the dictionary is not a value.';
   SErrNoDictionaryFunc  = 'The item "%s" in the dictionary is not a function.';
   SErrNoDictionaryFunc  = 'The item "%s" in the dictionary is not a function.';
+  SErrInvalidFPCInfo    = 'Compiler returns invalid information, check if fpc -iV works';
   SWarnCircularDependency = 'Warning: Circular dependency detected when compiling target %s: %s';
   SWarnCircularDependency = 'Warning: Circular dependency detected when compiling target %s: %s';
   SWarnFailedToSetTime  = 'Warning: Failed to set timestamp on file : %s';
   SWarnFailedToSetTime  = 'Warning: Failed to set timestamp on file : %s';
   SWarnFailedToGetTime  = 'Warning: Failed to get timestamp from file : %s';
   SWarnFailedToGetTime  = 'Warning: Failed to get timestamp from file : %s';
@@ -1129,6 +1144,28 @@ begin
   Options:=Trim(S);
   Options:=Trim(S);
 end;
 end;
 
 
+
+{$ifdef HAS_UNIT_PROCESS}
+function GetCompilerInfo(const ACompiler,AOptions:string):string;
+const
+  BufSize = 1024;
+var
+  S: TProcess;
+  Buf: array [0..BufSize - 1] of char;
+  Count: longint;
+begin
+  S:=TProcess.Create(Nil);
+  S.Commandline:=ACompiler+' '+AOptions;
+  S.Options:=[poUsePipes];
+  S.execute;
+  Count:=s.output.read(buf,BufSize);
+  S.Free;
+  SetLength(Result,Count);
+  Move(Buf,Result[1],Count);
+end;
+{$endif HAS_UNIT_PROCESS}
+
+
 { TNamedItem }
 { TNamedItem }
 
 
 procedure TNamedItem.SetName(const AValue: String);
 procedure TNamedItem.SetName(const AValue: String);
@@ -1513,15 +1550,29 @@ end;
 
 
 
 
 procedure TCustomDefaults.CompilerDefaults;
 procedure TCustomDefaults.CompilerDefaults;
-begin
-  if Compiler<>'' then
-    Compiler:='fpc';
+{$ifdef HAS_UNIT_PROCESS}
+var
+  infoSL : TStringList;
+{$endif HAS_UNIT_PROCESS}
+begin
+{$ifdef HAS_UNIT_PROCESS}
+  // Detect compiler version/target from -i option
+  infosl:=TStringList.Create;
+  infosl.Delimiter:=' ';
+  infosl.DelimitedText:=GetCompilerInfo(FCompiler,'-iVTPTO');
+  if infosl.Count<>3 then
+    Raise EInstallerError.Create(SErrInvalidFPCInfo);
+  FCompilerVersion:=infosl[0];
+  CPU:=StringToCPU(infosl[1]);
+  OS:=StringToOS(infosl[2]);
+{$else HAS_UNIT_PROCESS}}
   if CPU=cpuNone then
   if CPU=cpuNone then
     CPU:=StringToCPU({$I %FPCTARGETCPU%});
     CPU:=StringToCPU({$I %FPCTARGETCPU%});
   if OS=osNone then
   if OS=osNone then
     OS:=StringToOS({$I %FPCTARGETOS%});
     OS:=StringToOS({$I %FPCTARGETOS%});
   if FCompilerVersion='' then
   if FCompilerVersion='' then
     FCompilerVersion:={$I %FPCVERSION%};
     FCompilerVersion:={$I %FPCVERSION%};
+{$endif HAS_UNIT_PROCESS}
 end;
 end;
 
 
 procedure TCustomDefaults.LoadFromFile(Const AFileName: String);
 procedure TCustomDefaults.LoadFromFile(Const AFileName: String);
@@ -2165,10 +2216,10 @@ var
 begin
 begin
   BasePath := ExtractFilePath(ExpandFileName(FileName));
   BasePath := ExtractFilePath(ExpandFileName(FileName));
   AddRecursiveFiles(BasePath, ExtractFileName(FileName), Recursive);
   AddRecursiveFiles(BasePath, ExtractFileName(FileName), Recursive);
-  
+
   for i := 0 to Pred(List.Count) do
   for i := 0 to Pred(List.Count) do
     List[i] := ExtractRelativepath(ExtractFilePath(ParamStr(0)), List[i]);
     List[i] := ExtractRelativepath(ExtractFilePath(ParamStr(0)), List[i]);
-  
+
 end;
 end;
 
 
 procedure TCustomInstaller.Log(Level: TVerboseLevel; const Msg: String);
 procedure TCustomInstaller.Log(Level: TVerboseLevel; const Msg: String);
@@ -3328,27 +3379,30 @@ begin
     for i := 0 to Pred(L.Count) do
     for i := 0 to Pred(L.Count) do
       L2.Add(L[i]);
       L2.Add(L[i]);
 
 
+    //show all files
+    for i := 0 to Pred(L2.Count) do
+      Log(vlInfo, Format(SInfoArchiving, [L2[i]]));
+
     A:=APackage.FileName + ZipExt;
     A:=APackage.FileName + ZipExt;
 
 
-    {$IFNDEF EXTERNALZIP}
+{$ifdef HAS_UNIT_ZIPPER}
     if not Assigned(ArchiveFilesProc) then
     if not Assigned(ArchiveFilesProc) then
-    begin
-      FZipFile := TZipper.Create;
-      FZipFile.ZipFiles(A, L2);
-    end
+      begin
+        FZipFile := TZipper.Create;
+        FZipFile.ZipFiles(A, L2);
+      end
     else
     else
-    {$ENDIF}
+{$endif HAS_UNIT_ZIPPER}
       CmdArchiveFiles(L2,A);
       CmdArchiveFiles(L2,A);
   Finally
   Finally
     L.Free;
     L.Free;
     L2.Free;
     L2.Free;
 
 
-    {$IFNDEF EXTERNALZIP}
+{$ifdef HAS_UNIT_ZIPPER}
     if not Assigned(ArchiveFilesProc) then
     if not Assigned(ArchiveFilesProc) then
       FZipFile.Free;
       FZipFile.Free;
-    {$ENDIF}
+{$endif HAS_UNIT_ZIPPER}
   end;
   end;
-  Log(vlInfo, Format(SInfoArchiving, [APackage.Name]));
   DoAfterArchive(Apackage);
   DoAfterArchive(Apackage);
 end;
 end;
 
 
@@ -3441,10 +3495,10 @@ begin
       else
       else
         sXMLNode := '<source type="unknown">"%s"</source>';
         sXMLNode := '<source type="unknown">"%s"</source>';
       end;
       end;
-      
+
       List.Add(Format(sXMLNode,[QuoteXml(APackage.Sources[i].Name)]));
       List.Add(Format(sXMLNode,[QuoteXml(APackage.Sources[i].Name)]));
     end;
     end;
-    
+
     List.Add('</sources>');
     List.Add('</sources>');
   finally
   finally
     L.Free;
     L.Free;