Browse Source

* Implemented TFPTimer

git-svn-id: trunk@7765 -
michael 18 years ago
parent
commit
4fde74cb40

+ 2 - 0
.gitattributes

@@ -3850,6 +3850,7 @@ packages/fcl-base/src/inc/eventlog.pp svneol=native#text/plain
 packages/fcl-base/src/inc/ezcgi.pp svneol=native#text/plain
 packages/fcl-base/src/inc/felog.inc svneol=native#text/plain
 packages/fcl-base/src/inc/fpasync.pp svneol=native#text/plain
+packages/fcl-base/src/inc/fptimer.pp svneol=native#text/plain
 packages/fcl-base/src/inc/gettext.pp svneol=native#text/plain
 packages/fcl-base/src/inc/idea.pp svneol=native#text/plain
 packages/fcl-base/src/inc/inicol.pp svneol=native#text/plain
@@ -3993,6 +3994,7 @@ packages/fcl-base/tests/testrsre.pp svneol=native#text/plain
 packages/fcl-base/tests/testrtf.pp svneol=native#text/plain
 packages/fcl-base/tests/testser.pp svneol=native#text/plain
 packages/fcl-base/tests/testsres.pp svneol=native#text/plain
+packages/fcl-base/tests/testtimer.pp svneol=native#text/plain
 packages/fcl-base/tests/testunzip.pp svneol=native#text/plain
 packages/fcl-base/tests/testur.pp svneol=native#text/plain
 packages/fcl-base/tests/testweb.pp svneol=native#text/plain

+ 27 - 28
packages/fcl-base/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/06/04]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/04/28]
 #
 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
@@ -233,28 +233,28 @@ PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(F
 override PACKAGE_NAME=fcl-base
 override PACKAGE_VERSION=2.0.0
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager fptimer
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -263,13 +263,13 @@ ifeq ($(FULL_TARGET),i386-netware)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets syncobjs
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),i386-wdosx)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets
@@ -281,7 +281,7 @@ ifeq ($(FULL_TARGET),i386-netwlibc)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  resolve ssockets syncobjs
 endif
 ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf fptimer
 endif
 ifeq ($(FULL_TARGET),i386-embedded)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -290,13 +290,13 @@ ifeq ($(FULL_TARGET),i386-symbian)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),m68k-amiga)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -305,7 +305,7 @@ ifeq ($(FULL_TARGET),m68k-atari)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),m68k-palmos)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -314,10 +314,10 @@ ifeq ($(FULL_TARGET),m68k-embedded)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),powerpc-amiga)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -326,7 +326,7 @@ ifeq ($(FULL_TARGET),powerpc-macos)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -335,37 +335,37 @@ ifeq ($(FULL_TARGET),powerpc-embedded)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager fptimer
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf fptimer
 endif
 ifeq ($(FULL_TARGET),arm-gba)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -380,10 +380,10 @@ ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
+override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll  process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp fptimer
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_UNITS+=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext iostream zstream cachecls avl_tree eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
@@ -2443,7 +2443,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
 endif
 ifndef CROSSBOOTSTRAP
 ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX) 
+override FPCOPT+=-XP$(BINUTILSPREFIX) -Xc
 endif
 ifneq ($(BINUTILSPREFIX),)
 override FPCOPT+=-Xr$(RLINKPATH)
@@ -2630,7 +2630,6 @@ 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

+ 10 - 10
packages/fcl-base/Makefile.fpc

@@ -35,16 +35,16 @@ units=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \
       iostream zstream cachecls avl_tree \
       eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \
       streamex blowfish zipper streamio inicol pooledmm libtar streamcoll
-units_beos=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf
-units_freebsd=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
-units_darwin=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
-units_solaris=process ssockets resolve fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
-units_netbsd=process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
-units_openbsd=process ssockets resolve fpasync simpleipc dbugmsg dbugintf daemonapp
-units_linux=process resolve ssockets fpasync syncobjs simpleipc dbugmsg dbugintf daemonapp
-units_win32=process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager
-units_win64=process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf daemonapp ServiceManager
-units_wince=process fileinfo resolve ssockets syncobjs simpleipc dbugmsg dbugintf
+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
 # syncobjs requires GetLastOSError function

+ 261 - 0
packages/fcl-base/src/inc/fptimer.pp

@@ -0,0 +1,261 @@
+{
+    This file is part of the Free Component Library (FCL)
+    Copyright (c) 1999-2000 by Michael Van Canneyt.
+
+    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.
+
+ **********************************************************************}
+
+{
+  A generic timer component. Can be used in GUI and non-GUI apps.
+  Based heavily on an idea by Graeme Geldenhuys, extended so
+  the tick mechanism is pluggable.
+  
+  Note that the system implementation will only work for timers
+  in the main thread, as it uses synchronize to do the job.
+  You need to enable threads in your application for the system
+  implementation to work.
+  
+  A nice improvement would be an implementation that works
+  in all threads, such as the threadedtimer of IBX for linux.
+}
+
+unit fpTimer;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+  Classes;
+
+type
+  TFPTimerDriver = Class;
+  
+  TFPCustomTimer = class(TComponent)
+  private
+    FInterval: Integer;
+    FDriver : TFPTimerDriver;
+    FOnTimer: TNotifyEvent;
+    FContinue: Boolean;
+    FRunning: Boolean;
+    FEnabled: Boolean;
+    procedure   SetEnabled(Value: Boolean );
+  protected
+    property  Continue: Boolean read FContinue write FContinue;
+    procedure Timer; virtual;
+    Function CreateTimerDriver : TFPTimerDriver;
+  public
+    Constructor Create(AOwner: TComponent); override;
+    Destructor Destroy; override;
+    procedure StartTimer; virtual;
+    procedure StopTimer; virtual;
+  protected
+    property Enabled: Boolean read FEnabled write SetEnabled;
+    property Interval: Integer read FInterval write FInterval;
+    property OnTimer: TNotifyEvent read FOnTimer write FOnTimer;
+  end;
+
+  TFPTimer = Class(TFPCustomTimer)
+  Published
+    Property Enabled;
+    Property Interval;
+    Property OnTimer;
+  end;  
+
+  TFPTimerDriver = Class(TObject)
+    FTimer : TFPCustomTimer;
+  Public
+    Constructor Create(ATimer : TFPCustomTimer); virtual;
+    Procedure StartTimer; virtual; abstract;
+    Procedure StopTimer; virtual; abstract;
+    Property Timer : TFPCustomTimer Read FTimer;
+  end;
+  TFPTimerDriverClass = Class of TFPTimerDriver;
+
+Var
+  DefaultTimerDriverClass : TFPTimerDriverClass = Nil;
+
+implementation
+
+uses
+  SysUtils;
+
+{ ---------------------------------------------------------------------
+    TFPTimer
+  ---------------------------------------------------------------------}
+
+constructor TFPCustomTimer.Create(AOwner: TComponent);
+begin
+  inherited;
+  FDriver:=CreateTimerDriver;
+end;
+
+destructor TFPCustomTimer.Destroy;
+
+begin
+  If FEnabled then
+    StopTimer;
+  FDriver.FTimer:=Nil;  
+  FreeAndNil(FDriver);
+  Inherited;
+end;
+
+
+Function TFPCustomTimer.CreateTimerDriver : TFPTimerDriver;
+
+begin
+  Result:=DefaultTimerDriverClass.Create(Self);
+end;
+
+procedure TFPCustomTimer.SetEnabled(Value: Boolean);
+begin
+  if Value <> FEnabled then
+    begin
+    if Value then
+      StartTimer
+    else
+      StopTimer;
+    end;
+end;
+
+procedure TFPCustomTimer.StartTimer;
+begin
+  If FEnabled then
+    Exit;
+  FEnabled:=True;
+  FContinue:=True;  
+  If Not (csDesigning in ComponentState) then  
+    FDriver.StartTimer;
+end;
+
+procedure TFPCustomTimer.StopTimer;
+begin
+  If Not FEnabled then 
+    Exit;
+  FEnabled:=False;
+  FContinue:=False;  
+  FDriver.StopTimer;
+end;
+
+procedure TFPCustomTimer.Timer;
+
+begin
+  { We check on FEnabled: If by any chance a tick comes in after it was
+    set to false, the user won't notice, since no event is triggered.}
+  If FEnabled and Assigned(FOnTimer) then
+    FOnTimer(Self);
+end;
+
+{ ---------------------------------------------------------------------
+  TFPTimerDriver
+  ---------------------------------------------------------------------}
+  
+
+Constructor TFPTimerDriver.Create(ATimer : TFPCustomTimer);
+
+begin
+  FTimer:=ATimer;
+end;
+
+
+{ ---------------------------------------------------------------------
+    Default implementation. Threaded timer, one thread per timer.
+  ---------------------------------------------------------------------}
+  
+Type
+  TFPTimerThread = class(TThread)
+  private
+    FTimerDriver: TFPTimerDriver;
+    Function Timer : TFPCustomTimer;
+  public
+    procedure Execute; override;
+    constructor CreateTimerThread(ATimerDriver: TFPTimerDriver);
+  end;
+
+  TFPThreadedTimerDriver = Class(TFPTimerDriver)
+  Private
+    FThread : TFPTimerThread;
+  Public
+    Procedure StartTimer; override;
+    Procedure StopTimer; override;
+  end;
+
+function _GetTickCount: Cardinal;
+begin
+  Result := Cardinal(Trunc(Now * 24 * 60 * 60 * 1000));
+end;
+
+{ ---------------------------------------------------------------------
+    TFPTimerThread
+  ---------------------------------------------------------------------}
+  
+constructor TFPTimerThread.CreateTimerThread(ATimerDriver: TFPTimerDriver);
+begin
+  inherited Create(True);
+  FTimerDriver:=ATimerDriver;
+  FreeOnTerminate := True;
+end;
+
+Function TFPTimerThread.Timer : TFPCustomTimer;
+
+begin
+  If Assigned(FTimerDriver) Then
+    Result:=FTimerDriver.FTimer
+  else
+    Result:=Nil;  
+end;
+
+procedure TFPTimerThread.Execute;
+var
+  SleepTime: Integer;
+  Last: Cardinal;
+  T : TFPCustomTimer;
+  
+begin
+  while Not Terminated do
+    begin
+    Last := _GetTickCount;
+    T:=Timer;
+    If Assigned(T) then
+      begin
+      SleepTime := T.FInterval - (_GetTickCount - Last);
+      if SleepTime < 10 then
+        SleepTime := 10;
+      Sleep(SleepTime);
+      T:=Timer;
+      If Assigned(T) then
+        Synchronize(@T.Timer);
+      end
+    else
+      Terminate;  
+    end;
+end;
+
+{ ---------------------------------------------------------------------
+    TFPThreadedTimerDriver
+  ---------------------------------------------------------------------}
+
+Procedure TFPThreadedTimerDriver.StartTimer; 
+
+begin
+  FThread:=TFPTimerThread.CreateTimerThread(Self);
+  FThread.Resume;
+end;
+
+Procedure TFPThreadedTimerDriver.StopTimer;
+begin
+  FThread.FTimerDriver:=Nil;
+  FThread.Terminate; // Will free itself.
+end;
+
+
+Initialization
+  DefaultTimerDriverClass:=TFPThreadedTimerDriver;
+end.
+

+ 100 - 20
packages/fcl-base/tests/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/03/04]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/04/28]
 #
 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
@@ -231,19 +231,19 @@ UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),i386-go32v2)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  showver testproc testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  showver testproc testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv testtimer
 endif
 ifeq ($(FULL_TARGET),i386-os2)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  isockcli isocksvr testhres testnres testsres testrhre testrnre testrsre testur
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),i386-beos)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -252,7 +252,7 @@ ifeq ($(FULL_TARGET),i386-netbsd)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),i386-qnx)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -267,7 +267,7 @@ ifeq ($(FULL_TARGET),i386-wdosx)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),i386-emx)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  isockcli isocksvr testhres testnres testsres testrhre testrnre testrsre testur
@@ -288,10 +288,10 @@ ifeq ($(FULL_TARGET),i386-symbian)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),m68k-netbsd)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -312,7 +312,7 @@ ifeq ($(FULL_TARGET),m68k-embedded)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),powerpc-netbsd)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -324,7 +324,7 @@ ifeq ($(FULL_TARGET),powerpc-macos)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),powerpc-morphos)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -333,22 +333,22 @@ ifeq ($(FULL_TARGET),powerpc-embedded)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),sparc-netbsd)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),sparc-embedded)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),x86_64-win64)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -357,7 +357,7 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),arm-palmos)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -378,10 +378,10 @@ ifeq ($(FULL_TARGET),arm-symbian)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip  sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 endif
 ifeq ($(FULL_TARGET),powerpc64-embedded)
 override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons tarmakerconsgzip
@@ -1182,6 +1182,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1204,6 +1205,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-win32)
@@ -1221,6 +1223,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1243,6 +1246,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-freebsd)
@@ -1261,6 +1265,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1273,9 +1278,11 @@ ifeq ($(FULL_TARGET),i386-beos)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
+REQUIRE_PACKAGES_LIBASYNC=1
+REQUIRE_PACKAGES_PTHREADS=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-DB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-FPCUNIT=1
 REQUIRE_PACKAGES_PASJPEG=1
@@ -1283,6 +1290,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-netbsd)
@@ -1300,6 +1308,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1324,6 +1333,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
@@ -1341,15 +1351,16 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-netware)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-DB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-FPCUNIT=1
 REQUIRE_PACKAGES_PASJPEG=1
@@ -1357,6 +1368,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-openbsd)
@@ -1374,6 +1386,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1396,6 +1409,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-darwin)
@@ -1414,6 +1428,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1436,6 +1451,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-watcom)
@@ -1452,15 +1468,16 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-netwlibc)
 REQUIRE_PACKAGES_RTL=1
 REQUIRE_PACKAGES_HASH=1
 REQUIRE_PACKAGES_PASZLIB=1
+REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-BASE=1
 REQUIRE_PACKAGES_FCL-DB=1
-REQUIRE_PACKAGES_NETDB=1
 REQUIRE_PACKAGES_FCL-XML=1
 REQUIRE_PACKAGES_FCL-FPCUNIT=1
 REQUIRE_PACKAGES_PASJPEG=1
@@ -1468,6 +1485,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-wince)
@@ -1484,6 +1502,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1503,6 +1522,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),i386-symbian)
@@ -1519,6 +1539,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),m68k-linux)
@@ -1537,6 +1558,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1561,6 +1583,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1584,6 +1607,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1606,6 +1630,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),m68k-atari)
@@ -1622,6 +1647,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),m68k-openbsd)
@@ -1639,6 +1665,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1661,6 +1688,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),m68k-embedded)
@@ -1677,6 +1705,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-linux)
@@ -1695,6 +1724,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1718,6 +1748,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1740,6 +1771,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-macos)
@@ -1756,6 +1788,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-darwin)
@@ -1774,6 +1807,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1796,6 +1830,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),powerpc-embedded)
@@ -1812,6 +1847,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),sparc-linux)
@@ -1830,6 +1866,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1853,6 +1890,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1877,6 +1915,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_SQLITE=1
 endif
@@ -1894,6 +1933,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-linux)
@@ -1912,6 +1952,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1936,6 +1977,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -1959,6 +2001,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),x86_64-embedded)
@@ -1975,6 +2018,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),arm-linux)
@@ -1993,6 +2037,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -2015,6 +2060,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),arm-wince)
@@ -2031,6 +2077,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -2050,6 +2097,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),arm-nds)
@@ -2066,6 +2114,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),arm-embedded)
@@ -2082,6 +2131,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),arm-symbian)
@@ -2098,6 +2148,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifeq ($(FULL_TARGET),powerpc64-linux)
@@ -2116,6 +2167,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -2140,6 +2192,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 REQUIRE_PACKAGES_IBASE=1
 REQUIRE_PACKAGES_POSTGRES=1
@@ -2162,6 +2215,7 @@ REQUIRE_PACKAGES_FCL-IMAGE=1
 REQUIRE_PACKAGES_FCL-PASSRC=1
 REQUIRE_PACKAGES_FCL-NET=1
 REQUIRE_PACKAGES_FCL-REGISTRY=1
+REQUIRE_PACKAGES_HTTPD/HTTPD-2.2=1
 REQUIRE_PACKAGES_FCL-WEB=1
 endif
 ifdef REQUIRE_PACKAGES_RTL
@@ -2554,6 +2608,32 @@ ifdef UNITDIR_FCL-REGISTRY
 override COMPILER_UNITDIR+=$(UNITDIR_FCL-REGISTRY)
 endif
 endif
+ifdef REQUIRE_PACKAGES_HTTPD/HTTPD-2.2
+PACKAGEDIR_HTTPD/HTTPD-2.2:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /httpd/httpd-2.2/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_HTTPD/HTTPD-2.2),)
+ifneq ($(wildcard $(PACKAGEDIR_HTTPD/HTTPD-2.2)/units/$(TARGETSUFFIX)),)
+UNITDIR_HTTPD/HTTPD-2.2=$(PACKAGEDIR_HTTPD/HTTPD-2.2)/units/$(TARGETSUFFIX)
+else
+UNITDIR_HTTPD/HTTPD-2.2=$(PACKAGEDIR_HTTPD/HTTPD-2.2)
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_HTTPD/HTTPD-2.2)/$(FPCMADE):
+	$(MAKE) -C $(PACKAGEDIR_HTTPD/HTTPD-2.2) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_HTTPD/HTTPD-2.2)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_HTTPD/HTTPD-2.2=
+UNITDIR_HTTPD/HTTPD-2.2:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /httpd/httpd-2.2/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_HTTPD/HTTPD-2.2),)
+UNITDIR_HTTPD/HTTPD-2.2:=$(firstword $(UNITDIR_HTTPD/HTTPD-2.2))
+else
+UNITDIR_HTTPD/HTTPD-2.2=
+endif
+endif
+ifdef UNITDIR_HTTPD/HTTPD-2.2
+override COMPILER_UNITDIR+=$(UNITDIR_HTTPD/HTTPD-2.2)
+endif
+endif
 ifdef REQUIRE_PACKAGES_FCL-WEB
 PACKAGEDIR_FCL-WEB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-web/Makefile.fpc,$(PACKAGESDIR))))))
 ifneq ($(PACKAGEDIR_FCL-WEB),)

+ 6 - 6
packages/fcl-base/tests/Makefile.fpc

@@ -8,22 +8,22 @@ programs=stringl dparser fstream mstream list threads testrtf \
          b64test b64test2 b64enc b64dec restest testz testz2 \
          istream doecho testol testcont txmlreg testreg tstelcmd \
          testapp testcgi testbs testbf cachetest poolmm1 poolmm2 tarmakercons \
-         tarmakerconsgzip
+         tarmakerconsgzip 
 programs_win32=showver testproc testhres testnres testsres testrhre \
                testrnre testrsre testur ipcserver ipcclient debugtest \
-               dbugsrv
+               dbugsrv testtimer
 programs_linux=sockcli isockcli dsockcli socksvr isocksvr dsocksvr \
                testhres testnres testsres testrhre testrnre testrsre testur \
-               ipcserver ipcclient debugtest dbugsrv asiotest
+               ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 programs_darwin=sockcli isockcli dsockcli socksvr isocksvr dsocksvr \
                testhres testnres testsres testrhre testrnre testrsre testur \
-               ipcserver ipcclient debugtest dbugsrv asiotest
+               ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 programs_freebsd=sockcli isockcli dsockcli socksvr isocksvr dsocksvr \
                testhres testnres testsres testrhre testrnre testrsre testur \
-               ipcserver ipcclient debugtest dbugsrv asiotest
+               ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 programs_solaris=sockcli isockcli dsockcli socksvr isocksvr dsocksvr \
                testhres testnres testsres testrhre testrnre testrsre testur \
-               ipcserver ipcclient debugtest dbugsrv asiotest
+               ipcserver ipcclient debugtest dbugsrv asiotest testtimer
 programs_os2=isockcli isocksvr testhres testnres testsres testrhre \
              testrnre testrsre testur
 programs_emx=isockcli isocksvr testhres testnres testsres testrhre \

+ 2 - 1
packages/fcl-base/tests/README

@@ -71,4 +71,5 @@ testzip.pp   Test for TZipper class (MVC)
 poolmm1.pp   Test for pooledmm (free) (MG)
 poolmm2.pp   Test for pooledmm (nonfree) (VS)
 testweb.pp   Test for fpcgi (MVC)
-daemon.pp    Test for daemonapp (MVC)
+daemon.pp    Test for daemonapp (MVC)
+testtimer.pp Test for TFPTimer (MVC)

+ 61 - 0
packages/fcl-base/tests/testtimer.pp

@@ -0,0 +1,61 @@
+{$mode objfpc}
+{$H+}
+program testtimer;
+
+uses 
+{$ifdef unix}
+  cthreads,
+{$endif}
+  sysutils,classes,custapp,fptimer;
+
+Type
+  TTestTimerApp = Class(TCustomApplication)
+  Private
+    FTimer : TFPTimer;
+    FCount : Integer;
+    FTick : Integer;
+  Public  
+    Procedure DoRun; override;
+    Procedure DoTick(Sender : TObject);
+  end;
+
+Procedure TTestTimerApp.DoRun; 
+
+begin
+  FTimer:=TFPTimer.Create(Self);
+  FTimer.Interval:=100;
+  FTimer.OnTimer:=@DoTick;
+  FTimer.Enabled:=True;
+  Try
+    FTick:=0;
+    FCount:=0;
+    While (FCount<10) do
+      begin
+      Inc(FTick);
+      CheckSynchronize; // Needed, because we are not running in a GUI loop.
+      Sleep(1);
+      end;
+  Finally
+    FTimer.Enabled:=False;
+    FreeAndNil(FTimer);
+  end;
+  Terminate;
+end;
+
+Procedure TTestTimerApp.DoTick(Sender : TObject);
+
+begin
+  Inc(FCount);
+  Writeln('Received timer event ',FCount,' after ',FTick,' ticks.');
+  FTick:=0;
+end;
+        
+
+begin
+  With TTestTimerApp.Create(Nil) do
+    Try
+      Run
+    finally
+      Free;
+    end;  
+end.