From 00a16a9f58ad0bd01514753abe7df6fe629b66ad Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 25 Oct 2007 20:12:36 +0000 Subject: [PATCH] * zipper,zstream moved to paszlib git-svn-id: trunk@8935 - --- .gitattributes | 2 - packages/fcl-base/Makefile | 436 +++----- packages/fcl-base/Makefile.fpc | 11 +- packages/fcl-base/src/inc/zipper.pp | 1470 -------------------------- packages/fcl-base/src/inc/zstream.pp | 440 -------- 5 files changed, 149 insertions(+), 2210 deletions(-) delete mode 100644 packages/fcl-base/src/inc/zipper.pp delete mode 100644 packages/fcl-base/src/inc/zstream.pp diff --git a/.gitattributes b/.gitattributes index cdababd24b..c8d2db0597 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3873,8 +3873,6 @@ packages/fcl-base/src/inc/syncobjs.pp svneol=native#text/plain packages/fcl-base/src/inc/wformat.pp svneol=native#text/plain packages/fcl-base/src/inc/whtml.pp svneol=native#text/plain packages/fcl-base/src/inc/wtex.pp svneol=native#text/plain -packages/fcl-base/src/inc/zipper.pp svneol=native#text/plain -packages/fcl-base/src/inc/zstream.pp svneol=native#text/plain packages/fcl-base/src/morphos/eventlog.inc svneol=native#text/plain packages/fcl-base/src/morphos/pipes.inc svneol=native#text/plain packages/fcl-base/src/netware/custapp.inc svneol=native#text/plain diff --git a/packages/fcl-base/Makefile b/packages/fcl-base/Makefile index 0362c28b4b..5c753f8c37 100644 --- a/packages/fcl-base/Makefile +++ b/packages/fcl-base/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 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))) @@ -56,6 +57,11 @@ else SRCBATCHEXT=.bat endif endif +ifdef COMSPEC +ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),) +RUNBATCH=$(COMSPEC) /C +endif +endif ifdef inUnix PATHSEP=/ else @@ -102,7 +108,7 @@ ifndef FPC FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)))) ifneq ($(FPCPROG),) FPCPROG:=$(firstword $(FPCPROG)) -FPC:=$(shell $(FPCPROG) -PB) +FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB) ifneq ($(findstring Error,$(FPC)),) override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH))))) endif @@ -233,160 +239,160 @@ 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 fptimer +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 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 +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 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 fptimer +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 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 +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 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 fptimer +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 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 +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 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 fptimer +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 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 fptimer +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 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 +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 endif 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 +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 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 fptimer +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 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 +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 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 fptimer +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 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 +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 endif ifeq ($(FULL_TARGET),i386-watcom) -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 +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 endif 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 +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 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 fptimer +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 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 +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 endif 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 +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 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 fptimer +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 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 fptimer +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 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 fptimer +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 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 +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 endif 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 +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 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 fptimer +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 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 +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 endif 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 +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 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 fptimer +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 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 fptimer +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 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 +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 endif 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 +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 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 fptimer +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 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 +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 endif 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 +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 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 fptimer +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 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 fptimer +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 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 fptimer +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 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 +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 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 fptimer +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 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 fptimer +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 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 fptimer +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 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 +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 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 fptimer +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 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 +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 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 fptimer +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 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 +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 endif ifeq ($(FULL_TARGET),arm-nds) -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 +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 endif ifeq ($(FULL_TARGET),arm-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 +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 endif 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 +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 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 fptimer +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 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 fptimer +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 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 +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 endif ifeq ($(FULL_TARGET),i386-linux) override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol @@ -544,162 +550,6 @@ endif ifeq ($(FULL_TARGET),powerpc64-embedded) override TARGET_RSTS+=ssockets cachecls resolve custapp cgiapp eventlog registry simpleipc streamcoll inicol endif -ifeq ($(FULL_TARGET),i386-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-go32v2) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-win32) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-os2) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-freebsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-beos) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-netbsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-solaris) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-qnx) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-netware) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-openbsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-wdosx) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-darwin) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-emx) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-watcom) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-netwlibc) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-wince) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),i386-symbian) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-freebsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-netbsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-amiga) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-atari) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-openbsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-palmos) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),m68k-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-netbsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-amiga) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-macos) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-darwin) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-morphos) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),sparc-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),sparc-netbsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),sparc-solaris) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),sparc-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),x86_64-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),x86_64-freebsd) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),x86_64-win64) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),x86_64-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-palmos) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-wince) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-gba) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-nds) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),arm-symbian) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc64-linux) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc64-darwin) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif -ifeq ($(FULL_TARGET),powerpc64-embedded) -override CLEAN_UNITS+=adler gzcrc gzio infblock infcodes inffast inftrees infutilminigzip paszlib trees zbase zcompres zdeflate zinflatezuncompr zutil pthreads streamio blowfish testutils fpcunit -endif override INSTALL_FPCPACKAGE=y ifeq ($(FULL_TARGET),i386-linux) override COMPILER_OPTIONS+=-S2h @@ -1919,333 +1769,333 @@ endif override REQUIRE_PACKAGES=rtl paszlib hash ifeq ($(FULL_TARGET),i386-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),i386-go32v2) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),i386-win32) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_WINUNITS=1 endif ifeq ($(FULL_TARGET),i386-os2) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 endif ifeq ($(FULL_TARGET),i386-freebsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),i386-beos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),i386-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-solaris) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),i386-qnx) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),i386-netware) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 endif ifeq ($(FULL_TARGET),i386-openbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),i386-wdosx) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),i386-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),i386-emx) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 endif ifeq ($(FULL_TARGET),i386-watcom) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),i386-netwlibc) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 endif ifeq ($(FULL_TARGET),i386-wince) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 endif ifeq ($(FULL_TARGET),i386-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),i386-symbian) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),m68k-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),m68k-freebsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),m68k-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),m68k-amiga) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),m68k-atari) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),m68k-openbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),m68k-palmos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),m68k-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),powerpc-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),powerpc-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),powerpc-amiga) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),powerpc-macos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),powerpc-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),powerpc-morphos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),powerpc-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),sparc-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),sparc-netbsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 endif ifeq ($(FULL_TARGET),sparc-solaris) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),sparc-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),x86_64-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),x86_64-freebsd) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),x86_64-win64) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_WINUNITS=1 endif ifeq ($(FULL_TARGET),x86_64-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),arm-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),arm-palmos) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),arm-wince) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 endif ifeq ($(FULL_TARGET),arm-gba) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),arm-nds) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),arm-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),arm-symbian) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifeq ($(FULL_TARGET),powerpc64-linux) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),powerpc64-darwin) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_NETDB=1 REQUIRE_PACKAGES_LIBASYNC=1 REQUIRE_PACKAGES_PTHREADS=1 endif ifeq ($(FULL_TARGET),powerpc64-embedded) REQUIRE_PACKAGES_RTL=1 -REQUIRE_PACKAGES_HASH=1 REQUIRE_PACKAGES_PASZLIB=1 +REQUIRE_PACKAGES_HASH=1 endif ifdef REQUIRE_PACKAGES_RTL PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR)))))) @@ -2273,32 +2123,6 @@ ifdef UNITDIR_RTL override COMPILER_UNITDIR+=$(UNITDIR_RTL) endif endif -ifdef REQUIRE_PACKAGES_HASH -PACKAGEDIR_HASH:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /hash/Makefile.fpc,$(PACKAGESDIR)))))) -ifneq ($(PACKAGEDIR_HASH),) -ifneq ($(wildcard $(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX)),) -UNITDIR_HASH=$(PACKAGEDIR_HASH)/units/$(TARGETSUFFIX) -else -UNITDIR_HASH=$(PACKAGEDIR_HASH) -endif -ifdef CHECKDEPEND -$(PACKAGEDIR_HASH)/$(FPCMADE): - $(MAKE) -C $(PACKAGEDIR_HASH) $(FPCMADE) -override ALLDEPENDENCIES+=$(PACKAGEDIR_HASH)/$(FPCMADE) -endif -else -PACKAGEDIR_HASH= -UNITDIR_HASH:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /hash/Package.fpc,$(UNITSDIR))))) -ifneq ($(UNITDIR_HASH),) -UNITDIR_HASH:=$(firstword $(UNITDIR_HASH)) -else -UNITDIR_HASH= -endif -endif -ifdef UNITDIR_HASH -override COMPILER_UNITDIR+=$(UNITDIR_HASH) -endif -endif ifdef REQUIRE_PACKAGES_PASZLIB PACKAGEDIR_PASZLIB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /paszlib/Makefile.fpc,$(PACKAGESDIR)))))) ifneq ($(PACKAGEDIR_PASZLIB),) @@ -2325,6 +2149,32 @@ 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),) @@ -2443,7 +2293,7 @@ override FPCOPT+=-FD$(NEW_BINUTILS_PATH) endif ifndef CROSSBOOTSTRAP ifneq ($(BINUTILSPREFIX),) -override FPCOPT+=-XP$(BINUTILSPREFIX) +override FPCOPT+=-XP$(BINUTILSPREFIX) endif ifneq ($(BINUTILSPREFIX),) override FPCOPT+=-Xr$(RLINKPATH) @@ -2575,9 +2425,13 @@ ifeq (,$(findstring -s ,$(COMPILER))) EXECPPAS= else ifeq ($(FULL_SOURCE),$(FULL_TARGET)) +ifdef RUNBATCH +EXECPPAS:=@$(RUNBATCH) $(PPAS) +else EXECPPAS:=@$(PPAS) endif endif +endif .PHONY: fpc_units ifneq ($(TARGET_UNITS),) override ALLTARGET+=fpc_units @@ -2801,8 +2655,12 @@ else endif ifdef inUnix /bin/sh $(ZIPWRAPPER) +else +ifdef RUNBATCH + $(RUNBATCH) (ZIPWRAPPER) else $(ZIPWRAPPER) +endif endif $(DEL) $(ZIPWRAPPER) else diff --git a/packages/fcl-base/Makefile.fpc b/packages/fcl-base/Makefile.fpc index 67f084b738..2d12bb8fda 100644 --- a/packages/fcl-base/Makefile.fpc +++ b/packages/fcl-base/Makefile.fpc @@ -23,18 +23,11 @@ packages_emx=netdb packages_netware=netdb packages_netwlibc=netdb -# clean package units -[clean] -units=adler gzcrc gzio infblock infcodes inffast inftrees infutil\ - minigzip paszlib trees zbase zcompres zdeflate zinflate\ - zuncompr zutil pthreads streamio blowfish testutils fpcunit - [target] -# Leave xmlreg and registry last, they require xml. units=contnrs inifiles ezcgi pipes rtfpars idea base64 gettext \ - iostream zstream cachecls avl_tree \ + iostream cachecls avl_tree \ eventlog custapp cgiapp wformat whtml wtex rttiutils bufstream \ - streamex blowfish zipper 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 diff --git a/packages/fcl-base/src/inc/zipper.pp b/packages/fcl-base/src/inc/zipper.pp deleted file mode 100644 index 5048bf8824..0000000000 --- a/packages/fcl-base/src/inc/zipper.pp +++ /dev/null @@ -1,1470 +0,0 @@ -{ - $Id: header,v 1.1 2000/07/13 06:33:45 michael Exp $ - 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. - - **********************************************************************} -{$mode objfpc} -{$h+} -unit zipper; - -Interface - -Uses - SysUtils,Classes,ZStream; - - -Const - { Signatures } -{$ifdef FPC_BIG_ENDIAN} - END_OF_CENTRAL_DIR_SIGNATURE = $504B0506; - LOCAL_FILE_HEADER_SIGNATURE = $504B0304; - CENTRAL_FILE_HEADER_SIGNATURE = $504B0102; -{$else FPC_BIG_ENDIAN} - END_OF_CENTRAL_DIR_SIGNATURE = $06054B50; - LOCAL_FILE_HEADER_SIGNATURE = $04034B50; - CENTRAL_FILE_HEADER_SIGNATURE = $02014B50; -{$endif FPC_BIG_ENDIAN} - -Type - Local_File_Header_Type = Packed Record - Signature : LongInt; - Extract_Version_Reqd : Word; - Bit_Flag : Word; - Compress_Method : Word; - Last_Mod_Time : Word; - Last_Mod_Date : Word; - Crc32 : LongWord; - Compressed_Size : LongInt; - Uncompressed_Size : LongInt; - Filename_Length : Word; - Extra_Field_Length : Word; - end; - - { Define the Central Directory record types } - - Central_File_Header_Type = Packed Record - Signature : LongInt; - MadeBy_Version : Word; - Extract_Version_Reqd : Word; - Bit_Flag : Word; - Compress_Method : Word; - Last_Mod_Time : Word; - Last_Mod_Date : Word; - Crc32 : LongWord; - Compressed_Size : LongInt; - Uncompressed_Size : LongInt; - Filename_Length : Word; - Extra_Field_Length : Word; - File_Comment_Length : Word; - Starting_Disk_Num : Word; - Internal_Attributes : Word; - External_Attributes : LongInt; - Local_Header_Offset : LongInt; - End; - - End_of_Central_Dir_Type = Packed Record - Signature : LongInt; - Disk_Number : Word; - Central_Dir_Start_Disk : Word; - Entries_This_Disk : Word; - Total_Entries : Word; - Central_Dir_Size : LongInt; - Start_Disk_Offset : LongInt; - ZipFile_Comment_Length : Word; - end; - -Const - Crc_32_Tab : Array[0..255] of LongWord = ( - $00000000, $77073096, $ee0e612c, $990951ba, $076dc419, $706af48f, $e963a535, $9e6495a3, - $0edb8832, $79dcb8a4, $e0d5e91e, $97d2d988, $09b64c2b, $7eb17cbd, $e7b82d07, $90bf1d91, - $1db71064, $6ab020f2, $f3b97148, $84be41de, $1adad47d, $6ddde4eb, $f4d4b551, $83d385c7, - $136c9856, $646ba8c0, $fd62f97a, $8a65c9ec, $14015c4f, $63066cd9, $fa0f3d63, $8d080df5, - $3b6e20c8, $4c69105e, $d56041e4, $a2677172, $3c03e4d1, $4b04d447, $d20d85fd, $a50ab56b, - $35b5a8fa, $42b2986c, $dbbbc9d6, $acbcf940, $32d86ce3, $45df5c75, $dcd60dcf, $abd13d59, - $26d930ac, $51de003a, $c8d75180, $bfd06116, $21b4f4b5, $56b3c423, $cfba9599, $b8bda50f, - $2802b89e, $5f058808, $c60cd9b2, $b10be924, $2f6f7c87, $58684c11, $c1611dab, $b6662d3d, - $76dc4190, $01db7106, $98d220bc, $efd5102a, $71b18589, $06b6b51f, $9fbfe4a5, $e8b8d433, - $7807c9a2, $0f00f934, $9609a88e, $e10e9818, $7f6a0dbb, $086d3d2d, $91646c97, $e6635c01, - $6b6b51f4, $1c6c6162, $856530d8, $f262004e, $6c0695ed, $1b01a57b, $8208f4c1, $f50fc457, - $65b0d9c6, $12b7e950, $8bbeb8ea, $fcb9887c, $62dd1ddf, $15da2d49, $8cd37cf3, $fbd44c65, - $4db26158, $3ab551ce, $a3bc0074, $d4bb30e2, $4adfa541, $3dd895d7, $a4d1c46d, $d3d6f4fb, - $4369e96a, $346ed9fc, $ad678846, $da60b8d0, $44042d73, $33031de5, $aa0a4c5f, $dd0d7cc9, - $5005713c, $270241aa, $be0b1010, $c90c2086, $5768b525, $206f85b3, $b966d409, $ce61e49f, - $5edef90e, $29d9c998, $b0d09822, $c7d7a8b4, $59b33d17, $2eb40d81, $b7bd5c3b, $c0ba6cad, - $edb88320, $9abfb3b6, $03b6e20c, $74b1d29a, $ead54739, $9dd277af, $04db2615, $73dc1683, - $e3630b12, $94643b84, $0d6d6a3e, $7a6a5aa8, $e40ecf0b, $9309ff9d, $0a00ae27, $7d079eb1, - $f00f9344, $8708a3d2, $1e01f268, $6906c2fe, $f762575d, $806567cb, $196c3671, $6e6b06e7, - $fed41b76, $89d32be0, $10da7a5a, $67dd4acc, $f9b9df6f, $8ebeeff9, $17b7be43, $60b08ed5, - $d6d6a3e8, $a1d1937e, $38d8c2c4, $4fdff252, $d1bb67f1, $a6bc5767, $3fb506dd, $48b2364b, - $d80d2bda, $af0a1b4c, $36034af6, $41047a60, $df60efc3, $a867df55, $316e8eef, $4669be79, - $cb61b38c, $bc66831a, $256fd2a0, $5268e236, $cc0c7795, $bb0b4703, $220216b9, $5505262f, - $c5ba3bbe, $b2bd0b28, $2bb45a92, $5cb36a04, $c2d7ffa7, $b5d0cf31, $2cd99e8b, $5bdeae1d, - $9b64c2b0, $ec63f226, $756aa39c, $026d930a, $9c0906a9, $eb0e363f, $72076785, $05005713, - $95bf4a82, $e2b87a14, $7bb12bae, $0cb61b38, $92d28e9b, $e5d5be0d, $7cdcefb7, $0bdbdf21, - $86d3d2d4, $f1d4e242, $68ddb3f8, $1fda836e, $81be16cd, $f6b9265b, $6fb077e1, $18b74777, - $88085ae6, $ff0f6a70, $66063bca, $11010b5c, $8f659eff, $f862ae69, $616bffd3, $166ccf45, - $a00ae278, $d70dd2ee, $4e048354, $3903b3c2, $a7672661, $d06016f7, $4969474d, $3e6e77db, - $aed16a4a, $d9d65adc, $40df0b66, $37d83bf0, $a9bcae53, $debb9ec5, $47b2cf7f, $30b5ffe9, - $bdbdf21c, $cabac28a, $53b39330, $24b4a3a6, $bad03605, $cdd70693, $54de5729, $23d967bf, - $b3667a2e, $c4614ab8, $5d681b02, $2a6f2b94, $b40bbe37, $c30c8ea1, $5a05df1b, $2d02ef8d - ); - -Type - - TZipItem = Class(TObject) - Path : String; - Name : String; - Size : LongInt; - DateTime : TDateTime; - HdrPos : Longint; - end; - - TProgressEvent = Procedure(Sender : TObject; Const Pct : Double) of object; - TOnEndOfFileEvent = Procedure(Sender : TObject; Const Ratio : Double) of object; - TOnStartFileEvent = Procedure(Sender : TObject; Const AFileName : String) of object; - -Type - - { TCompressor } - TCompressor = Class(TObject) - Protected - FInFile : TStream; { I/O file variables } - FOutFile : TStream; - FCrc32Val : LongWord; { CRC calculation variable } - FBufferSize : LongWord; - FOnPercent : Integer; - FOnProgress : TProgressEvent; - Procedure UpdC32(Octet: Byte); - Public - Constructor Create(AInFile, AOutFile : TStream; ABufSize : LongWord); virtual; - Procedure Compress; Virtual; Abstract; - Class Function ZipID : Word; virtual; Abstract; - Property BufferSize : LongWord read FBufferSize; - Property OnPercent : Integer Read FOnPercent Write FOnPercent; - Property OnProgress : TProgressEvent Read FOnProgress Write FOnProgress; - Property Crc32Val : LongWord Read FCrc32Val Write FCrc32Val; - end; - - { TDeCompressor } - TDeCompressor = Class(TObject) - Protected - FInFile : TStream; { I/O file variables } - FOutFile : TStream; - FCrc32Val : LongWord; { CRC calculation variable } - FBufferSize : LongWord; - FOnPercent : Integer; - FOnProgress : TProgressEvent; - Procedure UpdC32(Octet: Byte); - Public - Constructor Create(AInFile, AOutFile : TStream; ABufSize : LongWord); virtual; - Procedure DeCompress; Virtual; Abstract; - Class Function ZipID : Word; virtual; Abstract; - Property BufferSize : LongWord read FBufferSize; - Property OnPercent : Integer Read FOnPercent Write FOnPercent; - Property OnProgress : TProgressEvent Read FOnProgress Write FOnProgress; - Property Crc32Val : LongWord Read FCrc32Val Write FCrc32Val; - end; - - { TShrinker } - -Const - TABLESIZE = 8191; - FIRSTENTRY = 257; - -Type - CodeRec = Packed Record - Child : Smallint; - Sibling : Smallint; - Suffix : Byte; - end; - CodeArray = Array[0..TABLESIZE] of CodeRec; - TablePtr = ^CodeArray; - - FreeListPtr = ^FreeListArray; - FreeListArray = Array[FIRSTENTRY..TABLESIZE] of Word; - - BufPtr = PByte; - - TShrinker = Class(TCompressor) - Private - FBufSize : LongWord; - MaxInBufIdx : LongWord; { Count of valid chars in input buffer } - InputEof : Boolean; { End of file indicator } - CodeTable : TablePtr; { Points to code table for LZW compression } - FreeList : FreeListPtr; { Table of free code table entries } - NextFree : Word; { Index into free list table } - - ClearList : Array[0..1023] of Byte; { Bit mapped structure used in } - { during adaptive resets } - CodeSize : Byte; { Size of codes (in bits) currently being written } - MaxCode : Word; { Largest code that can be written in CodeSize bits } - InBufIdx, { Points to next char in buffer to be read } - OutBufIdx : LongWord; { Points to next free space in output buffer } - InBuf, { I/O buffers } - OutBuf : BufPtr; - FirstCh : Boolean; { Flag indicating the START of a shrink operation } - TableFull : Boolean; { Flag indicating a full symbol table } - SaveByte : Byte; { Output code buffer } - BitsUsed : Byte; { Index into output code buffer } - BytesIn : LongInt; { Count of input file bytes processed } - BytesOut : LongInt; { Count of output bytes } - FOnBytes : Longint; - Procedure FillInputBuffer; - Procedure WriteOutputBuffer; - Procedure FlushOutput; - Procedure PutChar(B : Byte); - procedure PutCode(Code : Smallint); - Procedure InitializeCodeTable; - Procedure Prune(Parent : Word); - Procedure Clear_Table; - Procedure Table_Add(Prefix : Word; Suffix : Byte); - function Table_Lookup(TargetPrefix : Smallint; - TargetSuffix : Byte; - Out FoundAt : Smallint) : Boolean; - Procedure Shrink(Suffix : Smallint); - Procedure ProcessLine(Const Source : String); - Procedure DoOnProgress(Const Pct : Double); Virtual; - Public - Constructor Create(AInFile, AOutFile : TStream; ABufSize : LongWord); override; - Destructor Destroy; override; - Procedure Compress; override; - Class Function ZipID : Word; override; - end; - - { TDeflater } - - TDeflater = Class(TCompressor) - private - FCompressionLevel: TCompressionlevel; - Public - Constructor Create(AInFile, AOutFile : TStream; ABufSize : LongWord);override; - Procedure Compress; override; - Class Function ZipID : Word; override; - Property CompressionLevel : TCompressionlevel Read FCompressionLevel Write FCompressionLevel; - end; - - { TInflater } - - TInflater = Class(TDeCompressor) - Public - Constructor Create(AInFile, AOutFile : TStream; ABufSize : LongWord);override; - Procedure DeCompress; override; - Class Function ZipID : Word; override; - end; - - { TZipper } - - TZipper = Class(TObject) - Private - FZipping : Boolean; - FBufSize : LongWord; - FFileName : String; { Name of resulting Zip file } - FFiles : TStrings; - FInMemSize : Integer; - FOutFile : TFileStream; - FInFile : TFileStream; { I/O file variables } - LocalHdr : Local_File_Header_Type; - CentralHdr : Central_File_Header_Type; - EndHdr : End_of_Central_Dir_Type; - FOnPercent : LongInt; - FOnProgress : TProgressEvent; - FOnEndOfFile : TOnEndOfFileEvent; - FOnStartFile : TOnStartFileEvent; - Protected - Procedure OpenOutput; - Procedure CloseOutput; - Procedure CloseInput; - Procedure StartZipFile(Item : TZipItem); - Function UpdateZipHeader(Item : TZipItem; FZip : TStream; ACRC : LongWord;AMethod : Word) : Boolean; - Procedure BuildZipDirectory; - Procedure DoEndOfFile; - Procedure ZipOneFile(Item : TZipItem); virtual; - Function OpenInput(InFileName : String) : Boolean; - Procedure GetFileInfo; - Procedure SetBufSize(Value : LongWord); - Procedure SetFileName(Value : String); - Function CreateCompressor(Item : TZipItem; AinFile,AZipStream : TStream) : TCompressor; virtual; - Public - Constructor Create; - Destructor Destroy;override; - Procedure ZipAllFiles; virtual; - Procedure ZipFiles(AFileName : String; FileList : TStrings); - Procedure Clear; - Public - Property BufferSize : LongWord Read FBufSize Write SetBufSize; - Property OnPercent : Integer Read FOnPercent Write FOnPercent; - Property OnProgress : TProgressEvent Read FOnProgress Write FOnProgress; - Property OnStartFile : TOnStartFileEvent Read FOnStartFile Write FOnStartFile; - Property OnEndFile : TOnEndOfFileEvent Read FOnEndOfFile Write FOnEndOfFile; - Property FileName : String Read FFileName Write SetFileName; - Property Files : TStrings Read FFiles; - Property InMemSize : Integer Read FInMemSize Write FInMemSize; - end; - - { TYbZipper } - - { TUnZipper } - - TUnZipper = Class(TObject) - Private - FUnZipping : Boolean; - FBufSize : LongWord; - FFileName : String; { Name of resulting Zip file } - FOutputPath : String; - FFiles : TStrings; - FZipEntries : TFPList; { don't use TFPObjectList, becuase of Contnrs dependency } - FOutFile : TFileStream; - FZipFile : TFileStream; { I/O file variables } - LocalHdr : Local_File_Header_Type; - CentralHdr : Central_File_Header_Type; - EndHdr : End_of_Central_Dir_Type; - - FOnPercent : LongInt; - FOnProgress : TProgressEvent; - FOnEndOfFile : TOnEndOfFileEvent; - FOnStartFile : TOnStartFileEvent; - Protected - Procedure OpenInput; - Procedure CloseOutput; - Procedure CloseInput; - Procedure ReadZipHeader(Item : TZipItem; out ACRC : LongWord;out AMethod : Word); - Procedure ReadZipDirectory; - Procedure DoEndOfFile; - Procedure UnZipOneFile(Item : TZipItem); virtual; - Function OpenOutput(OutFileName : String) : Boolean; - Procedure SetBufSize(Value : LongWord); - Procedure SetFileName(Value : String); - Procedure SetOutputPath(Value:String); - Function CreateDeCompressor(Item : TZipItem; AMethod : Word;AZipFile,AOutFile : TStream) : TDeCompressor; virtual; - Public - Constructor Create; - Destructor Destroy;override; - Procedure UnZipAllFiles; virtual; - Procedure UnZipFiles(AFileName : String; FileList : TStrings); - Procedure UnZipAllFiles(AFileName : String); - Procedure Clear; - Public - Property BufferSize : LongWord Read FBufSize Write SetBufSize; - Property OnPercent : Integer Read FOnPercent Write FOnPercent; - Property OnProgress : TProgressEvent Read FOnProgress Write FOnProgress; - Property OnStartFile : TOnStartFileEvent Read FOnStartFile Write FOnStartFile; - Property OnEndFile : TOnEndOfFileEvent Read FOnEndOfFile Write FOnEndOfFile; - Property FileName : String Read FFileName Write SetFileName; - Property OutputPath : String Read FOutputPath Write SetOutputPath; - Property Files : TStrings Read FFiles; - end; - - EZipError = Class(Exception); - -Implementation - -ResourceString - SErrBufsizeChange = 'Changing buffer size is not allowed while (un)zipping'; - SErrFileChange = 'Changing output file name is not allowed while (un)zipping'; - SErrInvalidCRC = 'Invalid CRC checksum while unzipping %s'; - SErrCorruptZIP = 'Corrupt ZIP file %s'; - SErrUnsupportedCompressionFormat = 'Unsupported compression format %d'; - -{ --------------------------------------------------------------------- - Auxiliary - ---------------------------------------------------------------------} - -Procedure DateTimeToZipDateTime(DT : TDateTime; out ZD,ZT : Word); - -Var - Y,M,D,H,N,S,MS : Word; - -begin - DecodeDate(DT,Y,M,D); - DecodeTime(DT,H,N,S,MS); - Y:=Y-1980; - ZD:=d+(32*M)+(512*Y); - ZT:=(S div 2)+(32*N)+(2048*h); -end; - -Procedure ZipDateTimeToDateTime(ZD,ZT : Word;out DT : TDateTime); - -Var - Y,M,D,H,N,S,MS : Word; - -begin - MS:=0; - S:=(ZT and 31) shl 1; - N:=(ZT shr 5) and 63; - H:=(ZT shr 12) and 31; - D:=ZD and 31; - M:=(ZD shr 5) and 15; - Y:=((ZD shr 9) and 127)+1980; - DT:=ComposeDateTime(EncodeDate(Y,M,D),EncodeTime(H,N,S,MS)); -end; - -{ --------------------------------------------------------------------- - TDeCompressor - ---------------------------------------------------------------------} - - -Procedure TDeCompressor.UpdC32(Octet: Byte); - -Begin - FCrc32Val := Crc_32_Tab[Byte(FCrc32Val XOR LongInt(Octet))] XOR ((FCrc32Val SHR 8) AND $00FFFFFF); -end; - -constructor TDeCompressor.Create(AInFile, AOutFile: TStream; ABufSize: LongWord); -begin - FinFile:=AInFile; - FoutFile:=AOutFile; - FBufferSize:=ABufSize; - CRC32Val:=$FFFFFFFF; -end; - - -{ --------------------------------------------------------------------- - TCompressor - ---------------------------------------------------------------------} - - -Procedure TCompressor.UpdC32(Octet: Byte); - -Begin - FCrc32Val := Crc_32_Tab[Byte(FCrc32Val XOR LongInt(Octet))] XOR ((FCrc32Val SHR 8) AND $00FFFFFF); -end; - -constructor TCompressor.Create(AInFile, AOutFile: TStream; ABufSize: LongWord); -begin - FinFile:=AInFile; - FoutFile:=AOutFile; - FBufferSize:=ABufSize; - CRC32Val:=$FFFFFFFF; -end; - - -{ --------------------------------------------------------------------- - TDeflater - ---------------------------------------------------------------------} - -constructor TDeflater.Create(AInFile, AOutFile: TStream; ABufSize: LongWord); -begin - Inherited; - FCompressionLevel:=clDefault; -end; - - -procedure TDeflater.Compress; - -Var - Buf : PByte; - I,Count,NewCount : Integer; - C : TCompressionStream; - -begin - CRC32Val:=$FFFFFFFF; - Buf:=GetMem(FBufferSize); - Try - C:=TCompressionStream.Create(FCompressionLevel,FOutFile,True); - Try - Repeat - Count:=FInFile.Read(Buf^,FBufferSize); - For I:=0 to Count-1 do - UpdC32(Buf[i]); - NewCount:=Count; - While (NewCount>0) do - NewCount:=NewCount-C.Write(Buf^,NewCount); - Until (Count=0); - Finally - C.Free; - end; - Finally - FreeMem(Buf); - end; - Crc32Val:=NOT Crc32Val; -end; - -class function TDeflater.ZipID: Word; -begin - Result:=8; -end; - -{ --------------------------------------------------------------------- - TInflater - ---------------------------------------------------------------------} - -constructor TInflater.Create(AInFile, AOutFile: TStream; ABufSize: LongWord); -begin - Inherited; -end; - - -procedure TInflater.DeCompress; - -Var - Buf : PByte; - I,Count : Integer; - C : TDeCompressionStream; - -begin - CRC32Val:=$FFFFFFFF; - Buf:=GetMem(FBufferSize); - Try - C:=TDeCompressionStream.Create(FInFile,True); - Try - Repeat - Count:=C.Read(Buf^,FBufferSize); - For I:=0 to Count-1 do - UpdC32(Buf[i]); - FOutFile.Write(Buf^,Count); - Until (Count=0); - Finally - C.Free; - end; - Finally - FreeMem(Buf); - end; - Crc32Val:=NOT Crc32Val; -end; - -class function TInflater.ZipID: Word; -begin - Result:=8; -end; - - -{ --------------------------------------------------------------------- - TShrinker - ---------------------------------------------------------------------} - -Const - DefaultInMemSize = 256*1024; { Files larger than 256k are processed on disk } - DefaultBufSize = 16384; { Use 16K file buffers } - MINBITS = 9; { Starting code size of 9 bits } - MAXBITS = 13; { Maximum code size of 13 bits } - SPECIAL = 256; { Special function code } - INCSIZE = 1; { Code indicating a jump in code size } - CLEARCODE = 2; { Code indicating code table has been cleared } - STDATTR = $23; { Standard file attribute for DOS Find First/Next } - -constructor TShrinker.Create(AInFile, AOutFile : TStream; ABufSize : LongWord); -begin - Inherited; - FBufSize:=ABufSize; - InBuf:=GetMem(FBUFSIZE); - OutBuf:=GetMem(FBUFSIZE); - CodeTable:=GetMem(SizeOf(CodeTable^)); - FreeList:=GetMem(SizeOf(FreeList^)); -end; - -destructor TShrinker.Destroy; -begin - FreeMem(CodeTable); - FreeMem(FreeList); - FreeMem(InBuf); - FreeMem(OutBuf); - inherited Destroy; -end; - -Procedure TShrinker.Compress; - -Var - OneString : String; - Remaining : Word; - -begin - BytesIn := 1; - BytesOut := 1; - InitializeCodeTable; - FillInputBuffer; - FirstCh:= TRUE; - Crc32Val:=$FFFFFFFF; - FOnBytes:=Round((FInFile.Size * FOnPercent) / 100); - While NOT InputEof do - begin - Remaining:=Succ(MaxInBufIdx - InBufIdx); - If Remaining>255 then - Remaining:=255; - If Remaining=0 then - FillInputBuffer - else - begin - SetLength(OneString,Remaining); - Move(InBuf[InBufIdx], OneString[1], Remaining); - Inc(InBufIdx, Remaining); - ProcessLine(OneString); - end; - end; - Crc32Val := NOT Crc32Val; - ProcessLine(''); -end; - -class function TShrinker.ZipID: Word; -begin - Result:=1; -end; - - -Procedure TShrinker.DoOnProgress(Const Pct: Double); - -begin - If Assigned(FOnProgress) then - FOnProgress(Self,Pct); -end; - - -Procedure TShrinker.FillInputBuffer; - -Begin - MaxInbufIDx:=FInfile.Read(InBuf[0], FBufSize); - If MaxInbufIDx=0 then - InputEof := TRUE - else - InputEOF := FALSE; - InBufIdx := 0; -end; - - -Procedure TShrinker.WriteOutputBuffer; -Begin - FOutFile.WriteBuffer(OutBuf[0], OutBufIdx); - OutBufIdx := 0; -end; - - -Procedure TShrinker.PutChar(B : Byte); - -Begin - OutBuf[OutBufIdx] := B; - Inc(OutBufIdx); - If OutBufIdx>=FBufSize then - WriteOutputBuffer; - Inc(BytesOut); -end; - -Procedure TShrinker.FlushOutput; -Begin - If OutBufIdx>0 then - WriteOutputBuffer; -End; - - -procedure TShrinker.PutCode(Code : Smallint); - -var - ACode : LongInt; - XSize : Smallint; - -begin - if (Code=-1) then - begin - if BitsUsed>0 then - PutChar(SaveByte); - end - else - begin - ACode := Longint(Code); - XSize := CodeSize+BitsUsed; - ACode := (ACode shl BitsUsed) or SaveByte; - while (XSize div 8) > 0 do - begin - PutChar(Lo(ACode)); - ACode := ACode shr 8; - Dec(XSize,8); - end; - BitsUsed := XSize; - SaveByte := Lo(ACode); - end; -end; - - -Procedure TShrinker.InitializeCodeTable; - -Var - I : Word; -Begin - For I := 0 to TableSize do - begin - With CodeTable^[I] do - begin - Child := -1; - Sibling := -1; - If (I<=255) then - Suffix := I; - end; - If (I>=257) then - FreeList^[I] := I; - end; - NextFree := FIRSTENTRY; - TableFull := FALSE; -end; - - -Procedure TShrinker.Prune(Parent : Word); - -Var - CurrChild : Smallint; - NextSibling : Smallint; -Begin - CurrChild := CodeTable^[Parent].Child; - { Find first Child that has descendants .. clear any that don't } - While (CurrChild <> -1) AND (CodeTable^[CurrChild].Child = -1) do - begin - CodeTable^[Parent].Child := CodeTable^[CurrChild].Sibling; - CodeTable^[CurrChild].Sibling := -1; - { Turn on ClearList bit to indicate a cleared entry } - ClearList[CurrChild DIV 8] := (ClearList[CurrChild DIV 8] OR (1 SHL (CurrChild MOD 8))); - CurrChild := CodeTable^[Parent].Child; - end; - If CurrChild <> -1 then - begin { If there are any children left ...} - Prune(CurrChild); - NextSibling := CodeTable^[CurrChild].Sibling; - While NextSibling <> -1 do - begin - If CodeTable^[NextSibling].Child = -1 then - begin - CodeTable^[CurrChild].Sibling := CodeTable^[NextSibling].Sibling; - CodeTable^[NextSibling].Sibling := -1; - { Turn on ClearList bit to indicate a cleared entry } - ClearList[NextSibling DIV 8] := (ClearList[NextSibling DIV 8] OR (1 SHL (NextSibling MOD 8))); - NextSibling := CodeTable^[CurrChild].Sibling; - end - else - begin - CurrChild := NextSibling; - Prune(CurrChild); - NextSibling := CodeTable^[CurrChild].Sibling; - end; - end; - end; -end; - - -Procedure TShrinker.Clear_Table; -Var - Node : Word; -Begin - FillChar(ClearList, SizeOf(ClearList), $00); - For Node := 0 to 255 do - Prune(Node); - NextFree := Succ(TABLESIZE); - For Node := TABLESIZE downto FIRSTENTRY do - begin - If (ClearList[Node DIV 8] AND (1 SHL (Node MOD 8))) <> 0 then - begin - Dec(NextFree); - FreeList^[NextFree] := Node; - end; - end; - If NextFree <= TABLESIZE then - TableFull := FALSE; -end; - - -Procedure TShrinker.Table_Add(Prefix : Word; Suffix : Byte); -Var - FreeNode : Word; -Begin - If NextFree <= TABLESIZE then - begin - FreeNode := FreeList^[NextFree]; - Inc(NextFree); - CodeTable^[FreeNode].Child := -1; - CodeTable^[FreeNode].Sibling := -1; - CodeTable^[FreeNode].Suffix := Suffix; - If CodeTable^[Prefix].Child = -1 then - CodeTable^[Prefix].Child := FreeNode - else - begin - Prefix := CodeTable^[Prefix].Child; - While CodeTable^[Prefix].Sibling <> -1 do - Prefix := CodeTable^[Prefix].Sibling; - CodeTable^[Prefix].Sibling := FreeNode; - end; - end; - if NextFree > TABLESIZE then - TableFull := TRUE; -end; - -function TShrinker.Table_Lookup( TargetPrefix : Smallint; - TargetSuffix : Byte; - Out FoundAt : Smallint ) : Boolean; - -var TempPrefix : Smallint; - -begin - TempPrefix := TargetPrefix; - Table_lookup := False; - if CodeTable^[TempPrefix].Child <> -1 then - begin - TempPrefix := CodeTable^[TempPrefix].Child; - repeat - if CodeTable^[TempPrefix].Suffix = TargetSuffix then - begin - Table_lookup := True; - break; - end; - if CodeTable^[TempPrefix].Sibling = -1 then - break; - TempPrefix := CodeTable^[TempPrefix].Sibling; - until False; - end; - if Table_Lookup then - FoundAt := TempPrefix - else - FoundAt := -1; -end; - -Procedure TShrinker.Shrink(Suffix : Smallint); - -Const - LastCode : Smallint = 0; - -Var - WhereFound : Smallint; - -Begin - If FirstCh then - begin - SaveByte := $00; - BitsUsed := 0; - CodeSize := MINBITS; - MaxCode := (1 SHL CodeSize) - 1; - LastCode := Suffix; - FirstCh := FALSE; - end - else - begin - If Suffix <> -1 then - begin - If TableFull then - begin - Putcode(LastCode); - PutCode(SPECIAL); - Putcode(CLEARCODE); - Clear_Table; - Table_Add(LastCode, Suffix); - LastCode := Suffix; - end - else - begin - If Table_Lookup(LastCode, Suffix, WhereFound) then - begin - LastCode := WhereFound; - end - else - begin - PutCode(LastCode); - Table_Add(LastCode, Suffix); - LastCode := Suffix; - If (FreeList^[NextFree] > MaxCode) and (CodeSize < MaxBits) then - begin - PutCode(SPECIAL); - PutCode(INCSIZE); - Inc(CodeSize); - MaxCode := (1 SHL CodeSize) -1; - end; - end; - end; - end - else - begin - PutCode(LastCode); - PutCode(-1); - FlushOutput; - end; - end; -end; - -Procedure TShrinker.ProcessLine(Const Source : String); - -Var - I : Word; - -Begin - If Source = '' then - Shrink(-1) - else - For I := 1 to Length(Source) do - begin - Inc(BytesIn); - If (Pred(BytesIn) MOD FOnBytes) = 0 then - DoOnProgress(100 * ( BytesIn / FInFile.Size)); - UpdC32(Ord(Source[I])); - Shrink(Ord(Source[I])); - end; -end; - -{ --------------------------------------------------------------------- - TZipper - ---------------------------------------------------------------------} - - -Procedure TZipper.GetFileInfo; - -Var - Info : TSearchRec; - I : Longint; - NewNode : TZipItem; - - -Begin - For I := 0 to FFiles.Count-1 do - begin - If FindFirst(FFiles[I], STDATTR, Info)=0 then - try - NewNode:=TZipItem.Create; - NewNode.Path := ExtractFilePath(FFiles[i]); - NewNode.Name := Info.Name; - NewNode.Size := Info.Size; - NewNode.DateTime:=FileDateToDateTime(Info.Time); - FFiles.Objects[i]:=NewNode; - finally - FindClose(Info); - end; - end; -end; - -Procedure TZipper.OpenOutput; - -Begin - FOutFile:=TFileStream.Create(FFileName,fmCreate); -End; - - -Function TZipper.OpenInput(InFileName : String) : Boolean; - -Begin - FInFile:=TFileStream.Create(InFileName,fmOpenRead); - Result:=True; - If Assigned(FOnStartFile) then - FOnStartFile(Self,InFileName); -End; - - -Procedure TZipper.CloseOutput; - -Begin - FreeAndNil(FOutFile); -end; - - -Procedure TZipper.CloseInput; - -Begin - FreeAndNil(FInFile); -end; - - -Procedure TZipper.StartZipFile(Item : TZipItem); - -Begin - FillChar(LocalHdr,SizeOf(LocalHdr),0); - With LocalHdr do - begin - Signature := LOCAL_FILE_HEADER_SIGNATURE; - Extract_Version_Reqd := 10; - Bit_Flag := 0; - Compress_Method := 1; - DateTimeToZipDateTime(Item.DateTime,Last_Mod_Date,Last_Mod_Time); - Crc32 := 0; - Compressed_Size := 0; - Uncompressed_Size := Item.Size; - FileName_Length := 0; - Extra_Field_Length := 0; - end ; -End; - - -Function TZipper.UpdateZipHeader(Item : TZipItem; FZip : TStream; ACRC : LongWord; AMethod : Word) : Boolean; -var - ZFileName : ShortString; -Begin - ZFileName:=Item.Path+Item.Name; - With LocalHdr do - begin - FileName_Length := Length(ZFileName); - Compressed_Size := FZip.Size; - Crc32 := ACRC; - Compress_method:=AMethod; - Result:=Not (Compressed_Size >= Uncompressed_Size); - If Not Result then - begin { No... } - Compress_Method := 0; { ...change stowage type } - Compressed_Size := Uncompressed_Size; { ...update compressed size } - end; - end; - FOutFile.WriteBuffer(LocalHdr,SizeOf(LocalHdr)); - FOutFile.WriteBuffer(ZFileName[1],Length(ZFileName)); -End; - - -Procedure TZipper.BuildZipDirectory; - -Var - SavePos : LongInt; - HdrPos : LongInt; - CenDirPos : LongInt; - Entries : Word; - ZFileName : ShortString; - -Begin - Entries := 0; - CenDirPos := FOutFile.Position; - FOutFile.Seek(0,soFrombeginning); { Rewind output file } - HdrPos := FOutFile.Position; - FOutFile.ReadBuffer(LocalHdr, SizeOf(LocalHdr)); - Repeat - SetLength(ZFileName,LocalHdr.FileName_Length); - FOutFile.ReadBuffer(ZFileName[1], LocalHdr.FileName_Length); - SavePos := FOutFile.Position; - FillChar(CentralHdr,SizeOf(CentralHdr),0); - With CentralHdr do - begin - Signature := CENTRAL_FILE_HEADER_SIGNATURE; - MadeBy_Version := LocalHdr.Extract_Version_Reqd; - Move(LocalHdr.Extract_Version_Reqd, Extract_Version_Reqd, 26); - Last_Mod_Time:=localHdr.Last_Mod_Time; - Last_Mod_Date:=localHdr.Last_Mod_Date; - File_Comment_Length := 0; - Starting_Disk_Num := 0; - Internal_Attributes := 0; - External_Attributes := faARCHIVE; - Local_Header_Offset := HdrPos; - end; - FOutFile.Seek(0,soFromEnd); - FOutFile.WriteBuffer(CentralHdr,SizeOf(CentralHdr)); - FOutFile.WriteBuffer(ZFileName[1],Length(ZFileName)); - Inc(Entries); - FOutFile.Seek(SavePos + LocalHdr.Compressed_Size,soFromBeginning); - HdrPos:=FOutFile.Position; - FOutFile.ReadBuffer(LocalHdr, SizeOf(LocalHdr)); - Until LocalHdr.Signature = CENTRAL_FILE_HEADER_SIGNATURE; - FOutFile.Seek(0,soFromEnd); - FillChar(EndHdr,SizeOf(EndHdr),0); - With EndHdr do - begin - Signature := END_OF_CENTRAL_DIR_SIGNATURE; - Disk_Number := 0; - Central_Dir_Start_Disk := 0; - Entries_This_Disk := Entries; - Total_Entries := Entries; - Central_Dir_Size := FOutFile.Size-CenDirPos; - Start_Disk_Offset := CenDirPos; - ZipFile_Comment_Length := 0; - FOutFile.WriteBuffer(EndHdr, SizeOf(EndHdr)); - end; -end; - -Function TZipper.CreateCompressor(Item : TZipItem; AInFile,AZipStream : TStream) : TCompressor; - -begin - Result:=TDeflater.Create(AinFile,AZipStream,FBufSize); -end; - -Procedure TZipper.ZipOneFile(Item : TZipItem); - -Var - CRC : LongWord; - ZMethod : Word; - ZipStream : TStream; - TmpFileName : String; - -Begin - OpenInput(Item.Path+Item.Name); - Try - StartZipFile(Item); - If (FInfile.Size<=FInMemSize) then - ZipStream:=TMemoryStream.Create - else - begin - TmpFileName:=ChangeFileExt(FFileName,'.tmp'); - ZipStream:=TFileStream.Create(TmpFileName,fmCreate); - end; - Try - With CreateCompressor(Item, FinFile,ZipStream) do - Try - OnProgress:=Self.OnProgress; - OnPercent:=Self.OnPercent; - Compress; - CRC:=Crc32Val; - ZMethod:=ZipID; - Finally - Free; - end; - If UpdateZipHeader(Item,ZipStream,CRC,ZMethod) then - // Compressed file smaller than original file. - FOutFile.CopyFrom(ZipStream,0) - else - begin - // Original file smaller than compressed file. - FInfile.Seek(0,soFromBeginning); - FOutFile.CopyFrom(FInFile,0); - end; - finally - ZipStream.Free; - If (TmpFileName<>'') then - DeleteFile(TmpFileName); - end; - Finally - CloseInput; - end; -end; - -Procedure TZipper.ZipAllFiles; -Var - Item : TZipItem; - I : Integer; - filecnt : integer; -Begin - if FFiles.Count=0 then - exit; - FZipping:=True; - Try - GetFileInfo; - OpenOutput; - Try - filecnt:=0; - For I:=0 to FFiles.Count-1 do - begin - Item:=FFiles.Objects[i] as TZipItem; - if assigned(Item) then - begin - ZipOneFile(Item); - inc(filecnt); - end; - end; - if filecnt>0 then - BuildZipDirectory; - finally - CloseOutput; - end; - finally - FZipping:=False; - end; -end; - - -Procedure TZipper.SetBufSize(Value : LongWord); - -begin - If FZipping then - Raise EZipError.Create(SErrBufsizeChange); - If Value>=DefaultBufSize then - FBufSize:=Value; -end; - -Procedure TZipper.SetFileName(Value : String); - -begin - If FZipping then - Raise EZipError.Create(SErrFileChange); - FFileName:=Value; -end; - -Procedure TZipper.ZipFiles(AFileName : String; FileList : TStrings); - -begin - FFiles.Assign(FileList); - FFileName:=AFileName; - ZipAllFiles; -end; - -Procedure TZipper.DoEndOfFile; - -Var - ComprPct : Double; - -begin - If (LocalHdr.Uncompressed_Size>0) then - ComprPct := (100.0 * (LocalHdr.Uncompressed_Size - LocalHdr.Compressed_Size)) / LocalHdr.Uncompressed_Size - else - ComprPct := 0; - If Assigned(FOnEndOfFile) then - FOnEndOfFile(Self,ComprPct); -end; - -Constructor TZipper.Create; - -begin - FBufSize:=DefaultBufSize; - FInMemSize:=DefaultInMemSize; - FFiles:=TStringList.Create; - TStringlist(FFiles).Sorted:=True; - FOnPercent:=1; -end; - -Procedure TZipper.Clear; - -Var - I : Integer; - -begin - For I:=0 to FFiles.Count-1 do - FFiles.Objects[i].Free; - FFiles.Clear; -end; - -Destructor TZipper.Destroy; - -begin - Clear; - FreeAndNil(FFiles); - Inherited; -end; - - -{ --------------------------------------------------------------------- - TUnZipper - ---------------------------------------------------------------------} - -Procedure TUnZipper.OpenInput; - -Begin - FZipFile:=TFileStream.Create(FFileName,fmOpenRead); -End; - - -Function TUnZipper.OpenOutput(OutFileName : String) : Boolean; - -Begin - FOutFile:=TFileStream.Create(OutFileName,fmCreate); - Result:=True; - If Assigned(FOnStartFile) then - FOnStartFile(Self,OutFileName); -End; - - -Procedure TUnZipper.CloseOutput; - -Begin - FreeAndNil(FOutFile); -end; - - -Procedure TUnZipper.CloseInput; - -Begin - FreeAndNil(FZipFile); -end; - - -Procedure TUnZipper.ReadZipHeader(Item : TZipItem; out ACRC : LongWord; out AMethod : Word); - -Begin - FZipFile.Seek(Item.HdrPos,soFromBeginning); - FZipFile.ReadBuffer(LocalHdr,SizeOf(LocalHdr)); - With LocalHdr do - begin - SetLength(Item.Name,Filename_Length); - FZipFile.ReadBuffer(Item.Name[1],Filename_Length); - FZipFile.Seek(Extra_Field_Length,soCurrent); - Item.Size:=Uncompressed_Size; - ZipDateTimeToDateTime(Last_Mod_Date,Last_Mod_Time,Item.DateTime); - ACrc:=Crc32; - AMethod:=Compress_method; - end; -End; - - -Procedure TUnZipper.ReadZipDirectory; - -Var - i, - EndHdrPos, - CenDirPos : LongInt; - NewNode : TZipItem; -Begin - EndHdrPos:=FZipFile.Size-SizeOf(EndHdr); - if EndHdrPos < 0 then - raise EZipError.CreateFmt(SErrCorruptZIP,[FZipFile.FileName]); - FZipFile.Seek(EndHdrPos,soFromBeginning); - FZipFile.ReadBuffer(EndHdr, SizeOf(EndHdr)); - With EndHdr do - begin - if Signature <> END_OF_CENTRAL_DIR_SIGNATURE then - raise EZipError.CreateFmt(SErrCorruptZIP,[FZipFile.FileName]); - CenDirPos:=Start_Disk_Offset; - end; - FZipFile.Seek(CenDirPos,soFrombeginning); - for i:=0 to EndHdr.Entries_This_Disk-1 do - begin - FZipFile.ReadBuffer(CentralHdr, SizeOf(CentralHdr)); - With CentralHdr do - begin - if Signature<>CENTRAL_FILE_HEADER_SIGNATURE then - raise EZipError.CreateFmt(SErrCorruptZIP,[FZipFile.FileName]); - NewNode:=TZipItem.Create; - NewNode.HdrPos := Local_Header_Offset; - SetLength(NewNode.Name,Filename_Length); - FZipFile.ReadBuffer(NewNode.Name[1],Filename_Length); - FZipFile.Seek(Extra_Field_Length+File_Comment_Length,soCurrent); - FZipEntries.Add(NewNode); - end; - end; -end; - -Function TUnZipper.CreateDeCompressor(Item : TZipItem; AMethod : Word;AZipFile,AOutFile : TStream) : TDeCompressor; -begin - case AMethod of - 8 : - Result:=TInflater.Create(AZipFile,AOutFile,FBufSize); - else - raise EZipError.CreateFmt(SErrUnsupportedCompressionFormat,[AMethod]); - end; -end; - -Procedure TUnZipper.UnZipOneFile(Item : TZipItem); - -Var - Count : Longint; - CRC : LongWord; - ZMethod : Word; - OutputFileName : string; -Begin - Try - ReadZipHeader(Item,CRC,ZMethod); - OutputFileName:=Item.Name; - if FOutputPath<>'' then - OutputFileName:=IncludeTrailingPathDelimiter(FOutputPath)+OutputFileName; - OpenOutput(OutputFileName); - if ZMethod=0 then - begin - Count:=FOutFile.CopyFrom(FZipFile,LocalHdr.Compressed_Size); -{$warning TODO: Implement CRC Check} - end - else - With CreateDecompressor(Item, ZMethod, FZipFile, FOutFile) do - Try - OnProgress:=Self.OnProgress; - OnPercent:=Self.OnPercent; - DeCompress; - if CRC<>Crc32Val then - raise EZipError.CreateFmt(SErrInvalidCRC,[Item.Name]); - Finally - Free; - end; - Finally - CloseOutput; - end; -end; - - -Procedure TUnZipper.UnZipAllFiles; -Var - Item : TZipItem; - I : Integer; - -Begin - FUnZipping:=True; - Try - OpenInput; - Try - ReadZipDirectory; - For I:=0 to FZipEntries.Count-1 do - begin - Item:=TZipItem(FZipEntries[i]); - if (FFiles=nil) or - (FFiles.IndexOf(Item.Name)<>-1) then - UnZipOneFile(Item); - end; - Finally - CloseInput; - end; - finally - FUnZipping:=False; - end; -end; - - -Procedure TUnZipper.SetBufSize(Value : LongWord); - -begin - If FUnZipping then - Raise EZipError.Create(SErrBufsizeChange); - If Value>=DefaultBufSize then - FBufSize:=Value; -end; - -Procedure TUnZipper.SetFileName(Value : String); - -begin - If FUnZipping then - Raise EZipError.Create(SErrFileChange); - FFileName:=Value; -end; - -Procedure TUnZipper.SetOutputPath(Value:String); -begin - If FUnZipping then - Raise EZipError.Create(SErrFileChange); - FOutputPath:=Value; -end; - -Procedure TUnZipper.UnZipFiles(AFileName : String; FileList : TStrings); - -begin - FFiles.Assign(FileList); - FFileName:=AFileName; - UnZipAllFiles; -end; - -Procedure TUnZipper.UnZipAllFiles(AFileName : String); - -begin - FFileName:=AFileName; - UnZipAllFiles; -end; - -Procedure TUnZipper.DoEndOfFile; - -Var - ComprPct : Double; - -begin - If (LocalHdr.Uncompressed_Size>0) then - ComprPct := (100.0 * (LocalHdr.Uncompressed_Size - LocalHdr.Compressed_Size)) / LocalHdr.Uncompressed_Size - else - ComprPct := 0; - If Assigned(FOnEndOfFile) then - FOnEndOfFile(Self,ComprPct); -end; - -Constructor TUnZipper.Create; - -begin - FBufSize:=DefaultBufSize; - FFiles:=TStringList.Create; - FZipEntries:=TFPList.Create; - TStringlist(FFiles).Sorted:=True; - FOnPercent:=1; -end; - -Procedure TUnZipper.Clear; - -Var - I : Integer; - -begin - For I:=0 to FFiles.Count-1 do - FFiles.Objects[i].Free; - FFiles.Clear; - For I:=0 to FZipEntries.Count-1 do - TZipItem(FZipEntries[i]).Free; - FZipEntries.Clear; -end; - -Destructor TUnZipper.Destroy; - -begin - Clear; - FreeAndNil(FFiles); - FreeAndNil(FZipEntries); - Inherited; -end; - -End. diff --git a/packages/fcl-base/src/inc/zstream.pp b/packages/fcl-base/src/inc/zstream.pp deleted file mode 100644 index 6246fa0234..0000000000 --- a/packages/fcl-base/src/inc/zstream.pp +++ /dev/null @@ -1,440 +0,0 @@ -{ - This file is part of the Free Pascal run time library. - Copyright (c) 1999-2000 by the Free Pascal development team - - Implementation of compression streams. - - See the file COPYING.FPC, included in this distribution, - for details about the copyright. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - - **********************************************************************} -{$mode objfpc} - -unit zstream; - - -{ --------------------------------------------------------------------- - For linux and freebsd it's also possible to use ZLib instead - of paszlib. You need to undefine 'usepaszlib'. - ---------------------------------------------------------------------} - -{$define usepaszlib} - - -interface - -uses - Sysutils, Classes -{$ifdef usepaszlib} - ,paszlib,zbase -{$else} - ,zlib -{$endif} - ; - -{$H+} - -type - // Error reporting. - EZlibError = class(EStreamError); - ECompressionError = class(EZlibError); - EDecompressionError = class(EZlibError); - - TCustomZlibStream = class(TOwnerStream) - private - FStrmPos: Integer; - FOnProgress: TNotifyEvent; - FZRec: TZStream; - FBuffer: array [Word] of Byte; - protected - procedure Progress(Sender: TObject); dynamic; - property OnProgress: TNotifyEvent read FOnProgress write FOnProgress; - public - constructor Create(Strm: TStream); - end; - - TCompressionLevel = (clNone, clFastest, clDefault, clMax); - - TCompressionStream = class(TCustomZlibStream) - private - function GetCompressionRate: extended; - function CompressionCheck(code: Integer): Integer; - procedure CompressBuf(const InBuf: Pointer; InBytes: Integer; - var OutBuf: Pointer; var OutBytes: Integer); - public - constructor Create(CompressionLevel: TCompressionLevel; Dest: TStream; ASkipHeader : Boolean = False); - destructor Destroy; override; - function Read(var Buffer; Count: Longint): Longint; override; - function Write(const Buffer; Count: Longint): Longint; override; - function Seek(Offset: Longint; Origin: Word): Longint; override; - property CompressionRate: extended read GetCompressionRate; - property OnProgress; - end; - - TDecompressionStream = class(TCustomZlibStream) - private - function DecompressionCheck(code: Integer): Integer; - procedure DecompressBuf(const InBuf: Pointer; InBytes: Integer; - OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer); - public - constructor Create(ASource: TStream; ASkipHeader : Boolean = False); - destructor Destroy; override; - function Read(var Buffer; Count: Longint): Longint; override; - function Write(const Buffer; Count: Longint): Longint; override; - function Seek(Offset: Longint; Origin: Word): Longint; override; - property OnProgress; - end; - - TGZOpenMode = (gzOpenRead,gzOpenWrite); - - TGZFileStream = Class(TStream) - Private - FOpenMode : TGZOpenmode; - FFIle : gzfile; - Public - Constructor Create(FileName: String;FileMode: TGZOpenMode); - Destructor Destroy;override; - Function Read(Var Buffer; Count : longint): longint;override; - function Write(const Buffer; Count: Longint): Longint; override; - function Seek(Offset: Longint; Origin: Word): Longint; override; - end; - - -implementation - -Const - ErrorStrings : array [0..6] of string = - ('Unknown error %d','Z_ERRNO','Z_STREAM_ERROR', - 'Z_DATA_ERROR','Z_MEM_ERROR','Z_BUF_ERROR','Z_VERSION_ERROR'); - SCouldntOpenFile = 'Couldn''t open file : %s'; - SReadOnlyStream = 'Decompression streams are read-only'; - SWriteOnlyStream = 'Compression streams are write-only'; - SSeekError = 'Compression stream seek error'; - SInvalidSeek = 'Invalid Compression seek operation'; - -procedure TCompressionStream.CompressBuf(const InBuf: Pointer; InBytes: Integer; - var OutBuf: Pointer; var OutBytes: Integer); -var - strm: TZStream; - P: Pointer; -begin - FillChar(strm, sizeof(strm), 0); - OutBytes := ((InBytes + (InBytes div 10) + 12) + 255) and not 255; - OutBuf:=GetMem(OutBytes); - try - strm.next_in := InBuf; - strm.avail_in := InBytes; - strm.next_out := OutBuf; - strm.avail_out := OutBytes; - CompressionCheck(deflateInit(strm, Z_BEST_COMPRESSION)); - try - while CompressionCheck(deflate(strm, Z_FINISH)) <> Z_STREAM_END do - begin - P := OutBuf; - Inc(OutBytes, 256); - ReallocMem(OutBuf,OutBytes); - strm.next_out := PByte(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P))); - strm.avail_out := 256; - end; - finally - CompressionCheck(deflateEnd(strm)); - end; - ReallocMem(OutBuf,strm.total_out); - OutBytes := strm.total_out; - except - FreeMem(OutBuf); - raise; - end; -end; - - -procedure TDecompressionStream.DecompressBuf(const InBuf: Pointer; InBytes: Integer; - OutEstimate: Integer; var OutBuf: Pointer; var OutBytes: Integer); -var - strm: TZStream; - P: Pointer; - BufInc: Integer; -Type - PByte = ^Byte; -begin - FillChar(strm, sizeof(strm), 0); - BufInc := (InBytes + 255) and not 255; - if OutEstimate = 0 then - OutBytes := BufInc - else - OutBytes := OutEstimate; - OutBuf:=GetMem(OutBytes); - try - strm.next_in := InBuf; - strm.avail_in := InBytes; - strm.next_out := OutBuf; - strm.avail_out := OutBytes; - DecompressionCheck(inflateInit(strm)); - try - while DecompressionCheck(inflate(strm, Z_FINISH)) <> Z_STREAM_END do - begin - P := OutBuf; - Inc(OutBytes, BufInc); - ReallocMem(OutBuf, OutBytes); - strm.next_out := PByte(Integer(OutBuf) + (Integer(strm.next_out) - Integer(P))); - strm.avail_out := BufInc; - end; - finally - DecompressionCheck(inflateEnd(strm)); - end; - ReallocMem(OutBuf, strm.total_out); - OutBytes := strm.total_out; - except - FreeMem(OutBuf); - raise; - end; -end; - - -// TCustomZlibStream - -constructor TCustomZLibStream.Create(Strm: TStream); -begin - inherited Create(Strm); - FStrmPos := Strm.Position; -end; - -procedure TCustomZLibStream.Progress(Sender: TObject); -begin - if Assigned(FOnProgress) then FOnProgress(Sender); -end; - - -// TCompressionStream - -constructor TCompressionStream.Create(CompressionLevel: TCompressionLevel; - Dest: TStream; ASkipHeader : Boolean = False); -const - Levels: array [TCompressionLevel] of ShortInt = - (Z_NO_COMPRESSION, Z_BEST_SPEED, Z_DEFAULT_COMPRESSION, Z_BEST_COMPRESSION); -begin - inherited Create(Dest); - FZRec.next_out := @FBuffer[0]; - FZRec.avail_out := sizeof(FBuffer); - If ASkipHeader then - CompressionCheck(deflateInit2(FZRec, Levels[CompressionLevel],Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, 0)) - else - CompressionCheck(deflateInit(FZRec, Levels[CompressionLevel])); -end; - -destructor TCompressionStream.Destroy; -begin - FZRec.next_in := nil; - FZRec.avail_in := 0; - try - if Source.Position <> FStrmPos then Source.Position := FStrmPos; - while (CompressionCheck(deflate(FZRec, Z_FINISH)) <> Z_STREAM_END) - and (FZRec.avail_out = 0) do - begin - Source.WriteBuffer(FBuffer, sizeof(FBuffer)); - FZRec.next_out := @FBuffer[0]; - FZRec.avail_out := sizeof(FBuffer); - end; - if FZRec.avail_out < sizeof(FBuffer) then - Source.WriteBuffer(FBuffer, sizeof(FBuffer) - FZRec.avail_out); - finally - deflateEnd(FZRec); - end; - inherited Destroy; -end; - -function TCompressionStream.CompressionCheck(code: Integer): Integer; -begin - Result := code; - if (code < 0) then - if code < -6 then - raise ECompressionError.CreateFmt(Errorstrings[0],[Code]) - else - raise ECompressionError.Create(ErrorStrings[Abs(Code)]); -end; - - -function TCompressionStream.Read(var Buffer; Count: Longint): Longint; -begin - raise ECompressionError.Create('Invalid stream operation'); - result:=0; -end; - -function TCompressionStream.Write(const Buffer; Count: Longint): Longint; -begin - FZRec.next_in := @Buffer; - FZRec.avail_in := Count; - if Source.Position <> FStrmPos then Source.Position := FStrmPos; - while (FZRec.avail_in > 0) do - begin - CompressionCheck(deflate(FZRec, 0)); - if FZRec.avail_out = 0 then - begin - Source.WriteBuffer(FBuffer, sizeof(FBuffer)); - FZRec.next_out := @FBuffer[0]; - FZRec.avail_out := sizeof(FBuffer); - FStrmPos := Source.Position; - Progress(Self); - end; - end; - Result := Count; -end; - -function TCompressionStream.Seek(Offset: Longint; Origin: Word): Longint; -begin - if (Offset = 0) and (Origin = soFromCurrent) then - Result := FZRec.total_in - else - raise ECompressionError.Create(SInvalidSeek); -end; - -function TCompressionStream.GetCompressionRate: extended; -begin - Result:=0.0; -{ With FZrec do - if total_in = 0 then - GetCompressionRate:=0.0 - else - GetCompressionRate:=1.0E2*(1.0E0-(total_out/total_in)); -} -end; - - -// TDecompressionStream - -constructor TDecompressionStream.Create(ASource: TStream; ASkipHeader : Boolean = False); -begin - inherited Create(ASource); - FZRec.next_in := @FBuffer[0]; - If ASkipHeader then - DeCompressionCheck(inflateInit2(FZRec,-MAX_WBITS)) - else - DeCompressionCheck(inflateInit(FZRec)); -end; - -destructor TDecompressionStream.Destroy; -begin - if FZRec.avail_in <> 0 then - Source.Seek(-FZRec.avail_in, soFromCurrent); - inflateEnd(FZRec); - inherited Destroy; -end; - -function TDecompressionStream.DecompressionCheck(code: Integer): Integer; -begin - Result := code; - If Code<0 then - if code < -6 then - raise EDecompressionError.CreateFmt(Errorstrings[0],[Code]) - else - raise EDecompressionError.Create(ErrorStrings[Abs(Code)]); -end; - -function TDecompressionStream.Read(var Buffer; Count: Longint): Longint; -begin - FZRec.next_out := @Buffer; - FZRec.avail_out := Count; - if Source.Position <> FStrmPos then Source.Position := FStrmPos; - while (FZRec.avail_out > 0) do - begin - if FZRec.avail_in = 0 then - begin - FZRec.avail_in := Source.Read(FBuffer, sizeof(FBuffer)); - if FZRec.avail_in = 0 then - begin - Result := Count - FZRec.avail_out; - Exit; - end; - FZRec.next_in := @FBuffer[0]; - FStrmPos := Source.Position; - Progress(Self); - end; - if DeCompressionCheck(inflate(FZRec, 0)) = Z_STREAM_END then - begin - Result := Count - FZRec.avail_out; - Exit; - end; - end; - Result := Count; -end; - -function TDecompressionStream.Write(const Buffer; Count: Longint): Longint; -begin - raise EDecompressionError.Create('Invalid stream operation'); - result:=0; -end; - -function TDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint; -var - I: Integer; - Buf: array [0..4095] of Char; -begin - if (Offset = 0) and (Origin = soFromBeginning) then - begin - DecompressionCheck(inflateReset(FZRec)); - FZRec.next_in := @FBuffer[0]; - FZRec.avail_in := 0; - Source.Position := 0; - FStrmPos := 0; - end - else if ( (Offset >= 0) and (Origin = soFromCurrent)) or - ( ((Offset - FZRec.total_out) > 0) and (Origin = soFromBeginning)) then - begin - if Origin = soFromBeginning then Dec(Offset, FZRec.total_out); - if Offset > 0 then - begin - for I := 1 to Offset div sizeof(Buf) do - ReadBuffer(Buf, sizeof(Buf)); - ReadBuffer(Buf, Offset mod sizeof(Buf)); - end; - end - else - raise EDecompressionError.Create(SInvalidSeek); - Result := FZRec.total_out; -end; - -// TGZFileStream - -Constructor TGZFileStream.Create(FileName: String;FileMode: TGZOpenMode); - -Const OpenStrings : array[TGZOpenMode] of pchar = ('rb','wb'); - -begin - FOpenMode:=FileMode; - FFile:=gzopen (PChar(FileName),Openstrings[FileMode]); - If FFile=Nil then - Raise ezlibError.CreateFmt (SCouldntOpenFIle,[FileName]); -end; - -Destructor TGZFileStream.Destroy; -begin - gzclose(FFile); - Inherited Destroy; -end; - -Function TGZFileStream.Read(Var Buffer; Count : longint): longint; -begin - If FOpenMode=gzOpenWrite then - Raise ezliberror.create(SWriteOnlyStream); - Result:=gzRead(FFile,@Buffer,Count); -end; - -function TGZFileStream.Write(const Buffer; Count: Longint): Longint; -begin - If FOpenMode=gzOpenRead then - Raise EzlibError.Create(SReadonlyStream); - Result:=gzWrite(FFile,@Buffer,Count); -end; - -function TGZFileStream.Seek(Offset: Longint; Origin: Word): Longint; -begin - Result:=gzseek(FFile,Offset,Origin); - If Result=-1 then - Raise eZlibError.Create(SSeekError); -end; - -end.