소스 검색

* delete

git-svn-id: trunk@9944 -
marco 17 년 전
부모
커밋
c4fb658c70

+ 0 - 6
.gitattributes

@@ -913,12 +913,6 @@ packages/base/pthreads/pthrbsd.inc svneol=native#text/plain
 packages/base/pthreads/pthreads.pp svneol=native#text/plain
 packages/base/pthreads/pthrlinux.inc svneol=native#text/plain
 packages/base/pthreads/pthrsnos.inc -text
-packages/base/regexpr/Makefile svneol=native#text/plain
-packages/base/regexpr/Makefile.fpc svneol=native#text/plain
-packages/base/regexpr/fpmake.inc svneol=native#text/plain
-packages/base/regexpr/fpmake.pp svneol=native#text/plain
-packages/base/regexpr/regexpr.pp svneol=native#text/plain
-packages/base/regexpr/testreg1.pp svneol=native#text/plain
 packages/base/sqlite/Makefile svneol=native#text/plain
 packages/base/sqlite/Makefile.fpc svneol=native#text/plain
 packages/base/sqlite/fpmake.inc svneol=native#text/plain

+ 0 - 7
.gitignore

@@ -263,13 +263,6 @@ packages/base/pthreads/*.ppu
 packages/base/pthreads/*.s
 packages/base/pthreads/fpcmade.*
 packages/base/pthreads/units
-packages/base/regexpr/*.bak
-packages/base/regexpr/*.exe
-packages/base/regexpr/*.o
-packages/base/regexpr/*.ppu
-packages/base/regexpr/*.s
-packages/base/regexpr/fpcmade.*
-packages/base/regexpr/units
 packages/base/sqlite/*.bak
 packages/base/sqlite/*.exe
 packages/base/sqlite/*.o

+ 0 - 2267
packages/base/regexpr/Makefile

@@ -1,2267 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-OSNeedsComspecToRunBatch = go32v2 watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef COMSPEC
-ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
-RUNBATCH=$(COMSPEC) /C
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-ifneq ($(CPU_TARGET),)
-FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
-else
-FPC:=$(shell $(FPCPROG) -PB)
-endif
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override PACKAGE_NAME=regexpr
-override PACKAGE_VERSION=2.0.0
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=regexpr
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_EXAMPLES+=testreg1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLES+=testreg1
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX)
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-ifdef RUNBATCH
-EXECPPAS:=@$(RUNBATCH) $(PPAS)
-else
-EXECPPAS:=@$(PPAS)
-endif
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.inc $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
-	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
-	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
-	@$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
-	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
-	$(MKDIR) $(INSTALL_LIBDIR)
-	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
-	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
-	$(MKDIR) $(INSTALL_DATADIR)
-	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
-	$(MKDIR) $(INSTALL_SOURCEDIR)
-	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_distinstall
-fpc_distinstall: install exampleinstall
-.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/../fpc-pack
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-ifndef ZIPNAME
-ifdef DIST_ZIPNAME
-ZIPNAME=$(DIST_ZIPNAME)
-else
-ZIPNAME=$(PACKAGE_NAME)
-endif
-endif
-ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
-endif
-ifndef ZIPTARGET
-ifdef DIST_ZIPTARGET
-ZIPTARGET=DIST_ZIPTARGET
-else
-ZIPTARGET=install
-endif
-endif
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-ifndef inUnix
-USEZIPWRAPPER=1
-endif
-ifdef USEZIPWRAPPER
-ZIPPATHSEP=$(PATHSEP)
-ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
-else
-ZIPPATHSEP=/
-endif
-ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
-ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
-ifdef USETAR
-ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
-ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
-else
-ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
-ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
-endif
-fpc_zipinstall:
-	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
-	$(MKDIR) $(DIST_DESTDIR)
-	$(DEL) $(ZIPDESTFILE)
-ifdef USEZIPWRAPPER
-ifneq ($(ECHOREDIR),echo)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
-else
-	echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
-	echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
-	echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
-endif
-ifdef inUnix
-	/bin/sh $(ZIPWRAPPER)
-else
-ifdef RUNBATCH
-	$(RUNBATCH) (ZIPWRAPPER)
-else
-	$(ZIPWRAPPER)
-endif
-endif
-	$(DEL) $(ZIPWRAPPER)
-else
-	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
-endif
-	$(DELTREE) $(PACKDIR)
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
-fpc_zipexampleinstall:
-ifdef HASEXAMPLES
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
-endif
-fpc_zipdistinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
-	-$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
-	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(ECHO)
-	@$(ECHO)  == Package info ==
-	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
-	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC.......... $(FPC)
-	@$(ECHO)  FPC Version.. $(FPC_VERSION)
-	@$(ECHO)  Source CPU... $(CPU_SOURCE)
-	@$(ECHO)  Target CPU... $(CPU_TARGET)
-	@$(ECHO)  Source OS.... $(OS_SOURCE)
-	@$(ECHO)  Target OS.... $(OS_TARGET)
-	@$(ECHO)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
-	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
-	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
-	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
-	@$(ECHO)
-	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
-	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
-	@$(ECHO)
-	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
-	@$(ECHO)  Install Files....... $(INSTALL_FILES)
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-	@$(ECHO)  DateStr.............. $(DATESTR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples: fpc_examples
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall: fpc_distinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
-zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:

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

@@ -1,24 +0,0 @@
-#
-#   Makefile.fpc for RegExpr
-#
-
-[package]
-name=regexpr
-version=2.0.0
-
-[target]
-units=regexpr
-examples=testreg1
-
-[compiler]
-options=-S2
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../..
-
-[rules]
-.NOTPARALLEL:
-

+ 0 - 11
packages/base/regexpr/fpmake.inc

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

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

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

+ 0 - 1207
packages/base/regexpr/regexpr.pp

@@ -1,1207 +0,0 @@
-{ $DEFINE DEBUG}
-
-{
-    This unit implements basic regular expression support
-
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2000-2006 by Florian Klaempfland Carl Eric Codere
-
-    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.
-
- **********************************************************************}
-{.$ define DEBUG}
-
-(*
-  - newline handling (uses all known formats of ASCII, #10,#13,#13#10 and #$85
-
-  TODO:
-     - correct backtracking, for example in (...)*
-     - full | support (currently requires to put all items with | operator
-        between parenthesis (in a group) to take care over order priority.
-          Therefore the following would work: (foo)|(nofoo) but not
-          foo|nofoo
-     - getting substrings and using substrings with \1 etc.
-     - do we treat several multiline characters in a row as a single
-        newline character for $ and ^?
-*)
-
-{$IFDEF FPC}
-{$mode objfpc}
-{$ENDIF}
-
-{** @abstract(Regular expression unit)
-
-    This unit implements a basic regular expression parser that mostly conforms
-    to the POSIX extended-regular expression syntax. It also supports standard
-    escape characters for patterns (as defined in PERL).
-}
-unit regexpr;
-
-  interface
-
-    { the following declarions are only in the interface because }
-    { some procedures return pregexprentry but programs which   }
-    { use this unit shouldn't access this data structures        }
-    type
-       tcharset = set of char;
-       tregexprentrytype = (ret_charset,ret_or,
-          ret_illegalend,ret_backtrace,ret_startline,
-          ret_endline,ret_pattern);
-
-       pregexprentry = ^tregexprentry;
-       tregexprentry = record
-          next,nextdestroy : pregexprentry;
-          case typ : tregexprentrytype of
-             ret_charset : (chars : tcharset; elsepath : pregexprentry);
-             {** This is a complete pattern path ()+ , ()* or ()?, n,m }
-             ret_pattern: (pattern: pregexprentry; minoccurs: integer; maxoccurs: integer; alternative : pregexprentry);
-       end;
-
-       tregexprflag = (
-         ref_singleline,
-         {** This indicates that a start of line is either the
-             start of the pattern or a linebreak. }
-         ref_multiline,
-         {** The match will be done in a case-insensitive way
-              according to US-ASCII character set. }
-         ref_caseinsensitive);
-       tregexprflags = set of tregexprflag;
-
-       TRegExprEngine = record
-          Data : pregexprentry;
-          DestroyList : pregexprentry;
-          Flags : TRegExprFlags;
-       end;
-
-     const
-        cs_allchars : tcharset = [#0..#255];
-        cs_wordchars : tcharset = ['A'..'Z','a'..'z','_','0'..'9'];
-        cs_newline : tcharset = [#10];
-        cs_digits : tcharset = ['0'..'9'];
-        cs_whitespace : tcharset = [' ',#9];
-
-     var
-        { these are initilized in the init section of the unit }
-        cs_nonwordchars : tcharset;
-        cs_nondigits : tcharset;
-        cs_nonwhitespace : tcharset;
-
-     { the following procedures can be used by units basing }
-     { on the regexpr unit                                  }
-
-     {** From a regular expression, compile an encoded version of the regular expression.
-
-         @param(regexpr Regular expression to compile)
-         @param(flags Flags relating to the type of parsing that will occur)
-         @param(RegExprEngine The actual encoded version of the regular expression)
-         @returns(true if success, otherwise syntax error in compiling regular expression)
-     }
-     function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags;var RegExprEngine: TRegExprEngine): boolean;
-
-{$IFDEF FPC}
-    {** Backward compatibility routine }
-     function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags): TREGExprEngine;
-{$ENDIF}
-
-     {** Frees all up resources used for the encoded regular expression }
-     procedure DestroyRegExprEngine(var regexpr : TRegExprEngine);
-
-     {** @abstract(Matches a regular expression)
-
-        @param(RegExprEngine The actual compiled regular expression to match against)
-        @param(p The text to search for for a match)
-        @param(index zero-based index to the start of the match -1 if no match in p)
-        @param(len length of the match)
-        @returns(true if there was a match, otherwise false)
-     }
-     function RegExprPos(RegExprEngine : TRegExprEngine;p : pchar;var index,len : longint) : boolean;
-
-     function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
-
-     { This function Escape known regex chars and place the result on Return. If something went wrong the
-       function will return false. }
-     function RegExprEscapeStr (const S : string) : string;
-
-  implementation
-
-{$ifdef DEBUG}
-     procedure writecharset(c : tcharset);
-
-       var
-          b : byte;
-
-       begin
-          for b:=20 to 255 do
-            if chr(b) in c then
-              write(chr(b));
-          writeln;
-       end;
-
-
-    const
-
-      typ2str : array[tregexprentrytype] of string =
-      (
-        'ret_charset',
-        'ret_or',
-        'ret_illegalend',
-        'ret_backtrace',
-        'ret_startline',
-        'ret_endline',
-        'ret_pattern'
-      );
-
-
-     { Dumps all the next elements of a tree }
-     procedure dumptree(space: string; regentry: pregexprentry);
-      begin
-        while assigned(regentry) do
-          begin
-            WriteLn(space+'------- Node Type ',typ2str[regentry^.typ]);
-            if (regentry^.typ = ret_charset) then
-              WriteCharSet(regentry^.chars);
-            { dump embedded pattern information }
-            if regentry^.typ = ret_pattern then
-               begin
-                 dumptree(space+#9,regentry^.pattern);
-                 WriteLn(space+#9,' --- Alternative nodes ');
-                 if assigned(regentry^.alternative) then
-                   dumptree(space+#9#9,regentry^.alternative);
-               end;
-            if regentry^.typ = ret_startline then
-               dumptree(space+#9,regentry^.pattern);
-            regentry:=regentry^.next;
-          end;
-      end;
-{$endif DEBUG}
-
-
-     {** Determines the length of a pattern, including sub-patterns.
-
-         It goes through the nodes and returns the pattern length
-         between the two, using minOccurs as required.
-
-         Called recursively.
-     }
-     function patlength(hp1: pregexprentry): integer;
-       var
-        count: integer;
-        hp: pregexprentry;
-       begin
-        count:=0;
-        if hp1^.typ=ret_pattern then
-            hp:=hp1^.pattern
-        else
-            hp:=hp1;
-        { now go through all chars and get the length
-          does not currently take care of embedded patterns
-        }
-        while assigned(hp) do
-          begin
-            if hp^.typ = ret_pattern then
-              begin
-                inc(count,patlength(hp));
-              end
-            else
-            if hp^.typ = ret_charset then
-               inc(count);
-            hp:=hp^.next;
-          end;
-        if hp1^.typ=ret_pattern then
-          begin
-            count:=hp1^.minOccurs*count;
-          end;
-         patlength:=count;
-       end;
-
-     function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags; var RegExprEngine:TRegExprEngine) : boolean;
-
-       var
-          first : pregexprentry;
-
-       procedure doregister(p : pregexprentry);
-
-         begin
-           p^.nextdestroy:=first;
-           first:=p;
-         end;
-
-       var
-          currentpos : pchar;
-          error : boolean;
-
-       procedure readchars(var chars: tcharset);
-
-         var
-            c1 : char;
-
-         begin
-            chars:=[];
-            case currentpos^ of
-               #0:
-                  exit;
-               '.':
-                  begin
-                     inc(currentpos);
-                     chars:=cs_allchars-cs_newline;
-                  end;
-               '\':
-                  begin
-                     inc(currentpos);
-                     case currentpos^ of
-                        #0:
-                          begin
-                             error:=true;
-                             exit;
-                          end;
-                        't':
-                           begin
-                              inc(currentpos);
-                              chars:=[#9];
-                           end;
-                        'n':
-                           begin
-                              inc(currentpos);
-                              chars:=[#10];
-                           end;
-                        'r':
-                           begin
-                              inc(currentpos);
-                              chars:=[#13];
-                           end;
-                        'd':
-                          begin
-                             inc(currentpos);
-                             chars:=cs_digits;
-                          end;
-                        'D':
-                          begin
-                             inc(currentpos);
-                             chars:=cs_nondigits;
-                          end;
-                        's':
-                          begin
-                             inc(currentpos);
-                             chars:=cs_whitespace;
-                          end;
-                        'S':
-                          begin
-                             inc(currentpos);
-                             chars:=cs_nonwhitespace;
-                          end;
-                        'w':
-                           begin
-                              inc(currentpos);
-                              chars:=cs_wordchars;
-                           end;
-                        'W':
-                           begin
-                              inc(currentpos);
-                              chars:=cs_nonwordchars;
-                           end;
-                        'f' :
-                            begin
-                              inc(currentpos);
-                              chars:= [#12];
-                            end;
-                        'a' :
-                            begin
-                              inc(currentpos);
-                              chars:= [#7];
-                            end;
-                         else
-                           begin { Some basic escaping...}
-                              chars := [currentpos^];
-                              inc (currentpos);
-                              {error:=true;
-                              exit;}
-                           end;
-                     end;
-                  end;
-               else
-                 begin
-                    if ref_caseinsensitive in flags then
-                       c1:=upcase(currentpos^)
-                    else
-                       c1:=currentpos^;
-
-                    inc(currentpos);
-                    if currentpos^='-' then
-                      begin
-                         inc(currentpos);
-                         if currentpos^=#0 then
-                           begin
-                              error:=true;
-                              exit;
-                           end;
-                         if ref_caseinsensitive in flags then
-                           chars:=[c1..upcase(currentpos^)]
-                         else
-                           chars:=[c1..currentpos^];
-                         inc(currentpos);
-                      end
-                    else
-                      chars:=[c1];
-                 end;
-            end;
-         end;
-
-
-       procedure readcharset(var charset: tcharset);
-
-         var
-           chars: tcharset;
-         begin
-            charset:=[];
-            case currentpos^ of
-               #0:
-                  exit;
-               '[':
-                  begin
-                     inc(currentpos);
-                     while currentpos^<>']' do
-                       begin
-                          if currentpos^='^' then
-                            begin
-                               inc(currentpos);
-                               readchars(chars);
-                               charset:=charset+(cs_allchars-chars);
-                            end
-                          else
-                            begin
-                              readchars(chars);
-                              charset:=charset+chars;
-                            end;
-                          if error or (currentpos^=#0) then
-                            begin
-                               error:=true;
-                               exit;
-                            end;
-                       end;
-                     inc(currentpos);
-                  end;
-               '^':
-                  begin
-                     inc(currentpos);
-                     readchars(chars);
-                     charset:=cs_allchars-chars;
-                  end;
-               else
-                  begin
-                    readchars(chars);
-                    charset:=chars;
-                  end;
-            end;
-         end;
-
-
-       (* takes care of parsing the {n}, {n,} and {n,m} regular expression
-          elements. In case of error, sets error to true and returns false,
-          otherwise returns true and set minoccurs and maxoccurs accordingly
-          (-1 if not present). *)
-       function parseoccurences(var currentpos: pchar; var minoccurs,maxoccurs: integer): boolean;
-         var
-          minOccursString: string;
-          maxOccursString: string;
-         begin
-           parseoccurences:=false;
-           minOccurs:=-1;
-           maxOccurs:=-1;
-           inc(currentpos);
-           minOccursString:='';
-           if currentPos^ = #0 then
-             begin
-               error:=true;
-               exit;
-             end;
-            while (currentpos^<>#0) and (currentpos^ in ['0'..'9']) do
-                begin
-                   minOccursString:=minOccursString+currentPos^;
-                   inc(currentpos);
-                end;
-            if length(minOccursString) = 0 then
-                begin
-                  error:=true;
-                  exit;
-                end;
-            Val(minOccursString,minOccurs);
-            { possible cases here: commad or end bracket }
-            if currentpos^= '}' then
-              begin
-                inc(currentpos);
-                maxOccurs:=minOccurs;
-                parseoccurences:=true;
-                exit;
-              end;
-            if currentpos^= ',' then
-              begin
-                maxOccursString:='';
-                inc(currentpos);
-                while (currentpos^<>#0) and (currentpos^ in ['0'..'9']) do
-                begin
-                   maxOccursString:=maxOccursString+currentPos^;
-                   inc(currentpos);
-                end;
-                if currentpos^= '}' then
-                 begin
-                   { If the length of the string is zero, then there is
-                     no upper bound. }
-                   if length(maxOccursString) > 0 then
-                      Val(maxOccursString,maxOccurs)
-                   else
-                      maxOccurs:=high(integer);
-                   inc(currentpos);
-                   parseoccurences:=true;
-                   exit;
-                 end;
-              end;
-              error:=true;
-         end;
-
-
-       function parseregexpr(next,elsepath : pregexprentry) : pregexprentry;
-
-         var
-            hp : pregexprentry;
-            minOccurs,maxOccurs: integer;
-            hp3: pregexprentry;
-            cs : tcharset;
-            chaining : ^pregexprentry;
-
-         begin
-            chaining:=nil;
-            parseregexpr:=nil;
-            elsepath:=nil;
-            if error then
-              exit;
-            { this dummy allows us to redirect the elsepath later }
-{            new(ep);
-            doregister(ep);
-            ep^.typ:=ret_charset;
-            ep^.chars:=[];
-            ep^.elsepath:=elsepath;
-            elsepath:=ep;}
-            while true do
-              begin
-                 if error then
-                   exit;
-                 case currentpos^ of
-                    '(':
-                       begin
-                          inc(currentpos);
-                          hp:=parseregexpr(nil,nil);
-                          { Special characters after the bracket }
-                           if error then
-                              exit;
-                          if currentpos^<>')' then
-                            begin
-                               error:=true;
-                               exit;
-                            end;
-                          inc(currentpos);
-                            case currentpos^ of
-                            '*':
-                               begin
-                                  inc(currentpos);
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=0;
-                                  hp3^.maxoccurs:=high(integer);
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-                            '+':
-                               begin
-                                  inc(currentpos);
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=1;
-                                  hp3^.maxoccurs:=high(integer);
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-
-                            '?':
-                               begin
-                                  inc(currentpos);
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=0;
-                                  hp3^.maxoccurs:=1;
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-                            '{':
-                               begin
-                                 if not parseOccurences(currentPos,minOccurs,maxOccurs) then
-                                   exit;
-                                  inc(currentpos);
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=minOccurs;
-                                  hp3^.maxoccurs:=maxOccurs;
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-                            else
-                              begin
-                                { go to end of this list - always the
-                                  last next used }
-(*
-                                hp3:=hp;
-                                while assigned(hp3^.next) do
-                                  begin
-                                    hp3:=hp3^.next;
-                                  end;
-                                if assigned(chaining) then
-                                   chaining^:=hp
-                                else
-                                   parseregexpr:=hp;
-                                chaining:=@hp3^.next;*)
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=1;
-                                  hp3^.maxoccurs:=1;
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-
-                              end;
-                          end;
-                       end;
-{ This is only partially implemented currently, as the terms before
-  the | character must be grouped together with parenthesis, which
-  is also compatible with other regular expressions.
-}
-                    '|':
-                       begin
-{$ifdef DEBUG}
-                          writeln('Creating or entry');
-{$endif DEBUG}
-                          if (not assigned (hp3)) then
-                            begin
-                              error:=true;
-                              exit;
-                            end;
-                          if (hp3^.typ <> ret_pattern) then
-                            begin
-                              error:=true;
-                              exit;
-                            end;
-                          while currentpos^='|' do
-                            begin
-                              inc(currentpos);
-                              if currentpos^=#0 then
-                                begin
-                                   error:=true;
-                                   exit;
-                                end;
-                              { always put the longest pattern first, so
-                                swap the trees as necessary.
-                              }
-                              hp := parseregexpr (next, elsepath);
-                              if patlength(hp) > patlength(hp3^.pattern) then
-                                begin
-                                  hp3^.alternative:=hp3^.pattern;
-                                  hp3^.pattern:=hp;
-                                end
-                              else
-                                 hp3^.alternative:=hp;
-                            end;
-                       end;
-                    ')':
-                       exit;
-                    '^':
-                       begin
-                          inc(currentpos);
-                          hp:=parseregexpr(nil,nil);
-                          { Special characters after the bracket }
-                           if error then
-                              exit;
-                           new(hp3);
-                           doregister(hp3);
-                           hp3^.typ:=ret_startline;
-                           hp3^.pattern:=hp;
-                           hp3^.elsepath:=elsepath;
-                           hp3^.next:=nil;
-                           if assigned(chaining) then
-                              chaining^:=hp3
-                           else
-                              parseregexpr:=hp3;
-                           chaining:=@hp3^.next;
-                       end;
-                    '$':
-                       begin
-                          inc(currentpos);
-                          new(hp);
-                          doregister(hp);
-                          hp^.typ:=ret_endline;
-                          hp^.elsepath:=elsepath;
-                          hp^.next:=nil;
-                          if assigned(chaining) then
-                            chaining^:=hp
-                          else
-                            parseregexpr:=hp;
-                          chaining:=@hp^.next;
-                       end;
-                    #0:
-                       exit;
-                    else
-                      begin
-                         readcharset(cs);
-                         if error then
-                           exit;
-                         case currentpos^ of
-                            '*':
-                               begin
-                                  inc(currentpos);
-                                  new(hp);
-                                  doregister(hp);
-                                  hp^.typ:=ret_charset;
-                                  hp^.chars:=cs;
-                                  hp^.elsepath:=nil;
-                                  hp^.next:=nil;
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=0;
-                                  hp3^.maxoccurs:=high(integer);
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-                            '+':
-                               begin
-                                  inc(currentpos);
-                                  new(hp);
-                                  doregister(hp);
-                                  hp^.typ:=ret_charset;
-                                  hp^.chars:=cs;
-                                  hp^.elsepath:=nil;
-                                  hp^.next:=nil;
-
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=1;
-                                  hp3^.maxoccurs:=high(integer);
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-                            '?':
-                               begin
-                                  inc(currentpos);
-                                  new(hp);
-                                  doregister(hp);
-                                  hp^.typ:=ret_charset;
-                                  hp^.chars:=cs;
-                                  hp^.elsepath:=nil;
-                                  hp^.next:=nil;
-
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.pattern:=hp;
-                                  hp3^.alternative:=nil;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=0;
-                                  hp3^.maxoccurs:=1;
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-                               end;
-                            '{':
-                               begin
-                                 if not parseOccurences(currentPos,minOccurs,maxOccurs) then
-                                   exit;
-                                  new(hp);
-                                  doregister(hp);
-                                  hp^.typ:=ret_charset;
-                                  hp^.chars:=cs;
-                                  hp^.elsepath:=nil;
-                                  hp^.next:=nil;
-
-                                  new(hp3);
-                                  doregister(hp3);
-                                  hp3^.typ:=ret_pattern;
-                                  hp3^.alternative:=nil;
-                                  hp3^.pattern:=hp;
-                                  hp3^.elsepath:=elsepath;
-                                  hp3^.minoccurs:=minOccurs;
-                                  hp3^.maxoccurs:=maxOccurs;
-                                  hp3^.next:=nil;
-                                  if assigned(chaining) then
-                                    chaining^:=hp3
-                                  else
-                                    parseregexpr:=hp3;
-                                  chaining:=@hp3^.next;
-
-                                end;
-                            else
-                               { Normal character }
-                               begin
-                                  new(hp);
-                                  doregister(hp);
-                                  hp^.typ:=ret_charset;
-                                  hp^.chars:=cs;
-                                  hp^.elsepath:=elsepath;
-                                  hp^.next:=next;
-                                  if assigned(chaining) then
-                                    chaining^:=hp
-                                  else
-                                    parseregexpr:=hp;
-                                  chaining:=@hp^.next;
-                                  continue;
-                               end;
-                           { This was a pattern }
-                         end; { END CASE }
-                      end;
-                 end;
-              end;
-         end;
-
-       var
-          endp : pregexprentry;
-
-       begin
-          GenerateRegExprEngine:=false;
-          RegExprEngine.Data:=nil;
-          RegExprEngine.DestroyList:=nil;
-          if regexpr=nil then
-            exit;
-          first:=nil;
-          if (ref_singleline in flags) and (ref_multiline in flags) then
-            exit;
-          currentpos:=regexpr;
-          GenerateRegExprEngine:=true;
-          error:=false;
-          new(endp);
-          doregister(endp);
-          endp^.typ:=ret_illegalend;
-          RegExprEngine.flags:=flags;
-          RegExprEngine.Data:=parseregexpr(nil,endp);
-{$IFDEF DEBUG}
-          writeln('========== Generating tree ============');
-          dumptree('',RegExprEngine.Data);
-{$ENDIF}
-          RegExprEngine.DestroyList:=first;
-          if error or (currentpos^<>#0) then
-            begin
-              GenerateRegExprEngine:=false;
-              DestroyRegExprEngine(RegExprEngine);
-            end;
-       end;
-
-
-{$IFDEF FPC}
-    function GenerateRegExprEngine(regexpr : pchar;flags : tregexprflags): TREGExprEngine;
-    var
-     r: TRegExprEngine;
-    begin
-      GenerateRegExprEngine(regexpr,flags,r);
-      GenerateRegExprEngine:=r;
-    end;
-{$ENDIF}
-
-    procedure DestroyRegExprEngine(var regexpr : TRegExprEngine);
-
-       var
-          hp : pregexprentry;
-
-       begin
-          hp:=regexpr.DestroyList;
-          while assigned(hp) do
-            begin
-               regexpr.DestroyList:=hp^.nextdestroy;
-               dispose(hp);
-               hp:=regexpr.DestroyList;
-            end;
-          regexpr.Data:=nil;
-          regexpr.DestroyList:=nil;
-       end;
-
-     function RegExprPos(regexprengine : TRegExprEngine;p : pchar;var index,len : longint) : boolean;
-
-       var
-          lastpos : pchar;
-          firstpos: pchar;
-
-       { Does the actual search of the data - return true if the term was found }
-       function dosearch(regexprentry : pregexprentry;pos : pchar) : boolean;
-       var
-          found: boolean;
-          checkvalue: boolean;
-          savedpos: pchar;
-          counter: word;
-
-         begin
-            dosearch:=false;
-            while true do
-              begin
-                 {$IFDEF Debug}
-                 writeln('Entering ',typ2str[regexprentry^.typ]);
-                 writeln('Pattern length ',patlength(regexprentry));
-                 {$ENDIF Debug}
-                 case regexprentry^.typ of
-                    ret_endline:
-                      begin
-                         { automatically a match! }
-                         if pos^ = #0 then
-                            begin
-                              dosearch:=true;
-                              exit;
-                            end;
-                         if ref_multiline in regexprengine.flags then
-                            begin
-                              { Supports DOS/Commodore/UNIX/IBM Mainframe line formats }
-                              { avoid reading invalid memory also }
-                                  if (pos^=#13) and ((pos+1)^=#10) then
-                                    begin
-                                      regexprentry:=regexprentry^.next;
-                                    end
-                                  else
-                                  if (pos^=#$85) or (pos^=#10) or ((pos^=#13) and ((pos-1) >= firstpos) and ((pos-1)^ <> #10)) then
-                                    begin
-                                       regexprentry:=regexprentry^.next;
-                                    end
-                                  else
-                                    begin
-                                       dosearch:=false;
-                                       exit;
-                                    end;
-                             end
-                           else
-                             exit;
-                      end;
-                    ret_pattern:
-                      begin
-                         found:=false;
-                         { Take care of occurences here }
-                         savedpos:=pos;
-                         counter:=0;
-                         repeat
-                           found:=dosearch(regexprentry^.pattern,pos);
-                           if not found then
-                            break;
-                           pos:=lastpos;
-                           inc(counter);
-                         until (not found) or (counter >= regexprentry^.maxoccurs) or (pos^= #0);
-
-                         if counter = 0 then
-                           begin
-                             { If there was no occurence and the minimum occurence is > 0 then
-                               problem.
-                             }
-                             if (regexprentry^.minoccurs > 0) then
-                              begin
-                                dosearch:=false;
-                                { verify alternative path as required }
-                                if assigned(regexprentry^.alternative) then
-                                  begin
-                                     dosearch:=dosearch(regexprentry^.alternative,savedpos);
-                                     exit;
-                                  end;
-                                exit;
-                              end;
-                             dosearch:=true;
-                             lastpos:=savedpos;
-                           end
-                         else
-                           { found }
-                           begin
-                              { Possible choices :
-                                 - found and (counter >= minOccurences) and (counter =< maxOccurences) = true
-                                 - found and (counter < minOccurences) or (counter > maxOccurences) = false
-                              }
-                              if (counter < regexprentry^.minoccurs) or (counter > regexprentry^.maxoccurs) then
-                                begin
-                                  dosearch:=false;
-                                  exit;
-                                end;
-                              dosearch:=true;
-                              { if all matches were found, and the current position
-                                points to zero (processed all characters) }
-                              if pos^=#0 then
-                                begin
-                                  dosearch:=true;
-                                  exit;
-                                end;
-                           end;
-                         { If we are that means the matches were valid, go to next element to match
-                         }
-                         regexprentry:=regexprentry^.next;
-                         if (counter = 0) and not assigned(regexprentry) then
-                           exit;
-                      end;
-                    ret_startline:
-                      begin
-                         checkvalue:=pos=firstpos;
-                         if ref_multiline in regexprengine.flags then
-                           begin
-                             { Supports DOS/Commodore/UNIX/IBM Mainframe line formats }
-                             { avoid reading invalid memory also }
-                             if
-                                 (
-                                   ((pos-1) >= firstpos) and ((pos-1)^=#$85)
-                                  )
-                              or
-                                 (
-                                   ((pos-1) >= firstpos) and ((pos-1)^=#10)
-                                  )
-                              or
-                                (
-                                 ((pos-1) >= firstpos) and ((pos-1)^=#13) and
-                                 ((pos)^ <> #10)
-                                )
-                             then
-                               begin
-                                 checkvalue:=true;
-                               end;
-                           end;
-                          if checkvalue then
-                            begin
-                              dosearch:=dosearch(regexprentry^.pattern,pos);
-                              regexprentry:=regexprentry^.next;
-                              if not dosearch then
-                                exit;
-                              pos:=lastpos;
-                            end
-                          else
-                            begin
-                              dosearch:=false;
-                              exit;
-                            end;
-                      end;
-                    ret_charset:
-                      begin
-                         if (pos^ in regexprentry^.chars) or
-                           ((ref_caseinsensitive in regexprengine.flags) and
-                            (upcase(pos^) in regexprentry^.chars)) then
-                           begin
-{$ifdef DEBUG}
-                              writeln('Found matching: ',pos^);
-{$endif DEBUG}
-                              regexprentry:=regexprentry^.next;
-                              inc(pos);
-                           end
-                         else
-                           begin
-{$ifdef DEBUG}
-                              writeln('Found unmatching: ',pos^);
-{$endif DEBUG}
-                              exit;
-                           end;
-                      end;
-                    ret_backtrace:
-                      begin
-{$ifdef DEBUG}
-                         writeln('Starting backtrace');
-{$endif DEBUG}
-                         if dosearch(regexprentry^.next,pos) then
-                           begin
-                              dosearch:=true;
-                              exit;
-                           end
-                         else if dosearch(regexprentry^.elsepath,pos) then
-                           begin
-                              dosearch:=true;
-                              exit;
-                           end
-                         else
-                           exit;
-                      end;
-                 end;
-                 lastpos:=pos;
-                 if regexprentry=nil then
-                   begin
-                      dosearch:=true;
-                      exit;
-                   end;
-                 if regexprentry^.typ=ret_illegalend then
-                   exit;
-                 { end of string, and we were expecting an end of string }
-                 if (pos^=#0) and (regexprentry^.typ = ret_endline) and
-                    (not assigned(regexprentry^.next)) then
-                   begin
-                     dosearch:=true;
-                     exit;
-                   end;
-                 if pos^=#0 then
-                   exit;
-              end;
-         end;
-
-       begin
-          RegExprPos:=false;
-          index:=0;
-          len:=0;
-          firstpos:=p;
-          if regexprengine.Data=nil then
-            exit;
-          while p^<>#0 do
-            begin
-               if dosearch(regexprengine.Data,p) then
-                 begin
-                    len:=lastpos-p;
-                    RegExprPos:=true;
-                    exit;
-                 end
-               else
-                 begin
-                    inc(p);
-                    inc(index);
-                 end;
-            end;
-          index:=-1;
-       end;
-
-
-  function RegExprReplaceAll(RegExprEngine : TRegExprEngine;const src,newstr : ansistring;var dest : ansistring) : sizeint;
-    var
-      index,len : longint;
-      pos,lastpos : pchar;
-      first : boolean;
-      oldlength : PtrInt;
-    begin
-      pos:=pchar(src);
-      lastpos:=nil;
-      first:=true;
-      Result:=0;
-      { estimate some length }
-      SetLength(dest,length(src)+((length(src) div 10)*length(newstr)));
-      while RegExprPos(RegExprEngine,pos,index,len) do
-        begin
-          inc(pos,index);
-          if (lastpos = nil) or (pos>lastpos) then
-            begin
-              if lastpos = nil then lastpos := pchar(src);
-              { copy skipped part }
-
-              { because we cheat with SetLength a SetLength(...,0) isn't what we want
-                so we've to trick at the first SetLength call
-              }
-              if first then
-                begin
-                  SetLength(dest,(pos-lastpos));
-                  { cast dest here because it is already unified }
-                  move(lastpos^,char(dest[1]),pos-lastpos);
-                end
-              else
-                begin
-                  oldlength:=Length(dest);
-                  SetLength(dest,oldlength+(pos-lastpos));
-                  move(lastpos^,char(dest[oldlength+1]),pos-lastpos);
-                end;
-              first:=false;
-            end;
-          { found }
-          inc(Result);
-          dest:=dest+newstr;
-          inc(pos,len);
-          lastpos:=pos;
-        end;
-      { copy remainder }
-      len:=strlen(pos);
-      if first then
-        begin
-          SetLength(dest,len);
-          move(pos^,char(dest[length(dest)+1]),len);
-        end
-      else
-        begin
-          oldlength:=Length(dest);
-          SetLength(dest,oldlength+len);
-          move(pos^,char(dest[oldlength+1]),len);
-        end
-    end;
-
-
-  function RegExprEscapeStr (const S : string) : string;
-    var
-     i, len   : integer;
-     s1: string;
-    begin
-      RegExprEscapeStr:= '';
-      s1:='';
-      if (S = '') then
-       exit;
-
-      len := Length (S);
-
-      for i := 1 to len do
-        begin
-          if (S [i] in ['(','|', '.', '*', '?', '^', '$', '-', '[', '{', '}', ']', ')', '\']) then
-            begin
-              s1 := s1 + '\';
-            end;
-
-          s1 := s1 + S[i];
-        end;
-      RegExprEscapeStr:=s1;
-    end;
-
-begin
-   cs_nonwordchars:=cs_allchars-cs_wordchars;
-   cs_nondigits:=cs_allchars-cs_digits;
-   cs_nonwhitespace:=cs_allchars-cs_whitespace;
-end.

+ 0 - 877
packages/base/regexpr/testreg1.pp

@@ -1,877 +0,0 @@
-{$IFDEF FPC}
-{$MODE OBJFPC}
-{$ENDIF}
-program testreg1;
-uses
-   regexpr;
-
-var
-   r         : tregexprengine;
-   index,len : longint;
-   S         : String;
-   Dest	     : AnsiString;
-
-procedure do_error(i : longint);
-
-  begin
-     writeln('error near ',i,' index: ',index,' len: ',len);
-     halt(1);
-  end;
-
-var
- initok: boolean;
-begin
-   writeln('*** Testing unit regexpr ***');
-
-   writeln('*** Searching tests ***');
-   { basic tests }
-
-   initok:=GenerateRegExprEngine('.*',[],r);
-   if not initok then
-     do_error(90);
-   if not(RegExprPos(r,'CXXXX',index,len)) or
-     (index<>0) or (len<>5) then
-     do_error(91);
-   DestroyregExprEngine(r);
-
-   { java package name }
-   initok:=GenerateRegExprEngine('[A-Za-z]+([.][0-9A-Za-z]+)*',[],r);
-   if not initok then
-     do_error(92);
-   if not(RegExprPos(r,'CXXXX',index,len)) or
-     (index<>0) or (len<>5) then
-     do_error(92);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('[A-Za-z]+([.][0-9A-Za-z]+)*',[],r);
-   if not initok then
-     do_error(92);
-   if not(RegExprPos(r,'CXXXX.A',index,len)) or
-     (index<>0) or (len<>7) then
-     do_error(92);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('[A-Za-z]+([.][0-9A-Za-z]+)*',[],r);
-   if not initok then
-     do_error(92);
-   if not(RegExprPos(r,'CXXXX.A9Package',index,len)) or
-     (index<>0) or (len<>15) then
-     do_error(92);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('[A-Za-z]+([.][0-9A-Za-z]+)*',[],r);
-   if not initok then
-     do_error(92);
-   if not(RegExprPos(r,'1CXXXX.A9Package',index,len)) or
-     (index<>1) or (len<>15) then
-     do_error(92);
-   DestroyregExprEngine(r);
-
-   { singleline }
-
-   initok:=GenerateRegExprEngine('^TEST1',[],r);
-   if not initok then
-     do_error(101);
-   if (RegExprPos(r,'THISISATEST1TEST1THIS',index,len)) then
-     do_error(101);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('^TEST1(ANOTHER)',[],r);
-   if not initok then
-     do_error(102);
-   if (RegExprPos(r,'THISISATEST1ANOTHER',index,len)) then
-     do_error(102);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('^TEST1(ANOTHER)',[],r);
-   if not initok then
-     do_error(103);
-   if not(RegExprPos(r,'TEST1ANOTHER',index,len)) or
-     (index<>0) or (len<>12) then
-     do_error(103);
-   DestroyregExprEngine(r);
-
-   { multiline }
-
-   { UNIX Newline }
-   initok:=GenerateRegExprEngine('^TEST1',[ref_multiline],r);
-   if not initok then
-     do_error(120);
-   if not(RegExprPos(r,'THISISATEST1'#10'TEST12',index,len)) or
-     (index<>13) or (len<>5) then
-     do_error(120);
-   DestroyregExprEngine(r);
-
-   { Apple Newline }
-   initok:=GenerateRegExprEngine('^TEST1',[ref_multiline],r);
-   if not initok then
-     do_error(121);
-   if not(RegExprPos(r,'THISISATEST1'#13'TEST12',index,len)) or
-     (index<>13) or (len<>5) then
-     do_error(121);
-   DestroyregExprEngine(r);
-
-   { DOS Newline }
-   initok:=GenerateRegExprEngine('^TEST1',[ref_multiline],r);
-   if not initok then
-     do_error(122);
-   if not(RegExprPos(r,'THISISATEST1'#13#10'TEST12',index,len)) or
-     (index<>14) or (len<>5) then
-     do_error(122);
-   DestroyregExprEngine(r);
-
-   { IBM Mainframe Newline }
-   initok:=GenerateRegExprEngine('^TEST1',[ref_multiline],r);
-   if not initok then
-     do_error(123);
-   if not(RegExprPos(r,'THISISATEST1'#$85'TEST12',index,len)) or
-     (index<>13) or (len<>5) then
-     do_error(123);
-   DestroyregExprEngine(r);
-
-   { Some weird cases }
-   initok:=GenerateRegExprEngine('^TEST1',[ref_multiline],r);
-   if not initok then
-     do_error(124);
-   if not(RegExprPos(r,#13#10#13#10'TEST12',index,len)) or
-     (index<>4) or (len<>5) then
-     do_error(124);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('^TEST1',[ref_multiline],r);
-   if not initok then
-     do_error(125);
-   if RegExprPos(r,#13#10#13#10'F',index,len) then
-     do_error(125);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('^TEST1(ANOTHER)',[ref_multiline],r);
-   if not initok then
-     do_error(102);
-   if (RegExprPos(r,'THISISATEST1ANOTHER',index,len)) then
-     do_error(102);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('^TEST1(ANOTHER)',[],r);
-   if not initok then
-     do_error(103);
-   if not(RegExprPos(r,'TEST1ANOTHER',index,len)) or
-     (index<>0) or (len<>12) then
-     do_error(103);
-   DestroyregExprEngine(r);
-
-   { END OF LINE CASES }
-   initok:=GenerateRegExprEngine('TEST1$',[],r);
-   if not initok then
-     do_error(101);
-   if (RegExprPos(r,'THISISATEST1TEST1THIS',index,len)) then
-     do_error(101);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('TEST1(ANOTHER)$',[],r);
-   if not initok then
-     do_error(102);
-   if not(RegExprPos(r,'!TEST1ANOTHER',index,len)) or
-     (index<>1) or (len<>12) then
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('TEST1(ANOTHER)$',[],r);
-   if not initok then
-     do_error(102);
-   if not(RegExprPos(r,'!TEST1ANOTHERFOOBARTEST1ANOTHER',index,len)) or
-     (index<>19) or (len<>12) then
-   DestroyregExprEngine(r);
-
-   { UNIX Newline }
-   initok:=GenerateRegExprEngine('TEST1$',[ref_multiline],r);
-   if not initok then
-     do_error(120);
-   if not(RegExprPos(r,'THISISATEST1'#10'TEST12',index,len)) or
-     (index<>7) or (len<>5) then
-     do_error(120);
-   DestroyregExprEngine(r);
-
-   { Apple Newline }
-   initok:=GenerateRegExprEngine('TEST1$',[ref_multiline],r);
-   if not initok then
-     do_error(121);
-   if not(RegExprPos(r,'THISISATEST1'#13'TEST12',index,len)) or
-     (index<>7) or (len<>5) then
-     do_error(121);
-   DestroyregExprEngine(r);
-
-   { DOS Newline }
-   initok:=GenerateRegExprEngine('TEST1$',[ref_multiline],r);
-   if not initok then
-     do_error(122);
-   if not(RegExprPos(r,'THISISATEST1'#13#10'TEST12',index,len)) or
-     (index<>7) or (len<>5) then
-     do_error(122);
-   DestroyregExprEngine(r);
-
-   { IBM Mainframe Newline }
-   initok:=GenerateRegExprEngine('TEST1$',[ref_multiline],r);
-   if not initok then
-     do_error(123);
-   if not(RegExprPos(r,'THISISATEST1'#$85'TEST12',index,len)) or
-     (index<>7) or (len<>5) then
-     do_error(123);
-   DestroyregExprEngine(r);
-
-   { Some weird cases }
-   initok:=GenerateRegExprEngine('TEST1$',[ref_multiline],r);
-   if not initok then
-     do_error(124);
-   if not(RegExprPos(r,#13#10#13#10'TEST1'#13#10,index,len)) or
-     (index<>4) or (len<>5) then
-     do_error(124);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('TEST1$',[ref_multiline],r);
-   if not initok then
-     do_error(125);
-   if RegExprPos(r,#13#10#13#10'F'#13#10#13#10,index,len) then
-     do_error(125);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('TEST1(ANOTHER)$',[ref_multiline],r);
-   if not initok then
-     do_error(102);
-   if (RegExprPos(r,'THISISATEST1ANOTHERFOO',index,len)) then
-     do_error(102);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('TEST1(ANOTHER)$',[],r);
-   if not initok then
-     do_error(103);
-   if not(RegExprPos(r,'TEST1ANOTHER',index,len)) or
-     (index<>0) or (len<>12) then
-     do_error(103);
-   DestroyregExprEngine(r);
-
-   { start and end of string handling }
-   initok:=GenerateRegExprEngine('^TEST1(ANOTHER)$',[],r);
-   if not initok then
-     do_error(103);
-   if not(RegExprPos(r,'TEST1ANOTHER',index,len)) or
-     (index<>0) or (len<>12) then
-     do_error(103);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('^TEST1(ANOTHER)$',[],r);
-   if not initok then
-     do_error(103);
-   if RegExprPos(r,'FOOTEST1ANOTHER',index,len) then
-     do_error(103);
-   DestroyregExprEngine(r);
-
-
-   (* {n,} tests *)
-   initok:=GenerateRegExprEngine('(AZ){0,}',[],r);
-   if not initok then
-     do_error(700);
-   if not(RegExprPos(r,'C',index,len)) or
-     (index<>0) or (len<>0) then
-     do_error(700);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ){0,}',[],r);
-   if not initok then
-     do_error(701);
-   if not(RegExprPos(r,'AZ',index,len)) or
-     (index<>0) or (len<>2) then
-     do_error(701);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ){0,}',[],r);
-   if not initok then
-     do_error(702);
-   if not(RegExprPos(r,'AZAZ',index,len)) or
-     (index<>0) or (len<>4) then
-     do_error(702);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ){0,}',[],r);
-   if not initok then
-     do_error(703);
-   if not(RegExprPos(r,'CatAZAZ',index,len)) or
-     (index<>0) or (len<>7) then
-     do_error(703);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('C(AZ){3,}',[],r);
-   if not initok then
-     do_error(704);
-   if (RegExprPos(r,'AZAZAZ',index,len)) then
-     do_error(704);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ){3,}',[],r);
-   if not initok then
-     do_error(705);
-   if not(RegExprPos(r,'BCatAZAZAZDABCD',index,len)) or
-     (index<>1) or (len<>9) then
-     do_error(705);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('CatAZ{0,}',[],r);
-   if not initok then
-     do_error(706);
-   if RegExprPos(r,'BCatDAZZZBCD',index,len) then
-     do_error(706);
-   DestroyregExprEngine(r);
-
-   (* {n} tests *)
-   initok:=GenerateRegExprEngine('Cat(AZ){3}',[],r);
-   if not initok then
-     do_error(715);
-   if not(RegExprPos(r,'BCatAZAZAZDABCD',index,len)) or
-     (index<>1) or (len<>9) then
-     do_error(715);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('CatAz{5}',[],r);
-   if not initok then
-     do_error(716);
-   if not(RegExprPos(r,'BCatAzzzzzDABCD',index,len)) or
-     (index<>1) or (len<>9) then
-     do_error(716);
-
-   initok:=GenerateRegExprEngine('CatAz{5}',[],r);
-   if not initok then
-     do_error(717);
-   if RegExprPos(r,'BCatDAzizzzzHello',index,len) then
-     do_error(717);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('CatAz{0}',[],r);
-   if not initok then
-     do_error(718);
-   if RegExprPos(r,'BCatDAzizzzzHello',index,len) then
-     do_error(718);
-   DestroyregExprEngine(r);
-
-   (* {n,m} tests *)
-   initok:=GenerateRegExprEngine('Cat(AZ){1,3}',[],r);
-   if not initok then
-     do_error(725);
-   if not(RegExprPos(r,'BCatAZAZAZDABCD',index,len)) or
-     (index<>1) or (len<>9) then
-     do_error(725);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('CatAz{1,5}',[],r);
-   if not initok then
-     do_error(726);
-   if not(RegExprPos(r,'BCatAzzzzzzzzzzDABCD',index,len)) or
-     (index<>1) or (len<>9) then
-     do_error(726);
-
-   initok:=GenerateRegExprEngine('CatAz{1,1}',[],r);
-   if not initok then
-     do_error(727);
-   if not(RegExprPos(r,'BCatAzzzzzzzzzzDABCD',index,len)) or
-     (index<>1) or (len<>5) then
-     do_error(727);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('CatAz{3,4}',[],r);
-   if not initok then
-     do_error(728);
-   if not(RegExprPos(r,'BCatAzzzzzzzzzzDABCD',index,len)) or
-     (index<>1) or (len<>8) then
-     do_error(728);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('CatAz{0,0}',[],r);
-   if not initok then
-     do_error(729);
-   if RegExprPos(r,'BCatDAzizzzzHello',index,len) then
-     do_error(729);
-   DestroyregExprEngine(r);
-
-
-   { ()* tests }
-   initok:=GenerateRegExprEngine('(AZ)*',[],r);
-   if not initok then
-     do_error(800);
-   if not(RegExprPos(r,'C',index,len)) or
-     (index<>0) or (len<>0) then
-     do_error(800);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ)*',[],r);
-   if not initok then
-     do_error(801);
-   if not(RegExprPos(r,'AZ',index,len)) or
-     (index<>0) or (len<>2) then
-     do_error(801);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ)*',[],r);
-   if not initok then
-     do_error(802);
-   if not(RegExprPos(r,'AZAZ',index,len)) or
-     (index<>0) or (len<>4) then
-     do_error(802);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ)*',[],r);
-   if not initok then
-     do_error(803);
-   if not(RegExprPos(r,'CatAZAZ',index,len)) or
-     (index<>0) or (len<>7) then
-     do_error(803);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('C(AZ)*',[],r);
-   if not initok then
-     do_error(804);
-   if (RegExprPos(r,'AZAZ',index,len)) then
-     do_error(804);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ)*',[],r);
-   if not initok then
-     do_error(805);
-   if not(RegExprPos(r,'BCatAZAZDABCD',index,len)) or
-     (index<>1) or (len<>7) then
-     do_error(805);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ)*',[],r);
-   if not initok then
-     do_error(806);
-   if not(RegExprPos(r,'BCatDABCD',index,len)) or
-     (index<>1) or (len<>3) then
-     do_error(806);
-   DestroyregExprEngine(r);
-
-
-   { ()+ tests }
-   initok:=GenerateRegExprEngine('(AZ)+',[],r);
-   if not initok then
-     do_error(850);
-   if (RegExprPos(r,'C',index,len)) then
-     do_error(850);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ)+',[],r);
-   if not initok then
-     do_error(851);
-   if not(RegExprPos(r,'AZ',index,len)) or
-     (index<>0) or (len<>2) then
-     do_error(851);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ)+',[],r);
-   if not initok then
-     do_error(852);
-   if not(RegExprPos(r,'AZAZ',index,len)) or
-     (index<>0) or (len<>4) then
-     do_error(852);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ)+',[],r);
-   if not initok then
-     do_error(853);
-   if not(RegExprPos(r,'CatAZAZ',index,len)) or
-     (index<>0) or (len<>7) then
-     do_error(853);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('C(AZ)+',[],r);
-   if not initok then
-     do_error(854);
-   if (RegExprPos(r,'AZAZ',index,len)) then
-     do_error(854);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('Cat(AZ)+',[],r);
-   if not initok then
-     do_error(855);
-   if not(RegExprPos(r,'BCatAZAZDABCD',index,len)) or
-     (index<>1) or (len<>7) then
-     do_error(855);
-   DestroyregExprEngine(r);
-
-   { ()? tests }
-
-   initok:=GenerateRegExprEngine('(AZ)?',[],r);
-   if not initok then
-     do_error(900);
-   if not(RegExprPos(r,'C',index,len)) or
-     (index<>0) or (len<>0) then
-     do_error(900);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ)?',[],r);
-   if not initok then
-     do_error(901);
-   if not(RegExprPos(r,'AZ',index,len)) or
-     (index<>0) or (len<>2) then
-     do_error(901);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('(AZ)?',[],r);
-   if not initok then
-     do_error(902);
-   if not(RegExprPos(r,'AZAZ',index,len)) or
-     (index<>0) or (len<>2) then
-     do_error(902);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('Cat(AZ)?',[],r);
-   if not(RegExprPos(r,'CatAZAZ',index,len)) or
-     (index<>0) or (len<>5) then
-     do_error(903);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('C(AZ)?',[],r);
-   if (RegExprPos(r,'AZAZ',index,len)) then
-     do_error(904);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('Cat(AZ)?',[],r);
-   if not(RegExprPos(r,'BCatAZAZDABCD',index,len)) or
-     (index<>1) or (len<>5) then
-     do_error(905);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('Cat(AZ)?',[],r);
-   if not(RegExprPos(r,'BCatDABCD',index,len)) or
-     (index<>1) or (len<>3) then
-     do_error(906);
-   DestroyregExprEngine(r);
-
-
-   { Character classes tests }
-
-   GenerateRegExprEngine('[A-Z]',[],r);
-   if not(RegExprPos(r,'234578923457823659GHJK38',index,len)) or
-     (index<>18) or (len<>1) then
-     do_error(1000);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[A-Z]*',[],r);
-   if not(RegExprPos(r,'2345ARTZU38',index,len)) or
-     (index<>0) or (len<>0) then
-     do_error(1002);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[A-Z]+',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>5) then
-     do_error(1003);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[A-Z][A-Z]*',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>5) then
-     do_error(1004);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[A-Z][A-Z]?',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>2) then
-     do_error(1005);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[^\d]+',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>5) then
-     do_error(1006);
-   DestroyregExprEngine(r);
-
-   { test chaining }
-
-   GenerateRegExprEngine('[A-Z][A-Z]?[A-Z]',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>3) then
-     do_error(1007);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[A-Z][A-Z]*[0-9]',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>6) then
-     do_error(1008);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('[A-Z]+[0-9]',[],r);
-   if not(RegExprPos(r,'234578923457823659ARTZU38',index,len)) or
-     (index<>18) or (len<>6) then
-     do_error(1009);
-   DestroyregExprEngine(r);
-
-   { case insensitive: }
-
-   GenerateRegExprEngine('[A-Z]',[ref_caseinsensitive],r);
-   if not(RegExprPos(r,'234578923457823659a38',index,len)) or
-     (index<>18) or (len<>1) then
-     do_error(1100);
-   DestroyregExprEngine(r);
-
-   { case insensitive: }
-   GenerateRegExprEngine('[a-z]',[ref_caseinsensitive],r);
-   if not(RegExprPos(r,'234578923457823659A38',index,len)) or
-     (index<>18) or (len<>1) then
-     do_error(1101);
-   DestroyregExprEngine(r);
-
-   { with parenthsis }
-   GenerateRegExprEngine('(foo)1234',[],r);
-   if not(RegExprPos(r,'1234   foo1234XXXX',index,len)) or
-     (index<>7) or (len<>7) then
-     do_error(1200);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('(((foo)))1234',[],r);
-   if not(RegExprPos(r,'1234   foo1234XXXX',index,len)) or
-     (index<>7) or (len<>7) then
-     do_error(1201);
-   DestroyregExprEngine(r);
-
-   GenerateRegExprEngine('(foo)(1234)',[],r);
-   if not(RegExprPos(r,'1234   foo1234XXXX',index,len)) or
-     (index<>7) or (len<>7) then
-     do_error(1202);
-   DestroyregExprEngine(r);
-
-   { test real backtracking }
-
-(*   r:=GenerateRegExprEngine('nofoo|foo',[]);
-   if not(RegExprPos(r,'1234   foo1234XXXX',index,len)) or
-     (index<>7) or (len<>3) then
-     do_error(1300);
-   DestroyregExprEngine(r);*)
-
-  GenerateRegExprEngine('abc\(123\)$',[],r);
-  if not (RegExprPos(r,'1234 abc(123)', index, len)) or
-         (index <> 5) or (len <> 8) then
-    do_error (1400);
-  DestroyregExprEngine(r);
-
-  GenerateRegExprEngine('^\t$',[ref_singleline],r);
-  if not (RegExprPos(r,#9, index, len)) or
-         (index <> 0) or (len <> 1) then
-    do_error (1401);
-  DestroyregExprEngine(r);
-
-  GenerateRegExprEngine('^\n$',[ref_singleline],r);
-  if not (RegExprPos(r,#10, index, len)) or
-         (index <> 0) or (len <> 1) then
-    do_error (1402);
-  DestroyregExprEngine(r);
-
-  GenerateRegExprEngine('^\f$',[ref_singleline],r);
-  if not (RegExprPos(r,#12, index, len)) or
-         (index <> 0) or (len <> 1) then
-    do_error (1403);
-  DestroyregExprEngine(r);
-
-  GenerateRegExprEngine('^\r$',[ref_singleline],r);
-  if not (RegExprPos(r,#13, index, len)) or
-         (index <> 0) or (len <> 1) then
-    do_error (1404);
-  DestroyregExprEngine(r);
-
-  GenerateRegExprEngine('^\a$',[ref_singleline],r);
-  if not (RegExprPos(r,#7, index, len)) or
-         (index <> 0) or (len <> 1) then
-    do_error (1405);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('^(([^:/?#]+):)',[],r);
-  if not (RegExprPos(r,'http:',index, len)) or
-         (index <> 0) or (len <> 5) then
-    do_error (1406);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('^(([^:/?#]+):)?(//([^/?#]*))?',[],r);
-  if not initok then
-     do_error(1407);
-  if not (RegExprPos(r,'http://www.myurl.com',index, len)) or
-         (index <> 0) or (len <> 20) then
-    do_error (1407);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?',[],r);
-  if not initok then
-     do_error(1408);
-  if not (RegExprPos(r,'http://www.myurl.com',index, len)) or
-         (index <> 0) or (len <> 20) then
-    do_error (1408);
-
-
-   writeln('*** Escaping tests ***');
-   s := '^Hello World \.  [a-z] \D { } |() ?a*.*\\ 1 $';
-   if RegExprEscapeStr(s)<>'\^Hello World \\\.  \[a\-z\] \\D \{ \} \|\(\) \?a\*\.\*\\\\ 1 \$' then
-     do_error(1450);
-
-   writeln('*** More search tests ***');
-
-  initok:=GenerateRegExprEngine('((nofoo)|(foo))1234',[],r);
-  if not initok then
-     do_error(1501);
-   if not(RegExprPos(r,'1234   nofoo1234XXXX',index,len)) or
-     (index<>7) or (len<>9) then
-     do_error(1501);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('((nofoo)|(foo)|(anotherbar))1234',[],r);
-   if not initok then
-     do_error(1502);
-   if not(RegExprPos(r,'anotherbar1234XXXX',index,len)) or
-     (index<>0) or (len<>14) then
-     do_error(1502);
-   DestroyregExprEngine(r);
-
-
-   initok:=GenerateRegExprEngine('((nofoo)|(foo)|(anotherfoo))1234',[],r);
-   if not initok then
-     do_error(1503);
-   if not(RegExprPos(r,'1234   anotherfoo1234XXXX',index,len)) or
-     (index<>7) or (len<>14) then
-     do_error(1503);
-   DestroyregExprEngine(r);
-
-   initok:=GenerateRegExprEngine('(nofoo1234)|(foo1234)',[],r);
-   if not initok then
-     do_error(1504);
-   if not(RegExprPos(r,'1234   foo1234XXXX',index,len)) or
-     (index<>7) or (len<>7) then
-     do_error(1504);
-   DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('((foo)|(nofoo))1234',[],r);
-  if not initok then
-     do_error(1505);
-   if not(RegExprPos(r,'1234   nofoo1234XXXX',index,len)) or
-     (index<>7) or (len<>9) then
-     do_error(1505);
-   DestroyregExprEngine(r);
-
-{
-  initok:=GenerateRegExprEngine('\.localhost$',[],r);
-  if not initok then
-     do_error(1506);
-   if not(RegExprPos(r,'exsample.localhost',index,len)) or
-     (index<>8) or (len<>10) then
-     do_error(1506);
-   DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('[^e]\.localhost$',[],r);
-  if not initok then
-     do_error(1507);
-   if RegExprPos(r,'exsample.localhost',index,len) then
-     do_error(1507);
-   DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('.*[^e]\.localhost$',[],r);
-  if not initok then
-     do_error(1508);
-   if RegExprPos(r,'exsample.localhost',index,len) then
-     do_error(1508);
-   DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('x.*[^e]\.localhost$',[],r);
-  if not initok then
-     do_error(1509);
-   if RegExprPos(r,'exsample.localhost',index,len) then
-     do_error(1509);
-   DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('(nofoo|foo)1234',[],r);
-  if not initok then
-     do_error(1500);
-   if not(RegExprPos(r,'1234   nofoo1234XXXX',index,len)) or
-     (index<>8) or (len<>9) then
-     do_error(1500);
-   DestroyregExprEngine(r);
-
-   r:=GenerateRegExprEngine('(nofoo|foo|anotherfoo)1234',[]);
-   if not(RegExprPos(r,'1234   nofoo1234XXXX',index,len)) or
-     (index<>8) or (len<>9) then
-     do_error(1009);
-   DestroyregExprEngine(r);
-
-   r:=GenerateRegExprEngine('nofoo1234|foo1234',[]);
-   if (r.data=nil) or not(RegExprPos(r,'1234   foo1234XXXX',index,len)) or
-     (index<>7) or (len<>7) then
-     do_error(1010);
-   DestroyregExprEngine(r);
-   }
-
-  { *************************************************************************
-                              replacement tests
-   ************************************************************************* }
-  writeln('*** Replacement tests ***');
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2000);
-  if (RegExprReplaceAll(r,'asdfasdf','',Dest)<>1) or
-    (Dest<>'asdsdf') then
-    do_error(2001);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2002);
-  if (RegExprReplaceAll(r,'fa','',Dest)<>1) or
-    (Dest<>'') then
-    do_error(2003);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2004);
-  if RegExprReplaceAll(r,'','',Dest)<>0then
-    do_error(2005);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2006);
-  if (RegExprReplaceAll(r,'asdfafaasd','',Dest)<>2) or
-    (Dest<>'asdasd') then
-    do_error(2007);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2008);
-  if (RegExprReplaceAll(r,'asdfafaasdasdfafaasd','',Dest)<>4) or
-    (Dest<>'asdasdasdasd') then
-    do_error(2009);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2000);
-  if (RegExprReplaceAll(r,'fasdfasdf','',Dest)<>2) or
-    (Dest<>'sdsdf') then
-    do_error(2010);
-  DestroyregExprEngine(r);
-
-  initok:=GenerateRegExprEngine('fa',[],r);
-  if not initok then
-    do_error(2011);
-  if (RegExprReplaceAll(r,'fasdfafaasdasdfafaasd','',Dest)<>5) or
-    (Dest<>'sdasdasdasd') then
-    do_error(2012);
-  DestroyregExprEngine(r);
-
-   writeln('*** Testing unit regexpr was successful ***');
-end.