summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/base/regexpr/Makefile2267
-rw-r--r--packages/base/regexpr/Makefile.fpc24
-rw-r--r--packages/base/regexpr/fpmake.inc11
-rw-r--r--packages/base/regexpr/fpmake.pp17
-rw-r--r--packages/base/regexpr/regexpr.pp1207
-rw-r--r--packages/base/regexpr/testreg1.pp877
6 files changed, 0 insertions, 4403 deletions
diff --git a/packages/base/regexpr/Makefile b/packages/base/regexpr/Makefile
deleted file mode 100644
index afd5c1a06b..0000000000
--- a/packages/base/regexpr/Makefile
+++ /dev/null
@@ -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:
diff --git a/packages/base/regexpr/Makefile.fpc b/packages/base/regexpr/Makefile.fpc
deleted file mode 100644
index 65501f2363..0000000000
--- a/packages/base/regexpr/Makefile.fpc
+++ /dev/null
@@ -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:
-
diff --git a/packages/base/regexpr/fpmake.inc b/packages/base/regexpr/fpmake.inc
deleted file mode 100644
index b8a03cdf82..0000000000
--- a/packages/base/regexpr/fpmake.inc
+++ /dev/null
@@ -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;
diff --git a/packages/base/regexpr/fpmake.pp b/packages/base/regexpr/fpmake.pp
deleted file mode 100644
index d4b6178682..0000000000
--- a/packages/base/regexpr/fpmake.pp
+++ /dev/null
@@ -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.
-
diff --git a/packages/base/regexpr/regexpr.pp b/packages/base/regexpr/regexpr.pp
deleted file mode 100644
index 9dd7ea14bf..0000000000
--- a/packages/base/regexpr/regexpr.pp
+++ /dev/null
@@ -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.
diff --git a/packages/base/regexpr/testreg1.pp b/packages/base/regexpr/testreg1.pp
deleted file mode 100644
index ff06360ddb..0000000000
--- a/packages/base/regexpr/testreg1.pp
+++ /dev/null
@@ -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.