regexp #187
200
3rd/pcre2/AUTHORS.md
Normal file
200
3rd/pcre2/AUTHORS.md
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
PCRE2 Authorship and Contributors
|
||||||
|
=================================
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
---------
|
||||||
|
|
||||||
|
Please see the file [LICENCE](./LICENCE.md) in the PCRE2 distribution for
|
||||||
|
copyright details.
|
||||||
|
|
||||||
|
|
||||||
|
MAINTAINERS
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The PCRE and PCRE2 libraries were authored and maintained by Philip Hazel.
|
||||||
|
|
||||||
|
Since 2024, the contributors with administrator access to the project are now
|
||||||
|
Nicholas Wilson and Zoltán Herczeg. See the file [SECURITY](./SECURITY.md) for
|
||||||
|
GPG keys.
|
||||||
|
|
||||||
|
Both administrators are volunteers acting in a personal capacity.
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Role</th>
|
||||||
|
<tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
Nicholas Wilson<br/>
|
||||||
|
`nicholas@nicholaswilson.me.uk`<br/>
|
||||||
|
Currently of Microsoft Research Cambridge, UK
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
* General project administration & maintenance
|
||||||
|
* Release management
|
||||||
|
* Code maintenance
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
Zoltán Herczeg<br/>
|
||||||
|
`hzmester@freemail.hu`<br/>
|
||||||
|
Currently of the University of Szeged, Hungary
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
* Code maintenance
|
||||||
|
* Ownership of `sljit` and PCRE2's JIT
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
CONTRIBUTORS
|
||||||
|
------------
|
||||||
|
|
||||||
|
Many others have participated and contributed to PCRE2 over its history.
|
||||||
|
|
||||||
|
The maintainers are grateful for all contributions and participation over the
|
||||||
|
years. We apologise for any names we have forgotten.
|
||||||
|
|
||||||
|
We are especially grateful to Philip Hazel, creator of PCRE and PCRE2, and
|
||||||
|
maintainer from 1997 to 2024.
|
||||||
|
|
||||||
|
All names listed alphabetically.
|
||||||
|
|
||||||
|
### Contributors to PCRE2
|
||||||
|
|
||||||
|
This list includes names up until the PCRE2 10.44 release. New names will be
|
||||||
|
added from the Git history on each release.
|
||||||
|
|
||||||
|
Scott Bell
|
||||||
|
Carlo Marcelo Arenas Belón
|
||||||
|
Edward Betts
|
||||||
|
Jan-Willem Blokland
|
||||||
|
Ross Burton
|
||||||
|
Dmitry Cherniachenko
|
||||||
|
Alexey Chupahin
|
||||||
|
Jessica Clarke
|
||||||
|
Alejandro Colomar
|
||||||
|
Jeremie Courreges-Anglas
|
||||||
|
Addison Crump
|
||||||
|
Alex Dowad
|
||||||
|
Daniel Engberg
|
||||||
|
Daniel Richard G
|
||||||
|
David Gaussmann
|
||||||
|
Andrey Gorbachev
|
||||||
|
Jordan Griege
|
||||||
|
Jason Hood
|
||||||
|
Bumsu Hyeon
|
||||||
|
Roy Ivy
|
||||||
|
Martin Joerg
|
||||||
|
Guillem Jover
|
||||||
|
Ralf Junker
|
||||||
|
Ayesh Karunaratne
|
||||||
|
Michael Kaufmann
|
||||||
|
Yunho Kim
|
||||||
|
Joshua Kinard
|
||||||
|
David Korczynski
|
||||||
|
Uwe Korn
|
||||||
|
Jonas Kvinge
|
||||||
|
Kristian Larsson
|
||||||
|
Kai Lu
|
||||||
|
Behzod Mansurov
|
||||||
|
B. Scott Michel
|
||||||
|
Nathan Moinvaziri
|
||||||
|
Mike Munday
|
||||||
|
Marc Mutz
|
||||||
|
Fabio Pagani
|
||||||
|
Christian Persch
|
||||||
|
Tristan Ross
|
||||||
|
William A Rowe Jr
|
||||||
|
David Seifert
|
||||||
|
Yaakov Selkowitz
|
||||||
|
Rich Siegel
|
||||||
|
Karl Skomski
|
||||||
|
Maciej Sroczyński
|
||||||
|
Wolfgang Stöggl
|
||||||
|
Thomas Tempelmann
|
||||||
|
Greg Thain
|
||||||
|
Lucas Trzesniewski
|
||||||
|
Theodore Tsirpanis
|
||||||
|
Matthew Vernon
|
||||||
|
Rémi Verschelde
|
||||||
|
Thomas Voss
|
||||||
|
Ezekiel Warren
|
||||||
|
Carl Weaver
|
||||||
|
Chris Wilson
|
||||||
|
Amin Yahyaabadi
|
||||||
|
Joe Zhang
|
||||||
|
|
||||||
|
### Contributors to PCRE1
|
||||||
|
|
||||||
|
These people contributed either by sending patches or reporting serious issues.
|
||||||
|
|
||||||
|
Irfan Adilovic
|
||||||
|
Alexander Barkov
|
||||||
|
Daniel Bergström
|
||||||
|
David Burgess
|
||||||
|
Ross Burton
|
||||||
|
David Byron
|
||||||
|
Fred Cox
|
||||||
|
Christian Ehrlicher
|
||||||
|
Tom Fortmann
|
||||||
|
Lionel Fourquaux
|
||||||
|
Mike Frysinger
|
||||||
|
Daniel Richard G
|
||||||
|
Dair Gran
|
||||||
|
"Graycode" (Red Hat Product Security)
|
||||||
|
Viktor Griph
|
||||||
|
Wen Guanxing
|
||||||
|
Robin Houston
|
||||||
|
Martin Jerabek
|
||||||
|
Peter Kankowski
|
||||||
|
Stephen Kelly
|
||||||
|
Yunho Kim
|
||||||
|
Joshua Kinard
|
||||||
|
Carsten Klein
|
||||||
|
Evgeny Kotkov
|
||||||
|
Ronald Landheer-Cieslak
|
||||||
|
Alan Lehotsky
|
||||||
|
Dmitry V. Levin
|
||||||
|
Nuno Lopes
|
||||||
|
Kai Lu
|
||||||
|
Giuseppe Maxia
|
||||||
|
Dan Mooney
|
||||||
|
Marc Mutz
|
||||||
|
Markus Oberhumer
|
||||||
|
Sheri Pierce
|
||||||
|
Petr Pisar
|
||||||
|
Ari Pollak
|
||||||
|
Bob Rossi
|
||||||
|
Ruiger Rill
|
||||||
|
Michael Shigorin
|
||||||
|
Rich Siegel
|
||||||
|
Craig Silverstein (C++ wrapper)
|
||||||
|
Karl Skomski
|
||||||
|
Paul Sokolovsky
|
||||||
|
Stan Switzer
|
||||||
|
Ian Taylor
|
||||||
|
Mark Tetrode
|
||||||
|
Jeff Trawick
|
||||||
|
Steven Van Ingelgem
|
||||||
|
Lawrence Velazquez
|
||||||
|
Jiong Wang
|
||||||
|
Stefan Weber
|
||||||
|
Chris Wilson
|
||||||
|
|
||||||
|
Thanks go to Jeffrey Friedl for testing and debugging assistance.
|
||||||
172
3rd/pcre2/BUILD.bazel
Normal file
172
3rd/pcre2/BUILD.bazel
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
|
||||||
|
load("@bazel_skylib//rules:native_binary.bzl", "native_test")
|
||||||
|
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
|
||||||
|
|
||||||
|
copy_file(
|
||||||
|
name = "config_h_generic",
|
||||||
|
src = "src/config.h.generic",
|
||||||
|
out = "src/config.h",
|
||||||
|
)
|
||||||
|
|
||||||
|
copy_file(
|
||||||
|
name = "pcre2_h_generic",
|
||||||
|
src = "src/pcre2.h.generic",
|
||||||
|
out = "src/pcre2.h",
|
||||||
|
)
|
||||||
|
|
||||||
|
copy_file(
|
||||||
|
name = "pcre2_chartables_c",
|
||||||
|
src = "src/pcre2_chartables.c.dist",
|
||||||
|
out = "src/pcre2_chartables.c",
|
||||||
|
)
|
||||||
|
|
||||||
|
# Removed src/pcre2_ucptables.c below because it is #included in
|
||||||
|
# src/pcre2_tables.c. Also fixed typo: ckdint should be chkdint.
|
||||||
|
# PH, 22-March-2023.
|
||||||
|
cc_library(
|
||||||
|
name = "pcre2",
|
||||||
|
srcs = [
|
||||||
|
"src/pcre2_auto_possess.c",
|
||||||
|
"src/pcre2_chkdint.c",
|
||||||
|
"src/pcre2_compile.c",
|
||||||
|
"src/pcre2_compile_class.c",
|
||||||
|
"src/pcre2_config.c",
|
||||||
|
"src/pcre2_context.c",
|
||||||
|
"src/pcre2_convert.c",
|
||||||
|
"src/pcre2_dfa_match.c",
|
||||||
|
"src/pcre2_error.c",
|
||||||
|
"src/pcre2_extuni.c",
|
||||||
|
"src/pcre2_find_bracket.c",
|
||||||
|
"src/pcre2_jit_compile.c",
|
||||||
|
"src/pcre2_maketables.c",
|
||||||
|
"src/pcre2_match.c",
|
||||||
|
"src/pcre2_match_data.c",
|
||||||
|
"src/pcre2_newline.c",
|
||||||
|
"src/pcre2_ord2utf.c",
|
||||||
|
"src/pcre2_pattern_info.c",
|
||||||
|
"src/pcre2_script_run.c",
|
||||||
|
"src/pcre2_serialize.c",
|
||||||
|
"src/pcre2_string_utils.c",
|
||||||
|
"src/pcre2_study.c",
|
||||||
|
"src/pcre2_substitute.c",
|
||||||
|
"src/pcre2_substring.c",
|
||||||
|
"src/pcre2_tables.c",
|
||||||
|
"src/pcre2_ucd.c",
|
||||||
|
"src/pcre2_valid_utf.c",
|
||||||
|
"src/pcre2_xclass.c",
|
||||||
|
":pcre2_chartables_c",
|
||||||
|
"src/pcre2_compile.h",
|
||||||
|
"src/pcre2_internal.h",
|
||||||
|
"src/pcre2_intmodedep.h",
|
||||||
|
"src/pcre2_ucp.h",
|
||||||
|
"src/pcre2_util.h",
|
||||||
|
":config_h_generic",
|
||||||
|
],
|
||||||
|
textual_hdrs = [
|
||||||
|
"src/pcre2_jit_match.c",
|
||||||
|
"src/pcre2_jit_misc.c",
|
||||||
|
"src/pcre2_ucptables.c",
|
||||||
|
],
|
||||||
|
hdrs = [
|
||||||
|
":pcre2_h_generic",
|
||||||
|
],
|
||||||
|
local_defines = [
|
||||||
|
"HAVE_CONFIG_H",
|
||||||
|
"HAVE_MEMMOVE",
|
||||||
|
"PCRE2_CODE_UNIT_WIDTH=8",
|
||||||
|
"PCRE2_STATIC",
|
||||||
|
"SUPPORT_UNICODE",
|
||||||
|
],
|
||||||
|
includes = ["src"],
|
||||||
|
strip_include_prefix = "src",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_library(
|
||||||
|
name = "pcre2-posix",
|
||||||
|
srcs = [
|
||||||
|
"src/pcre2posix.c",
|
||||||
|
":config_h_generic",
|
||||||
|
],
|
||||||
|
hdrs = [
|
||||||
|
"src/pcre2posix.h",
|
||||||
|
],
|
||||||
|
local_defines = [
|
||||||
|
"HAVE_CONFIG_H",
|
||||||
|
"HAVE_MEMMOVE",
|
||||||
|
"PCRE2_CODE_UNIT_WIDTH=8",
|
||||||
|
"PCRE2_STATIC",
|
||||||
|
"SUPPORT_UNICODE",
|
||||||
|
],
|
||||||
|
includes = ["src"],
|
||||||
|
strip_include_prefix = "src",
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [":pcre2"],
|
||||||
|
)
|
||||||
|
|
||||||
|
# Totally weird issue in Bazel. It won't let you #include any files unless they
|
||||||
|
# are declared to the build system. OK, fair enough. But - for a cc_binary it
|
||||||
|
# uses the file extension to determine whether it's a header or a compilation
|
||||||
|
# unit. But... we have several .c files which are #included, rather than treated
|
||||||
|
# as a compilation unit.
|
||||||
|
#
|
||||||
|
# For cc_library() above, we can overcome this with textual_hdrs. But that
|
||||||
|
# doesn't work for cc_binary(). Here's our workaround.
|
||||||
|
#
|
||||||
|
# https://github.com/bazelbuild/bazel/issues/680
|
||||||
|
cc_library(
|
||||||
|
name = "pcre2test_dotc_headers",
|
||||||
|
hdrs = [
|
||||||
|
"src/pcre2_chkdint.c",
|
||||||
|
"src/pcre2_printint.c",
|
||||||
|
"src/pcre2_tables.c",
|
||||||
|
"src/pcre2_ucd.c",
|
||||||
|
"src/pcre2_valid_utf.c",
|
||||||
|
],
|
||||||
|
strip_include_prefix = "src",
|
||||||
|
visibility = ["//visibility:private"],
|
||||||
|
)
|
||||||
|
|
||||||
|
cc_binary(
|
||||||
|
name = "pcre2test",
|
||||||
|
srcs = [
|
||||||
|
"src/pcre2test.c",
|
||||||
|
":config_h_generic",
|
||||||
|
],
|
||||||
|
local_defines = [
|
||||||
|
"HAVE_CONFIG_H",
|
||||||
|
"HAVE_MEMMOVE",
|
||||||
|
"HAVE_STRERROR",
|
||||||
|
"PCRE2_STATIC",
|
||||||
|
"SUPPORT_UNICODE",
|
||||||
|
"SUPPORT_PCRE2_8",
|
||||||
|
] + select({
|
||||||
|
"@platforms//os:windows": [],
|
||||||
|
"//conditions:default": ["HAVE_UNISTD_H"],
|
||||||
|
}),
|
||||||
|
linkopts = select({
|
||||||
|
"@platforms//os:windows": ["-STACK:2500000"],
|
||||||
|
"//conditions:default": [],
|
||||||
|
}),
|
||||||
|
visibility = ["//visibility:public"],
|
||||||
|
deps = [":pcre2test_dotc_headers", ":pcre2", ":pcre2-posix"],
|
||||||
|
)
|
||||||
|
|
||||||
|
filegroup(
|
||||||
|
name = "testdata",
|
||||||
|
srcs = glob(["testdata/*"]),
|
||||||
|
)
|
||||||
|
|
||||||
|
native_test(
|
||||||
|
name = "pcre2_test",
|
||||||
|
src = select({
|
||||||
|
"@platforms//os:windows": "RunTest.bat",
|
||||||
|
"//conditions:default": "RunTest",
|
||||||
|
}),
|
||||||
|
out = select({
|
||||||
|
"@platforms//os:windows": "RunTest.bat",
|
||||||
|
"//conditions:default": "RunTest",
|
||||||
|
}),
|
||||||
|
data = [":pcre2test", ":testdata"],
|
||||||
|
size = "small",
|
||||||
|
)
|
||||||
1403
3rd/pcre2/CMakeLists.txt
Normal file
1403
3rd/pcre2/CMakeLists.txt
Normal file
@@ -0,0 +1,1403 @@
|
|||||||
|
# CMakeLists.txt
|
||||||
|
#
|
||||||
|
# This file enables PCRE2 to be built with the CMake configuration and build
|
||||||
|
# tool. Download CMake in source or binary form from http://www.cmake.org/
|
||||||
|
# Converted to support PCRE2 from the original PCRE file, August 2014.
|
||||||
|
#
|
||||||
|
# Original listfile by Christian Ehrlicher <Ch.Ehrlicher@gmx.de>
|
||||||
|
# Refined and expanded by Daniel Richard G. <skunk@iSKUNK.ORG>
|
||||||
|
# 2007-09-14 mod by Sheri so 7.4 supported configuration options can be entered
|
||||||
|
# 2007-09-19 Adjusted by PH to retain previous default settings
|
||||||
|
# 2007-12-26 (a) On UNIX, use names libpcre instead of just pcre
|
||||||
|
# (b) Ensure pcretest and pcregrep link with the local library,
|
||||||
|
# not a previously-installed one.
|
||||||
|
# (c) Add PCRE_SUPPORT_LIBREADLINE, PCRE_SUPPORT_LIBZ, and
|
||||||
|
# PCRE_SUPPORT_LIBBZ2.
|
||||||
|
# 2008-01-20 Brought up to date to include several new features by Christian
|
||||||
|
# Ehrlicher.
|
||||||
|
# 2008-01-22 Sheri added options for backward compatibility of library names
|
||||||
|
# when building with minGW:
|
||||||
|
# if "ON", NON_STANDARD_LIB_PREFIX causes shared libraries to
|
||||||
|
# be built without "lib" as prefix. (The libraries will be named
|
||||||
|
# pcre.dll, pcreposix.dll and pcrecpp.dll).
|
||||||
|
# if "ON", NON_STANDARD_LIB_SUFFIX causes shared libraries to
|
||||||
|
# be built with suffix of "-0.dll". (The libraries will be named
|
||||||
|
# libpcre-0.dll, libpcreposix-0.dll and libpcrecpp-0.dll - same names
|
||||||
|
# built by default with Configure and Make.
|
||||||
|
# 2008-01-23 PH removed the automatic build of pcredemo.
|
||||||
|
# 2008-04-22 PH modified READLINE support so it finds NCURSES when needed.
|
||||||
|
# 2008-07-03 PH updated for revised UCP property support (change of files)
|
||||||
|
# 2009-03-23 PH applied Steven Van Ingelgem's patch to change the name
|
||||||
|
# CMAKE_BINARY_DIR to PROJECT_BINARY_DIR so that it works when PCRE
|
||||||
|
# is included within another project.
|
||||||
|
# 2009-03-23 PH applied a modified version of Steven Van Ingelgem's patches to
|
||||||
|
# add options to stop the building of pcregrep and the tests, and
|
||||||
|
# to disable the final configuration report.
|
||||||
|
# 2009-04-11 PH applied Christian Ehrlicher's patch to show compiler flags that
|
||||||
|
# are set by specifying a release type.
|
||||||
|
# 2010-01-02 PH added test for stdint.h
|
||||||
|
# 2010-03-02 PH added test for inttypes.h
|
||||||
|
# 2011-08-01 PH added PCREGREP_BUFSIZE
|
||||||
|
# 2011-08-22 PH added PCRE_SUPPORT_JIT
|
||||||
|
# 2011-09-06 PH modified WIN32 ADD_TEST line as suggested by Sergey Cherepanov
|
||||||
|
# 2011-09-06 PH added PCRE_SUPPORT_PCREGREP_JIT
|
||||||
|
# 2011-10-04 Sheri added support for including coff data in windows shared libraries
|
||||||
|
# compiled with MINGW if pcre.rc and/or pcreposix.rc are placed in
|
||||||
|
# the source dir by the user prior to building
|
||||||
|
# 2011-10-04 Sheri changed various add_test's to use exes' location built instead
|
||||||
|
# of DEBUG location only (likely only matters in MSVC)
|
||||||
|
# 2011-10-04 Sheri added scripts to provide needed variables to RunTest and
|
||||||
|
# RunGrepTest (used for UNIX and Msys)
|
||||||
|
# 2011-10-04 Sheri added scripts to provide needed variables and to execute
|
||||||
|
# RunTest.bat in Win32 (for effortless testing with "make test")
|
||||||
|
# 2011-10-04 Sheri Increased minimum required cmake version
|
||||||
|
# 2012-01-06 PH removed pcre_info.c and added pcre_string_utils.c
|
||||||
|
# 2012-01-10 Zoltan Herczeg added libpcre16 support
|
||||||
|
# 2012-01-13 Stephen Kelly added out of source build support
|
||||||
|
# 2012-01-17 PH applied Stephen Kelly's patch to parse the version data out
|
||||||
|
# of the configure.ac file
|
||||||
|
# 2012-02-26 PH added support for libedit
|
||||||
|
# 2012-09-06 PH added support for PCRE_EBCDIC_NL25
|
||||||
|
# 2012-09-08 ChPe added PCRE32 support
|
||||||
|
# 2012-10-23 PH added support for VALGRIND and GCOV
|
||||||
|
# 2012-12-08 PH added patch from Daniel Richard G to quash some MSVC warnings
|
||||||
|
# 2013-07-01 PH realized that the "support" for GCOV was a total nonsense and
|
||||||
|
# so it has been removed.
|
||||||
|
# 2013-10-08 PH got rid of the "source" command, which is a bash-ism (use ".")
|
||||||
|
# 2013-11-05 PH added support for PARENS_NEST_LIMIT
|
||||||
|
# 2014-08-29 PH converted the file for PCRE2 (which has no C++).
|
||||||
|
# 2015-04-24 PH added support for PCRE2_DEBUG
|
||||||
|
# 2015-07-16 PH updated for new pcre2_find_bracket source module
|
||||||
|
# 2015-08-24 PH correct C_FLAGS setting (patch from Roy Ivy III)
|
||||||
|
# 2015-10=16 PH added support for never-backslash-C
|
||||||
|
# 2016-03-01 PH applied Chris Wilson's patch for MSVC static
|
||||||
|
# 2016-06-24 PH applied Chris Wilson's second patch, putting the first under
|
||||||
|
# a new option instead of being unconditional.
|
||||||
|
# 2016-10-05 PH fixed a typo (PCRE should be PCRE2) in above patch
|
||||||
|
# fix by David Gaussmann
|
||||||
|
# 2016-10-07 PH added PCREGREP_MAX_BUFSIZE
|
||||||
|
# 2017-03-11 PH turned HEAP_MATCH_RECURSE into a NO-OP for 10.30
|
||||||
|
# 2017-04-08 PH added HEAP_LIMIT
|
||||||
|
# 2017-06-15 ZH added SUPPORT_JIT_SEALLOC support
|
||||||
|
# 2018-06-19 PH added checks for stdint.h and inttypes.h (later removed)
|
||||||
|
# 2018-06-27 PH added Daniel's patch to increase the stack for MSVC
|
||||||
|
# 2018-11-14 PH removed unnecessary checks for stdint.h and inttypes.h
|
||||||
|
# 2018-11-16 PH added PCRE2GREP_SUPPORT_CALLOUT_FORK support and tidied
|
||||||
|
# 2019-02-16 PH hacked to avoid CMP0026 policy issue (see comments below)
|
||||||
|
# 2020-03-16 PH renamed dftables as pcre2_dftables (as elsewhere)
|
||||||
|
# 2020-03-24 PH changed CMAKE_MODULE_PATH definition to add, not replace
|
||||||
|
# 2020-04-08 Carlo added function check for secure_getenv, fixed strerror
|
||||||
|
# 2020-04-16 enh added check for __attribute__((uninitialized))
|
||||||
|
# 2020-04-25 PH applied patches from Uwe Korn to support pkg-config and
|
||||||
|
# library versioning.
|
||||||
|
# 2020-04-25 Carlo added function check for mkostemp used in ProtExecAllocator
|
||||||
|
# 2020-04-28 PH added function check for memfd_create based on Carlo's patch
|
||||||
|
# 2020-05-25 PH added a check for Intel CET
|
||||||
|
# 2020-12-03 PH altered the definition of pcre2test as suggested by Daniel
|
||||||
|
# 2021-06-29 JWSB added the option to build static library with PIC.
|
||||||
|
# 2021-07-05 JWSB modified such both the static and shared library can be
|
||||||
|
# build in one go.
|
||||||
|
# 2021-08-28 PH increased minimum version
|
||||||
|
# 2021-08-28 PH added test for realpath()
|
||||||
|
# 2022-12-10 PH added support for pcre2posix_test
|
||||||
|
# 2023-01-15 Carlo added C99 as the minimum required
|
||||||
|
# 2023-08-06 PH added support for setting variable length lookbehind maximum
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
# We have used `gersemi` for auto-formatting our CMake files.
|
||||||
|
# Applied to all CMake files using:
|
||||||
|
# > pip3 install gersemi
|
||||||
|
# > gersemi --in-place --line-length 120 --indent 2 \
|
||||||
|
# ./CMakeLists.txt ./cmake/*.cmake ./cmake/*.cmake.in
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
# Increased minimum to 3.15 to allow use of string(REPEAT).
|
||||||
|
cmake_minimum_required(VERSION 3.15 FATAL_ERROR)
|
||||||
|
project(PCRE2 C)
|
||||||
|
set(CMAKE_C_STANDARD 99)
|
||||||
|
set(CMAKE_C_STANDARD_REQUIRED TRUE)
|
||||||
|
|
||||||
|
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
||||||
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
|
# Set policy CMP0026 to avoid warnings for the use of LOCATION in
|
||||||
|
# GET_TARGET_PROPERTY. This should no longer be required.
|
||||||
|
# CMAKE_POLICY(SET CMP0026 OLD)
|
||||||
|
|
||||||
|
# With a recent cmake, you can provide a rootdir to look for non
|
||||||
|
# standard installed library dependencies, but to do so, the policy
|
||||||
|
# needs to be set to new (by uncommenting the following)
|
||||||
|
# CMAKE_POLICY(SET CMP0074 NEW)
|
||||||
|
|
||||||
|
# For FindReadline.cmake. This was changed to allow setting CMAKE_MODULE_PATH
|
||||||
|
# on the command line.
|
||||||
|
# SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
include_directories(${PROJECT_SOURCE_DIR}/src)
|
||||||
|
|
||||||
|
# external packages
|
||||||
|
find_package(BZip2)
|
||||||
|
find_package(ZLIB)
|
||||||
|
find_package(Readline)
|
||||||
|
find_package(Editline)
|
||||||
|
|
||||||
|
# Configuration checks
|
||||||
|
|
||||||
|
include(CheckCSourceCompiles)
|
||||||
|
include(CheckFunctionExists)
|
||||||
|
include(CheckSymbolExists)
|
||||||
|
include(CheckIncludeFile)
|
||||||
|
include(CheckTypeSize)
|
||||||
|
include(GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR
|
||||||
|
|
||||||
|
check_include_file(assert.h HAVE_ASSERT_H)
|
||||||
|
check_include_file(dirent.h HAVE_DIRENT_H)
|
||||||
|
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
|
||||||
|
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
||||||
|
check_include_file(unistd.h HAVE_UNISTD_H)
|
||||||
|
check_include_file(windows.h HAVE_WINDOWS_H)
|
||||||
|
|
||||||
|
check_symbol_exists(bcopy "strings.h" HAVE_BCOPY)
|
||||||
|
check_symbol_exists(memfd_create "sys/mman.h" HAVE_MEMFD_CREATE)
|
||||||
|
check_symbol_exists(memmove "string.h" HAVE_MEMMOVE)
|
||||||
|
check_symbol_exists(secure_getenv "stdlib.h" HAVE_SECURE_GETENV)
|
||||||
|
check_symbol_exists(strerror "string.h" HAVE_STRERROR)
|
||||||
|
|
||||||
|
check_c_source_compiles(
|
||||||
|
[=[
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <limits.h>
|
||||||
|
int main(int c, char *v[]) { char buf[PATH_MAX]; realpath(v[c], buf); return 0; }
|
||||||
|
]=]
|
||||||
|
HAVE_REALPATH
|
||||||
|
)
|
||||||
|
|
||||||
|
set(ORIG_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||||
|
if(NOT MSVC AND NOT CMAKE_C_COMPILER_ID STREQUAL "XL")
|
||||||
|
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -Werror")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
check_c_source_compiles(
|
||||||
|
"int main(void) { char buf[128] __attribute__((uninitialized)); (void)buf; return 0; }"
|
||||||
|
HAVE_ATTRIBUTE_UNINITIALIZED
|
||||||
|
)
|
||||||
|
|
||||||
|
check_c_source_compiles(
|
||||||
|
[=[
|
||||||
|
extern __attribute__ ((visibility ("default"))) int f(void);
|
||||||
|
int main(void) { return f(); }
|
||||||
|
int f(void) { return 42; }
|
||||||
|
]=]
|
||||||
|
HAVE_VISIBILITY
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||||
|
|
||||||
|
check_c_source_compiles("int main(void) { __assume(1); return 0; }" HAVE_BUILTIN_ASSUME)
|
||||||
|
|
||||||
|
check_c_source_compiles(
|
||||||
|
[=[
|
||||||
|
#include <stddef.h>
|
||||||
|
int main(void) { int a,b; size_t m; __builtin_mul_overflow(a,b,&m); return 0; }
|
||||||
|
]=]
|
||||||
|
HAVE_BUILTIN_MUL_OVERFLOW
|
||||||
|
)
|
||||||
|
|
||||||
|
check_c_source_compiles(
|
||||||
|
"int main(int c, char *v[]) { if (c) __builtin_unreachable(); return (int)(*v[0]); }"
|
||||||
|
HAVE_BUILTIN_UNREACHABLE
|
||||||
|
)
|
||||||
|
|
||||||
|
if(HAVE_VISIBILITY)
|
||||||
|
set(PCRE2_EXPORT [=[__attribute__ ((visibility ("default")))]=])
|
||||||
|
else()
|
||||||
|
set(PCRE2_EXPORT)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Check whether Intel CET is enabled, and if so, adjust compiler flags. This
|
||||||
|
# code was written by PH, trying to imitate the logic from the autotools
|
||||||
|
# configuration.
|
||||||
|
|
||||||
|
check_c_source_compiles(
|
||||||
|
[=[
|
||||||
|
#ifndef __CET__
|
||||||
|
#error CET is not enabled
|
||||||
|
#endif
|
||||||
|
int main() { return 0; }
|
||||||
|
]=]
|
||||||
|
INTEL_CET_ENABLED
|
||||||
|
)
|
||||||
|
|
||||||
|
if(INTEL_CET_ENABLED)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mshstk")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# User-configurable options
|
||||||
|
#
|
||||||
|
# Note: CMakeSetup displays these in alphabetical order, regardless of
|
||||||
|
# the order we use here.
|
||||||
|
|
||||||
|
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries.")
|
||||||
|
|
||||||
|
option(BUILD_STATIC_LIBS "Build static libraries." ON)
|
||||||
|
|
||||||
|
option(PCRE2_BUILD_PCRE2_8 "Build 8 bit PCRE2 library" ON)
|
||||||
|
|
||||||
|
option(PCRE2_BUILD_PCRE2_16 "Build 16 bit PCRE2 library" OFF)
|
||||||
|
|
||||||
|
option(PCRE2_BUILD_PCRE2_32 "Build 32 bit PCRE2 library" OFF)
|
||||||
|
|
||||||
|
option(PCRE2_STATIC_PIC "Build the static library with the option position independent code enabled." OFF)
|
||||||
|
|
||||||
|
set(PCRE2_DEBUG "IfDebugBuild" CACHE STRING "Include debugging code")
|
||||||
|
set_property(CACHE PCRE2_DEBUG PROPERTY STRINGS "IfDebugBuild" "ON" "OFF")
|
||||||
|
|
||||||
|
option(PCRE2_DISABLE_PERCENT_ZT "Disable the use of %zu and %td (rarely needed)" OFF)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_EBCDIC
|
||||||
|
OFF
|
||||||
|
CACHE BOOL
|
||||||
|
"Use EBCDIC coding instead of ASCII. (This is rarely used outside of mainframe systems.)"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PCRE2_EBCDIC_NL25 OFF CACHE BOOL "Use 0x25 as EBCDIC NL character instead of 0x15; implies EBCDIC.")
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_LINK_SIZE
|
||||||
|
"2"
|
||||||
|
CACHE STRING
|
||||||
|
"Internal link size (2, 3 or 4 allowed). See LINK_SIZE in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_PARENS_NEST_LIMIT
|
||||||
|
"250"
|
||||||
|
CACHE STRING
|
||||||
|
"Default nested parentheses limit. See PARENS_NEST_LIMIT in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_HEAP_LIMIT
|
||||||
|
"20000000"
|
||||||
|
CACHE STRING
|
||||||
|
"Default limit on heap memory (kibibytes). See HEAP_LIMIT in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PCRE2_MAX_VARLOOKBEHIND "255" CACHE STRING "Default limit on variable lookbehinds.")
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_MATCH_LIMIT
|
||||||
|
"10000000"
|
||||||
|
CACHE STRING
|
||||||
|
"Default limit on internal looping. See MATCH_LIMIT in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_MATCH_LIMIT_DEPTH
|
||||||
|
"MATCH_LIMIT"
|
||||||
|
CACHE STRING
|
||||||
|
"Default limit on internal depth of search. See MATCH_LIMIT_DEPTH in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2GREP_BUFSIZE
|
||||||
|
"20480"
|
||||||
|
CACHE STRING
|
||||||
|
"Buffer starting size parameter for pcre2grep. See PCRE2GREP_BUFSIZE in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2GREP_MAX_BUFSIZE
|
||||||
|
"1048576"
|
||||||
|
CACHE STRING
|
||||||
|
"Buffer maximum size parameter for pcre2grep. See PCRE2GREP_MAX_BUFSIZE in config.h.in for details."
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PCRE2_NEWLINE "LF" CACHE STRING "What to recognize as a newline (one of CR, LF, CRLF, ANY, ANYCRLF, NUL).")
|
||||||
|
|
||||||
|
set(PCRE2_HEAP_MATCH_RECURSE OFF CACHE BOOL "Obsolete option: do not use")
|
||||||
|
|
||||||
|
set(PCRE2_SUPPORT_JIT OFF CACHE BOOL "Enable support for Just-in-time compiling.")
|
||||||
|
|
||||||
|
if(${CMAKE_SYSTEM_NAME} MATCHES Linux|NetBSD)
|
||||||
|
set(PCRE2_SUPPORT_JIT_SEALLOC OFF CACHE BOOL "Enable SELinux compatible execmem allocator in JIT (experimental).")
|
||||||
|
else()
|
||||||
|
set(PCRE2_SUPPORT_JIT_SEALLOC IGNORE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PCRE2GREP_SUPPORT_JIT ON CACHE BOOL "Enable use of Just-in-time compiling in pcre2grep.")
|
||||||
|
|
||||||
|
set(PCRE2GREP_SUPPORT_CALLOUT ON CACHE BOOL "Enable callout string support in pcre2grep.")
|
||||||
|
|
||||||
|
set(PCRE2GREP_SUPPORT_CALLOUT_FORK ON CACHE BOOL "Enable callout string fork support in pcre2grep.")
|
||||||
|
|
||||||
|
set(PCRE2_SUPPORT_UNICODE ON CACHE BOOL "Enable support for Unicode and UTF-8/UTF-16/UTF-32 encoding.")
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_SUPPORT_BSR_ANYCRLF
|
||||||
|
OFF
|
||||||
|
CACHE BOOL
|
||||||
|
"ON=Backslash-R matches only LF CR and CRLF, OFF=Backslash-R matches all Unicode Linebreaks"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PCRE2_NEVER_BACKSLASH_C OFF CACHE BOOL "If ON, backslash-C (upper case C) is locked out.")
|
||||||
|
|
||||||
|
set(PCRE2_SUPPORT_VALGRIND OFF CACHE BOOL "Enable Valgrind support.")
|
||||||
|
|
||||||
|
option(PCRE2_SHOW_REPORT "Show the final configuration report" ON)
|
||||||
|
option(PCRE2_BUILD_PCRE2GREP "Build pcre2grep" ON)
|
||||||
|
option(PCRE2_BUILD_TESTS "Build the tests" ON)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_INSTALL_CMAKEDIR
|
||||||
|
"${CMAKE_INSTALL_LIBDIR}/cmake/pcre2"
|
||||||
|
CACHE STRING
|
||||||
|
"Path used during CMake install for placing PCRE2's CMake config files, relative to the installation root (prefix)"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
option(
|
||||||
|
NON_STANDARD_LIB_PREFIX
|
||||||
|
"ON=Shared libraries built in mingw will be named pcre2.dll, etc., instead of libpcre2.dll, etc."
|
||||||
|
OFF
|
||||||
|
)
|
||||||
|
|
||||||
|
option(
|
||||||
|
NON_STANDARD_LIB_SUFFIX
|
||||||
|
"ON=Shared libraries built in mingw will be named libpcre2-0.dll, etc., instead of libpcre2.dll, etc."
|
||||||
|
OFF
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
option(PCRE2_STATIC_RUNTIME "ON=Compile against the static runtime (/MT)." OFF)
|
||||||
|
option(INSTALL_MSVC_PDB "ON=Install .pdb files built by MSVC, if generated" OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# bzip2 lib
|
||||||
|
if(BZIP2_FOUND)
|
||||||
|
option(PCRE2_SUPPORT_LIBBZ2 "Enable support for linking pcre2grep with libbz2." ON)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_SUPPORT_LIBBZ2)
|
||||||
|
include_directories(${BZIP2_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# zlib
|
||||||
|
if(ZLIB_FOUND)
|
||||||
|
option(PCRE2_SUPPORT_LIBZ "Enable support for linking pcre2grep with libz." ON)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_SUPPORT_LIBZ)
|
||||||
|
include_directories(${ZLIB_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# editline lib
|
||||||
|
if(EDITLINE_FOUND)
|
||||||
|
option(PCRE2_SUPPORT_LIBEDIT "Enable support for linking pcre2test with libedit." OFF)
|
||||||
|
endif()
|
||||||
|
if(EDITLINE_FOUND)
|
||||||
|
if(PCRE2_SUPPORT_LIBEDIT)
|
||||||
|
include_directories(${EDITLINE_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
if(PCRE2_SUPPORT_LIBEDIT)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
" libedit not found, set EDITLINE_INCLUDE_DIR to a compatible header\n"
|
||||||
|
" or set Editline_ROOT to a full libedit installed tree, as needed\n"
|
||||||
|
" Might need to enable policy CMP0074 in CMakeLists.txt"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# readline lib
|
||||||
|
if(READLINE_FOUND)
|
||||||
|
option(PCRE2_SUPPORT_LIBREADLINE "Enable support for linking pcre2test with libreadline." ON)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_SUPPORT_LIBREADLINE)
|
||||||
|
include_directories(${READLINE_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Prepare build configuration
|
||||||
|
|
||||||
|
if(NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS)
|
||||||
|
message(FATAL_ERROR "At least one of BUILD_SHARED_LIBS or BUILD_STATIC_LIBS must be enabled.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NOT PCRE2_BUILD_PCRE2_8 AND NOT PCRE2_BUILD_PCRE2_16 AND NOT PCRE2_BUILD_PCRE2_32)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"At least one of PCRE2_BUILD_PCRE2_8, PCRE2_BUILD_PCRE2_16 or PCRE2_BUILD_PCRE2_32 must be enabled"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
set(SUPPORT_PCRE2_8 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_16)
|
||||||
|
set(SUPPORT_PCRE2_16 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_32)
|
||||||
|
set(SUPPORT_PCRE2_32 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2GREP AND NOT PCRE2_BUILD_PCRE2_8)
|
||||||
|
message(STATUS "** PCRE2_BUILD_PCRE2_8 must be enabled for the pcre2grep program")
|
||||||
|
set(PCRE2_BUILD_PCRE2GREP OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_LIBREADLINE AND PCRE2_SUPPORT_LIBEDIT)
|
||||||
|
if(READLINE_FOUND)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
" Only one of the readline compatible libraries can be enabled.\n"
|
||||||
|
" Disable libreadline with -DPCRE2_SUPPORT_LIBREADLINE=OFF"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_BSR_ANYCRLF)
|
||||||
|
set(BSR_ANYCRLF 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_NEVER_BACKSLASH_C)
|
||||||
|
set(NEVER_BACKSLASH_C 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_UNICODE)
|
||||||
|
set(SUPPORT_UNICODE 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_JIT)
|
||||||
|
set(SUPPORT_JIT 1)
|
||||||
|
if(UNIX)
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
if(CMAKE_USE_PTHREADS_INIT)
|
||||||
|
set(REQUIRE_PTHREAD 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_JIT_SEALLOC)
|
||||||
|
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
|
||||||
|
check_symbol_exists(mkostemp stdlib.h REQUIRED)
|
||||||
|
unset(CMAKE_REQUIRED_DEFINITIONS)
|
||||||
|
if(${REQUIRED})
|
||||||
|
if(${CMAKE_SYSTEM_NAME} MATCHES Linux|NetBSD)
|
||||||
|
add_compile_definitions(_GNU_SOURCE)
|
||||||
|
set(SLJIT_PROT_EXECUTABLE_ALLOCATOR 1)
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Your configuration is not supported")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
set(PCRE2_SUPPORT_JIT_SEALLOC OFF)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2GREP_SUPPORT_JIT)
|
||||||
|
set(SUPPORT_PCRE2GREP_JIT 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2GREP_SUPPORT_CALLOUT)
|
||||||
|
set(SUPPORT_PCRE2GREP_CALLOUT 1)
|
||||||
|
if(PCRE2GREP_SUPPORT_CALLOUT_FORK)
|
||||||
|
set(SUPPORT_PCRE2GREP_CALLOUT_FORK 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_VALGRIND)
|
||||||
|
set(SUPPORT_VALGRIND 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_DISABLE_PERCENT_ZT)
|
||||||
|
set(DISABLE_PERCENT_ZT 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# This next one used to reference ${READLINE_LIBRARY})
|
||||||
|
# but I was advised to add the NCURSES test as well, along with
|
||||||
|
# some modifications to cmake/FindReadline.cmake which should
|
||||||
|
# make it possible to override the default if necessary. PH
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_LIBREADLINE)
|
||||||
|
set(SUPPORT_LIBREADLINE 1)
|
||||||
|
set(PCRE2TEST_LIBS ${READLINE_LIBRARY} ${NCURSES_LIBRARY})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# libedit is a plug-compatible alternative to libreadline
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_LIBEDIT)
|
||||||
|
set(SUPPORT_LIBEDIT 1)
|
||||||
|
set(PCRE2TEST_LIBS ${EDITLINE_LIBRARY})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_LIBZ)
|
||||||
|
set(SUPPORT_LIBZ 1)
|
||||||
|
set(PCRE2GREP_LIBS ${PCRE2GREP_LIBS} ${ZLIB_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_LIBBZ2)
|
||||||
|
set(SUPPORT_LIBBZ2 1)
|
||||||
|
set(PCRE2GREP_LIBS ${PCRE2GREP_LIBS} ${BZIP2_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(NEWLINE_DEFAULT "")
|
||||||
|
|
||||||
|
if(PCRE2_NEWLINE STREQUAL "CR")
|
||||||
|
set(NEWLINE_DEFAULT "1")
|
||||||
|
endif()
|
||||||
|
if(PCRE2_NEWLINE STREQUAL "LF")
|
||||||
|
set(NEWLINE_DEFAULT "2")
|
||||||
|
endif()
|
||||||
|
if(PCRE2_NEWLINE STREQUAL "CRLF")
|
||||||
|
set(NEWLINE_DEFAULT "3")
|
||||||
|
endif()
|
||||||
|
if(PCRE2_NEWLINE STREQUAL "ANY")
|
||||||
|
set(NEWLINE_DEFAULT "4")
|
||||||
|
endif()
|
||||||
|
if(PCRE2_NEWLINE STREQUAL "ANYCRLF")
|
||||||
|
set(NEWLINE_DEFAULT "5")
|
||||||
|
endif()
|
||||||
|
if(PCRE2_NEWLINE STREQUAL "NUL")
|
||||||
|
set(NEWLINE_DEFAULT "6")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(NEWLINE_DEFAULT STREQUAL "")
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"The PCRE2_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\"."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_EBCDIC)
|
||||||
|
set(EBCDIC 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_EBCDIC_NL25)
|
||||||
|
set(EBCDIC 1)
|
||||||
|
set(EBCDIC_NL25 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Output files
|
||||||
|
|
||||||
|
configure_file(config-cmake.h.in ${PROJECT_BINARY_DIR}/config.h @ONLY)
|
||||||
|
|
||||||
|
# Parse version numbers and date out of configure.ac
|
||||||
|
|
||||||
|
file(
|
||||||
|
STRINGS
|
||||||
|
${PROJECT_SOURCE_DIR}/configure.ac
|
||||||
|
configure_lines
|
||||||
|
LIMIT_COUNT
|
||||||
|
50 # Read only the first 50 lines of the file
|
||||||
|
)
|
||||||
|
|
||||||
|
set(
|
||||||
|
SEARCHED_VARIABLES
|
||||||
|
"pcre2_major"
|
||||||
|
"pcre2_minor"
|
||||||
|
"pcre2_prerelease"
|
||||||
|
"pcre2_date"
|
||||||
|
"libpcre2_posix_version"
|
||||||
|
"libpcre2_8_version"
|
||||||
|
"libpcre2_16_version"
|
||||||
|
"libpcre2_32_version"
|
||||||
|
)
|
||||||
|
foreach(configure_line ${configure_lines})
|
||||||
|
foreach(substitution_variable ${SEARCHED_VARIABLES})
|
||||||
|
string(TOUPPER ${substitution_variable} substitution_variable_upper)
|
||||||
|
if(NOT ${substitution_variable_upper})
|
||||||
|
string(REGEX MATCH "m4_define\\(${substitution_variable}, *\\[(.*)\\]" MATCHED_STRING ${configure_line})
|
||||||
|
if(CMAKE_MATCH_1)
|
||||||
|
set(${substitution_variable_upper} ${CMAKE_MATCH_1})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
macro(PARSE_LIB_VERSION variable_prefix)
|
||||||
|
string(REPLACE ":" ";" ${variable_prefix}_VERSION_LIST ${${variable_prefix}_VERSION})
|
||||||
|
list(GET ${variable_prefix}_VERSION_LIST 0 ${variable_prefix}_VERSION_CURRENT)
|
||||||
|
list(GET ${variable_prefix}_VERSION_LIST 1 ${variable_prefix}_VERSION_REVISION)
|
||||||
|
list(GET ${variable_prefix}_VERSION_LIST 2 ${variable_prefix}_VERSION_AGE)
|
||||||
|
|
||||||
|
math(EXPR ${variable_prefix}_SOVERSION "${${variable_prefix}_VERSION_CURRENT} - ${${variable_prefix}_VERSION_AGE}")
|
||||||
|
math(EXPR ${variable_prefix}_MACHO_COMPATIBILITY_VERSION "${${variable_prefix}_VERSION_CURRENT} + 1")
|
||||||
|
math(EXPR ${variable_prefix}_MACHO_CURRENT_VERSION "${${variable_prefix}_VERSION_CURRENT} + 1")
|
||||||
|
set(
|
||||||
|
${variable_prefix}_MACHO_CURRENT_VERSION
|
||||||
|
"${${variable_prefix}_MACHO_CURRENT_VERSION}.${${variable_prefix}_VERSION_REVISION}}"
|
||||||
|
)
|
||||||
|
set(
|
||||||
|
${variable_prefix}_VERSION
|
||||||
|
"${${variable_prefix}_SOVERSION}.${${variable_prefix}_VERSION_AGE}.${${variable_prefix}_VERSION_REVISION}"
|
||||||
|
)
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
parse_lib_version(LIBPCRE2_POSIX)
|
||||||
|
parse_lib_version(LIBPCRE2_8)
|
||||||
|
parse_lib_version(LIBPCRE2_16)
|
||||||
|
parse_lib_version(LIBPCRE2_32)
|
||||||
|
|
||||||
|
configure_file(src/pcre2.h.in ${PROJECT_BINARY_DIR}/pcre2.h @ONLY)
|
||||||
|
|
||||||
|
# Make sure to not link debug libs
|
||||||
|
# against release libs and vice versa
|
||||||
|
if(WIN32)
|
||||||
|
set(CMAKE_DEBUG_POSTFIX "d")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Character table generation
|
||||||
|
|
||||||
|
option(PCRE2_REBUILD_CHARTABLES "Rebuild char tables" OFF)
|
||||||
|
if(PCRE2_REBUILD_CHARTABLES)
|
||||||
|
add_executable(pcre2_dftables src/pcre2_dftables.c)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${PROJECT_BINARY_DIR}/pcre2_chartables.c
|
||||||
|
COMMAND pcre2_dftables
|
||||||
|
ARGS ${PROJECT_BINARY_DIR}/pcre2_chartables.c
|
||||||
|
DEPENDS pcre2_dftables
|
||||||
|
COMMENT "Generating character tables (pcre2_chartables.c) for current locale"
|
||||||
|
VERBATIM
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
configure_file(${PROJECT_SOURCE_DIR}/src/pcre2_chartables.c.dist ${PROJECT_BINARY_DIR}/pcre2_chartables.c COPYONLY)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Source code
|
||||||
|
|
||||||
|
set(PCRE2_HEADERS ${PROJECT_BINARY_DIR}/pcre2.h)
|
||||||
|
|
||||||
|
set(
|
||||||
|
PCRE2_SOURCES
|
||||||
|
src/pcre2_auto_possess.c
|
||||||
|
${PROJECT_BINARY_DIR}/pcre2_chartables.c
|
||||||
|
src/pcre2_chkdint.c
|
||||||
|
src/pcre2_compile.c
|
||||||
|
src/pcre2_compile_class.c
|
||||||
|
src/pcre2_config.c
|
||||||
|
src/pcre2_context.c
|
||||||
|
src/pcre2_convert.c
|
||||||
|
src/pcre2_dfa_match.c
|
||||||
|
src/pcre2_error.c
|
||||||
|
src/pcre2_extuni.c
|
||||||
|
src/pcre2_find_bracket.c
|
||||||
|
src/pcre2_jit_compile.c
|
||||||
|
src/pcre2_maketables.c
|
||||||
|
src/pcre2_match.c
|
||||||
|
src/pcre2_match_data.c
|
||||||
|
src/pcre2_newline.c
|
||||||
|
src/pcre2_ord2utf.c
|
||||||
|
src/pcre2_pattern_info.c
|
||||||
|
src/pcre2_script_run.c
|
||||||
|
src/pcre2_serialize.c
|
||||||
|
src/pcre2_string_utils.c
|
||||||
|
src/pcre2_study.c
|
||||||
|
src/pcre2_substitute.c
|
||||||
|
src/pcre2_substring.c
|
||||||
|
src/pcre2_tables.c
|
||||||
|
src/pcre2_ucd.c
|
||||||
|
src/pcre2_valid_utf.c
|
||||||
|
src/pcre2_xclass.c
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PCRE2POSIX_HEADERS src/pcre2posix.h)
|
||||||
|
set(PCRE2POSIX_SOURCES src/pcre2posix.c)
|
||||||
|
|
||||||
|
if(MINGW AND BUILD_SHARED_LIBS)
|
||||||
|
if(EXISTS ${PROJECT_SOURCE_DIR}/pcre2.rc)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${PROJECT_SOURCE_DIR}/pcre2.o PRE-LINK
|
||||||
|
COMMAND windres
|
||||||
|
ARGS pcre2.rc pcre2.o
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
|
COMMENT "Using pcre2 coff info in mingw build"
|
||||||
|
)
|
||||||
|
set(PCRE2_SOURCES ${PCRE2_SOURCES} ${PROJECT_SOURCE_DIR}/pcre2.o)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(EXISTS ${PROJECT_SOURCE_DIR}/pcre2posix.rc)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${PROJECT_SOURCE_DIR}/pcre2posix.o PRE-LINK
|
||||||
|
COMMAND windres
|
||||||
|
ARGS pcre2posix.rc pcre2posix.o
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||||
|
COMMENT "Using pcre2posix coff info in mingw build"
|
||||||
|
)
|
||||||
|
set(PCRE2POSIX_SOURCES ${PCRE2POSIX_SOURCES} ${PROJECT_SOURCE_DIR}/pcre2posix.o)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC AND BUILD_SHARED_LIBS)
|
||||||
|
if(EXISTS ${PROJECT_SOURCE_DIR}/pcre2.rc)
|
||||||
|
set(PCRE2_SOURCES ${PCRE2_SOURCES} pcre2.rc)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(EXISTS ${PROJECT_SOURCE_DIR}/pcre2posix.rc)
|
||||||
|
set(PCRE2POSIX_SOURCES ${PCRE2POSIX_SOURCES} pcre2posix.rc)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Fix static compilation with MSVC: https://bugs.exim.org/show_bug.cgi?id=1681
|
||||||
|
# This code was taken from the CMake wiki, not from WebM.
|
||||||
|
|
||||||
|
if(MSVC AND PCRE2_STATIC_RUNTIME)
|
||||||
|
message(STATUS "** MSVC and PCRE2_STATIC_RUNTIME: modifying compiler flags to use static runtime library")
|
||||||
|
foreach(
|
||||||
|
flag_var
|
||||||
|
CMAKE_C_FLAGS
|
||||||
|
CMAKE_C_FLAGS_DEBUG
|
||||||
|
CMAKE_C_FLAGS_RELEASE
|
||||||
|
CMAKE_C_FLAGS_MINSIZEREL
|
||||||
|
CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||||
|
)
|
||||||
|
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Build setup
|
||||||
|
|
||||||
|
add_compile_definitions(HAVE_CONFIG_H)
|
||||||
|
|
||||||
|
if(PCRE2_DEBUG STREQUAL "IfDebugBuild")
|
||||||
|
add_compile_definitions("$<$<CONFIG:Debug>:PCRE2_DEBUG>")
|
||||||
|
elseif(PCRE2_DEBUG)
|
||||||
|
add_compile_definitions("PCRE2_DEBUG")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
add_compile_definitions(_CRT_SECURE_NO_DEPRECATE _CRT_SECURE_NO_WARNINGS)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR 1)
|
||||||
|
|
||||||
|
set(TARGETS)
|
||||||
|
|
||||||
|
# 8-bit library
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
add_library(pcre2-8-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-8-static
|
||||||
|
PROPERTIES
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_8_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_8_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_8_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_8_SOVERSION}
|
||||||
|
)
|
||||||
|
target_compile_definitions(pcre2-8-static PUBLIC PCRE2_STATIC)
|
||||||
|
target_include_directories(pcre2-8-static PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
if(REQUIRE_PTHREAD)
|
||||||
|
target_link_libraries(pcre2-8-static Threads::Threads)
|
||||||
|
endif()
|
||||||
|
set(TARGETS ${TARGETS} pcre2-8-static)
|
||||||
|
add_library(pcre2-posix-static STATIC ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES})
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-posix-static
|
||||||
|
PROPERTIES
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_POSIX_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_POSIX_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_POSIX_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_POSIX_SOVERSION}
|
||||||
|
)
|
||||||
|
target_link_libraries(pcre2-posix-static pcre2-8-static)
|
||||||
|
target_include_directories(pcre2-posix-static PUBLIC ${PROJECT_SOURCE_DIR}/src)
|
||||||
|
set(TARGETS ${TARGETS} pcre2-posix-static)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
set_target_properties(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8-static)
|
||||||
|
set_target_properties(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix-static)
|
||||||
|
else()
|
||||||
|
set_target_properties(pcre2-8-static PROPERTIES OUTPUT_NAME pcre2-8)
|
||||||
|
set_target_properties(pcre2-posix-static PROPERTIES OUTPUT_NAME pcre2-posix)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_STATIC_PIC)
|
||||||
|
set_target_properties(pcre2-8-static pcre2-posix-static PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
add_library(pcre2-8-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
|
||||||
|
target_include_directories(pcre2-8-shared PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-8-shared
|
||||||
|
PROPERTIES
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_8_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_8_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_8_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_8_SOVERSION}
|
||||||
|
OUTPUT_NAME pcre2-8
|
||||||
|
)
|
||||||
|
if(REQUIRE_PTHREAD)
|
||||||
|
target_link_libraries(pcre2-8-shared Threads::Threads)
|
||||||
|
endif()
|
||||||
|
set(TARGETS ${TARGETS} pcre2-8-shared)
|
||||||
|
set(DLL_PDB_FILES $<TARGET_PDB_FILE_DIR:pcre2-8-shared>/pcre2-8.pdb ${DLL_PDB_FILES})
|
||||||
|
set(DLL_PDB_DEBUG_FILES $<TARGET_PDB_FILE_DIR:pcre2-8-shared>/pcre2-8d.pdb ${DLL_PDB_DEBUG_FILES})
|
||||||
|
|
||||||
|
add_library(pcre2-posix-shared SHARED ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES})
|
||||||
|
target_include_directories(pcre2-posix-shared PUBLIC ${PROJECT_SOURCE_DIR}/src)
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-posix-shared
|
||||||
|
PROPERTIES
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_POSIX_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_POSIX_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_POSIX_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_POSIX_SOVERSION}
|
||||||
|
OUTPUT_NAME pcre2-posix
|
||||||
|
)
|
||||||
|
set(PCRE2POSIX_CFLAG "-DPCRE2POSIX_SHARED")
|
||||||
|
target_compile_definitions(pcre2-posix-shared PUBLIC ${PCRE2POSIX_CFLAG})
|
||||||
|
target_link_libraries(pcre2-posix-shared pcre2-8-shared)
|
||||||
|
set(TARGETS ${TARGETS} pcre2-posix-shared)
|
||||||
|
set(DLL_PDB_FILES $<TARGET_PDB_FILE_DIR:pcre2-posix-shared>/pcre2-posix.pdb ${DLL_PDB_FILES})
|
||||||
|
set(DLL_PDB_DEBUG_FILES $<TARGET_PDB_FILE_DIR:pcre2-posix-shared>/pcre2-posixd.pdb ${DLL_PDB_DEBUG_FILES})
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
if(NON_STANDARD_LIB_PREFIX)
|
||||||
|
set_target_properties(pcre2-8-shared pcre2-posix-shared PROPERTIES PREFIX "")
|
||||||
|
endif()
|
||||||
|
if(NON_STANDARD_LIB_SUFFIX)
|
||||||
|
set_target_properties(pcre2-8-shared pcre2-posix-shared PROPERTIES SUFFIX "-0.dll")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
add_library(pcre2-8 ALIAS pcre2-8-static)
|
||||||
|
add_library(pcre2-posix ALIAS pcre2-posix-static)
|
||||||
|
else()
|
||||||
|
add_library(pcre2-8 ALIAS pcre2-8-shared)
|
||||||
|
add_library(pcre2-posix ALIAS pcre2-posix-shared)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# 16-bit library
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_16)
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
add_library(pcre2-16-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
|
||||||
|
target_include_directories(pcre2-16-static PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-16-static
|
||||||
|
PROPERTIES
|
||||||
|
UNITY_BUILD OFF
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_32_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_16_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_16_SOVERSION}
|
||||||
|
)
|
||||||
|
target_compile_definitions(pcre2-16-static PUBLIC PCRE2_STATIC)
|
||||||
|
if(REQUIRE_PTHREAD)
|
||||||
|
target_link_libraries(pcre2-16-static Threads::Threads)
|
||||||
|
endif()
|
||||||
|
set(TARGETS ${TARGETS} pcre2-16-static)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
set_target_properties(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16-static)
|
||||||
|
else()
|
||||||
|
set_target_properties(pcre2-16-static PROPERTIES OUTPUT_NAME pcre2-16)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_STATIC_PIC)
|
||||||
|
set_target_properties(pcre2-16-static PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
add_library(pcre2-16-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
|
||||||
|
target_include_directories(pcre2-16-shared PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-16-shared
|
||||||
|
PROPERTIES
|
||||||
|
UNITY_BUILD OFF
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_32_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_16_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_16_SOVERSION}
|
||||||
|
OUTPUT_NAME pcre2-16
|
||||||
|
)
|
||||||
|
if(REQUIRE_PTHREAD)
|
||||||
|
target_link_libraries(pcre2-16-shared Threads::Threads)
|
||||||
|
endif()
|
||||||
|
set(TARGETS ${TARGETS} pcre2-16-shared)
|
||||||
|
set(DLL_PDB_FILES $<TARGET_PDB_FILE_DIR:pcre2-16-shared>/pcre2-16.pdb ${DLL_PDB_FILES})
|
||||||
|
set(DLL_PDB_DEBUG_FILES $<TARGET_PDB_FILE_DIR:pcre2-16-shared>/pcre2-16d.pdb ${DLL_PDB_DEBUG_FILES})
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
if(NON_STANDARD_LIB_PREFIX)
|
||||||
|
set_target_properties(pcre2-16-shared PROPERTIES PREFIX "")
|
||||||
|
endif()
|
||||||
|
if(NON_STANDARD_LIB_SUFFIX)
|
||||||
|
set_target_properties(pcre2-16-shared PROPERTIES SUFFIX "-0.dll")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
add_library(pcre2-16 ALIAS pcre2-16-static)
|
||||||
|
else()
|
||||||
|
add_library(pcre2-16 ALIAS pcre2-16-shared)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# 32-bit library
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_32)
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
add_library(pcre2-32-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
|
||||||
|
target_include_directories(pcre2-32-static PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-32-static
|
||||||
|
PROPERTIES
|
||||||
|
UNITY_BUILD OFF
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=32
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_32_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_32_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_32_SOVERSION}
|
||||||
|
)
|
||||||
|
target_compile_definitions(pcre2-32-static PUBLIC PCRE2_STATIC)
|
||||||
|
if(REQUIRE_PTHREAD)
|
||||||
|
target_link_libraries(pcre2-32-static Threads::Threads)
|
||||||
|
endif()
|
||||||
|
set(TARGETS ${TARGETS} pcre2-32-static)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
set_target_properties(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32-static)
|
||||||
|
else()
|
||||||
|
set_target_properties(pcre2-32-static PROPERTIES OUTPUT_NAME pcre2-32)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_STATIC_PIC)
|
||||||
|
set_target_properties(pcre2-32-static PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_SHARED_LIBS)
|
||||||
|
add_library(pcre2-32-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
|
||||||
|
target_include_directories(pcre2-32-shared PUBLIC ${PROJECT_BINARY_DIR})
|
||||||
|
set_target_properties(
|
||||||
|
pcre2-32-shared
|
||||||
|
PROPERTIES
|
||||||
|
UNITY_BUILD OFF
|
||||||
|
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=32
|
||||||
|
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
|
||||||
|
MACHO_CURRENT_VERSION "${LIBPCRE2_32_MACHO_CURRENT_VERSION}"
|
||||||
|
VERSION ${LIBPCRE2_32_VERSION}
|
||||||
|
SOVERSION ${LIBPCRE2_32_SOVERSION}
|
||||||
|
OUTPUT_NAME pcre2-32
|
||||||
|
)
|
||||||
|
if(REQUIRE_PTHREAD)
|
||||||
|
target_link_libraries(pcre2-32-shared Threads::Threads)
|
||||||
|
endif()
|
||||||
|
set(TARGETS ${TARGETS} pcre2-32-shared)
|
||||||
|
set(DLL_PDB_FILES $<TARGET_PDB_FILE_DIR:pcre2-32-shared>/pcre2-32.pdb ${DLL_PDB_FILES})
|
||||||
|
set(DLL_PDB_DEBUG_FILES $<TARGET_PDB_FILE_DIR:pcre2-32-shared>/pcre2-32d.pdb ${DLL_PDB_DEBUG_FILES})
|
||||||
|
|
||||||
|
if(MINGW)
|
||||||
|
if(NON_STANDARD_LIB_PREFIX)
|
||||||
|
set_target_properties(pcre2-32-shared PROPERTIES PREFIX "")
|
||||||
|
endif()
|
||||||
|
if(NON_STANDARD_LIB_SUFFIX)
|
||||||
|
set_target_properties(pcre2-32-shared PROPERTIES SUFFIX "-0.dll")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
add_library(pcre2-32 ALIAS pcre2-32-static)
|
||||||
|
else()
|
||||||
|
add_library(pcre2-32 ALIAS pcre2-32-shared)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Generate pkg-config files
|
||||||
|
|
||||||
|
set(PACKAGE_VERSION "${PCRE2_MAJOR}.${PCRE2_MINOR}")
|
||||||
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(exec_prefix "\${prefix}")
|
||||||
|
set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||||
|
set(includedir "\${prefix}/include")
|
||||||
|
if(WIN32 AND (CMAKE_BUILD_TYPE MATCHES Debug))
|
||||||
|
set(LIB_POSTFIX ${CMAKE_DEBUG_POSTFIX})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
configure_file(libpcre2-posix.pc.in libpcre2-posix.pc @ONLY)
|
||||||
|
list(APPEND pkg_config_files "${CMAKE_CURRENT_BINARY_DIR}/libpcre2-posix.pc")
|
||||||
|
configure_file(libpcre2-8.pc.in libpcre2-8.pc @ONLY)
|
||||||
|
list(APPEND pkg_config_files "${CMAKE_CURRENT_BINARY_DIR}/libpcre2-8.pc")
|
||||||
|
set(enable_pcre2_8 "yes")
|
||||||
|
else()
|
||||||
|
set(enable_pcre2_8 "no")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_16)
|
||||||
|
configure_file(libpcre2-16.pc.in libpcre2-16.pc @ONLY)
|
||||||
|
list(APPEND pkg_config_files "${CMAKE_CURRENT_BINARY_DIR}/libpcre2-16.pc")
|
||||||
|
set(enable_pcre2_16 "yes")
|
||||||
|
else()
|
||||||
|
set(enable_pcre2_16 "no")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_32)
|
||||||
|
configure_file(libpcre2-32.pc.in libpcre2-32.pc @ONLY)
|
||||||
|
list(APPEND pkg_config_files "${CMAKE_CURRENT_BINARY_DIR}/libpcre2-32.pc")
|
||||||
|
set(enable_pcre2_32 "yes")
|
||||||
|
else()
|
||||||
|
set(enable_pcre2_32 "no")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
configure_file(pcre2-config.in pcre2-config @ONLY NEWLINE_STYLE LF)
|
||||||
|
|
||||||
|
# Executables
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2GREP)
|
||||||
|
add_executable(pcre2grep src/pcre2grep.c)
|
||||||
|
set_property(TARGET pcre2grep PROPERTY COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8)
|
||||||
|
set(TARGETS ${TARGETS} pcre2grep)
|
||||||
|
target_link_libraries(pcre2grep pcre2-posix ${PCRE2GREP_LIBS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_TESTS)
|
||||||
|
enable_testing()
|
||||||
|
|
||||||
|
set(PCRE2TEST_SOURCES src/pcre2test.c)
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
# This is needed to avoid a stack overflow error in the standard tests. The
|
||||||
|
# flag should be indicated with a forward-slash instead of a hyphen, but
|
||||||
|
# then CMake treats it as a file path.
|
||||||
|
set(PCRE2TEST_LINKER_FLAGS -STACK:2500000)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_executable(pcre2test ${PCRE2TEST_SOURCES})
|
||||||
|
set(TARGETS ${TARGETS} pcre2test)
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
list(APPEND PCRE2TEST_LIBS pcre2-posix pcre2-8)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_BUILD_PCRE2_16)
|
||||||
|
list(APPEND PCRE2TEST_LIBS pcre2-16)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_BUILD_PCRE2_32)
|
||||||
|
list(APPEND PCRE2TEST_LIBS pcre2-32)
|
||||||
|
endif()
|
||||||
|
target_link_libraries(pcre2test ${PCRE2TEST_LIBS} ${PCRE2TEST_LINKER_FLAGS})
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
add_executable(pcre2posix_test src/pcre2posix_test.c)
|
||||||
|
target_link_libraries(pcre2posix_test pcre2-posix pcre2-8)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_JIT)
|
||||||
|
add_executable(pcre2_jit_test src/pcre2_jit_test.c)
|
||||||
|
set(PCRE2_JIT_TEST_LIBS)
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
list(APPEND PCRE2_JIT_TEST_LIBS pcre2-8)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_BUILD_PCRE2_16)
|
||||||
|
list(APPEND PCRE2_JIT_TEST_LIBS pcre2-16)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_BUILD_PCRE2_32)
|
||||||
|
list(APPEND PCRE2_JIT_TEST_LIBS pcre2-32)
|
||||||
|
endif()
|
||||||
|
target_link_libraries(pcre2_jit_test ${PCRE2_JIT_TEST_LIBS})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# =================================================
|
||||||
|
# Write out a CTest configuration file
|
||||||
|
#
|
||||||
|
file(
|
||||||
|
WRITE
|
||||||
|
${PROJECT_BINARY_DIR}/CTestCustom.ctest
|
||||||
|
"# This is a generated file.
|
||||||
|
MESSAGE(\"When testing is complete, review test output in the
|
||||||
|
\\\"${PROJECT_BINARY_DIR}/Testing/Temporary\\\" folder.\")
|
||||||
|
MESSAGE(\" \")
|
||||||
|
"
|
||||||
|
)
|
||||||
|
|
||||||
|
file(
|
||||||
|
WRITE
|
||||||
|
${PROJECT_BINARY_DIR}/pcre2_test.sh
|
||||||
|
"#! /bin/sh
|
||||||
|
# This is a generated file.
|
||||||
|
srcdir=${PROJECT_SOURCE_DIR}
|
||||||
|
pcre2test=${PROJECT_BINARY_DIR}/pcre2test
|
||||||
|
test -z \"$CMAKE_CONFIG_TYPE\" || pcre2test=${PROJECT_BINARY_DIR}/$CMAKE_CONFIG_TYPE/pcre2test
|
||||||
|
. ${PROJECT_SOURCE_DIR}/RunTest
|
||||||
|
if test \"$?\" != \"0\"; then exit 1; fi
|
||||||
|
# End
|
||||||
|
"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
add_test(pcre2_test sh ${PROJECT_BINARY_DIR}/pcre2_test.sh)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2GREP)
|
||||||
|
file(
|
||||||
|
WRITE
|
||||||
|
${PROJECT_BINARY_DIR}/pcre2_grep_test.sh
|
||||||
|
"#! /bin/sh
|
||||||
|
# This is a generated file.
|
||||||
|
srcdir=${PROJECT_SOURCE_DIR}
|
||||||
|
pcre2grep=${PROJECT_BINARY_DIR}/pcre2grep
|
||||||
|
test -z \"$CMAKE_CONFIG_TYPE\" || pcre2grep=${PROJECT_BINARY_DIR}/$CMAKE_CONFIG_TYPE/pcre2grep
|
||||||
|
pcre2test=${PROJECT_BINARY_DIR}/pcre2test
|
||||||
|
test -z \"$CMAKE_CONFIG_TYPE\" || pcre2test=${PROJECT_BINARY_DIR}/$CMAKE_CONFIG_TYPE/pcre2test
|
||||||
|
. ${PROJECT_SOURCE_DIR}/RunGrepTest
|
||||||
|
if test \"$?\" != \"0\"; then exit 1; fi
|
||||||
|
# End
|
||||||
|
"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(UNIX)
|
||||||
|
add_test(pcre2_grep_test sh ${PROJECT_BINARY_DIR}/pcre2_grep_test.sh)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# Provide environment for executing the bat file version of RunTest
|
||||||
|
file(TO_NATIVE_PATH ${PROJECT_SOURCE_DIR} winsrc)
|
||||||
|
file(TO_NATIVE_PATH ${PROJECT_BINARY_DIR} winbin)
|
||||||
|
|
||||||
|
file(
|
||||||
|
WRITE
|
||||||
|
${PROJECT_BINARY_DIR}/pcre2_test.bat
|
||||||
|
"\@REM This is a generated file.
|
||||||
|
\@echo off
|
||||||
|
setlocal
|
||||||
|
SET srcdir=\"${winsrc}\"
|
||||||
|
SET pcre2test=\"${winbin}\\pcre2test.exe\"
|
||||||
|
if not [%CMAKE_CONFIG_TYPE%]==[] SET pcre2test=\"${winbin}\\%CMAKE_CONFIG_TYPE%\\pcre2test.exe\"
|
||||||
|
call %srcdir%\\RunTest.bat
|
||||||
|
if errorlevel 1 exit /b 1
|
||||||
|
echo RunTest.bat tests successfully completed
|
||||||
|
"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_test(NAME pcre2_test_bat COMMAND pcre2_test.bat)
|
||||||
|
set_tests_properties(pcre2_test_bat PROPERTIES PASS_REGULAR_EXPRESSION "RunTest\\.bat tests successfully completed")
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2GREP)
|
||||||
|
file(
|
||||||
|
WRITE
|
||||||
|
${PROJECT_BINARY_DIR}/pcre2_grep_test.bat
|
||||||
|
"\@REM This is a generated file.
|
||||||
|
\@echo off
|
||||||
|
setlocal
|
||||||
|
SET srcdir=\"${winsrc}\"
|
||||||
|
SET pcre2test=\"${winbin}\\pcre2test.exe\"
|
||||||
|
if not [%CMAKE_CONFIG_TYPE%]==[] SET pcre2test=\"${winbin}\\%CMAKE_CONFIG_TYPE%\\pcre2test.exe\"
|
||||||
|
SET pcre2grep=\"${winbin}\\pcre2grep.exe\"
|
||||||
|
if not [%CMAKE_CONFIG_TYPE%]==[] SET pcre2grep=\"${winbin}\\%CMAKE_CONFIG_TYPE%\\pcre2grep.exe\"
|
||||||
|
call %srcdir%\\RunGrepTest.bat
|
||||||
|
if errorlevel 1 exit /b 1
|
||||||
|
echo RunGrepTest.bat tests successfully completed
|
||||||
|
"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_test(NAME pcre2_grep_test_bat COMMAND pcre2_grep_test.bat)
|
||||||
|
set_tests_properties(
|
||||||
|
pcre2_grep_test_bat
|
||||||
|
PROPERTIES PASS_REGULAR_EXPRESSION "RunGrepTest\\.bat tests successfully completed"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if("$ENV{OSTYPE}" STREQUAL "msys")
|
||||||
|
# Both the sh and bat file versions of RunTest are run if make test is used
|
||||||
|
# in msys
|
||||||
|
add_test(pcre2_test_sh sh.exe ${PROJECT_BINARY_DIR}/pcre2_test.sh)
|
||||||
|
if(PCRE2_BUILD_PCRE2GREP)
|
||||||
|
add_test(pcre2_grep_test sh.exe ${PROJECT_BINARY_DIR}/pcre2_grep_test.sh)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Changed to accommodate testing whichever location was just built
|
||||||
|
|
||||||
|
if(PCRE2_SUPPORT_JIT)
|
||||||
|
add_test(pcre2_jit_test pcre2_jit_test)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_BUILD_PCRE2_8)
|
||||||
|
add_test(pcre2posix_test pcre2posix_test)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_ALWAYS 1)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS ${TARGETS}
|
||||||
|
RUNTIME DESTINATION bin
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
)
|
||||||
|
install(FILES ${pkg_config_files} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||||
|
install(
|
||||||
|
FILES "${CMAKE_CURRENT_BINARY_DIR}/pcre2-config"
|
||||||
|
DESTINATION bin
|
||||||
|
# Set 0755 permissions
|
||||||
|
PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||||
|
)
|
||||||
|
|
||||||
|
install(FILES ${PCRE2_HEADERS} ${PCRE2POSIX_HEADERS} DESTINATION include)
|
||||||
|
|
||||||
|
# CMake config files.
|
||||||
|
set(PCRE2_CONFIG_IN ${CMAKE_CURRENT_SOURCE_DIR}/cmake/pcre2-config.cmake.in)
|
||||||
|
set(PCRE2_CONFIG_OUT ${CMAKE_CURRENT_BINARY_DIR}/cmake/pcre2-config.cmake)
|
||||||
|
configure_file(${PCRE2_CONFIG_IN} ${PCRE2_CONFIG_OUT} @ONLY)
|
||||||
|
set(PCRE2_CONFIG_VERSION_IN ${CMAKE_CURRENT_SOURCE_DIR}/cmake/pcre2-config-version.cmake.in)
|
||||||
|
set(PCRE2_CONFIG_VERSION_OUT ${CMAKE_CURRENT_BINARY_DIR}/cmake/pcre2-config-version.cmake)
|
||||||
|
configure_file(${PCRE2_CONFIG_VERSION_IN} ${PCRE2_CONFIG_VERSION_OUT} @ONLY)
|
||||||
|
install(FILES ${PCRE2_CONFIG_OUT} ${PCRE2_CONFIG_VERSION_OUT} DESTINATION "${PCRE2_INSTALL_CMAKEDIR}")
|
||||||
|
|
||||||
|
file(GLOB html ${PROJECT_SOURCE_DIR}/doc/html/*.html ${PROJECT_SOURCE_DIR}/doc/html/*.txt)
|
||||||
|
file(
|
||||||
|
GLOB txts
|
||||||
|
${PROJECT_SOURCE_DIR}/doc/*.txt
|
||||||
|
AUTHORS.md
|
||||||
|
COPYING
|
||||||
|
ChangeLog
|
||||||
|
LICENCE.md
|
||||||
|
NEWS
|
||||||
|
README
|
||||||
|
SECURITY.md
|
||||||
|
)
|
||||||
|
file(GLOB man1 ${PROJECT_SOURCE_DIR}/doc/*.1)
|
||||||
|
file(GLOB man3 ${PROJECT_SOURCE_DIR}/doc/*.3)
|
||||||
|
|
||||||
|
install(FILES ${man1} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||||
|
install(FILES ${man3} DESTINATION ${CMAKE_INSTALL_MANDIR}/man3)
|
||||||
|
install(FILES ${txts} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/doc/pcre2)
|
||||||
|
install(FILES ${html} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/doc/pcre2/html)
|
||||||
|
|
||||||
|
if(MSVC AND INSTALL_MSVC_PDB)
|
||||||
|
install(FILES ${DLL_PDB_FILES} DESTINATION bin CONFIGURATIONS RelWithDebInfo)
|
||||||
|
install(FILES ${DLL_PDB_DEBUG_FILES} DESTINATION bin CONFIGURATIONS Debug)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Help, only for nice output
|
||||||
|
if(BUILD_STATIC_LIBS)
|
||||||
|
set(BUILD_STATIC_LIBS ON)
|
||||||
|
else()
|
||||||
|
set(BUILD_STATIC_LIBS OFF)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_HEAP_MATCH_RECURSE)
|
||||||
|
message(WARNING "HEAP_MATCH_RECURSE is obsolete and does nothing.")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(PCRE2_SHOW_REPORT)
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS "PCRE2-${PCRE2_MAJOR}.${PCRE2_MINOR} configuration summary:")
|
||||||
|
message(STATUS "")
|
||||||
|
message(STATUS " Install prefix .................... : ${CMAKE_INSTALL_PREFIX}")
|
||||||
|
message(STATUS " C compiler ........................ : ${CMAKE_C_COMPILER}")
|
||||||
|
|
||||||
|
if(CMAKE_C_FLAGS)
|
||||||
|
set(CFSP " ")
|
||||||
|
endif()
|
||||||
|
if(CMAKE_CONFIGURATION_TYPES)
|
||||||
|
foreach(config IN LISTS CMAKE_CONFIGURATION_TYPES)
|
||||||
|
string(TOUPPER "${config}" buildtype)
|
||||||
|
string(LENGTH " (${config})" buildtypelen)
|
||||||
|
math(EXPR dotslen "18 - ${buildtypelen}")
|
||||||
|
string(REPEAT "." ${dotslen} dots)
|
||||||
|
message(STATUS " C compiler flags (${config}) ${dots} : ${CMAKE_C_FLAGS}${CFSP}${CMAKE_C_FLAGS_${buildtype}}")
|
||||||
|
endforeach()
|
||||||
|
else()
|
||||||
|
string(TOUPPER "${CMAKE_BUILD_TYPE}" buildtype)
|
||||||
|
message(STATUS " C compiler flags .................. : ${CMAKE_C_FLAGS}${CFSP}${CMAKE_C_FLAGS_${buildtype}}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
if(CMAKE_CONFIGURATION_TYPES)
|
||||||
|
message(STATUS " Build configurations .............. : ${CMAKE_CONFIGURATION_TYPES}")
|
||||||
|
else()
|
||||||
|
message(STATUS " Build type ........................ : ${CMAKE_BUILD_TYPE}")
|
||||||
|
endif()
|
||||||
|
message(STATUS " Build 8 bit PCRE2 library ......... : ${PCRE2_BUILD_PCRE2_8}")
|
||||||
|
message(STATUS " Build 16 bit PCRE2 library ........ : ${PCRE2_BUILD_PCRE2_16}")
|
||||||
|
message(STATUS " Build 32 bit PCRE2 library ........ : ${PCRE2_BUILD_PCRE2_32}")
|
||||||
|
message(STATUS " Include debugging code ............ : ${PCRE2_DEBUG}")
|
||||||
|
message(STATUS " Enable JIT compiling support ...... : ${PCRE2_SUPPORT_JIT}")
|
||||||
|
message(STATUS " Use SELinux allocator in JIT ...... : ${PCRE2_SUPPORT_JIT_SEALLOC}")
|
||||||
|
message(STATUS " Enable Unicode support ............ : ${PCRE2_SUPPORT_UNICODE}")
|
||||||
|
message(STATUS " Newline char/sequence ............. : ${PCRE2_NEWLINE}")
|
||||||
|
message(STATUS " \\R matches only ANYCRLF ........... : ${PCRE2_SUPPORT_BSR_ANYCRLF}")
|
||||||
|
message(STATUS " \\C is disabled .................... : ${PCRE2_NEVER_BACKSLASH_C}")
|
||||||
|
message(STATUS " EBCDIC coding ..................... : ${PCRE2_EBCDIC}")
|
||||||
|
message(STATUS " EBCDIC coding with NL=0x25 ........ : ${PCRE2_EBCDIC_NL25}")
|
||||||
|
message(STATUS " Rebuild char tables ............... : ${PCRE2_REBUILD_CHARTABLES}")
|
||||||
|
message(STATUS " Internal link size ................ : ${PCRE2_LINK_SIZE}")
|
||||||
|
message(STATUS " Maximum variable lookbehind ....... : ${PCRE2_MAX_VARLOOKBEHIND}")
|
||||||
|
message(STATUS " Parentheses nest limit ............ : ${PCRE2_PARENS_NEST_LIMIT}")
|
||||||
|
message(STATUS " Heap limit ........................ : ${PCRE2_HEAP_LIMIT}")
|
||||||
|
message(STATUS " Match limit ....................... : ${PCRE2_MATCH_LIMIT}")
|
||||||
|
message(STATUS " Match depth limit ................. : ${PCRE2_MATCH_LIMIT_DEPTH}")
|
||||||
|
message(STATUS " Build shared libs ................. : ${BUILD_SHARED_LIBS}")
|
||||||
|
message(STATUS " Build static libs ................. : ${BUILD_STATIC_LIBS}")
|
||||||
|
message(STATUS " with PIC enabled ............... : ${PCRE2_STATIC_PIC}")
|
||||||
|
message(STATUS " Build pcre2grep ................... : ${PCRE2_BUILD_PCRE2GREP}")
|
||||||
|
message(STATUS " Enable JIT in pcre2grep ........... : ${PCRE2GREP_SUPPORT_JIT}")
|
||||||
|
message(STATUS " Enable callouts in pcre2grep ...... : ${PCRE2GREP_SUPPORT_CALLOUT}")
|
||||||
|
message(STATUS " Enable callout fork in pcre2grep .. : ${PCRE2GREP_SUPPORT_CALLOUT_FORK}")
|
||||||
|
message(STATUS " Buffer size for pcre2grep ......... : ${PCRE2GREP_BUFSIZE}")
|
||||||
|
message(STATUS " Build tests (implies pcre2test .... : ${PCRE2_BUILD_TESTS}")
|
||||||
|
message(STATUS " and pcre2grep)")
|
||||||
|
if(ZLIB_FOUND)
|
||||||
|
message(STATUS " Link pcre2grep with libz .......... : ${PCRE2_SUPPORT_LIBZ}")
|
||||||
|
else()
|
||||||
|
message(STATUS " Link pcre2grep with libz .......... : Library not found")
|
||||||
|
endif()
|
||||||
|
if(BZIP2_FOUND)
|
||||||
|
message(STATUS " Link pcre2grep with libbz2 ........ : ${PCRE2_SUPPORT_LIBBZ2}")
|
||||||
|
else()
|
||||||
|
message(STATUS " Link pcre2grep with libbz2 ........ : Library not found")
|
||||||
|
endif()
|
||||||
|
if(EDITLINE_FOUND)
|
||||||
|
message(STATUS " Link pcre2test with libeditline ... : ${PCRE2_SUPPORT_LIBEDIT}")
|
||||||
|
else()
|
||||||
|
message(STATUS " Link pcre2test with libeditline ... : Library not found")
|
||||||
|
endif()
|
||||||
|
if(READLINE_FOUND)
|
||||||
|
message(STATUS " Link pcre2test with libreadline ... : ${PCRE2_SUPPORT_LIBREADLINE}")
|
||||||
|
else()
|
||||||
|
message(STATUS " Link pcre2test with libreadline ... : Library not found")
|
||||||
|
endif()
|
||||||
|
message(STATUS " Support Valgrind .................. : ${PCRE2_SUPPORT_VALGRIND}")
|
||||||
|
if(PCRE2_DISABLE_PERCENT_ZT)
|
||||||
|
message(STATUS " Use %zu and %td ................... : OFF")
|
||||||
|
else()
|
||||||
|
message(STATUS " Use %zu and %td ................... : AUTO")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MINGW AND BUILD_SHARED_LIBS)
|
||||||
|
message(STATUS " Non-standard dll names (prefix) ... : ${NON_STANDARD_LIB_PREFIX}")
|
||||||
|
message(STATUS " Non-standard dll names (suffix) ... : ${NON_STANDARD_LIB_SUFFIX}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
message(STATUS " Install MSVC .pdb files ........... : ${INSTALL_MSVC_PDB}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
message(STATUS "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# end CMakeLists.txt
|
||||||
5
3rd/pcre2/COPYING
Normal file
5
3rd/pcre2/COPYING
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
PCRE2 LICENCE
|
||||||
|
|
||||||
|
Please see the file LICENCE in the PCRE2 distribution for licensing details.
|
||||||
|
|
||||||
|
End
|
||||||
3285
3rd/pcre2/ChangeLog
Normal file
3285
3rd/pcre2/ChangeLog
Normal file
@@ -0,0 +1,3285 @@
|
|||||||
|
Change Log for PCRE2
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Before the move to GitHub, this was the only record of changes to PCRE2. Now
|
||||||
|
there is also the log of commit messages.
|
||||||
|
|
||||||
|
Internal changes which are not visible to clients of the library are mostly not
|
||||||
|
listed here.
|
||||||
|
|
||||||
|
Version 10.45 05-February-2025
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. (#418) Change 6 of 10.44 broke 32-bit tests because pcre2test's reporting of
|
||||||
|
memory size was changed to the entire compiled data block, instead of just the
|
||||||
|
pattern and tables data, so as to align with the new length restriction.
|
||||||
|
Because the block's header contains pointers, this meant the pcre2test output
|
||||||
|
was different in 32-bit mode. A patch by Carlo reverts to the previous state
|
||||||
|
and makes sure that any limit set by pcre2_set_max_pattern_compiled_length()
|
||||||
|
also avoids the internal struct overhead.
|
||||||
|
|
||||||
|
2. (#416, #622) Updates to build.zig.
|
||||||
|
|
||||||
|
3. (#427, et al.) Various fixes to pacify static analyzers.
|
||||||
|
|
||||||
|
4. (#428) Add --posix-pattern-file to pcre2grep to allow processing of empty
|
||||||
|
patterns through the -f option, as well as patterns that end in space
|
||||||
|
characters, for compatibility with other grep tools.
|
||||||
|
|
||||||
|
5. (4fa5b8bd) Fix a bug in the fuzz support quantifier-limiting code. It ignores
|
||||||
|
strings of more than 5 digits because they are necessarily numbers greater than
|
||||||
|
65535, the largest legal quantifier. However, it wasn't ignoring non-significant
|
||||||
|
leading zeros.
|
||||||
|
|
||||||
|
6. (6d82f0cd) The case-independent processing of the letter-matching Unicode
|
||||||
|
properties Ll, Lt, and Lu have been changed to match Perl (which changed a while
|
||||||
|
ago). When caseless matching is in force, all three of these properties are now
|
||||||
|
treated as Lc (cased letter).
|
||||||
|
|
||||||
|
7. (#433) The pcre2_jit_compile() function was updated by the addition of a new
|
||||||
|
option PCRE2_JIT_TEST_ALLOC which, if called with a NULL first argument, tests
|
||||||
|
not only the availability of JIT, but also its ability to allocate executable
|
||||||
|
memory. Update pcre2test to use this support to extend the -C option.
|
||||||
|
|
||||||
|
8. (75b1025a) The code for parsing Unicode property descriptions for \p and \P
|
||||||
|
been changed as follows:
|
||||||
|
|
||||||
|
. White space etc. before ^ in a negated value such as \p{ ^L } was not being
|
||||||
|
ignored.
|
||||||
|
|
||||||
|
. The code wouldn't have worked if PCRE2 was compiled for UTF-8 support
|
||||||
|
within an EBCDIC environment. Possibly nobody does this any more, but it
|
||||||
|
should now work.
|
||||||
|
|
||||||
|
. The documentation of the syntax of what can follow \p and \P has been
|
||||||
|
updated.
|
||||||
|
|
||||||
|
9. (1c24ba01) There was an error in the table of lengths for parsed items for
|
||||||
|
the OPTIONS item, but fortuitously it could never have actually bitten. While
|
||||||
|
fixing this, some other code that could never be obeyed was discovered and
|
||||||
|
removed.
|
||||||
|
|
||||||
|
10. (674b6640) Removed some incorect optimization code from DFA matching that
|
||||||
|
has been there since PCRE1, but has just been found to cause a no match return
|
||||||
|
instead of a partial match in some cases. It involves partial matching when (*F)
|
||||||
|
is present so is unlikely to have actually affected anyone.
|
||||||
|
|
||||||
|
11. (b0f4ac17) Tidy the wording and formatting of some pcre2test error messages
|
||||||
|
concerned with bad modifiers. Also restrict single-letter modifier sequences to
|
||||||
|
the first item in a modifier list, as documented and always intended.
|
||||||
|
|
||||||
|
12. (1415565c) An iterator at the end of many assertions can always be
|
||||||
|
auto-possessified, but not at the end of variable-length lookbehinds. There was
|
||||||
|
a bug in the code that checks for such a lookbehind; it was looking only at the
|
||||||
|
first branch, which is wrong because some branches can be fixed length when
|
||||||
|
others are not, for example (?<=AB|CD?). Now all branches are checked for
|
||||||
|
variability.
|
||||||
|
|
||||||
|
13. (ead08288) Matching with pcre2_match() could give an incorrect result if a
|
||||||
|
variable-length lookbehind was used as the condition in a conditional group.
|
||||||
|
The condition could erroneously be treated as true if a branch matched but
|
||||||
|
overran the current position. This bug was in the interpreter only; matching
|
||||||
|
with JIT was correct.
|
||||||
|
|
||||||
|
14. (#443) Split out the sljit sub-project into a "Git submodule". Git users
|
||||||
|
must now run `git submodule init; git submodule update` after a Git checkout, or
|
||||||
|
the build will fail due to missing files in deps/sljit.
|
||||||
|
|
||||||
|
15. (#441) Add a new error code (PCRE2_ERROR_JIT_UNSUPPORTED) which is yielded
|
||||||
|
for unsupported jit features.
|
||||||
|
|
||||||
|
16. (#444) Fix bug in 'first code unit' and 'last code unit' optimization
|
||||||
|
combined with lookahead assertions.
|
||||||
|
|
||||||
|
17. (#445, #447, #449, #451, #452, #459, #563) Add a new feature called scan
|
||||||
|
substring. This feature is a new type of assertion which matches the content of
|
||||||
|
a capturing block to a sub-pattern.
|
||||||
|
|
||||||
|
18. (#450) Improvements to 'first code unit' / 'starting code units'
|
||||||
|
optimisation.
|
||||||
|
|
||||||
|
19. (#455) Many, many improvements to the JIT compiler.
|
||||||
|
|
||||||
|
20. Item 43 of 10.43 was incomplete because it addressed only \z and not \Z,
|
||||||
|
which was still misbehaving when matching fragments inside invalid UTF strings.
|
||||||
|
|
||||||
|
21. (d29e7290) Octal escapes of the form \045 or \111 were not being recognized
|
||||||
|
in substitution strings, and if encountered gave an error, though the \o{...}
|
||||||
|
form was recognized. This bug is now fixed.
|
||||||
|
|
||||||
|
22. (#463, #487) Fix 1 byte out-of-bounds read when parsing malformed limits
|
||||||
|
(e.g. LIMIT_HEAP)
|
||||||
|
|
||||||
|
23. Many improvements to test infrastructure. Many more platforms and
|
||||||
|
configurations are now run in Continuous Integration, and all the platforms now
|
||||||
|
run the full test suite, rather than a partial subset.
|
||||||
|
|
||||||
|
24. (#475) Implement title casing in substitution strings using Perl syntax.
|
||||||
|
|
||||||
|
25. (#478, #504) Disallow \x if not followed by { or a hex digit.
|
||||||
|
|
||||||
|
26. (#473) Implements Python-style backrefs in substitutions.
|
||||||
|
|
||||||
|
27. (#472) Fix error reporting for certain over-large octal escapes.
|
||||||
|
|
||||||
|
28. (#482) Fix parsing of named captures in replacement strings, allowing
|
||||||
|
non-ASCII capture names to be used.
|
||||||
|
|
||||||
|
29. (#477, #474, #488, #494, #496, #506, #508, #511, #518, #524, #540) Many
|
||||||
|
improvements to parsing and optimising of character classes.
|
||||||
|
|
||||||
|
30. (#483, #498) Add support for \g<n> and $<name> to replacement strings.
|
||||||
|
|
||||||
|
31. (#470) Add option flags PCRE2_EXTRA_NO_BS0 and PCRE2_EXTRA_PYTHON_OCTAL.
|
||||||
|
|
||||||
|
32. (#471) Add new API function pcre2_set_optimize() for controlling which
|
||||||
|
optimizations are enabled.
|
||||||
|
|
||||||
|
33. (#491) Adds $& $` $' and $_ to substitution replacements, as well as
|
||||||
|
interpreting \b and \v as characters.
|
||||||
|
|
||||||
|
34. (#499) Add option PCRE2_EXTRA_NEVER_CALLOUT to disable callouts.
|
||||||
|
|
||||||
|
35. (#503, #513) Update Unicode support to UCD 16.
|
||||||
|
|
||||||
|
36. (#512, #618, #638) Add new function pcre2_set_substitute_case_callout() to
|
||||||
|
allow clients to provide a custom callback with locale-aware case
|
||||||
|
transformation.
|
||||||
|
|
||||||
|
37. (#516) Fix case-insensitive matching of backreferences when using the
|
||||||
|
PCRE2_EXTRA_CASELESS_RESTRICT option.
|
||||||
|
|
||||||
|
38. (#519) In pcre2grep, add $& as an alias for $0
|
||||||
|
|
||||||
|
39. (c9bf8339, #534) Updated perltest.sh to enable locale setting.
|
||||||
|
|
||||||
|
40. (#521) Add support for Turkish I casefolding, using new options
|
||||||
|
PCRE2_EXTRA_TURKISH_CASING, and added pre-pattern flags (*TURKISH_CASING) and
|
||||||
|
(*CASELESS_RESTRICT).
|
||||||
|
|
||||||
|
41. (#523, #546, #547) Add support for UTS#18 compatible character classes,
|
||||||
|
using the new option PCRE2_ALT_EXTENDED_CLASS. This adds '[' as a metacharacter
|
||||||
|
within character classes and the operators '&&', '--' and '~~', allowing
|
||||||
|
subtractions and intersections of character classes to be easily expressed.
|
||||||
|
|
||||||
|
42. (#553, #586, #596, #597) Add support for Perl-style extended character
|
||||||
|
classes, using the syntax (?[...]). This also allows expressing subtractions and
|
||||||
|
intersections of character classes, but using a different syntax to UTS#18.
|
||||||
|
|
||||||
|
43. (#554) Fixed a bug in JIT affecting greedy bounded repeats. The upper limit
|
||||||
|
of repeats inside a repeated bracket might be incorrectly checked.
|
||||||
|
|
||||||
|
44. (#556) Fixed a bug in JIT affecting caseful matching of backreferences. When
|
||||||
|
utf is disabled, and dupnames is enabled, caseless matching was used even
|
||||||
|
if caseful matching was needed.
|
||||||
|
|
||||||
|
45. (f34fc0a3) Fixed a bug in pcre2grep reported by Alejandro Colomar
|
||||||
|
<alx@kernel.org> (GitHub issue #577). In certain cases, when lines of above and
|
||||||
|
below context were contiguous, a separator line was incorrectly being inserted.
|
||||||
|
|
||||||
|
46. (#594) Fix a small (one/two byte) out-of-bounds read on invalid UTF-8 input
|
||||||
|
in pcre2grep.
|
||||||
|
|
||||||
|
47. (#370) Fix the INSTALL_MSVC_PDB CMake flag.
|
||||||
|
|
||||||
|
48. (#366) Install cmake files in prefix/lib/cmake/pcre2 rather than
|
||||||
|
prefix/cmake. The new CMake flag PCRE2_INSTALL_CMAKEDIR allows customising this
|
||||||
|
location.
|
||||||
|
|
||||||
|
49. (#624, #626, #628, #632, #639, #641) Reduce code size of generated JIT code
|
||||||
|
for repeated character classes.
|
||||||
|
|
||||||
|
50. (#623) Update the Bazel build files.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.44 07-June-2024
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
1. If a pattern contained a variable-length lookbehind in which the first
|
||||||
|
branch was not the one with the shortest minimum length, and the lookbehind
|
||||||
|
contained a capturing group, and elsewhere in the pattern there was another
|
||||||
|
lookbehind that referenced that group, the pattern was incorrectly compiled,
|
||||||
|
leading to unpredictable results, including crashes in JIT compiling. An
|
||||||
|
example pattern is: /(((?<=123?456456|ABC)))(?<=\2)/
|
||||||
|
|
||||||
|
2. Further updates to the oss-fuzz support:
|
||||||
|
|
||||||
|
(a) Limit quantifiers for groups and classes to be no more than 10. This
|
||||||
|
avoids very long JIT compile times that happen in some cases when groups
|
||||||
|
are replicated for quantification, and very long match times when
|
||||||
|
classes contain a lot of non-ascii characters.
|
||||||
|
|
||||||
|
(b) Added PCRE2_EXTENDED_MORE to the list of allowed options.
|
||||||
|
|
||||||
|
(c) Arranged for text error messages to be shown in 16-bit and 32-bit modes.
|
||||||
|
|
||||||
|
(d) Made the output in standalone mode more readable.
|
||||||
|
|
||||||
|
(e) General code tidies.
|
||||||
|
|
||||||
|
(f) Limit the size of compiled patterns to 10MB (see 6 below).
|
||||||
|
|
||||||
|
(g) Do not run JIT on patterns whose compiled length is greater than 200K
|
||||||
|
bytes because this takes a long time, causing oss-fuzz to time out.
|
||||||
|
|
||||||
|
(h) Avoid compiling or matching twice with the same options (this could
|
||||||
|
happen if the input didn't set any options).
|
||||||
|
|
||||||
|
3. Increase the maximum length of a name for a group from 32 to 128 because
|
||||||
|
there is a user for whom 32 is too small.
|
||||||
|
|
||||||
|
4. Cause pcre2test to output a message when pcre2_jit_compile() gives an error
|
||||||
|
return if either jitverify or info is specified.
|
||||||
|
|
||||||
|
5. Some auxiliary files for building under OpenVMS that were contributed by
|
||||||
|
Alexey Chupahin have been installed.
|
||||||
|
|
||||||
|
6. Added pcre2_set_max_pattern_compiled_length() to limit the size of compiled
|
||||||
|
patterns.
|
||||||
|
|
||||||
|
7. There was a bug in the implementation of \X caused by my (PH) misreading or
|
||||||
|
misunderstanding one of the grapheme sequence breaking rules in Unicode Annex
|
||||||
|
#29. A break should occur between two characters with the Extended Pictographic
|
||||||
|
break property unless a zero-width joiner intervenes. PCRE2 was not insisting
|
||||||
|
on the ZWJ, causing \X to match more than it should. See GitHub issue #410.
|
||||||
|
|
||||||
|
8. Avoid compilation issues with proprietary compilers in UNIX since 10.43.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.43 16-February-2024
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. The test program added by change 2 of 10.42 didn't work when the default
|
||||||
|
newline setting didn't include \n as a newline. One test needed (*LF) to ensure
|
||||||
|
that it worked.
|
||||||
|
|
||||||
|
2. Added the new freestanding POSIX test program to the ManyConfigTests script
|
||||||
|
in the maint directory (overlooked in 2 below). Also improved the selection
|
||||||
|
facilities in that script, and added a test with JIT in a non-source directory,
|
||||||
|
fixing an oversight that would have made such a test fail before.
|
||||||
|
|
||||||
|
3. Added pcre2_get_match_data_heapframes_size() and related pcre2test flags
|
||||||
|
to allow for finer control of the heap used when pcre2_match() without JIT is
|
||||||
|
used and the match_data might be reused. This began as PR #191, but has had
|
||||||
|
further refinement and documentation edits.
|
||||||
|
|
||||||
|
4. Applied PR #181, which tidies some casts in pcre2_valid_utf.c.
|
||||||
|
|
||||||
|
5. Applied PR #184, which avoids overflow issues with the heap limit
|
||||||
|
(introduced in 10.41/9).
|
||||||
|
|
||||||
|
6. Applied PR #192, which changes the timing units for pcre2test from
|
||||||
|
milliseconds to microseconds. This is more useful for modern CPUs.
|
||||||
|
|
||||||
|
7. Applied PR #193, which makes the requirement for C99 explicit in
|
||||||
|
configure.ac and CMakeLists.txt.
|
||||||
|
|
||||||
|
8. Fixed a bug in pcre2test when a ridiculously large string repeat required a
|
||||||
|
stupid amount of memory. It now gives a clean realloc() failure error.
|
||||||
|
|
||||||
|
9. Updates to restrict the interaction between ASCII and non-ASCII characters
|
||||||
|
for caseless matching and items like \d:
|
||||||
|
|
||||||
|
(a) Added PCRE2_EXTRA_CASELESS_RESTRICT to lock out mixing of ASCII and
|
||||||
|
non-ASCII when matching caselessly. This is also /r in pcre2test and
|
||||||
|
(?r) within patterns.
|
||||||
|
|
||||||
|
(b) Added PCRE2_EXTRA_ASCII_{BSD,BSS,BSW,POSIX} and corresponding (?aD) etc
|
||||||
|
in patterns and /a in pcre2test.
|
||||||
|
|
||||||
|
(c) Corresponding updates to pcre2test.
|
||||||
|
|
||||||
|
10. Unicode has been updated to 15.0.0.
|
||||||
|
|
||||||
|
11. The Python scripts and ucptest.c in maint have been updated (a) a minor
|
||||||
|
change needed for 9(a) above; (b) fix bugs in ucptest,
|
||||||
|
|
||||||
|
12. Integer overflow testing is now centralized in a new function.
|
||||||
|
|
||||||
|
13. Made PCRE2_UCP the default in UTF mode in pcre2grep, and added new options
|
||||||
|
--case-restrict and --no-ucp.
|
||||||
|
|
||||||
|
14. In the debugging printint module (which is normally only linked into
|
||||||
|
pcre2test), avoid the use of a variable called "not" because that's deprecated
|
||||||
|
in C and forbidden in C++. Also rewrite some code to avoid a goto into a block
|
||||||
|
that bypassed its initialization (though it didn't actually matter).
|
||||||
|
|
||||||
|
15. More minor code adjustments to avoid using reserved C++ words as variable
|
||||||
|
names ("new" and "typename") and another jump that bypassed an (irrelevant)
|
||||||
|
initialization.
|
||||||
|
|
||||||
|
16. Merged a pull request that removed pcre2_ucptables.c from the list of files
|
||||||
|
to compile in NON-AUTOTOOLS-BUILD because it is #included in pcre2_tables.c.
|
||||||
|
Also adjusted the BUILD.bazel and build.zig files, which had the same issue. At
|
||||||
|
the same time, fixed a typo in the Bazel file.
|
||||||
|
|
||||||
|
17. Add PCRE2_EXTRA_ASCII_DIGIT to allow [:digit:] to be kept on sync with \d
|
||||||
|
even in UCP mode.
|
||||||
|
|
||||||
|
18. Fix an invalid match of ascii word classes when invalid utf is enabled.
|
||||||
|
|
||||||
|
19. Add a --posix-digit to pcre2grep for compatibility with GNU grep, and
|
||||||
|
other tools that prefer the POSIX compatible unicode definition for \d.
|
||||||
|
|
||||||
|
20. Report the bit width of the library in use by pcre2test for usability.
|
||||||
|
|
||||||
|
21. A pathological pattern conversion test could result in a string longer than
|
||||||
|
the available input buffer. Cause such a test to fail.
|
||||||
|
|
||||||
|
22. Add a check that forces a compiler error if PCRE2_CODE_UNIT_WIDTH is not 8,
|
||||||
|
16, or 32 when compiling any of the library modules.
|
||||||
|
|
||||||
|
23. Update pcre2_compile() to treat a NULL pattern with zero length as an empty
|
||||||
|
string.
|
||||||
|
|
||||||
|
24. Add support for limited-length variable-length lookbehind assertions, with
|
||||||
|
default maximum length 255 characters (same as Perl) but with a function to
|
||||||
|
adjust the limit.
|
||||||
|
|
||||||
|
25. Applied pull request #262, which updates the zig configuration, and #278
|
||||||
|
which fixes a bug with out-of-source-tree CMake build testing.
|
||||||
|
|
||||||
|
26. Add support for LoongArch to JIT.
|
||||||
|
|
||||||
|
27. Fixed a bug in pcre2_match() in the code for handling the vector of
|
||||||
|
backtracking frames on the heap, which caused a heap overflow if *LIMIT_HEAP
|
||||||
|
restricted an attempt to extend to less than the frame size. Generally tidy up
|
||||||
|
the code for extending the heap frames vector. This fixes GitHub issue #275.
|
||||||
|
|
||||||
|
28. Update pcre2_fuzzsupport.c to avoid clang sanitize complaint about shifting
|
||||||
|
left by 16 when there are non-zeros in the top 16 bits.
|
||||||
|
|
||||||
|
29. Perl 5.34.0 changed the meaning of (for example) {,3} which did not used to
|
||||||
|
be treated as a quantifier. Now it is interpreted as {0,3} and PCRE2 has
|
||||||
|
changed to match. Note that {,} is still not a quantifier.
|
||||||
|
|
||||||
|
30. Perl allows spaces and/or horizontal tabs after { or before } in all items
|
||||||
|
that use braces, and also before or after the comma in quantifiers. PCRE2 now
|
||||||
|
does the same, except for \u{...}, which is recognized only when
|
||||||
|
PCRE2_EXTRA_ALT_BSUX is set. This an ECMAScript, non-Perl compatible,
|
||||||
|
extension, so PCRE2 follows ECMAScript rather than Perl.
|
||||||
|
|
||||||
|
31. Applied pull request #300 by Carlo, which fixes #261. The bug was that
|
||||||
|
pcre2_match() was not fully resetting all captures that had been set within a
|
||||||
|
(possibly recursive) subroutine call such as (?3).
|
||||||
|
|
||||||
|
32. Changed the meaning of \w (and its synonyms) in UCP mode to match Perl. It
|
||||||
|
now matches characters whose general categories are L or N or whose particular
|
||||||
|
categories are Mn (non-spacing mark) or Pc (combining punctuation). The latter
|
||||||
|
includes underscore.
|
||||||
|
|
||||||
|
33. Changed the meaning of [:xdigit:] in UCP mode to match Perl. It now also
|
||||||
|
matches the "fullwidth" versions of the hex digits. Just like it is done for
|
||||||
|
[:digit:], PCRE2_EXTRA_ASCII_DIGIT can be used to keep this class ASCII only
|
||||||
|
without affecting other POSIX classes.
|
||||||
|
|
||||||
|
34. GitHub PR305 fixes a potential integer overflow in pcre2_dfa_match().
|
||||||
|
|
||||||
|
35. Updated handling of \b and \B in UCP mode to match the changes to \w in 32
|
||||||
|
above because \b and \B are defined in terms of \w.
|
||||||
|
|
||||||
|
36. Within a pattern (?aT) and (?-aT) set and reset the PCRE2_EXTRA_ASCII_DIGIT
|
||||||
|
option, and (?aP) also sets (?aT) so that (?-aP) disables all ASCII
|
||||||
|
restrictions on POSIX classes.
|
||||||
|
|
||||||
|
37. If PCRE2_FIRSTLINE was set on an anchored pattern, pcre2_match() and
|
||||||
|
pcre2_dfa_match() misbehaved. PCRE2_FIRSTLINE is now ignored for anchored
|
||||||
|
patterns.
|
||||||
|
|
||||||
|
38. Add a test for ridiculous ovector offset values to the substring extraction
|
||||||
|
functions.
|
||||||
|
|
||||||
|
39. Make OP_REVERSE use IMM2_SIZE for its data instead of LINK_SIZE, for
|
||||||
|
consistency with OP_VREVERSE.
|
||||||
|
|
||||||
|
40. In some legacy environments with a pre C99 snprintf, pcre2_regerror could
|
||||||
|
return an incorrect value when the provided buffer was too small.
|
||||||
|
|
||||||
|
41. Applied pull request #342 which adds sanity checks for ctype functions and
|
||||||
|
locks out any accidental sign-extension.
|
||||||
|
|
||||||
|
42. In the 32-bit library, in non-UTF mode, a quantifier that followed a
|
||||||
|
literal character with a value greater than or equal to 0x80000000u caused
|
||||||
|
undefined behaviour.
|
||||||
|
|
||||||
|
43. \z was misbehaving when matching fragments inside invalid UTF strings.
|
||||||
|
|
||||||
|
44. Implement --group-separator and --no-group-separator for pcre2grep.
|
||||||
|
|
||||||
|
45. Fix \X matching in 32 bit mode without UTF in JIT.
|
||||||
|
|
||||||
|
46. Fix backref iterators when PCRE2_MATCH_UNSET_BACKREF is set in JIT.
|
||||||
|
|
||||||
|
47. Refactor the handling of whole-pattern recursion (?0) in pcre2_match() so
|
||||||
|
that its end is handled similarly to other recursions. This has altered the
|
||||||
|
behaviour of /|(?0)./endanchored which was previously not right.
|
||||||
|
|
||||||
|
48. Improved the test for looping recursion by checking the last referenced
|
||||||
|
character as well as the current character. This allows some patterns that
|
||||||
|
previously triggered the check to run to completion instead of giving the loop
|
||||||
|
error.
|
||||||
|
|
||||||
|
49. In 32-bit mode, the compiler looped for the pattern /[\x{ffffffff}]/ when
|
||||||
|
PCRE2_CASELESS and PCRE2_UCP (but not PCRE2_UTF) were set. Fixed by not trying
|
||||||
|
to look for other cases for characters above the Unicode range.
|
||||||
|
|
||||||
|
50. In caseless 32-bit mode with UCP (but not UTF) set, the character
|
||||||
|
0xffffffff incorrectly matched any character that has more than one other case,
|
||||||
|
in particular k and s.
|
||||||
|
|
||||||
|
51. Fix accept and endanchored interaction in JIT.
|
||||||
|
|
||||||
|
52. Fix backreferences with unset backref and non-greedy iterators in JIT.
|
||||||
|
|
||||||
|
53. Improve the logic that checks for a list of starting code units -- positive
|
||||||
|
lookahead assertions are now ignored if the immediately following item is one
|
||||||
|
that sets a mandatory starting character. For example, /a?(?=bc|)d/ used to set
|
||||||
|
all of a, b, and d as possible starting code units; now it sets only a and d.
|
||||||
|
|
||||||
|
54. Fix incorrect class character matches in JIT.
|
||||||
|
|
||||||
|
55. In pcre2test, ensure pcre2_jit_match() is used when jitfast is used with
|
||||||
|
substitution testing.
|
||||||
|
|
||||||
|
56. Insert omitted setting of subject length in match data at the end of
|
||||||
|
pcre2_jit_match().
|
||||||
|
|
||||||
|
57. Implemented PCRE2_DISABLE_RECURSELOOP_CHECK for pcre2_match() to enable
|
||||||
|
some apparently looping recursions to run to completion and therefore match the
|
||||||
|
JIT behaviour. With this set, real loops will eventually get caught by match or
|
||||||
|
heap limits or run out of resource.
|
||||||
|
|
||||||
|
58. AC did a lot of work on pcre2_fuzzsupport.c to extend it to 16-bit and
|
||||||
|
32-bit libraries and to compare JIT and non-JIT matching.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.42 11-December-2022
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. Change 19 of 10.41 wasn't quite right; it put the definition of a default,
|
||||||
|
empty value for PCRE2_CALL_CONVENTION in src/pcre2posix.c instead of
|
||||||
|
src/pcre2posix.h, which meant that programs that included pcre2posix.h but not
|
||||||
|
pcre2.h failed to compile.
|
||||||
|
|
||||||
|
2. To catch similar issues to the above in future, a new small test program
|
||||||
|
that includes pcre2posix.h but not pcre2.h has been added to the test suite.
|
||||||
|
|
||||||
|
3. When the -S option of pcre2test was used to set a stack size greater than
|
||||||
|
the allowed maximum, the error message displayed the hard limit incorrectly.
|
||||||
|
This was pointed out on GitHub pull request #171, but the suggested patch
|
||||||
|
didn't cope with all cases. Some further modification was required.
|
||||||
|
|
||||||
|
4. Supplying an ovector count of more than 65535 to pcre2_match_data_create()
|
||||||
|
caused a crash because the field in the match data block is only 16 bits. A
|
||||||
|
maximum of 65535 is now silently applied.
|
||||||
|
|
||||||
|
5. Merged @carenas patch #175 which fixes #86 - segfault on aarch64 (ARM),
|
||||||
|
|
||||||
|
6. The prototype for pcre2_substring_list_free() specified its argument as
|
||||||
|
PCRE2_SPTR * which is a const data type, whereas the yield from
|
||||||
|
pcre2_substring_list() is not const. This caused compiler warnings. I have
|
||||||
|
changed the argument of pcre2_substring_list_free() to be PCRE2_UCHAR ** to
|
||||||
|
remove this anomaly. This might cause new warnings in existing code where a
|
||||||
|
cast has been used to avoid previous ones.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.41 06-December-2022
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. Add fflush() before and after a fork callout in pcre2grep to get its output
|
||||||
|
to be the same on all systems. (There were previously ordering differences in
|
||||||
|
Alpine Linux).
|
||||||
|
|
||||||
|
2. Merged patch from @carenas (GitHub #110) for pthreads support in CMake.
|
||||||
|
|
||||||
|
3. SSF scorecards grumbled about possible overflow in an expression in
|
||||||
|
pcre2test. It never would have overflowed in practice, but some casts have been
|
||||||
|
added and at the some time there's been some tidying of fprints that output
|
||||||
|
size_t values.
|
||||||
|
|
||||||
|
4. PR #94 showed up an unused enum in pcre2_convert.c, which is now removed.
|
||||||
|
|
||||||
|
5. Minor code re-arrangement to remove gcc warning about realloc() in
|
||||||
|
pcre2test.
|
||||||
|
|
||||||
|
6. Change a number of int variables that hold buffer and line lengths in
|
||||||
|
pcre2grep to PCRE2_SIZE (aka size_t).
|
||||||
|
|
||||||
|
7. Added an #ifdef to cut out a call to PRIV(jit_free) when JIT is not
|
||||||
|
supported (even though that function would do nothing in that case) at the
|
||||||
|
request of a user who doesn't even want to link with pcre_jit_compile.o. Also
|
||||||
|
tidied up an untidy #ifdef arrangement in pcre2test.
|
||||||
|
|
||||||
|
8. Fixed an issue in the backtracking optimization of character repeats in
|
||||||
|
JIT. Furthermore optimize star repetitions, not just plus repetitions.
|
||||||
|
|
||||||
|
9. Removed the use of an initial backtracking frames vector on the system stack
|
||||||
|
in pcre2_match() so that it now always uses the heap. (In a multi-thread
|
||||||
|
environment with very small stacks there had been an issue.) This also is
|
||||||
|
tidier for JIT matching, which didn't need that vector. The heap vector is now
|
||||||
|
remembered in the match data block and re-used if that block itself is re-used.
|
||||||
|
It is freed with the match data block.
|
||||||
|
|
||||||
|
10. Adjusted the find_limits code in pcre2test to work with change 9 above.
|
||||||
|
|
||||||
|
11. Added find_limits_noheap to pcre2test, because the heap limits are now
|
||||||
|
different in different environments and so cannot be included in the standard
|
||||||
|
tests.
|
||||||
|
|
||||||
|
12. Created a test for pcre2_match() heap processing that is not part of the
|
||||||
|
tests run by 'make check', but can be run manually. The current output is from
|
||||||
|
a 64-bit system.
|
||||||
|
|
||||||
|
13. Implemented -Z aka --null in pcre2grep.
|
||||||
|
|
||||||
|
14. A minor change to pcre2test and the addition of several new pcre2grep tests
|
||||||
|
have improved LCOV coverage statistics. At the same time, code in pcre2grep and
|
||||||
|
elsewhere that can never be obeyed in normal testing has been excluded from
|
||||||
|
coverage.
|
||||||
|
|
||||||
|
15. Fixed a bug in pcre2grep that could cause an extra newline to be written
|
||||||
|
after output generated by --output.
|
||||||
|
|
||||||
|
16. If a file has a .bz2 extension but is not in fact compressed, pcre2grep
|
||||||
|
should process it as a plain text file. A bug stopped this happening; now fixed
|
||||||
|
and added to the tests.
|
||||||
|
|
||||||
|
17. When pcre2grep was running not in UTF mode, if a string specified by
|
||||||
|
--output or obtained from a callout in a pattern contained a character (byte)
|
||||||
|
greater than 127, it was incorrectly output in UTF-8 format.
|
||||||
|
|
||||||
|
18. Added some casts after warnings from Clang sanitize.
|
||||||
|
|
||||||
|
19. Merged patch from cbouc (GitHub #139): 4 function prototypes were missing
|
||||||
|
PCRE2_CALL_CONVENTION in src/pcre2posix.h. All function prototypes returning
|
||||||
|
pointers had out of place PCRE2_CALL_CONVENTION in src/pcre2.h.*. These
|
||||||
|
produced errors when building for Windows with #define PCRE2_CALL_CONVENTION
|
||||||
|
__stdcall.
|
||||||
|
|
||||||
|
20. A negative repeat value in a pcre2test subject line was not being
|
||||||
|
diagnosed, leading to infinite looping.
|
||||||
|
|
||||||
|
21. Updated RunGrepTest to discard the warning that Bash now gives when setting
|
||||||
|
LC_CTYPE to a bad value (because older versions didn't).
|
||||||
|
|
||||||
|
22. Updated pcre2grep so that it behaves like GNU grep when matching more than
|
||||||
|
one pattern and a later pattern matches at an earlier point in the subject when
|
||||||
|
the matched substrings are being identified by colour or by offsets.
|
||||||
|
|
||||||
|
23. Updated the PrepareRelease script so that the man page that it makes for
|
||||||
|
the pcre2demo demonstration program is more standard and does not cause errors
|
||||||
|
when processed by lexgrog or mandb -c (GitHub issue #160).
|
||||||
|
|
||||||
|
24. The JIT compiler was updated.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.40 15-April-2022
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. Merged patch from @carenas (GitHub #35, 7db87842) to fix pcre2grep incorrect
|
||||||
|
handling of multiple passes.
|
||||||
|
|
||||||
|
2. Merged patch from @carenas (GitHub #36, dae47509) to fix portability issue
|
||||||
|
in pcre2grep with buffered fseek(stdin).
|
||||||
|
|
||||||
|
3. Merged patch from @carenas (GitHub #37, acc520924) to fix tests when -S is
|
||||||
|
not supported.
|
||||||
|
|
||||||
|
4. Revert an unintended change in JIT repeat detection.
|
||||||
|
|
||||||
|
5. Merged patch from @carenas (GitHub #52, b037bfa1) to fix build on GNU Hurd.
|
||||||
|
|
||||||
|
6. Merged documentation and comments patches from @carenas (GitHub #47).
|
||||||
|
|
||||||
|
7. Merged patch from @carenas (GitHub #49) to remove obsolete JFriedl test code
|
||||||
|
from pcre2grep.
|
||||||
|
|
||||||
|
8. Merged patch from @carenas (GitHub #48) to fix CMake install issue #46.
|
||||||
|
|
||||||
|
9. Merged patch from @carenas (GitHub #53) fixing NULL checks in matching and
|
||||||
|
substituting.
|
||||||
|
|
||||||
|
10. Add null_subject and null_replacement modifiers to pcre2test.
|
||||||
|
|
||||||
|
11. Add check for NULL subject to POSIX regexec() function.
|
||||||
|
|
||||||
|
12. Add check for NULL replacement to pcre2_substitute().
|
||||||
|
|
||||||
|
13. For the subject arguments of pcre2_match(), pcre2_dfa_match(), and
|
||||||
|
pcre2_substitute(), and the replacement argument of the latter, if the pointer
|
||||||
|
is NULL and the length is zero, treat as an empty string. Apparently a number
|
||||||
|
of applications treat NULL/0 in this way.
|
||||||
|
|
||||||
|
14. Added support for Bidi_Class and a number of binary Unicode properties,
|
||||||
|
including Bidi_Control.
|
||||||
|
|
||||||
|
15. Fix some minor issues raised by clang sanitize.
|
||||||
|
|
||||||
|
16. Very minor code speed up for maximizing character property matches.
|
||||||
|
|
||||||
|
17. A number of changes to script matching for \p and \P:
|
||||||
|
|
||||||
|
(a) Script extensions for a character are now coded as a bitmap instead of
|
||||||
|
a list of script numbers, which should be faster and does not need a
|
||||||
|
loop.
|
||||||
|
|
||||||
|
(b) Added the syntax \p{script:xxx} and \p{script_extensions:xxx} (synonyms
|
||||||
|
sc and scx).
|
||||||
|
|
||||||
|
(c) Changed \p{scriptname} from being the same as \p{sc:scriptname} to being
|
||||||
|
the same as \p{scx:scriptname} because this change happened in Perl at
|
||||||
|
release 5.26.
|
||||||
|
|
||||||
|
(d) The standard Unicode 4-letter abbreviations for script names are now
|
||||||
|
recognized.
|
||||||
|
|
||||||
|
(e) In accordance with Unicode and Perl's "loose matching" rules, spaces,
|
||||||
|
hyphens, and underscores are ignored in property names, which are then
|
||||||
|
matched independent of case.
|
||||||
|
|
||||||
|
18. The Python scripts in the maint directory have been refactored. There are
|
||||||
|
now three scripts that generate pcre2_ucd.c, pcre2_ucp.h, and pcre2_ucptables.c
|
||||||
|
(which is #included by pcre2_tables.c). The data lists that used to be
|
||||||
|
duplicated are now held in a single common Python module.
|
||||||
|
|
||||||
|
19. On CHERI, and thus Arm's Morello prototype, pointers are represented as
|
||||||
|
hardware capabilities, which consist of both an integer address and additional
|
||||||
|
metadata, meaning they are twice the size of the platform's size_t type, i.e.
|
||||||
|
16 bytes on a 64-bit system. The ovector member of heapframe happens to only be
|
||||||
|
8 byte aligned, and so computing frame_size ended up with a multiple of 8 but
|
||||||
|
not 16. Whilst the first frame was always suitably aligned, this then
|
||||||
|
misaligned the frame that follows, resulting in an alignment fault when storing
|
||||||
|
a pointer to Fecode at the start of match. Patch to fix this issue by Jessica
|
||||||
|
Clarke PR#72.
|
||||||
|
|
||||||
|
20. Added -LP and -LS listing options to pcre2test.
|
||||||
|
|
||||||
|
21. A user discovered that the library names in CMakeLists.txt for MSVC
|
||||||
|
debugger (PDB) files were incorrect - perhaps never tried for PCRE2?
|
||||||
|
|
||||||
|
22. An item such as [Aa] is optimized into a caseless single character match.
|
||||||
|
When this was quantified (e.g. [Aa]{2}) and was also the last literal item in a
|
||||||
|
pattern, the optimizing "must be present for a match" character check was not
|
||||||
|
being flagged as caseless, causing some matches that should have succeeded to
|
||||||
|
fail.
|
||||||
|
|
||||||
|
23. Fixed a unicode property matching issue in JIT. The character was not
|
||||||
|
fully read in caseless matching.
|
||||||
|
|
||||||
|
24. Fixed an issue affecting recursions in JIT caused by duplicated data
|
||||||
|
transfers.
|
||||||
|
|
||||||
|
25. Merged patch from @carenas (GitHub #96) which fixes some problems with
|
||||||
|
pcre2test and readline/readedit:
|
||||||
|
|
||||||
|
* Use the right header for libedit in FreeBSD with autoconf
|
||||||
|
* Really allow libedit with cmake
|
||||||
|
* Avoid using readline headers with libedit
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.39 29-October-2021
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
1. Fix incorrect detection of alternatives in first character search in JIT.
|
||||||
|
|
||||||
|
2. Merged patch from @carenas (GitHub #28):
|
||||||
|
|
||||||
|
Visual Studio 2013 includes support for %zu and %td, so let newer
|
||||||
|
versions of it avoid the fallback, and while at it, make sure that
|
||||||
|
the first check is for DISABLE_PERCENT_ZT so it will be always
|
||||||
|
honoured if chosen.
|
||||||
|
|
||||||
|
prtdiff_t is signed, so use a signed type instead, and make sure
|
||||||
|
that an appropriate width is chosen if pointers are 64bit wide and
|
||||||
|
long is not (ex: Windows 64bit).
|
||||||
|
|
||||||
|
IMHO removing the cast (and therefore the possibility of truncation)
|
||||||
|
make the code cleaner and the fallback is likely portable enough
|
||||||
|
with all 64-bit POSIX systems doing LP64 except for Windows.
|
||||||
|
|
||||||
|
3. Merged patch from @carenas (GitHub #29) to update to Unicode 14.0.0.
|
||||||
|
|
||||||
|
4. Merged patch from @carenas (GitHub #30):
|
||||||
|
|
||||||
|
* Cleanup: remove references to no longer used stdint.h
|
||||||
|
|
||||||
|
Since 19c50b9d (Unconditionally use inttypes.h instead of trying for stdint.h
|
||||||
|
(simplification) and remove the now unnecessary inclusion in
|
||||||
|
pcre2_internal.h., 2018-11-14), stdint.h is no longer used.
|
||||||
|
|
||||||
|
Remove checks for it in autotools and CMake and document better the expected
|
||||||
|
build failures for systems that might have stdint.h (C99) and not inttypes.h
|
||||||
|
(from POSIX), like old Windows.
|
||||||
|
|
||||||
|
* Cleanup: remove detection for inttypes.h which is a hard dependency
|
||||||
|
|
||||||
|
CMake checks for standard headers are not meant to be used for hard
|
||||||
|
dependencies, so will prevent a possible fallback to work.
|
||||||
|
|
||||||
|
Alternatively, the header could be checked to make the configuration fail
|
||||||
|
instead of breaking the build, but that was punted, as it was missing anyway
|
||||||
|
from autotools.
|
||||||
|
|
||||||
|
5. Merged patch from @carenas (GitHub #32):
|
||||||
|
|
||||||
|
* jit: allow building with ancient MSVC versions
|
||||||
|
|
||||||
|
Visual Studio older than 2013 fails to build with JIT enabled, because it is
|
||||||
|
unable to parse non C89 compatible syntax, with mixed declarations and code.
|
||||||
|
While most recent compilers wouldn't even report this as a warning since it
|
||||||
|
is valid C99, it could be also made visible by adding to gcc/clang the
|
||||||
|
-Wdeclaration-after-statement flag at build time.
|
||||||
|
|
||||||
|
Move the code below the affected definitions.
|
||||||
|
|
||||||
|
* pcre2grep: avoid mixing declarations with code
|
||||||
|
|
||||||
|
Since d5a61ee8 (Patch to detect (and ignore) symlink loops in pcre2grep,
|
||||||
|
2021-08-28), code will fail to build in a strict C89 compiler.
|
||||||
|
|
||||||
|
Reformat slightly to make it C89 compatible again.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.38 01-October-2021
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
1. Fix invalid single character repetition issues in JIT when the repetition
|
||||||
|
is inside a capturing bracket and the bracket is preceded by character
|
||||||
|
literals.
|
||||||
|
|
||||||
|
2. Installed revised CMake configuration files provided by Jan-Willem Blokland.
|
||||||
|
This extends the CMake build system to build both static and shared libraries
|
||||||
|
in one go, builds the static library with PIC, and exposes PCRE2 libraries
|
||||||
|
using the CMake config files. JWB provided these notes:
|
||||||
|
|
||||||
|
- Introduced CMake variable BUILD_STATIC_LIBS to build the static library.
|
||||||
|
|
||||||
|
- Make a small modification to config-cmake.h.in by removing the PCRE2_STATIC
|
||||||
|
variable. Added PCRE2_STATIC variable to the static build using the
|
||||||
|
target_compile_definitions() function.
|
||||||
|
|
||||||
|
- Extended the CMake config files.
|
||||||
|
|
||||||
|
- Introduced CMake variable PCRE2_USE_STATIC_LIBS to easily switch between
|
||||||
|
the static and shared libraries.
|
||||||
|
|
||||||
|
- Added the PCRE_STATIC variable to the target compile definitions for the
|
||||||
|
import of the static library.
|
||||||
|
|
||||||
|
Building static and shared libraries using MSVC results in a name clash of
|
||||||
|
the libraries. Both static and shared library builds create, for example, the
|
||||||
|
file pcre2-8.lib. Therefore, I decided to change the static library names by
|
||||||
|
adding "-static". For example, pcre2-8.lib has become pcre2-8-static.lib.
|
||||||
|
[Comment by PH: this is MSVC-specific. It doesn't happen on Linux.]
|
||||||
|
|
||||||
|
3. Increased the minimum release number for CMake to 3.0.0 because older than
|
||||||
|
2.8.12 is deprecated (it was set to 2.8.5) and causes warnings. Even 3.0.0 is
|
||||||
|
quite old; it was released in 2014.
|
||||||
|
|
||||||
|
4. Implemented a modified version of Thomas Tempelmann's pcre2grep patch for
|
||||||
|
detecting symlink loops. This is dependent on the availability of realpath(),
|
||||||
|
which is now tested for in ./configure and CMakeLists.txt.
|
||||||
|
|
||||||
|
5. Implemented a modified version of Thomas Tempelmann's patch for faster
|
||||||
|
case-independent "first code unit" searches for unanchored patterns in 8-bit
|
||||||
|
mode in the interpreters. Instead of just remembering whether one case matched
|
||||||
|
or not, it remembers the position of a previous match so as to avoid
|
||||||
|
unnecessary repeated searching.
|
||||||
|
|
||||||
|
6. Perl now locks out \K in lookarounds, so PCRE2 now does the same by default.
|
||||||
|
However, just in case anybody was relying on the old behaviour, there is an
|
||||||
|
option called PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK that enables the old behaviour.
|
||||||
|
An option has also been added to pcre2grep to enable this.
|
||||||
|
|
||||||
|
7. Re-enable a JIT optimization which was unintentionally disabled in 10.35.
|
||||||
|
|
||||||
|
8. There is a loop counter to catch excessively crazy patterns when checking
|
||||||
|
the lengths of lookbehinds at compile time. This was incorrectly getting reset
|
||||||
|
whenever a lookahead was processed, leading to some fuzzer-generated patterns
|
||||||
|
taking a very long time to compile when (?|) was present in the pattern,
|
||||||
|
because (?|) disables caching of group lengths.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.37 26-May-2021
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
1. Change RunGrepTest to use tr instead of sed when testing with binary
|
||||||
|
zero bytes, because sed varies a lot from system to system and has problems
|
||||||
|
with binary zeros. This is from Bugzilla #2681. Patch from Jeremie
|
||||||
|
Courreges-Anglas via Nam Nguyen. This fixes RunGrepTest for OpenBSD. Later:
|
||||||
|
it broke it for at least one version of Solaris, where tr can't handle binary
|
||||||
|
zeros. However, that system had /usr/xpg4/bin/tr installed, which works OK, so
|
||||||
|
RunGrepTest now checks for that command and uses it if found.
|
||||||
|
|
||||||
|
2. Compiling with gcc 10.2's -fanalyzer option showed up a hypothetical problem
|
||||||
|
with a NULL dereference. I don't think this case could ever occur in practice,
|
||||||
|
but I have put in a check in order to get rid of the compiler error.
|
||||||
|
|
||||||
|
3. An alternative patch for CMakeLists.txt because 10.36 #4 breaks CMake on
|
||||||
|
Windows. Patch from email@cs-ware.de fixes bugzilla #2688.
|
||||||
|
|
||||||
|
4. Two bugs related to over-large numbers have been fixed so the behaviour is
|
||||||
|
now the same as Perl.
|
||||||
|
|
||||||
|
(a) A pattern such as /\214748364/ gave an overflow error instead of being
|
||||||
|
treated as the octal number \214 followed by literal digits.
|
||||||
|
|
||||||
|
(b) A sequence such as {65536 that has no terminating } so is not a
|
||||||
|
quantifier was nevertheless complaining that a quantifier number was too big.
|
||||||
|
|
||||||
|
5. A run of autoconf suggested that configure.ac was out-of-date with respect
|
||||||
|
to the latest autoconf. Running autoupdate made some valid changes, some valid
|
||||||
|
suggestions, and also some invalid changes, which were fixed by hand. Autoconf
|
||||||
|
now runs clean and the resulting "configure" seems to work, so I hope nothing
|
||||||
|
is broken. Later: the requirement for autoconf 2.70 broke some automatic test
|
||||||
|
robots. It doesn't seem to be necessary: trying a reduction to 2.60.
|
||||||
|
|
||||||
|
6. The pattern /a\K.(?0)*/ when matched against "abac" by the interpreter gave
|
||||||
|
the answer "bac", whereas Perl and JIT both yield "c". This was because the
|
||||||
|
effect of \K was not propagating back from the full pattern recursion. Other
|
||||||
|
recursions such as /(a\K.(?1)*)/ did not have this problem.
|
||||||
|
|
||||||
|
7. Restore single character repetition optimization in JIT. Currently fewer
|
||||||
|
character repetitions are optimized than in 10.34.
|
||||||
|
|
||||||
|
8. When the names of the functions in the POSIX wrapper were changed to
|
||||||
|
pcre2_regcomp() etc. (see change 10.33 #4 below), functions with the original
|
||||||
|
names were left in the library so that pre-compiled programs would still work.
|
||||||
|
However, this has proved troublesome when programs link with several libraries,
|
||||||
|
some of which use PCRE2 via the POSIX interface while others use a native POSIX
|
||||||
|
library. For this reason, the POSIX function names are removed in this release.
|
||||||
|
The macros in pcre2posix.h should ensure that re-compiling fixes any programs
|
||||||
|
that haven't been compiled since before 10.33.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.36 04-December-2020
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. Add CET_CFLAGS so that when Intel CET is enabled, pass -mshstk to
|
||||||
|
compiler. This fixes https://bugs.exim.org/show_bug.cgi?id=2578. Patch for
|
||||||
|
Makefile.am and configure.ac by H.J. Lu. Equivalent patch for CMakeLists.txt
|
||||||
|
invented by PH.
|
||||||
|
|
||||||
|
2. Fix infinite loop when a single byte newline is searched in JIT when
|
||||||
|
invalid utf8 mode is enabled.
|
||||||
|
|
||||||
|
3. Updated CMakeLists.txt with patch from Wolfgang Stöggl (Bugzilla #2584):
|
||||||
|
|
||||||
|
- Include GNUInstallDirs and use ${CMAKE_INSTALL_LIBDIR} instead of hardcoded
|
||||||
|
lib. This allows differentiation between lib and lib64.
|
||||||
|
CMAKE_INSTALL_LIBDIR is used for installation of libraries and also for
|
||||||
|
pkgconfig file generation.
|
||||||
|
|
||||||
|
- Add the version of PCRE2 to the configuration summary like ./configure
|
||||||
|
does.
|
||||||
|
|
||||||
|
- Fix typo: MACTHED_STRING->MATCHED_STRING
|
||||||
|
|
||||||
|
4. Updated CMakeLists.txt with another patch from Wolfgang Stöggl (Bugzilla
|
||||||
|
#2588):
|
||||||
|
|
||||||
|
- Add escaped double quotes around include directory in CMakeLists.txt to
|
||||||
|
allow spaces in directory names.
|
||||||
|
|
||||||
|
- This fixes a cmake error, if the path of the pcre2 source contains a space.
|
||||||
|
|
||||||
|
5. Updated CMakeLists.txt with a patch from B. Scott Michel: CMake's
|
||||||
|
documentation suggests using CHECK_SYMBOL_EXISTS over CHECK_FUNCTION_EXIST.
|
||||||
|
Moreover, these functions come from specific header files, which need to be
|
||||||
|
specified (and, thankfully, are the same on both the Linux and WinXX
|
||||||
|
platforms.)
|
||||||
|
|
||||||
|
6. Added a (uint32_t) cast to prevent a compiler warning in pcre2_compile.c.
|
||||||
|
|
||||||
|
7. Applied a patch from Wolfgang Stöggl (Bugzilla #2600) to fix postfix for
|
||||||
|
debug Windows builds using CMake. This also updated configure so that it
|
||||||
|
generates *.pc files and pcre2-config with the same content, as in the past.
|
||||||
|
|
||||||
|
8. If a pattern ended with (?(VERSION=n.d where n is any number but d is just a
|
||||||
|
single digit, the code unit beyond d was being read (i.e. there was a read
|
||||||
|
buffer overflow). Fixes ClusterFuzz 23779.
|
||||||
|
|
||||||
|
9. After the rework in r1235, certain character ranges were incorrectly
|
||||||
|
handled by an optimization in JIT. Furthermore a wrong offset was used to
|
||||||
|
read a value from a buffer which could lead to memory overread.
|
||||||
|
|
||||||
|
10. Unnoticed for many years was the fact that delimiters other than / in the
|
||||||
|
testinput1 and testinput4 files could cause incorrect behaviour when these
|
||||||
|
files were processed by perltest.sh. There were several tests that used quotes
|
||||||
|
as delimiters, and it was just luck that they didn't go wrong with perltest.sh.
|
||||||
|
All the patterns in testinput1 and testinput4 now use / as their delimiter.
|
||||||
|
This fixes Bugzilla #2641.
|
||||||
|
|
||||||
|
11. Perl has started to give an error for \K within lookarounds (though there
|
||||||
|
are cases where it doesn't). PCRE2 still allows this, so the tests that include
|
||||||
|
this case have been moved from test 1 to test 2.
|
||||||
|
|
||||||
|
12. Further to 10 above, pcre2test has been updated to detect and grumble if a
|
||||||
|
delimiter other than / is used after #perltest.
|
||||||
|
|
||||||
|
13. Fixed a bug with PCRE2_MATCH_INVALID_UTF in 8-bit mode when PCRE2_CASELESS
|
||||||
|
was set and PCRE2_NO_START_OPTIMIZE was not set. The optimization for finding
|
||||||
|
the start of a match was not resetting correctly after a failed match on the
|
||||||
|
first valid fragment of the subject, possibly causing incorrect "no match"
|
||||||
|
returns on subsequent fragments. For example, the pattern /A/ failed to match
|
||||||
|
the subject \xe5A. Fixes Bugzilla #2642.
|
||||||
|
|
||||||
|
14. Fixed a bug in character set matching when JIT is enabled and both unicode
|
||||||
|
scripts and unicode classes are present at the same time.
|
||||||
|
|
||||||
|
15. Added GNU grep's -m (aka --max-count) option to pcre2grep.
|
||||||
|
|
||||||
|
16. Refactored substitution processing in pcre2grep strings, both for the -O
|
||||||
|
option and when dealing with callouts. There is now a single function that
|
||||||
|
handles $ expansion in all cases (instead of multiple copies of almost
|
||||||
|
identical code). This means that the same escape sequences are available
|
||||||
|
everywhere, which was not previously the case. At the same time, the escape
|
||||||
|
sequences $x{...} and $o{...} have been introduced, to allow for characters
|
||||||
|
whose code points are greater than 255 in Unicode mode.
|
||||||
|
|
||||||
|
17. Applied the patch from Bugzilla #2628 to RunGrepTest. This does an explicit
|
||||||
|
test for a version of sed that can handle binary zero, instead of assuming that
|
||||||
|
any Linux version will work. Later: replaced $(...) by `...` because not all
|
||||||
|
shells recognize the former.
|
||||||
|
|
||||||
|
18. Fixed a word boundary check bug in JIT when partial matching is enabled.
|
||||||
|
|
||||||
|
19. Fix ARM64 compilation warning in JIT. Patch by Carlo.
|
||||||
|
|
||||||
|
20. A bug in the RunTest script meant that if the first part of test 2 failed,
|
||||||
|
the failure was not reported.
|
||||||
|
|
||||||
|
21. Test 2 was failing when run from a directory other than the source
|
||||||
|
directory. This failure was previously missed in RunTest because of 20 above.
|
||||||
|
Fixes added to both RunTest and RunTest.bat.
|
||||||
|
|
||||||
|
22. Patch to CMakeLists.txt from Daniel to fix problem with testing under
|
||||||
|
Windows.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.35 09-May-2020
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. Use PCRE2_MATCH_EMPTY flag to detect empty matches in JIT.
|
||||||
|
|
||||||
|
2. Fix ARMv5 JIT improper handling of labels right after a constant pool.
|
||||||
|
|
||||||
|
3. A JIT bug is fixed which allowed to read the fields of the compiled
|
||||||
|
pattern before its existence is checked.
|
||||||
|
|
||||||
|
4. Back in the PCRE1 day, capturing groups that contained recursive back
|
||||||
|
references to themselves were made atomic (version 8.01, change 18) because
|
||||||
|
after the end a repeated group, the captured substrings had their values from
|
||||||
|
the final repetition, not from an earlier repetition that might be the
|
||||||
|
destination of a backtrack. This feature was documented, and was carried over
|
||||||
|
into PCRE2. However, it has now been realized that the major refactoring that
|
||||||
|
was done for 10.30 has made this atomizing unnecessary, and it is confusing
|
||||||
|
when users are unaware of it, making some patterns appear not to be working as
|
||||||
|
expected. Capture values of recursive back references in repeated groups are
|
||||||
|
now correctly backtracked, so this unnecessary restriction has been removed.
|
||||||
|
|
||||||
|
5. Added PCRE2_SUBSTITUTE_LITERAL.
|
||||||
|
|
||||||
|
6. Avoid some VS compiler warnings.
|
||||||
|
|
||||||
|
7. Added PCRE2_SUBSTITUTE_MATCHED.
|
||||||
|
|
||||||
|
8. Added (?* and (?<* as synonyms for (*napla: and (*naplb: to match another
|
||||||
|
regex engine. The Perl regex folks are aware of this usage and have made a note
|
||||||
|
about it.
|
||||||
|
|
||||||
|
9. When an assertion is repeated, PCRE2 used to limit the maximum repetition to
|
||||||
|
1, believing that repeating an assertion is pointless. However, if a positive
|
||||||
|
assertion contains capturing groups, repetition can be useful. In any case, an
|
||||||
|
assertion could always be wrapped in a repeated group. The only restriction
|
||||||
|
that is now imposed is that an unlimited maximum is changed to one more than
|
||||||
|
the minimum.
|
||||||
|
|
||||||
|
10. Fix *THEN verbs in lookahead assertions in JIT.
|
||||||
|
|
||||||
|
11. Added PCRE2_SUBSTITUTE_REPLACEMENT_ONLY.
|
||||||
|
|
||||||
|
12. The JIT stack should be freed when the low-level stack allocation fails.
|
||||||
|
|
||||||
|
13. In pcre2grep, if the final line in a scanned file is output but does not
|
||||||
|
end with a newline sequence, add a newline according to the --newline setting.
|
||||||
|
|
||||||
|
14. (?(DEFINE)...) groups were not being handled correctly when checking for
|
||||||
|
the fixed length of a lookbehind assertion. Such a group within a lookbehind
|
||||||
|
should be skipped, as it does not contribute to the length of the group.
|
||||||
|
Instead, the (DEFINE) group was being processed, and if at the end of the
|
||||||
|
lookbehind, that end was not correctly recognized. Errors such as "lookbehind
|
||||||
|
assertion is not fixed length" and also "internal error: bad code value in
|
||||||
|
parsed_skip()" could result.
|
||||||
|
|
||||||
|
15. Put a limit of 1000 on recursive calls in pcre2_study() when searching
|
||||||
|
nested groups for starting code units, in order to avoid stack overflow issues.
|
||||||
|
If the limit is reached, it just gives up trying for this optimization.
|
||||||
|
|
||||||
|
16. The control verb chain list must always be restored when exiting from a
|
||||||
|
recurse function in JIT.
|
||||||
|
|
||||||
|
17. Fix a crash which occurs when the character type of an invalid UTF
|
||||||
|
character is decoded in JIT.
|
||||||
|
|
||||||
|
18. Changes in many areas of the code so that when Unicode is supported and
|
||||||
|
PCRE2_UCP is set without PCRE2_UTF, Unicode character properties are used for
|
||||||
|
upper/lower case computations on characters whose code points are greater than
|
||||||
|
127.
|
||||||
|
|
||||||
|
19. The function for checking UTF-16 validity was returning an incorrect offset
|
||||||
|
for the start of the error when a high surrogate was not followed by a valid
|
||||||
|
low surrogate. This caused incorrect behaviour, for example when
|
||||||
|
PCRE2_MATCH_INVALID_UTF was set and a match started immediately following the
|
||||||
|
invalid high surrogate, such as /aa/ matching "\x{d800}aa".
|
||||||
|
|
||||||
|
20. If a DEFINE group immediately preceded a lookbehind assertion, the pattern
|
||||||
|
could be mis-compiled and therefore not match correctly. This is the example
|
||||||
|
that found this: /(?(DEFINE)(?<foo>bar))(?<![-a-z0-9])word/ which failed to
|
||||||
|
match "word" because the "move back" value was set to zero.
|
||||||
|
|
||||||
|
21. Following a request from a user, some extensions and tidies to the
|
||||||
|
character tables handling have been done:
|
||||||
|
|
||||||
|
(a) The dftables auxiliary program is renamed pcre2_dftables, but it is still
|
||||||
|
not installed for public use.
|
||||||
|
|
||||||
|
(b) There is now a -b option for pcre2_dftables, which causes the tables to
|
||||||
|
be written in binary. There is also a -help option.
|
||||||
|
|
||||||
|
(c) PCRE2_CONFIG_TABLES_LENGTH is added to pcre2_config() so that an
|
||||||
|
application that wants to save tables in binary knows how long they are.
|
||||||
|
|
||||||
|
22. Changed setting of CMAKE_MODULE_PATH in CMakeLists.txt from SET to
|
||||||
|
LIST(APPEND...) to allow a setting from the command line to be included.
|
||||||
|
|
||||||
|
23. Updated to Unicode 13.0.0.
|
||||||
|
|
||||||
|
24. CMake build now checks for secure_getenv() and strerror(). Patch by Carlo.
|
||||||
|
|
||||||
|
25. Avoid using [-1] as a suffix in pcre2test because it can provoke a compiler
|
||||||
|
warning.
|
||||||
|
|
||||||
|
26. Added tests for __attribute__((uninitialized)) to both the configure and
|
||||||
|
CMake build files, and then applied this attribute to the variable called
|
||||||
|
stack_frames_vector[] in pcre2_match(). When implemented, this disables
|
||||||
|
automatic initialization (a facility in clang), which can take time on big
|
||||||
|
variables.
|
||||||
|
|
||||||
|
27. Updated CMakeLists.txt (patches by Uwe Korn) to add support for
|
||||||
|
pcre2-config, the libpcre*.pc files, SOVERSION, VERSION and the
|
||||||
|
MACHO_*_VERSIONS settings for CMake builds.
|
||||||
|
|
||||||
|
28. Another patch to CMakeLists.txt to check for mkostemp (configure already
|
||||||
|
does). Patch by Carlo Marcelo Arenas Belon.
|
||||||
|
|
||||||
|
29. Check for the existence of memfd_create in both CMake and configure
|
||||||
|
configurations. Patch by Carlo Marcelo Arenas Belon.
|
||||||
|
|
||||||
|
30. Restrict the configuration setting for the SELinux compatible execmem
|
||||||
|
allocator (change 10.30/44) to Linux and NetBSD.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.34 21-November-2019
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. The maximum number of capturing subpatterns is 65535 (documented), but no
|
||||||
|
check on this was ever implemented. This omission has been rectified; it fixes
|
||||||
|
ClusterFuzz 14376.
|
||||||
|
|
||||||
|
2. Improved the invalid utf32 support of the JIT compiler. Now it correctly
|
||||||
|
detects invalid characters in the 0xd800-0xdfff range.
|
||||||
|
|
||||||
|
3. Fix minor typo bug in JIT compile when \X is used in a non-UTF string.
|
||||||
|
|
||||||
|
4. Add support for matching in invalid UTF strings to the pcre2_match()
|
||||||
|
interpreter, and integrate with the existing JIT support via the new
|
||||||
|
PCRE2_MATCH_INVALID_UTF compile-time option.
|
||||||
|
|
||||||
|
5. Give more error detail for invalid UTF-8 when detected in pcre2grep.
|
||||||
|
|
||||||
|
6. Add support for invalid UTF-8 to pcre2grep.
|
||||||
|
|
||||||
|
7. Adjust the limit for "must have" code unit searching, in particular,
|
||||||
|
increase it substantially for non-anchored patterns.
|
||||||
|
|
||||||
|
8. Allow (*ACCEPT) to be quantified, because an ungreedy quantifier with a zero
|
||||||
|
minimum is potentially useful.
|
||||||
|
|
||||||
|
9. Some changes to the way the minimum subject length is handled:
|
||||||
|
|
||||||
|
* When PCRE2_NO_START_OPTIMIZE is set, no minimum length is computed;
|
||||||
|
pcre2test now omits this item instead of showing a value of zero.
|
||||||
|
|
||||||
|
* An incorrect minimum length could be calculated for a pattern that
|
||||||
|
contained (*ACCEPT) inside a qualified group whose minimum repetition was
|
||||||
|
zero, for example /A(?:(*ACCEPT))?B/, which incorrectly computed a minimum
|
||||||
|
of 2. The minimum length scan no longer happens for a pattern that
|
||||||
|
contains (*ACCEPT).
|
||||||
|
|
||||||
|
* When no minimum length is set by the normal scan, but a first and/or last
|
||||||
|
code unit is recorded, set the minimum to 1 or 2 as appropriate.
|
||||||
|
|
||||||
|
* When a pattern contains multiple groups with the same number, a back
|
||||||
|
reference cannot know which one to scan for a minimum length. This used to
|
||||||
|
cause the minimum length finder to give up with no result. Now it treats
|
||||||
|
such references as not adding to the minimum length (which it should have
|
||||||
|
done all along).
|
||||||
|
|
||||||
|
* Furthermore, the above action now happens only if the back reference is to
|
||||||
|
a group that exists more than once in a pattern instead of any back
|
||||||
|
reference in a pattern with duplicate numbers.
|
||||||
|
|
||||||
|
10. A (*MARK) value inside a successful condition was not being returned by the
|
||||||
|
interpretive matcher (it was returned by JIT). This bug has been mended.
|
||||||
|
|
||||||
|
11. A bug in pcre2grep meant that -o without an argument (or -o0) didn't work
|
||||||
|
if the pattern had more than 32 capturing parentheses. This is fixed. In
|
||||||
|
addition (a) the default limit for groups requested by -o<n> has been raised to
|
||||||
|
50, (b) the new --om-capture option changes the limit, (c) an error is raised
|
||||||
|
if -o asks for a group that is above the limit.
|
||||||
|
|
||||||
|
12. The quantifier {1} was always being ignored, but this is incorrect when it
|
||||||
|
is made possessive and applied to an item in parentheses, because a
|
||||||
|
parenthesized item may contain multiple branches or other backtracking points,
|
||||||
|
for example /(a|ab){1}+c/ or /(a+){1}+a/.
|
||||||
|
|
||||||
|
13. For partial matches, pcre2test was always showing the maximum lookbehind
|
||||||
|
characters, flagged with "<", which is misleading when the lookbehind didn't
|
||||||
|
actually look behind the start (because it was later in the pattern). Showing
|
||||||
|
all consulted preceding characters for partial matches is now controlled by the
|
||||||
|
existing "allusedtext" modifier and, as for complete matches, this facility is
|
||||||
|
available only for non-JIT matching, because JIT does not maintain the first
|
||||||
|
and last consulted characters.
|
||||||
|
|
||||||
|
14. DFA matching (using pcre2_dfa_match()) was not recognising a partial match
|
||||||
|
if the end of the subject was encountered in a lookahead (conditional or
|
||||||
|
otherwise), an atomic group, or a recursion.
|
||||||
|
|
||||||
|
15. Give error if pcre2test -t, -T, -tm or -TM is given an argument of zero.
|
||||||
|
|
||||||
|
16. Check for integer overflow when computing lookbehind lengths. Fixes
|
||||||
|
Clusterfuzz issue 15636.
|
||||||
|
|
||||||
|
17. Implemented non-atomic positive lookaround assertions.
|
||||||
|
|
||||||
|
18. If a lookbehind contained a lookahead that contained another lookbehind
|
||||||
|
within it, the nested lookbehind was not correctly processed. For example, if
|
||||||
|
/(?<=(?=(?<=a)))b/ was matched to "ab" it gave no match instead of matching
|
||||||
|
"b".
|
||||||
|
|
||||||
|
19. Implemented pcre2_get_match_data_size().
|
||||||
|
|
||||||
|
20. Two alterations to partial matching:
|
||||||
|
|
||||||
|
(a) The definition of a partial match is slightly changed: if a pattern
|
||||||
|
contains any lookbehinds, an empty partial match may be given, because this
|
||||||
|
is another situation where adding characters to the current subject can
|
||||||
|
lead to a full match. Example: /c*+(?<=[bc])/ with subject "ab".
|
||||||
|
|
||||||
|
(b) Similarly, if a pattern could match an empty string, an empty partial
|
||||||
|
match may be given. Example: /(?![ab]).*/ with subject "ab". This case
|
||||||
|
applies only to PCRE2_PARTIAL_HARD.
|
||||||
|
|
||||||
|
(c) An empty string partial hard match can be returned for \z and \Z as it
|
||||||
|
is documented that they shouldn't match.
|
||||||
|
|
||||||
|
21. A branch that started with (*ACCEPT) was not being recognized as one that
|
||||||
|
could match an empty string.
|
||||||
|
|
||||||
|
22. Corrected pcre2_set_character_tables() tables data type: was const unsigned
|
||||||
|
char * instead of const uint8_t *, as generated by pcre2_maketables().
|
||||||
|
|
||||||
|
23. Upgraded to Unicode 12.1.0.
|
||||||
|
|
||||||
|
24. Add -jitfast command line option to pcre2test (to make all the jit options
|
||||||
|
available directly).
|
||||||
|
|
||||||
|
25. Make pcre2test -C show if libreadline or libedit is supported.
|
||||||
|
|
||||||
|
26. If the length of one branch of a group exceeded 65535 (the maximum value
|
||||||
|
that is remembered as a minimum length), the whole group's length was
|
||||||
|
incorrectly recorded as 65535, leading to incorrect "no match" when start-up
|
||||||
|
optimizations were in force.
|
||||||
|
|
||||||
|
27. The "rightmost consulted character" value was not always correct; in
|
||||||
|
particular, if a pattern ended with a negative lookahead, characters that were
|
||||||
|
inspected in that lookahead were not included.
|
||||||
|
|
||||||
|
28. Add the pcre2_maketables_free() function.
|
||||||
|
|
||||||
|
29. The start-up optimization that looks for a unique initial matching
|
||||||
|
code unit in the interpretive engines uses memchr() in 8-bit mode. When the
|
||||||
|
search is caseless, it was doing so inefficiently, which ended up slowing down
|
||||||
|
the match drastically when the subject was very long. The revised code (a)
|
||||||
|
remembers if one case is not found, so it never repeats the search for that
|
||||||
|
case after a bumpalong and (b) when one case has been found, it searches only
|
||||||
|
up to that position for an earlier occurrence of the other case. This fix
|
||||||
|
applies to both interpretive pcre2_match() and to pcre2_dfa_match().
|
||||||
|
|
||||||
|
30. While scanning to find the minimum length of a group, if any branch has
|
||||||
|
minimum length zero, there is no need to scan any subsequent branches (a small
|
||||||
|
compile-time performance improvement).
|
||||||
|
|
||||||
|
31. Installed a .gitignore file on a user's suggestion. When using the svn
|
||||||
|
repository with git (through git svn) this helps keep it tidy.
|
||||||
|
|
||||||
|
32. Add underflow check in JIT which may occur when the value of subject
|
||||||
|
string pointer is close to 0.
|
||||||
|
|
||||||
|
33. Arrange for classes such as [Aa] which contain just the two cases of the
|
||||||
|
same character, to be treated as a single caseless character. This causes the
|
||||||
|
first and required code unit optimizations to kick in where relevant.
|
||||||
|
|
||||||
|
34. Improve the bitmap of starting bytes for positive classes that include wide
|
||||||
|
characters, but no property types, in UTF-8 mode. Previously, on encountering
|
||||||
|
such a class, the bits for all bytes greater than \xc4 were set, thus
|
||||||
|
specifying any character with codepoint >= 0x100. Now the only bits that are
|
||||||
|
set are for the relevant bytes that start the wide characters. This can give a
|
||||||
|
noticeable performance improvement.
|
||||||
|
|
||||||
|
35. If the bitmap of starting code units contains only 1 or 2 bits, replace it
|
||||||
|
with a single starting code unit (1 bit) or a caseless single starting code
|
||||||
|
unit if the two relevant characters are case-partners. This is particularly
|
||||||
|
relevant to the 8-bit library, though it applies to all. It can give a
|
||||||
|
performance boost for patterns such as [Ww]ord and (word|WORD). However, this
|
||||||
|
optimization doesn't happen if there is a "required" code unit of the same
|
||||||
|
value (because the search for a "required" code unit starts at the match start
|
||||||
|
for non-unique first code unit patterns, but after a unique first code unit,
|
||||||
|
and patterns such as a*a need the former action).
|
||||||
|
|
||||||
|
36. Small patch to pcre2posix.c to set the erroroffset field to -1 immediately
|
||||||
|
after a successful compile, instead of at the start of matching to avoid a
|
||||||
|
sanitizer complaint (regexec is supposed to be thread safe).
|
||||||
|
|
||||||
|
37. Add NEON vectorization to JIT to speed up matching of first character and
|
||||||
|
pairs of characters on ARM64 CPUs.
|
||||||
|
|
||||||
|
38. If a non-ASCII character was the first in a starting assertion in a
|
||||||
|
caseless match, the "first code unit" optimization did not get the casing
|
||||||
|
right, and the assertion failed to match a character in the other case if it
|
||||||
|
did not start with the same code unit.
|
||||||
|
|
||||||
|
39. Fixed the incorrect computation of jump sizes on x86 CPUs in JIT. A masking
|
||||||
|
operation was incorrectly removed in r1136. Reported by Ralf Junker.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.33 16-April-2019
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. Added "allvector" to pcre2test to make it easy to check the part of the
|
||||||
|
ovector that shouldn't be changed, in particular after substitute and failed or
|
||||||
|
partial matches.
|
||||||
|
|
||||||
|
2. Fix subject buffer overread in JIT when UTF is disabled and \X or \R has
|
||||||
|
a greater than 1 fixed quantifier. This issue was found by Yunho Kim.
|
||||||
|
|
||||||
|
3. Added support for callouts from pcre2_substitute(). After 10.33-RC1, but
|
||||||
|
prior to release, fixed a bug that caused a crash if pcre2_substitute() was
|
||||||
|
called with a NULL match context.
|
||||||
|
|
||||||
|
4. The POSIX functions are now all called pcre2_regcomp() etc., with wrapper
|
||||||
|
functions that use the standard POSIX names. However, in pcre2posix.h the POSIX
|
||||||
|
names are defined as macros. This should help avoid linking with the wrong
|
||||||
|
library in some environments while still exporting the POSIX names for
|
||||||
|
pre-existing programs that use them. (The Debian alternative names are also
|
||||||
|
defined as macros, but not documented.)
|
||||||
|
|
||||||
|
5. Fix an xclass matching issue in JIT.
|
||||||
|
|
||||||
|
6. Implement PCRE2_EXTRA_ESCAPED_CR_IS_LF (see Bugzilla 2315).
|
||||||
|
|
||||||
|
7. Implement the Perl 5.28 experimental alphabetic names for atomic groups and
|
||||||
|
lookaround assertions, for example, (*pla:...) and (*atomic:...). These are
|
||||||
|
characterized by a lower case letter following (* and to simplify coding for
|
||||||
|
this, the character tables created by pcre2_maketables() were updated to add a
|
||||||
|
new "is lower case letter" bit. At the same time, the now unused "is
|
||||||
|
hexadecimal digit" bit was removed. The default tables in
|
||||||
|
src/pcre2_chartables.c.dist are updated.
|
||||||
|
|
||||||
|
8. Implement the new Perl "script run" features (*script_run:...) and
|
||||||
|
(*atomic_script_run:...) aka (*sr:...) and (*asr:...).
|
||||||
|
|
||||||
|
9. Fixed two typos in change 22 for 10.21, which added special handling for
|
||||||
|
ranges such as a-z in EBCDIC environments. The original code probably never
|
||||||
|
worked, though there were no bug reports.
|
||||||
|
|
||||||
|
10. Implement PCRE2_COPY_MATCHED_SUBJECT for pcre2_match() (including JIT via
|
||||||
|
pcre2_match()) and pcre2_dfa_match(), but *not* the pcre2_jit_match() fast
|
||||||
|
path. Also, when a match fails, set the subject field in the match data to NULL
|
||||||
|
for tidiness - none of the substring extractors should reference this after
|
||||||
|
match failure.
|
||||||
|
|
||||||
|
11. If a pattern started with a subroutine call that had a quantifier with a
|
||||||
|
minimum of zero, an incorrect "match must start with this character" could be
|
||||||
|
recorded. Example: /(?&xxx)*ABC(?<xxx>XYZ)/ would (incorrectly) expect 'A' to
|
||||||
|
be the first character of a match.
|
||||||
|
|
||||||
|
12. The heap limit checking code in pcre2_dfa_match() could suffer from
|
||||||
|
overflow if the heap limit was set very large. This could cause incorrect "heap
|
||||||
|
limit exceeded" errors.
|
||||||
|
|
||||||
|
13. Add "kibibytes" to the heap limit output from pcre2test -C to make the
|
||||||
|
units clear.
|
||||||
|
|
||||||
|
14. Add a call to pcre2_jit_free_unused_memory() in pcre2grep, for tidiness.
|
||||||
|
|
||||||
|
15. Updated the VMS-specific code in pcre2test on the advice of a VMS user.
|
||||||
|
|
||||||
|
16. Removed the unnecessary inclusion of stdint.h (or inttypes.h) from
|
||||||
|
pcre2_internal.h as it is now included by pcre2.h. Also, change 17 for 10.32
|
||||||
|
below was unnecessarily complicated, as inttypes.h is a Standard C header,
|
||||||
|
which is defined to be a superset of stdint.h. Instead of conditionally
|
||||||
|
including stdint.h or inttypes.h, pcre2.h now unconditionally includes
|
||||||
|
inttypes.h. This supports environments that do not have stdint.h but do have
|
||||||
|
inttypes.h, which are known to exist. A note in the autotools documentation
|
||||||
|
says (November 2018) that there are none known that are the other way round.
|
||||||
|
|
||||||
|
17. Added --disable-percent-zt to "configure" (and equivalent to CMake) to
|
||||||
|
forcibly disable the use of %zu and %td in formatting strings because there is
|
||||||
|
at least one version of VMS that claims to be C99 but does not support these
|
||||||
|
modifiers.
|
||||||
|
|
||||||
|
18. Added --disable-pcre2grep-callout-fork, which restricts the callout support
|
||||||
|
in pcre2grep to the inbuilt echo facility. This may be useful in environments
|
||||||
|
that do not support fork().
|
||||||
|
|
||||||
|
19. Fix two instances of <= 0 being applied to unsigned integers (the VMS
|
||||||
|
compiler complains).
|
||||||
|
|
||||||
|
20. Added "fork" support for VMS to pcre2grep, for running an external program
|
||||||
|
via a string callout.
|
||||||
|
|
||||||
|
21. Improve MAP_JIT flag usage on MacOS. Patch by Rich Siegel.
|
||||||
|
|
||||||
|
22. If a pattern started with (*MARK), (*COMMIT), (*PRUNE), (*SKIP), or (*THEN)
|
||||||
|
followed by ^ it was not recognized as anchored.
|
||||||
|
|
||||||
|
23. The RunGrepTest script used to cut out the test of NUL characters for
|
||||||
|
Solaris and MacOS as printf and sed can't handle them. It seems that the *BSD
|
||||||
|
systems can't either. I've inverted the test so that only those OS that are
|
||||||
|
known to work (currently only Linux) try to run this test.
|
||||||
|
|
||||||
|
24. Some tests in RunGrepTest appended to testtrygrep from two different file
|
||||||
|
descriptors instead of redirecting stderr to stdout. This worked on Linux, but
|
||||||
|
it was reported not to on other systems, causing the tests to fail.
|
||||||
|
|
||||||
|
25. In the RunTest script, make the test for stack setting use the same value
|
||||||
|
for the stack as it needs for -bigstack.
|
||||||
|
|
||||||
|
26. Insert a cast in pcre2_dfa_match.c to suppress a compiler warning.
|
||||||
|
|
||||||
|
26. With PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL set, escape sequences such as \s
|
||||||
|
which are valid in character classes, but not as the end of ranges, were being
|
||||||
|
treated as literals. An example is [_-\s] (but not [\s-_] because that gave an
|
||||||
|
error at the *start* of a range). Now an "invalid range" error is given
|
||||||
|
independently of PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL.
|
||||||
|
|
||||||
|
27. Related to 26 above, PCRE2_BAD_ESCAPE_IS_LITERAL was affecting known escape
|
||||||
|
sequences such as \eX when they appeared invalidly in a character class. Now
|
||||||
|
the option applies only to unrecognized or malformed escape sequences.
|
||||||
|
|
||||||
|
28. Fix word boundary in JIT compiler. Patch by Mike Munday.
|
||||||
|
|
||||||
|
29. The pcre2_dfa_match() function was incorrectly handling conditional version
|
||||||
|
tests such as (?(VERSION>=0)...) when the version test was true. Incorrect
|
||||||
|
processing or a crash could result.
|
||||||
|
|
||||||
|
30. When PCRE2_UTF is set, allow non-ASCII letters and decimal digits in group
|
||||||
|
names, as Perl does. There was a small bug in this new code, found by
|
||||||
|
ClusterFuzz 12950, fixed before release.
|
||||||
|
|
||||||
|
31. Implemented PCRE2_EXTRA_ALT_BSUX to support ECMAScript 6's \u{hhh}
|
||||||
|
construct.
|
||||||
|
|
||||||
|
32. Compile \p{Any} to be the same as . in DOTALL mode, so that it benefits
|
||||||
|
from auto-anchoring if \p{Any}* starts a pattern.
|
||||||
|
|
||||||
|
33. Compile invalid UTF check in JIT test when only pcre32 is enabled.
|
||||||
|
|
||||||
|
34. For some time now, CMake has been warning about the setting of policy
|
||||||
|
CMP0026 to "OLD" in CmakeLists.txt, and hinting that the feature might be
|
||||||
|
removed in a future version. A request for CMake expertise on the list produced
|
||||||
|
no result, so I have now hacked CMakeLists.txt along the lines of some changes
|
||||||
|
I found on the Internet. The new code no longer needs the policy setting, and
|
||||||
|
it appears to work fine on Linux.
|
||||||
|
|
||||||
|
35. Setting --enable-jit=auto for an out-of-tree build failed because the
|
||||||
|
source directory wasn't in the search path for AC_TRY_COMPILE always. Patch
|
||||||
|
from Ross Burton.
|
||||||
|
|
||||||
|
36. Disable SSE2 JIT optimizations in x86 CPUs when SSE2 is not available.
|
||||||
|
Patch by Guillem Jover.
|
||||||
|
|
||||||
|
37. Changed expressions such as 1<<10 to 1u<<10 in many places because compiler
|
||||||
|
warnings were reported.
|
||||||
|
|
||||||
|
38. Using the clang compiler with sanitizing options causes runtime complaints
|
||||||
|
about truncation for statements such as x = ~x when x is an 8-bit value; it
|
||||||
|
seems to compute ~x as a 32-bit value. Changing such statements to x = 255 ^ x
|
||||||
|
gets rid of the warnings. There were also two missing casts in pcre2test.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.32 10-September-2018
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
1. When matching using the REG_STARTEND feature of the POSIX API with a
|
||||||
|
non-zero starting offset, unset capturing groups with lower numbers than a
|
||||||
|
group that did capture something were not being correctly returned as "unset"
|
||||||
|
(that is, with offset values of -1).
|
||||||
|
|
||||||
|
2. When matching using the POSIX API, pcre2test used to omit listing unset
|
||||||
|
groups altogether. Now it shows those that come before any actual captures as
|
||||||
|
"<unset>", as happens for non-POSIX matching.
|
||||||
|
|
||||||
|
3. Running "pcre2test -C" always stated "\R matches CR, LF, or CRLF only",
|
||||||
|
whatever the build configuration was. It now correctly says "\R matches all
|
||||||
|
Unicode newlines" in the default case when --enable-bsr-anycrlf has not been
|
||||||
|
specified. Similarly, running "pcre2test -C bsr" never produced the result
|
||||||
|
ANY.
|
||||||
|
|
||||||
|
4. Matching the pattern /(*UTF)\C[^\v]+\x80/ against an 8-bit string containing
|
||||||
|
multi-code-unit characters caused bad behaviour and possibly a crash. This
|
||||||
|
issue was fixed for other kinds of repeat in release 10.20 by change 19, but
|
||||||
|
repeating character classes were overlooked.
|
||||||
|
|
||||||
|
5. pcre2grep now supports the inclusion of binary zeros in patterns that are
|
||||||
|
read from files via the -f option.
|
||||||
|
|
||||||
|
6. A small fix to pcre2grep to avoid compiler warnings for -Wformat-overflow=2.
|
||||||
|
|
||||||
|
7. Added --enable-jit=auto support to configure.ac.
|
||||||
|
|
||||||
|
8. Added some dummy variables to the heapframe structure in 16-bit and 32-bit
|
||||||
|
modes for the benefit of m68k, where pointers can be 16-bit aligned. The
|
||||||
|
dummies force 32-bit alignment and this ensures that the structure is a
|
||||||
|
multiple of PCRE2_SIZE, a requirement that is tested at compile time. In other
|
||||||
|
architectures, alignment requirements take care of this automatically.
|
||||||
|
|
||||||
|
9. When returning an error from pcre2_pattern_convert(), ensure the error
|
||||||
|
offset is set zero for early errors.
|
||||||
|
|
||||||
|
10. A number of patches for Windows support from Daniel Richard G:
|
||||||
|
|
||||||
|
(a) List of error numbers in Runtest.bat corrected (it was not the same as in
|
||||||
|
Runtest).
|
||||||
|
|
||||||
|
(b) pcre2grep snprintf() workaround as used elsewhere in the tree.
|
||||||
|
|
||||||
|
(c) Support for non-C99 snprintf() that returns -1 in the overflow case.
|
||||||
|
|
||||||
|
11. Minor tidy of pcre2_dfa_match() code.
|
||||||
|
|
||||||
|
12. Refactored pcre2_dfa_match() so that the internal recursive calls no longer
|
||||||
|
use the stack for local workspace and local ovectors. Instead, an initial block
|
||||||
|
of stack is reserved, but if this is insufficient, heap memory is used. The
|
||||||
|
heap limit parameter now applies to pcre2_dfa_match().
|
||||||
|
|
||||||
|
13. If a "find limits" test of DFA matching in pcre2test resulted in too many
|
||||||
|
matches for the ovector, no matches were displayed.
|
||||||
|
|
||||||
|
14. Removed an occurrence of ctrl/Z from test 6 because Windows treats it as
|
||||||
|
EOF. The test looks to have come from a fuzzer.
|
||||||
|
|
||||||
|
15. If PCRE2 was built with a default match limit a lot greater than the
|
||||||
|
default default of 10 000 000, some JIT tests of the match limit no longer
|
||||||
|
failed. All such tests now set 10 000 000 as the upper limit.
|
||||||
|
|
||||||
|
16. Another Windows related patch for pcregrep to ensure that WIN32 is
|
||||||
|
undefined under Cygwin.
|
||||||
|
|
||||||
|
17. Test for the presence of stdint.h and inttypes.h in configure and CMake and
|
||||||
|
include whichever exists (stdint preferred) instead of unconditionally
|
||||||
|
including stdint. This makes life easier for old and non-standard systems.
|
||||||
|
|
||||||
|
18. Further changes to improve portability, especially to old and or non-
|
||||||
|
standard systems:
|
||||||
|
|
||||||
|
(a) Put all printf arguments in RunGrepTest into single, not double, quotes,
|
||||||
|
and use \0 not \x00 for binary zero.
|
||||||
|
|
||||||
|
(b) Avoid the use of C++ (i.e. BCPL) // comments.
|
||||||
|
|
||||||
|
(c) Parameterize the use of %zu in pcre2test to make it like %td. For both of
|
||||||
|
these now, if using MSVC or a standard C before C99, %lu is used with a
|
||||||
|
cast if necessary.
|
||||||
|
|
||||||
|
19. Applied a contributed patch to CMakeLists.txt to increase the stack size
|
||||||
|
when linking pcre2test with MSVC. This gets rid of a stack overflow error in
|
||||||
|
the standard set of tests.
|
||||||
|
|
||||||
|
20. Output a warning in pcre2test when ignoring the "altglobal" modifier when
|
||||||
|
it is given with the "replace" modifier.
|
||||||
|
|
||||||
|
21. In both pcre2test and pcre2_substitute(), with global matching, a pattern
|
||||||
|
that matched an empty string, but never at the starting match offset, was not
|
||||||
|
handled in a Perl-compatible way. The pattern /(<?=\G.)/ is an example of such
|
||||||
|
a pattern. Because \G is in a lookbehind assertion, there has to be a
|
||||||
|
"bumpalong" before there can be a match. The automatic "advance by one
|
||||||
|
character after an empty string match" rule is therefore inappropriate. A more
|
||||||
|
complicated algorithm has now been implemented.
|
||||||
|
|
||||||
|
22. When checking to see if a lookbehind is of fixed length, lookaheads were
|
||||||
|
correctly ignored, but qualifiers on lookaheads were not being ignored, leading
|
||||||
|
to an incorrect "lookbehind assertion is not fixed length" error.
|
||||||
|
|
||||||
|
23. The VERSION condition test was reading fractional PCRE2 version numbers
|
||||||
|
such as the 04 in 10.04 incorrectly and hence giving wrong results.
|
||||||
|
|
||||||
|
24. Updated to Unicode version 11.0.0. As well as the usual addition of new
|
||||||
|
scripts and characters, this involved re-jigging the grapheme break property
|
||||||
|
algorithm because Unicode has changed the way emojis are handled.
|
||||||
|
|
||||||
|
25. Fixed an obscure bug that struck when there were two atomic groups not
|
||||||
|
separated by something with a backtracking point. There could be an incorrect
|
||||||
|
backtrack into the first of the atomic groups. A complicated example is
|
||||||
|
/(?>a(*:1))(?>b)(*SKIP:1)x|.*/ matched against "abc", where the *SKIP
|
||||||
|
shouldn't find a MARK (because is in an atomic group), but it did.
|
||||||
|
|
||||||
|
26. Upgraded the perltest.sh script: (1) #pattern lines can now be used to set
|
||||||
|
a list of modifiers for all subsequent patterns - only those that the script
|
||||||
|
recognizes are meaningful; (2) #subject lines can be used to set or unset a
|
||||||
|
default "mark" modifier; (3) Unsupported #command lines give a warning when
|
||||||
|
they are ignored; (4) Mark data is output only if the "mark" modifier is
|
||||||
|
present.
|
||||||
|
|
||||||
|
27. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported.
|
||||||
|
|
||||||
|
28. A (*MARK) name was not being passed back for positive assertions that were
|
||||||
|
terminated by (*ACCEPT).
|
||||||
|
|
||||||
|
29. Add support for \N{U+dddd}, but only in Unicode mode.
|
||||||
|
|
||||||
|
30. Add support for (?^) for unsetting all imnsx options.
|
||||||
|
|
||||||
|
31. The PCRE2_EXTENDED (/x) option only ever discarded space characters whose
|
||||||
|
code point was less than 256 and that were recognized by the lookup table
|
||||||
|
generated by pcre2_maketables(), which uses isspace() to identify white space.
|
||||||
|
Now, when Unicode support is compiled, PCRE2_EXTENDED also discards U+0085,
|
||||||
|
U+200E, U+200F, U+2028, and U+2029, which are additional characters defined by
|
||||||
|
Unicode as "Pattern White Space". This makes PCRE2 compatible with Perl.
|
||||||
|
|
||||||
|
32. In certain circumstances, option settings within patterns were not being
|
||||||
|
correctly processed. For example, the pattern /((?i)A)(?m)B/ incorrectly
|
||||||
|
matched "ab". (The (?m) setting lost the fact that (?i) should be reset at the
|
||||||
|
end of its group during the parse process, but without another setting such as
|
||||||
|
(?m) the compile phase got it right.) This bug was introduced by the
|
||||||
|
refactoring in release 10.23.
|
||||||
|
|
||||||
|
33. PCRE2 uses bcopy() if available when memmove() is not, and it used just to
|
||||||
|
define memmove() as function call to bcopy(). This hasn't been tested for a
|
||||||
|
long time because in pcre2test the result of memmove() was being used, whereas
|
||||||
|
bcopy() doesn't return a result. This feature is now refactored always to call
|
||||||
|
an emulation function when there is no memmove(). The emulation makes use of
|
||||||
|
bcopy() when available.
|
||||||
|
|
||||||
|
34. When serializing a pattern, set the memctl, executable_jit, and tables
|
||||||
|
fields (that is, all the fields that contain pointers) to zeros so that the
|
||||||
|
result of serializing is always the same. These fields are re-set when the
|
||||||
|
pattern is deserialized.
|
||||||
|
|
||||||
|
35. In a pattern such as /[^\x{100}-\x{ffff}]*[\x80-\xff]/ which has a repeated
|
||||||
|
negative class with no characters less than 0x100 followed by a positive class
|
||||||
|
with only characters less than 0x100, the first class was incorrectly being
|
||||||
|
auto-possessified, causing incorrect match failures.
|
||||||
|
|
||||||
|
36. Removed the character type bit ctype_meta, which dates from PCRE1 and is
|
||||||
|
not used in PCRE2.
|
||||||
|
|
||||||
|
37. Tidied up unnecessarily complicated macros used in the escapes table.
|
||||||
|
|
||||||
|
38. Since 10.21, the new testoutput8-16-4 file has accidentally been omitted
|
||||||
|
from distribution tarballs, owing to a typo in Makefile.am which had
|
||||||
|
testoutput8-16-3 twice. Now fixed.
|
||||||
|
|
||||||
|
39. If the only branch in a conditional subpattern was anchored, the whole
|
||||||
|
subpattern was treated as anchored, when it should not have been, since the
|
||||||
|
assumed empty second branch cannot be anchored. Demonstrated by test patterns
|
||||||
|
such as /(?(1)^())b/ or /(?(?=^))b/.
|
||||||
|
|
||||||
|
40. A repeated conditional subpattern that could match an empty string was
|
||||||
|
always assumed to be unanchored. Now it is checked just like any other
|
||||||
|
repeated conditional subpattern, and can be found to be anchored if the minimum
|
||||||
|
quantifier is one or more. I can't see much use for a repeated anchored
|
||||||
|
pattern, but the behaviour is now consistent.
|
||||||
|
|
||||||
|
41. Minor addition to pcre2_jit_compile.c to avoid static analyzer complaint
|
||||||
|
(for an event that could never occur but you had to have external information
|
||||||
|
to know that).
|
||||||
|
|
||||||
|
42. If before the first match in a file that was being searched by pcre2grep
|
||||||
|
there was a line that was sufficiently long to cause the input buffer to be
|
||||||
|
expanded, the variable holding the location of the end of the previous match
|
||||||
|
was being adjusted incorrectly, and could cause an overflow warning from a code
|
||||||
|
sanitizer. However, as the value is used only to print pending "after" lines
|
||||||
|
when the next match is reached (and there are no such lines in this case) this
|
||||||
|
bug could do no damage.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.31 12-February-2018
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. Fix typo (missing ]) in VMS code in pcre2test.c.
|
||||||
|
|
||||||
|
2. Replace the replicated code for matching extended Unicode grapheme sequences
|
||||||
|
(which got a lot more complicated by change 10.30/49) by a single subroutine
|
||||||
|
that is called by both pcre2_match() and pcre2_dfa_match().
|
||||||
|
|
||||||
|
3. Add idempotent guard to pcre2_internal.h.
|
||||||
|
|
||||||
|
4. Add new pcre2_config() options: PCRE2_CONFIG_NEVER_BACKSLASH_C and
|
||||||
|
PCRE2_CONFIG_COMPILED_WIDTHS.
|
||||||
|
|
||||||
|
5. Cut out \C tests in the JIT regression tests when NEVER_BACKSLASH_C is
|
||||||
|
defined (e.g. by --enable-never-backslash-C).
|
||||||
|
|
||||||
|
6. Defined public names for all the pcre2_compile() error numbers, and used
|
||||||
|
the public names in pcre2_convert.c.
|
||||||
|
|
||||||
|
7. Fixed a small memory leak in pcre2test (convert contexts).
|
||||||
|
|
||||||
|
8. Added two casts to compile.c and one to match.c to avoid compiler warnings.
|
||||||
|
|
||||||
|
9. Added code to pcre2grep when compiled under VMS to set the symbol
|
||||||
|
PCRE2GREP_RC to the exit status, because VMS does not distinguish between
|
||||||
|
exit(0) and exit(1).
|
||||||
|
|
||||||
|
10. Added the -LM (list modifiers) option to pcre2test. Also made -C complain
|
||||||
|
about a bad option only if the following argument item does not start with a
|
||||||
|
hyphen.
|
||||||
|
|
||||||
|
11. pcre2grep was truncating components of file names to 128 characters when
|
||||||
|
processing files with the -r option, and also (some very odd code) truncating
|
||||||
|
path names to 512 characters. There is now a check on the absolute length of
|
||||||
|
full path file names, which may be up to 2047 characters long.
|
||||||
|
|
||||||
|
12. When an assertion contained (*ACCEPT) it caused all open capturing groups
|
||||||
|
to be closed (as for a non-assertion ACCEPT), which was wrong and could lead to
|
||||||
|
misbehaviour for subsequent references to groups that started outside the
|
||||||
|
assertion. ACCEPT in an assertion now closes only those groups that were
|
||||||
|
started within that assertion. Fixes oss-fuzz issues 3852 and 3891.
|
||||||
|
|
||||||
|
13. Multiline matching in pcre2grep was misbehaving if the pattern matched
|
||||||
|
within a line, and then matched again at the end of the line and over into
|
||||||
|
subsequent lines. Behaviour was different with and without colouring, and
|
||||||
|
sometimes context lines were incorrectly printed and/or line endings were lost.
|
||||||
|
All these issues should now be fixed.
|
||||||
|
|
||||||
|
14. If --line-buffered was specified for pcre2grep when input was from a
|
||||||
|
compressed file (.gz or .bz2) a segfault occurred. (Line buffering should be
|
||||||
|
ignored for compressed files.)
|
||||||
|
|
||||||
|
15. Although pcre2_jit_match checks whether the pattern is compiled
|
||||||
|
in a given mode, it was also expected that at least one mode is available.
|
||||||
|
This is fixed and pcre2_jit_match returns with PCRE2_ERROR_JIT_BADOPTION
|
||||||
|
when the pattern is not optimized by JIT at all.
|
||||||
|
|
||||||
|
16. The line number and related variables such as match counts in pcre2grep
|
||||||
|
were all int variables, causing overflow when files with more than 2147483647
|
||||||
|
lines were processed (assuming 32-bit ints). They have all been changed to
|
||||||
|
unsigned long ints.
|
||||||
|
|
||||||
|
17. If a backreference with a minimum repeat count of zero was first in a
|
||||||
|
pattern, apart from assertions, an incorrect first matching character could be
|
||||||
|
recorded. For example, for the pattern /(?=(a))\1?b/, "b" was incorrectly set
|
||||||
|
as the first character of a match.
|
||||||
|
|
||||||
|
18. Characters in a leading positive assertion are considered for recording a
|
||||||
|
first character of a match when the rest of the pattern does not provide one.
|
||||||
|
However, a character in a non-assertive group within a leading assertion such
|
||||||
|
as in the pattern /(?=(a))\1?b/ caused this process to fail. This was an
|
||||||
|
infelicity rather than an outright bug, because it did not affect the result of
|
||||||
|
a match, just its speed. (In fact, in this case, the starting 'a' was
|
||||||
|
subsequently picked up in the study.)
|
||||||
|
|
||||||
|
19. A minor tidy in pcre2_match(): making all PCRE2_ERROR_ returns use "return"
|
||||||
|
instead of "RRETURN" saves unwinding the backtracks in these cases (only one
|
||||||
|
didn't).
|
||||||
|
|
||||||
|
20. Allocate a single callout block on the stack at the start of pcre2_match()
|
||||||
|
and set its never-changing fields once only. Do the same for pcre2_dfa_match().
|
||||||
|
|
||||||
|
21. Save the extra compile options (set in the compile context) with the
|
||||||
|
compiled pattern (they were not previously saved), add PCRE2_INFO_EXTRAOPTIONS
|
||||||
|
to retrieve them, and update pcre2test to show them.
|
||||||
|
|
||||||
|
22. Added PCRE2_CALLOUT_STARTMATCH and PCRE2_CALLOUT_BACKTRACK bits to a new
|
||||||
|
field callout_flags in callout blocks. The bits are set by pcre2_match(), but
|
||||||
|
not by JIT or pcre2_dfa_match(). Their settings are shown in pcre2test callouts
|
||||||
|
if the callout_extra subject modifier is set. These bits are provided to help
|
||||||
|
with tracking how a backtracking match is proceeding.
|
||||||
|
|
||||||
|
23. Updated the pcre2demo.c demonstration program, which was missing the extra
|
||||||
|
code for -g that handles the case when \K in an assertion causes the match to
|
||||||
|
end at the original start point. Also arranged for it to detect when \K causes
|
||||||
|
the end of a match to be before its start.
|
||||||
|
|
||||||
|
24. Similar to 23 above, strange things (including loops) could happen in
|
||||||
|
pcre2grep when \K was used in an assertion when --colour was used or in
|
||||||
|
multiline mode. The "end at original start point" bug is fixed, and if the end
|
||||||
|
point is found to be before the start point, they are swapped.
|
||||||
|
|
||||||
|
25. When PCRE2_FIRSTLINE without PCRE2_NO_START_OPTIMIZE was used in non-JIT
|
||||||
|
matching (both pcre2_match() and pcre2_dfa_match()) and the matched string
|
||||||
|
started with the first code unit of a newline sequence, matching failed because
|
||||||
|
it was not tried at the newline.
|
||||||
|
|
||||||
|
26. Code for giving up a non-partial match after failing to find a starting
|
||||||
|
code unit anywhere in the subject was missing when searching for one of a
|
||||||
|
number of code units (the bitmap case) in both pcre2_match() and
|
||||||
|
pcre2_dfa_match(). This was a missing optimization rather than a bug.
|
||||||
|
|
||||||
|
27. Tidied up the ACROSSCHAR macro to be like FORWARDCHAR and BACKCHAR, using a
|
||||||
|
pointer argument rather than a code unit value. This should not have affected
|
||||||
|
the generated code.
|
||||||
|
|
||||||
|
28. The JIT compiler has been updated.
|
||||||
|
|
||||||
|
29. Avoid pointer overflow for unset captures in pcre2_substring_list_get().
|
||||||
|
This could not actually cause a crash because it was always used in a memcpy()
|
||||||
|
call with zero length.
|
||||||
|
|
||||||
|
30. Some internal structures have a variable-length ovector[] as their last
|
||||||
|
element. Their actual memory is obtained dynamically, giving an ovector of
|
||||||
|
appropriate length. However, they are defined in the structure as
|
||||||
|
ovector[NUMBER], where NUMBER is large so that array bound checkers don't
|
||||||
|
grumble. The value of NUMBER was 10000, but a fuzzer exceeded 5000 capturing
|
||||||
|
groups, making the ovector larger than this. The number has been increased to
|
||||||
|
131072, which allows for the maximum number of captures (65535) plus the
|
||||||
|
overall match. This fixes oss-fuzz issue 5415.
|
||||||
|
|
||||||
|
31. Auto-possessification at the end of a capturing group was dependent on what
|
||||||
|
follows the group (e.g. /(a+)b/ would auto-possessify the a+) but this caused
|
||||||
|
incorrect behaviour when the group was called recursively from elsewhere in the
|
||||||
|
pattern where something different might follow. This bug is an unforseen
|
||||||
|
consequence of change #1 for 10.30 - the implementation of backtracking into
|
||||||
|
recursions. Iterators at the ends of capturing groups are no longer considered
|
||||||
|
for auto-possessification if the pattern contains any recursions. Fixes
|
||||||
|
Bugzilla #2232.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.30 14-August-2017
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
1. The main interpreter, pcre2_match(), has been refactored into a new version
|
||||||
|
that does not use recursive function calls (and therefore the stack) for
|
||||||
|
remembering backtracking positions. This makes --disable-stack-for-recursion a
|
||||||
|
NOOP. The new implementation allows backtracking into recursive group calls in
|
||||||
|
patterns, making it more compatible with Perl, and also fixes some other
|
||||||
|
hard-to-do issues such as #1887 in Bugzilla. The code is also cleaner because
|
||||||
|
the old code had a number of fudges to try to reduce stack usage. It seems to
|
||||||
|
run no slower than the old code.
|
||||||
|
|
||||||
|
A number of bugs in the refactored code were subsequently fixed during testing
|
||||||
|
before release, but after the code was made available in the repository. These
|
||||||
|
bugs were never in fully released code, but are noted here for the record.
|
||||||
|
|
||||||
|
(a) If a pattern had fewer capturing parentheses than the ovector supplied in
|
||||||
|
the match data block, a memory error (detectable by ASAN) occurred after
|
||||||
|
a match, because the external block was being set from non-existent
|
||||||
|
internal ovector fields. Fixes oss-fuzz issue 781.
|
||||||
|
|
||||||
|
(b) A pattern with very many capturing parentheses (when the internal frame
|
||||||
|
size was greater than the initial frame vector on the stack) caused a
|
||||||
|
crash. A vector on the heap is now set up at the start of matching if the
|
||||||
|
vector on the stack is not big enough to handle at least 10 frames.
|
||||||
|
Fixes oss-fuzz issue 783.
|
||||||
|
|
||||||
|
(c) Handling of (*VERB)s in recursions was wrong in some cases.
|
||||||
|
|
||||||
|
(d) Captures in negative assertions that were used as conditions were not
|
||||||
|
happening if the assertion matched via (*ACCEPT).
|
||||||
|
|
||||||
|
(e) Mark values were not being passed out of recursions.
|
||||||
|
|
||||||
|
(f) Refactor some code in do_callout() to avoid picky compiler warnings about
|
||||||
|
negative indices. Fixes oss-fuzz issue 1454.
|
||||||
|
|
||||||
|
(g) Similarly refactor the way the variable length ovector is addressed for
|
||||||
|
similar reasons. Fixes oss-fuzz issue 1465.
|
||||||
|
|
||||||
|
2. Now that pcre2_match() no longer uses recursive function calls (see above),
|
||||||
|
the "match limit recursion" value seems misnamed. It still exists, and limits
|
||||||
|
the depth of tree that is searched. To avoid future confusion, it has been
|
||||||
|
renamed as "depth limit" in all relevant places (--with-depth-limit,
|
||||||
|
(*LIMIT_DEPTH), pcre2_set_depth_limit(), etc) but the old names are still
|
||||||
|
available for backwards compatibility.
|
||||||
|
|
||||||
|
3. Hardened pcre2test so as to reduce the number of bugs reported by fuzzers:
|
||||||
|
|
||||||
|
(a) Check for malloc failures when getting memory for the ovector (POSIX) or
|
||||||
|
the match data block (non-POSIX).
|
||||||
|
|
||||||
|
4. In the 32-bit library in non-UTF mode, an attempt to find a Unicode property
|
||||||
|
for a character with a code point greater than 0x10ffff (the Unicode maximum)
|
||||||
|
caused a crash.
|
||||||
|
|
||||||
|
5. If a lookbehind assertion that contained a back reference to a group
|
||||||
|
appearing later in the pattern was compiled with the PCRE2_ANCHORED option,
|
||||||
|
undefined actions (often a segmentation fault) could occur, depending on what
|
||||||
|
other options were set. An example assertion is (?<!\1(abc)) where the
|
||||||
|
reference \1 precedes the group (abc). This fixes oss-fuzz issue 865.
|
||||||
|
|
||||||
|
6. Added the PCRE2_INFO_FRAMESIZE item to pcre2_pattern_info() and arranged for
|
||||||
|
pcre2test to use it to output the frame size when the "framesize" modifier is
|
||||||
|
given.
|
||||||
|
|
||||||
|
7. Reworked the recursive pattern matching in the JIT compiler to follow the
|
||||||
|
interpreter changes.
|
||||||
|
|
||||||
|
8. When the zero_terminate modifier was specified on a pcre2test subject line
|
||||||
|
for global matching, unpredictable things could happen. For example, in UTF-8
|
||||||
|
mode, the pattern //g,zero_terminate read random memory when matched against an
|
||||||
|
empty string with zero_terminate. This was a bug in pcre2test, not the library.
|
||||||
|
|
||||||
|
9. Moved some Windows-specific code in pcre2grep (introduced in 10.23/13) out
|
||||||
|
of the section that is compiled when Unix-style directory scanning is
|
||||||
|
available, and into a new section that is always compiled for Windows.
|
||||||
|
|
||||||
|
10. In pcre2test, explicitly close the file after an error during serialization
|
||||||
|
or deserialization (the "load" or "save" commands).
|
||||||
|
|
||||||
|
11. Fix memory leak in pcre2_serialize_decode() when the input is invalid.
|
||||||
|
|
||||||
|
12. Fix potential NULL dereference in pcre2_callout_enumerate() if called with
|
||||||
|
a NULL pattern pointer when Unicode support is available.
|
||||||
|
|
||||||
|
13. When the 32-bit library was being tested by pcre2test, error messages that
|
||||||
|
were longer than 64 code units could cause a buffer overflow. This was a bug in
|
||||||
|
pcre2test.
|
||||||
|
|
||||||
|
14. The alternative matching function, pcre2_dfa_match() misbehaved if it
|
||||||
|
encountered a character class with a possessive repeat, for example [a-f]{3}+.
|
||||||
|
|
||||||
|
15. The depth (formerly recursion) limit now applies to DFA matching (as
|
||||||
|
of 10.23/36); pcre2test has been upgraded so that \=find_limits works with DFA
|
||||||
|
matching to find the minimum value for this limit.
|
||||||
|
|
||||||
|
16. Since 10.21, if pcre2_match() was called with a null context, default
|
||||||
|
memory allocation functions were used instead of whatever was used when the
|
||||||
|
pattern was compiled.
|
||||||
|
|
||||||
|
17. Changes to the pcre2test "memory" modifier on a subject line. These apply
|
||||||
|
only to pcre2_match():
|
||||||
|
|
||||||
|
(a) Warn if null_context is set on both pattern and subject, because the
|
||||||
|
memory details cannot then be shown.
|
||||||
|
|
||||||
|
(b) Remember (up to a certain number of) memory allocations and their
|
||||||
|
lengths, and list only the lengths, so as to be system-independent.
|
||||||
|
(In practice, the new interpreter never has more than 2 blocks allocated
|
||||||
|
simultaneously.)
|
||||||
|
|
||||||
|
18. Make pcre2test detect an error return from pcre2_get_error_message(), give
|
||||||
|
a message, and abandon the run (this would have detected #13 above).
|
||||||
|
|
||||||
|
19. Implemented PCRE2_ENDANCHORED.
|
||||||
|
|
||||||
|
20. Applied Jason Hood's patches (slightly modified) to pcre2grep, to implement
|
||||||
|
the --output=text (-O) option and the inbuilt callout echo.
|
||||||
|
|
||||||
|
21. Extend auto-anchoring etc. to ignore groups with a zero qualifier and
|
||||||
|
single-branch conditions with a false condition (e.g. DEFINE) at the start of a
|
||||||
|
branch. For example, /(?(DEFINE)...)^A/ and /(...){0}^B/ are now flagged as
|
||||||
|
anchored.
|
||||||
|
|
||||||
|
22. Added an explicit limit on the amount of heap used by pcre2_match(), set by
|
||||||
|
pcre2_set_heap_limit() or (*LIMIT_HEAP=xxx). Upgraded pcre2test to show the
|
||||||
|
heap limit along with other pattern information, and to find the minimum when
|
||||||
|
the find_limits modifier is set.
|
||||||
|
|
||||||
|
23. Write to the last 8 bytes of the pcre2_real_code structure when a compiled
|
||||||
|
pattern is set up so as to initialize any padding the compiler might have
|
||||||
|
included. This avoids valgrind warnings when a compiled pattern is copied, in
|
||||||
|
particular when it is serialized.
|
||||||
|
|
||||||
|
24. Remove a redundant line of code left in accidentally a long time ago.
|
||||||
|
|
||||||
|
25. Remove a duplication typo in pcre2_tables.c
|
||||||
|
|
||||||
|
26. Correct an incorrect cast in pcre2_valid_utf.c
|
||||||
|
|
||||||
|
27. Update pcre2test, remove some unused code in pcre2_match(), and upgrade the
|
||||||
|
tests to improve coverage.
|
||||||
|
|
||||||
|
28. Some fixes/tidies as a result of looking at Coverity Scan output:
|
||||||
|
|
||||||
|
(a) Typo: ">" should be ">=" in opcode check in pcre2_auto_possess.c.
|
||||||
|
(b) Added some casts to avoid "suspicious implicit sign extension".
|
||||||
|
(c) Resource leaks in pcre2test in rare error cases.
|
||||||
|
(d) Avoid warning for never-use case OP_TABLE_LENGTH which is just a fudge
|
||||||
|
for checking at compile time that tables are the right size.
|
||||||
|
(e) Add missing "fall through" comment.
|
||||||
|
|
||||||
|
29. Implemented PCRE2_EXTENDED_MORE and related /xx and (?xx) features.
|
||||||
|
|
||||||
|
30. Implement (?n: for PCRE2_NO_AUTO_CAPTURE, because Perl now has this.
|
||||||
|
|
||||||
|
31. If more than one of "push", "pushcopy", or "pushtablescopy" were set in
|
||||||
|
pcre2test, a crash could occur.
|
||||||
|
|
||||||
|
32. Make -bigstack in RunTest allocate a 64MiB stack (instead of 16MiB) so
|
||||||
|
that all the tests can run with clang's sanitizing options.
|
||||||
|
|
||||||
|
33. Implement extra compile options in the compile context and add the first
|
||||||
|
one: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES.
|
||||||
|
|
||||||
|
34. Implement newline type PCRE2_NEWLINE_NUL.
|
||||||
|
|
||||||
|
35. A lookbehind assertion that had a zero-length branch caused undefined
|
||||||
|
behaviour when processed by pcre2_dfa_match(). This is oss-fuzz issue 1859.
|
||||||
|
|
||||||
|
36. The match limit value now also applies to pcre2_dfa_match() as there are
|
||||||
|
patterns that can use up a lot of resources without necessarily recursing very
|
||||||
|
deeply. (Compare item 10.23/36.) This should fix oss-fuzz #1761.
|
||||||
|
|
||||||
|
37. Implement PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL.
|
||||||
|
|
||||||
|
38. Fix returned offsets from regexec() when REG_STARTEND is used with a
|
||||||
|
starting offset greater than zero.
|
||||||
|
|
||||||
|
39. Implement REG_PEND (GNU extension) for the POSIX wrapper.
|
||||||
|
|
||||||
|
40. Implement the subject_literal modifier in pcre2test, and allow jitstack on
|
||||||
|
pattern lines.
|
||||||
|
|
||||||
|
41. Implement PCRE2_LITERAL and use it to support REG_NOSPEC.
|
||||||
|
|
||||||
|
42. Implement PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD for the benefit
|
||||||
|
of pcre2grep.
|
||||||
|
|
||||||
|
43. Re-implement pcre2grep's -F, -w, and -x options using PCRE2_LITERAL,
|
||||||
|
PCRE2_EXTRA_MATCH_WORD, and PCRE2_EXTRA_MATCH_LINE. This fixes two bugs:
|
||||||
|
|
||||||
|
(a) The -F option did not work for fixed strings containing \E.
|
||||||
|
(b) The -w option did not work for patterns with multiple branches.
|
||||||
|
|
||||||
|
44. Added configuration options for the SELinux compatible execmem allocator in
|
||||||
|
JIT.
|
||||||
|
|
||||||
|
45. Increased the limit for searching for a "must be present" code unit in
|
||||||
|
subjects from 1000 to 2000 for 8-bit searches, since they use memchr() and are
|
||||||
|
much faster.
|
||||||
|
|
||||||
|
46. Arrange for anchored patterns to record and use "first code unit" data,
|
||||||
|
because this can give a fast "no match" without searching for a "required code
|
||||||
|
unit". Previously only non-anchored patterns did this.
|
||||||
|
|
||||||
|
47. Upgraded the Unicode tables from Unicode 8.0.0 to Unicode 10.0.0.
|
||||||
|
|
||||||
|
48. Add the callout_no_where modifier to pcre2test.
|
||||||
|
|
||||||
|
49. Update extended grapheme breaking rules to the latest set that are in
|
||||||
|
Unicode Standard Annex #29.
|
||||||
|
|
||||||
|
50. Added experimental foreign pattern conversion facilities
|
||||||
|
(pcre2_pattern_convert() and friends).
|
||||||
|
|
||||||
|
51. Change the macro FWRITE, used in pcre2grep, to FWRITE_IGNORE because FWRITE
|
||||||
|
is defined in a system header in cygwin. Also modified some of the #ifdefs in
|
||||||
|
pcre2grep related to Windows and Cygwin support.
|
||||||
|
|
||||||
|
52. Change 3(g) for 10.23 was a bit too zealous. If a hyphen that follows a
|
||||||
|
character class is the last character in the class, Perl does not give a
|
||||||
|
warning. PCRE2 now also treats this as a literal.
|
||||||
|
|
||||||
|
53. Related to 52, though PCRE2 was throwing an error for [[:digit:]-X] it was
|
||||||
|
not doing so for [\d-X] (and similar escapes), as is documented.
|
||||||
|
|
||||||
|
54. Fixed a MIPS issue in the JIT compiler reported by Joshua Kinard.
|
||||||
|
|
||||||
|
55. Fixed a "maybe uninitialized" warning for class_uchardata in \p handling in
|
||||||
|
pcre2_compile() which could never actually trigger (code should have been cut
|
||||||
|
out when Unicode support is disabled).
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.23 14-February-2017
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. Extended pcre2test with the utf8_input modifier so that it is able to
|
||||||
|
generate all possible 16-bit and 32-bit code unit values in non-UTF modes.
|
||||||
|
|
||||||
|
2. In any wide-character mode (8-bit UTF or any 16-bit or 32-bit mode), without
|
||||||
|
PCRE2_UCP set, a negative character type such as \D in a positive class should
|
||||||
|
cause all characters greater than 255 to match, whatever else is in the class.
|
||||||
|
There was a bug that caused this not to happen if a Unicode property item was
|
||||||
|
added to such a class, for example [\D\P{Nd}] or [\W\pL].
|
||||||
|
|
||||||
|
3. There has been a major re-factoring of the pcre2_compile.c file. Most syntax
|
||||||
|
checking is now done in the pre-pass that identifies capturing groups. This has
|
||||||
|
reduced the amount of duplication and made the code tidier. While doing this,
|
||||||
|
some minor bugs and Perl incompatibilities were fixed, including:
|
||||||
|
|
||||||
|
(a) \Q\E in the middle of a quantifier such as A+\Q\E+ is now ignored instead
|
||||||
|
of giving an invalid quantifier error.
|
||||||
|
|
||||||
|
(b) {0} can now be used after a group in a lookbehind assertion; previously
|
||||||
|
this caused an "assertion is not fixed length" error.
|
||||||
|
|
||||||
|
(c) Perl always treats (?(DEFINE) as a "define" group, even if a group with
|
||||||
|
the name "DEFINE" exists. PCRE2 now does likewise.
|
||||||
|
|
||||||
|
(d) A recursion condition test such as (?(R2)...) must now refer to an
|
||||||
|
existing subpattern.
|
||||||
|
|
||||||
|
(e) A conditional recursion test such as (?(R)...) misbehaved if there was a
|
||||||
|
group whose name began with "R".
|
||||||
|
|
||||||
|
(f) When testing zero-terminated patterns under valgrind, the terminating
|
||||||
|
zero is now marked "no access". This catches bugs that would otherwise
|
||||||
|
show up only with non-zero-terminated patterns.
|
||||||
|
|
||||||
|
(g) A hyphen appearing immediately after a POSIX character class (for example
|
||||||
|
/[[:ascii:]-z]/) now generates an error. Perl does accept this as a
|
||||||
|
literal, but gives a warning, so it seems best to fail it in PCRE.
|
||||||
|
|
||||||
|
(h) An empty \Q\E sequence may appear after a callout that precedes an
|
||||||
|
assertion condition (it is, of course, ignored).
|
||||||
|
|
||||||
|
One effect of the refactoring is that some error numbers and messages have
|
||||||
|
changed, and the pattern offset given for compiling errors is not always the
|
||||||
|
right-most character that has been read. In particular, for a variable-length
|
||||||
|
lookbehind assertion it now points to the start of the assertion. Another
|
||||||
|
change is that when a callout appears before a group, the "length of next
|
||||||
|
pattern item" that is passed now just gives the length of the opening
|
||||||
|
parenthesis item, not the length of the whole group. A length of zero is now
|
||||||
|
given only for a callout at the end of the pattern. Automatic callouts are no
|
||||||
|
longer inserted before and after explicit callouts in the pattern.
|
||||||
|
|
||||||
|
A number of bugs in the refactored code were subsequently fixed during testing
|
||||||
|
before release, but after the code was made available in the repository. Many
|
||||||
|
of the bugs were discovered by fuzzing testing. Several of them were related to
|
||||||
|
the change from assuming a zero-terminated pattern (which previously had
|
||||||
|
required non-zero terminated strings to be copied). These bugs were never in
|
||||||
|
fully released code, but are noted here for the record.
|
||||||
|
|
||||||
|
(a) An overall recursion such as (?0) inside a lookbehind assertion was not
|
||||||
|
being diagnosed as an error.
|
||||||
|
|
||||||
|
(b) In utf mode, the length of a *MARK (or other verb) name was being checked
|
||||||
|
in characters instead of code units, which could lead to bad code being
|
||||||
|
compiled, leading to unpredictable behaviour.
|
||||||
|
|
||||||
|
(c) In extended /x mode, characters whose code was greater than 255 caused
|
||||||
|
a lookup outside one of the global tables. A similar bug existed for wide
|
||||||
|
characters in *VERB names.
|
||||||
|
|
||||||
|
(d) The amount of memory needed for a compiled pattern was miscalculated if a
|
||||||
|
lookbehind contained more than one toplevel branch and the first branch
|
||||||
|
was of length zero.
|
||||||
|
|
||||||
|
(e) In UTF-8 or UTF-16 modes with PCRE2_EXTENDED (/x) set and a non-zero-
|
||||||
|
terminated pattern, if a # comment ran on to the end of the pattern, one
|
||||||
|
or more code units past the end were being read.
|
||||||
|
|
||||||
|
(f) An unterminated repeat at the end of a non-zero-terminated pattern (e.g.
|
||||||
|
"{2,2") could cause reading beyond the pattern.
|
||||||
|
|
||||||
|
(g) When reading a callout string, if the end delimiter was at the end of the
|
||||||
|
pattern one further code unit was read.
|
||||||
|
|
||||||
|
(h) An unterminated number after \g' could cause reading beyond the pattern.
|
||||||
|
|
||||||
|
(i) An insufficient memory size was being computed for compiling with
|
||||||
|
PCRE2_AUTO_CALLOUT.
|
||||||
|
|
||||||
|
(j) A conditional group with an assertion condition used more memory than was
|
||||||
|
allowed for it during parsing, so too many of them could therefore
|
||||||
|
overrun a buffer.
|
||||||
|
|
||||||
|
(k) If parsing a pattern exactly filled the buffer, the internal test for
|
||||||
|
overrun did not check when the final META_END item was added.
|
||||||
|
|
||||||
|
(l) If a lookbehind contained a subroutine call, and the called group
|
||||||
|
contained an option setting such as (?s), and the PCRE2_ANCHORED option
|
||||||
|
was set, unpredictable behaviour could occur. The underlying bug was
|
||||||
|
incorrect code and insufficient checking while searching for the end of
|
||||||
|
the called subroutine in the parsed pattern.
|
||||||
|
|
||||||
|
(m) Quantifiers following (*VERB)s were not being diagnosed as errors.
|
||||||
|
|
||||||
|
(n) The use of \Q...\E in a (*VERB) name when PCRE2_ALT_VERBNAMES and
|
||||||
|
PCRE2_AUTO_CALLOUT were both specified caused undetermined behaviour.
|
||||||
|
|
||||||
|
(o) If \Q was preceded by a quantified item, and the following \E was
|
||||||
|
followed by '?' or '+', and there was at least one literal character
|
||||||
|
between them, an internal error "unexpected repeat" occurred (example:
|
||||||
|
/.+\QX\E+/).
|
||||||
|
|
||||||
|
(p) A buffer overflow could occur while sorting the names in the group name
|
||||||
|
list (depending on the order in which the names were seen).
|
||||||
|
|
||||||
|
(q) A conditional group that started with a callout was not doing the right
|
||||||
|
check for a following assertion, leading to compiling bad code. Example:
|
||||||
|
/(?(C'XX))?!XX/
|
||||||
|
|
||||||
|
(r) If a character whose code point was greater than 0xffff appeared within
|
||||||
|
a lookbehind that was within another lookbehind, the calculation of the
|
||||||
|
lookbehind length went wrong and could provoke an internal error.
|
||||||
|
|
||||||
|
(t) The sequence \E- or \Q\E- after a POSIX class in a character class caused
|
||||||
|
an internal error. Now the hyphen is treated as a literal.
|
||||||
|
|
||||||
|
4. Back references are now permitted in lookbehind assertions when there are
|
||||||
|
no duplicated group numbers (that is, (?| has not been used), and, if the
|
||||||
|
reference is by name, there is only one group of that name. The referenced
|
||||||
|
group must, of course be of fixed length.
|
||||||
|
|
||||||
|
5. pcre2test has been upgraded so that, when run under valgrind with valgrind
|
||||||
|
support enabled, reading past the end of the pattern is detected, both when
|
||||||
|
compiling and during callout processing.
|
||||||
|
|
||||||
|
6. \g{+<number>} (e.g. \g{+2} ) is now supported. It is a "forward back
|
||||||
|
reference" and can be useful in repetitions (compare \g{-<number>} ). Perl does
|
||||||
|
not recognize this syntax.
|
||||||
|
|
||||||
|
7. Automatic callouts are no longer generated before and after callouts in the
|
||||||
|
pattern.
|
||||||
|
|
||||||
|
8. When pcre2test was outputting information from a callout, the caret indicator
|
||||||
|
for the current position in the subject line was incorrect if it was after an
|
||||||
|
escape sequence for a character whose code point was greater than \x{ff}.
|
||||||
|
|
||||||
|
9. Change 19 for 10.22 had a typo (PCRE_STATIC_RUNTIME should be
|
||||||
|
PCRE2_STATIC_RUNTIME). Fix from David Gaussmann.
|
||||||
|
|
||||||
|
10. Added --max-buffer-size to pcre2grep, to allow for automatic buffer
|
||||||
|
expansion when long lines are encountered. Original patch by Dmitry
|
||||||
|
Cherniachenko.
|
||||||
|
|
||||||
|
11. If pcre2grep was compiled with JIT support, but the library was compiled
|
||||||
|
without it (something that neither ./configure nor CMake allow, but it can be
|
||||||
|
done by editing config.h), pcre2grep was giving a JIT error. Now it detects
|
||||||
|
this situation and does not try to use JIT.
|
||||||
|
|
||||||
|
12. Added some "const" qualifiers to variables in pcre2grep.
|
||||||
|
|
||||||
|
13. Added Dmitry Cherniachenko's patch for colouring output in Windows
|
||||||
|
(untested by me). Also, look for GREP_COLOUR or GREP_COLOR if the environment
|
||||||
|
variables PCRE2GREP_COLOUR and PCRE2GREP_COLOR are not found.
|
||||||
|
|
||||||
|
14. Add the -t (grand total) option to pcre2grep.
|
||||||
|
|
||||||
|
15. A number of bugs have been mended relating to match start-up optimizations
|
||||||
|
when the first thing in a pattern is a positive lookahead. These all applied
|
||||||
|
only when PCRE2_NO_START_OPTIMIZE was *not* set:
|
||||||
|
|
||||||
|
(a) A pattern such as (?=.*X)X$ was incorrectly optimized as if it needed
|
||||||
|
both an initial 'X' and a following 'X'.
|
||||||
|
(b) Some patterns starting with an assertion that started with .* were
|
||||||
|
incorrectly optimized as having to match at the start of the subject or
|
||||||
|
after a newline. There are cases where this is not true, for example,
|
||||||
|
(?=.*[A-Z])(?=.{8,16})(?!.*[\s]) matches after the start in lines that
|
||||||
|
start with spaces. Starting .* in an assertion is no longer taken as an
|
||||||
|
indication of matching at the start (or after a newline).
|
||||||
|
|
||||||
|
16. The "offset" modifier in pcre2test was not being ignored (as documented)
|
||||||
|
when the POSIX API was in use.
|
||||||
|
|
||||||
|
17. Added --enable-fuzz-support to "configure", causing an non-installed
|
||||||
|
library containing a test function that can be called by fuzzers to be
|
||||||
|
compiled. A non-installed binary to run the test function locally, called
|
||||||
|
pcre2fuzzcheck is also compiled.
|
||||||
|
|
||||||
|
18. A pattern with PCRE2_DOTALL (/s) set but not PCRE2_NO_DOTSTAR_ANCHOR, and
|
||||||
|
which started with .* inside a positive lookahead was incorrectly being
|
||||||
|
compiled as implicitly anchored.
|
||||||
|
|
||||||
|
19. Removed all instances of "register" declarations, as they are considered
|
||||||
|
obsolete these days and in any case had become very haphazard.
|
||||||
|
|
||||||
|
20. Add strerror() to pcre2test for failed file opening.
|
||||||
|
|
||||||
|
21. Make pcre2test -C list valgrind support when it is enabled.
|
||||||
|
|
||||||
|
22. Add the use_length modifier to pcre2test.
|
||||||
|
|
||||||
|
23. Fix an off-by-one bug in pcre2test for the list of names for 'get' and
|
||||||
|
'copy' modifiers.
|
||||||
|
|
||||||
|
24. Add PCRE2_CALL_CONVENTION into the prototype declarations in pcre2.h as it
|
||||||
|
is apparently needed there as well as in the function definitions. (Why did
|
||||||
|
nobody ask for this in PCRE1?)
|
||||||
|
|
||||||
|
25. Change the _PCRE2_H and _PCRE2_UCP_H guard macros in the header files to
|
||||||
|
PCRE2_H_IDEMPOTENT_GUARD and PCRE2_UCP_H_IDEMPOTENT_GUARD to be more standard
|
||||||
|
compliant and unique.
|
||||||
|
|
||||||
|
26. pcre2-config --libs-posix was listing -lpcre2posix instead of
|
||||||
|
-lpcre2-posix. Also, the CMake build process was building the library with the
|
||||||
|
wrong name.
|
||||||
|
|
||||||
|
27. In pcre2test, give some offset information for errors in hex patterns.
|
||||||
|
This uses the C99 formatting sequence %td, except for MSVC which doesn't
|
||||||
|
support it - %lu is used instead.
|
||||||
|
|
||||||
|
28. Implemented pcre2_code_copy_with_tables(), and added pushtablescopy to
|
||||||
|
pcre2test for testing it.
|
||||||
|
|
||||||
|
29. Fix small memory leak in pcre2test.
|
||||||
|
|
||||||
|
30. Fix out-of-bounds read for partial matching of /./ against an empty string
|
||||||
|
when the newline type is CRLF.
|
||||||
|
|
||||||
|
31. Fix a bug in pcre2test that caused a crash when a locale was set either in
|
||||||
|
the current pattern or a previous one and a wide character was matched.
|
||||||
|
|
||||||
|
32. The appearance of \p, \P, or \X in a substitution string when
|
||||||
|
PCRE2_SUBSTITUTE_EXTENDED was set caused a segmentation fault (NULL
|
||||||
|
dereference).
|
||||||
|
|
||||||
|
33. If the starting offset was specified as greater than the subject length in
|
||||||
|
a call to pcre2_substitute() an out-of-bounds memory reference could occur.
|
||||||
|
|
||||||
|
34. When PCRE2 was compiled to use the heap instead of the stack for recursive
|
||||||
|
calls to match(), a repeated minimizing caseless back reference, or a
|
||||||
|
maximizing one where the two cases had different numbers of code units,
|
||||||
|
followed by a caseful back reference, could lose the caselessness of the first
|
||||||
|
repeated back reference (example: /(Z)(a)\2{1,2}?(?-i)\1X/i should match ZaAAZX
|
||||||
|
but didn't).
|
||||||
|
|
||||||
|
35. When a pattern is too complicated, PCRE2 gives up trying to find a minimum
|
||||||
|
matching length and just records zero. Typically this happens when there are
|
||||||
|
too many nested or recursive back references. If the limit was reached in
|
||||||
|
certain recursive cases it failed to be triggered and an internal error could
|
||||||
|
be the result.
|
||||||
|
|
||||||
|
36. The pcre2_dfa_match() function now takes note of the recursion limit for
|
||||||
|
the internal recursive calls that are used for lookrounds and recursions within
|
||||||
|
the pattern.
|
||||||
|
|
||||||
|
37. More refactoring has got rid of the internal could_be_empty_branch()
|
||||||
|
function (around 400 lines of code, including comments) by keeping track of
|
||||||
|
could-be-emptiness as the pattern is compiled instead of scanning compiled
|
||||||
|
groups. (This would have been much harder before the refactoring of #3 above.)
|
||||||
|
This lifts a restriction on the number of branches in a group (more than about
|
||||||
|
1100 would give "pattern is too complicated").
|
||||||
|
|
||||||
|
38. Add the "-ac" command line option to pcre2test as a synonym for "-pattern
|
||||||
|
auto_callout".
|
||||||
|
|
||||||
|
39. In a library with Unicode support, incorrect data was compiled for a
|
||||||
|
pattern with PCRE2_UCP set without PCRE2_UTF if a class required all wide
|
||||||
|
characters to match (for example, /[\s[:^ascii:]]/).
|
||||||
|
|
||||||
|
40. The callout_error modifier has been added to pcre2test to make it possible
|
||||||
|
to return PCRE2_ERROR_CALLOUT from a callout.
|
||||||
|
|
||||||
|
41. A minor change to pcre2grep: colour reset is now "<esc>[0m" instead of
|
||||||
|
"<esc>[00m".
|
||||||
|
|
||||||
|
42. The limit in the auto-possessification code that was intended to catch
|
||||||
|
overly-complicated patterns and not spend too much time auto-possessifying was
|
||||||
|
being reset too often, resulting in very long compile times for some patterns.
|
||||||
|
Now such patterns are no longer completely auto-possessified.
|
||||||
|
|
||||||
|
43. Applied Jason Hood's revised patch for RunTest.bat.
|
||||||
|
|
||||||
|
44. Added a new Windows script RunGrepTest.bat, courtesy of Jason Hood.
|
||||||
|
|
||||||
|
45. Minor cosmetic fix to pcre2test: move a variable that is not used under
|
||||||
|
Windows into the "not Windows" code.
|
||||||
|
|
||||||
|
46. Applied Jason Hood's patches to upgrade pcre2grep under Windows and tidy
|
||||||
|
some of the code:
|
||||||
|
|
||||||
|
* normalised the Windows condition by ensuring WIN32 is defined;
|
||||||
|
* enables the callout feature under Windows;
|
||||||
|
* adds globbing (Microsoft's implementation expands quoted args),
|
||||||
|
using a tweaked opendirectory;
|
||||||
|
* implements the is_*_tty functions for Windows;
|
||||||
|
* --color=always will write the ANSI sequences to file;
|
||||||
|
* add sequences 4 (underline works on Win10) and 5 (blink as bright
|
||||||
|
background, relatively standard on DOS/Win);
|
||||||
|
* remove the (char *) casts for the now-const strings;
|
||||||
|
* remove GREP_COLOUR (grep's command line allowed the 'u', but not
|
||||||
|
the environment), parsing GREP_COLORS instead;
|
||||||
|
* uses the current colour if not set, rather than black;
|
||||||
|
* add print_match for the undefined case;
|
||||||
|
* fixes a typo.
|
||||||
|
|
||||||
|
In addition, colour settings containing anything other than digits and
|
||||||
|
semicolon are ignored, and the colour controls are no longer output for empty
|
||||||
|
strings.
|
||||||
|
|
||||||
|
47. Detecting patterns that are too large inside the length-measuring loop
|
||||||
|
saves processing ridiculously long patterns to their end.
|
||||||
|
|
||||||
|
48. Ignore PCRE2_CASELESS when processing \h, \H, \v, and \V in classes as it
|
||||||
|
just wastes time. In the UTF case it can also produce redundant entries in
|
||||||
|
XCLASS lists caused by characters with multiple other cases and pairs of
|
||||||
|
characters in the same "not-x" sublists.
|
||||||
|
|
||||||
|
49. A pattern such as /(?=(a\K))/ can report the end of the match being before
|
||||||
|
its start; pcre2test was not handling this correctly when using the POSIX
|
||||||
|
interface (it was OK with the native interface).
|
||||||
|
|
||||||
|
50. In pcre2grep, ignore all JIT compile errors. This means that pcre2grep will
|
||||||
|
continue to work, falling back to interpretation if anything goes wrong with
|
||||||
|
JIT.
|
||||||
|
|
||||||
|
51. Applied patches from Christian Persch to configure.ac to make use of the
|
||||||
|
AC_USE_SYSTEM_EXTENSIONS macro and to test for functions used by the JIT
|
||||||
|
modules.
|
||||||
|
|
||||||
|
52. Minor fixes to pcre2grep from Jason Hood:
|
||||||
|
* fixed some spacing;
|
||||||
|
* Windows doesn't usually use single quotes, so I've added a define
|
||||||
|
to use appropriate quotes [in an example];
|
||||||
|
* LC_ALL was displayed as "LCC_ALL";
|
||||||
|
* numbers 11, 12 & 13 should end in "th";
|
||||||
|
* use double quotes in usage message.
|
||||||
|
|
||||||
|
53. When autopossessifying, skip empty branches without recursion, to reduce
|
||||||
|
stack usage for the benefit of clang with -fsanitize-address, which uses huge
|
||||||
|
stack frames. Example pattern: /X?(R||){3335}/. Fixes oss-fuzz issue 553.
|
||||||
|
|
||||||
|
54. A pattern with very many explicit back references to a group that is a long
|
||||||
|
way from the start of the pattern could take a long time to compile because
|
||||||
|
searching for the referenced group in order to find the minimum length was
|
||||||
|
being done repeatedly. Now up to 128 group minimum lengths are cached and the
|
||||||
|
attempt to find a minimum length is abandoned if there is a back reference to a
|
||||||
|
group whose number is greater than 128. (In that case, the pattern is so
|
||||||
|
complicated that this optimization probably isn't worth it.) This fixes
|
||||||
|
oss-fuzz issue 557.
|
||||||
|
|
||||||
|
55. Issue 32 for 10.22 below was not correctly fixed. If pcre2grep in multiline
|
||||||
|
mode with --only-matching matched several lines, it restarted scanning at the
|
||||||
|
next line instead of moving on to the end of the matched string, which can be
|
||||||
|
several lines after the start.
|
||||||
|
|
||||||
|
56. Applied Jason Hood's new patch for RunGrepTest.bat that updates it in line
|
||||||
|
with updates to the non-Windows version.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.22 29-July-2016
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
1. Applied Jason Hood's patches to RunTest.bat and testdata/wintestoutput3
|
||||||
|
to fix problems with running the tests under Windows.
|
||||||
|
|
||||||
|
2. Implemented a facility for quoting literal characters within hexadecimal
|
||||||
|
patterns in pcre2test, to make it easier to create patterns with just a few
|
||||||
|
non-printing characters.
|
||||||
|
|
||||||
|
3. Binary zeros are not supported in pcre2test input files. It now detects them
|
||||||
|
and gives an error.
|
||||||
|
|
||||||
|
4. Updated the valgrind parameters in RunTest: (a) changed smc-check=all to
|
||||||
|
smc-check=all-non-file; (b) changed obj:* in the suppression file to obj:??? so
|
||||||
|
that it matches only unknown objects.
|
||||||
|
|
||||||
|
5. Updated the maintenance script maint/ManyConfigTests to make it easier to
|
||||||
|
select individual groups of tests.
|
||||||
|
|
||||||
|
6. When the POSIX wrapper function regcomp() is called, the REG_NOSUB option
|
||||||
|
used to set PCRE2_NO_AUTO_CAPTURE when calling pcre2_compile(). However, this
|
||||||
|
disables the use of back references (and subroutine calls), which are supported
|
||||||
|
by other implementations of regcomp() with RE_NOSUB. Therefore, REG_NOSUB no
|
||||||
|
longer causes PCRE2_NO_AUTO_CAPTURE to be set, though it still ignores nmatch
|
||||||
|
and pmatch when regexec() is called.
|
||||||
|
|
||||||
|
7. Because of 6 above, pcre2test has been modified with a new modifier called
|
||||||
|
posix_nosub, to call regcomp() with REG_NOSUB. Previously the no_auto_capture
|
||||||
|
modifier had this effect. That option is now ignored when the POSIX API is in
|
||||||
|
use.
|
||||||
|
|
||||||
|
8. Minor tidies to the pcre2demo.c sample program, including more comments
|
||||||
|
about its 8-bit-ness.
|
||||||
|
|
||||||
|
9. Detect unmatched closing parentheses and give the error in the pre-scan
|
||||||
|
instead of later. Previously the pre-scan carried on and could give a
|
||||||
|
misleading incorrect error message. For example, /(?J)(?'a'))(?'a')/ gave a
|
||||||
|
message about invalid duplicate group names.
|
||||||
|
|
||||||
|
10. It has happened that pcre2test was accidentally linked with another POSIX
|
||||||
|
regex library instead of libpcre2-posix. In this situation, a call to regcomp()
|
||||||
|
(in the other library) may succeed, returning zero, but of course putting its
|
||||||
|
own data into the regex_t block. In one example the re_pcre2_code field was
|
||||||
|
left as NULL, which made pcre2test think it had not got a compiled POSIX regex,
|
||||||
|
so it treated the next line as another pattern line, resulting in a confusing
|
||||||
|
error message. A check has been added to pcre2test to see if the data returned
|
||||||
|
from a successful call of regcomp() are valid for PCRE2's regcomp(). If they
|
||||||
|
are not, an error message is output and the pcre2test run is abandoned. The
|
||||||
|
message points out the possibility of a mis-linking. Hopefully this will avoid
|
||||||
|
some head-scratching the next time this happens.
|
||||||
|
|
||||||
|
11. A pattern such as /(?<=((?C)0))/, which has a callout inside a lookbehind
|
||||||
|
assertion, caused pcre2test to output a very large number of spaces when the
|
||||||
|
callout was taken, making the program appearing to loop.
|
||||||
|
|
||||||
|
12. A pattern that included (*ACCEPT) in the middle of a sufficiently deeply
|
||||||
|
nested set of parentheses of sufficient size caused an overflow of the
|
||||||
|
compiling workspace (which was diagnosed, but of course is not desirable).
|
||||||
|
|
||||||
|
13. Detect missing closing parentheses during the pre-pass for group
|
||||||
|
identification.
|
||||||
|
|
||||||
|
14. Changed some integer variable types and put in a number of casts, following
|
||||||
|
a report of compiler warnings from Visual Studio 2013 and a few tests with
|
||||||
|
gcc's -Wconversion (which still throws up a lot).
|
||||||
|
|
||||||
|
15. Implemented pcre2_code_copy(), and added pushcopy and #popcopy to pcre2test
|
||||||
|
for testing it.
|
||||||
|
|
||||||
|
16. Change 66 for 10.21 introduced the use of snprintf() in PCRE2's version of
|
||||||
|
regerror(). When the error buffer is too small, my version of snprintf() puts a
|
||||||
|
binary zero in the final byte. Bug #1801 seems to show that other versions do
|
||||||
|
not do this, leading to bad output from pcre2test when it was checking for
|
||||||
|
buffer overflow. It no longer assumes a binary zero at the end of a too-small
|
||||||
|
regerror() buffer.
|
||||||
|
|
||||||
|
17. Fixed typo ("&&" for "&") in pcre2_study(). Fortunately, this could not
|
||||||
|
actually affect anything, by sheer luck.
|
||||||
|
|
||||||
|
18. Two minor fixes for MSVC compilation: (a) removal of apparently incorrect
|
||||||
|
"const" qualifiers in pcre2test and (b) defining snprintf as _snprintf for
|
||||||
|
older MSVC compilers. This has been done both in src/pcre2_internal.h for most
|
||||||
|
of the library, and also in src/pcre2posix.c, which no longer includes
|
||||||
|
pcre2_internal.h (see 24 below).
|
||||||
|
|
||||||
|
19. Applied Chris Wilson's patch (Bugzilla #1681) to CMakeLists.txt for MSVC
|
||||||
|
static compilation. Subsequently applied Chris Wilson's second patch, putting
|
||||||
|
the first patch under a new option instead of being unconditional when
|
||||||
|
PCRE_STATIC is set.
|
||||||
|
|
||||||
|
20. Updated pcre2grep to set stdout as binary when run under Windows, so as not
|
||||||
|
to convert \r\n at the ends of reflected lines into \r\r\n. This required
|
||||||
|
ensuring that other output that is written to stdout (e.g. file names) uses the
|
||||||
|
appropriate line terminator: \r\n for Windows, \n otherwise.
|
||||||
|
|
||||||
|
21. When a line is too long for pcre2grep's internal buffer, show the maximum
|
||||||
|
length in the error message.
|
||||||
|
|
||||||
|
22. Added support for string callouts to pcre2grep (Zoltan's patch with PH
|
||||||
|
additions).
|
||||||
|
|
||||||
|
23. RunTest.bat was missing a "set type" line for test 22.
|
||||||
|
|
||||||
|
24. The pcre2posix.c file was including pcre2_internal.h, and using some
|
||||||
|
"private" knowledge of the data structures. This is unnecessary; the code has
|
||||||
|
been re-factored and no longer includes pcre2_internal.h.
|
||||||
|
|
||||||
|
25. A racing condition is fixed in JIT reported by Mozilla.
|
||||||
|
|
||||||
|
26. Minor code refactor to avoid "array subscript is below array bounds"
|
||||||
|
compiler warning.
|
||||||
|
|
||||||
|
27. Minor code refactor to avoid "left shift of negative number" warning.
|
||||||
|
|
||||||
|
28. Add a bit more sanity checking to pcre2_serialize_decode() and document
|
||||||
|
that it expects trusted data.
|
||||||
|
|
||||||
|
29. Fix typo in pcre2_jit_test.c
|
||||||
|
|
||||||
|
30. Due to an oversight, pcre2grep was not making use of JIT when available.
|
||||||
|
This is now fixed.
|
||||||
|
|
||||||
|
31. The RunGrepTest script is updated to use the valgrind suppressions file
|
||||||
|
when testing with JIT under valgrind (compare 10.21/51 below). The suppressions
|
||||||
|
file is updated so that is now the same as for PCRE1: it suppresses the
|
||||||
|
Memcheck warnings Addr16 and Cond in unknown objects (that is, JIT-compiled
|
||||||
|
code). Also changed smc-check=all to smc-check=all-non-file as was done for
|
||||||
|
RunTest (see 4 above).
|
||||||
|
|
||||||
|
32. Implemented the PCRE2_NO_JIT option for pcre2_match().
|
||||||
|
|
||||||
|
33. Fix typo that gave a compiler error when JIT not supported.
|
||||||
|
|
||||||
|
34. Fix comment describing the returns from find_fixedlength().
|
||||||
|
|
||||||
|
35. Fix potential negative index in pcre2test.
|
||||||
|
|
||||||
|
36. Calls to pcre2_get_error_message() with error numbers that are never
|
||||||
|
returned by PCRE2 functions were returning empty strings. Now the error code
|
||||||
|
PCRE2_ERROR_BADDATA is returned. A facility has been added to pcre2test to
|
||||||
|
show the texts for given error numbers (i.e. to call pcre2_get_error_message()
|
||||||
|
and display what it returns) and a few representative error codes are now
|
||||||
|
checked in RunTest.
|
||||||
|
|
||||||
|
37. Added "&& !defined(__INTEL_COMPILER)" to the test for __GNUC__ in
|
||||||
|
pcre2_match.c, in anticipation that this is needed for the same reason it was
|
||||||
|
recently added to pcrecpp.cc in PCRE1.
|
||||||
|
|
||||||
|
38. Using -o with -M in pcre2grep could cause unnecessary repeated output when
|
||||||
|
the match extended over a line boundary, as it tried to find more matches "on
|
||||||
|
the same line" - but it was already over the end.
|
||||||
|
|
||||||
|
39. Allow \C in lookbehinds and DFA matching in UTF-32 mode (by converting it
|
||||||
|
to the same code as '.' when PCRE2_DOTALL is set).
|
||||||
|
|
||||||
|
40. Fix two clang compiler warnings in pcre2test when only one code unit width
|
||||||
|
is supported.
|
||||||
|
|
||||||
|
41. Upgrade RunTest to automatically re-run test 2 with a large (64MiB) stack
|
||||||
|
if it fails when running the interpreter with a 16MiB stack (and if changing
|
||||||
|
the stack size via pcre2test is possible). This avoids having to manually set a
|
||||||
|
large stack size when testing with clang.
|
||||||
|
|
||||||
|
42. Fix register overwrite in JIT when SSE2 acceleration is enabled.
|
||||||
|
|
||||||
|
43. Detect integer overflow in pcre2test pattern and data repetition counts.
|
||||||
|
|
||||||
|
44. In pcre2test, ignore "allcaptures" after DFA matching.
|
||||||
|
|
||||||
|
45. Fix unaligned accesses on x86. Patch by Marc Mutz.
|
||||||
|
|
||||||
|
46. Fix some more clang compiler warnings.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.21 12-January-2016
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
1. Improve matching speed of patterns starting with + or * in JIT.
|
||||||
|
|
||||||
|
2. Use memchr() to find the first character in an unanchored match in 8-bit
|
||||||
|
mode in the interpreter. This gives a significant speed improvement.
|
||||||
|
|
||||||
|
3. Removed a redundant copy of the opcode_possessify table in the
|
||||||
|
pcre2_auto_possessify.c source.
|
||||||
|
|
||||||
|
4. Fix typos in dftables.c for z/OS.
|
||||||
|
|
||||||
|
5. Change 36 for 10.20 broke the handling of [[:>:]] and [[:<:]] in that
|
||||||
|
processing them could involve a buffer overflow if the following character was
|
||||||
|
an opening parenthesis.
|
||||||
|
|
||||||
|
6. Change 36 for 10.20 also introduced a bug in processing this pattern:
|
||||||
|
/((?x)(*:0))#(?'/. Specifically: if a setting of (?x) was followed by a (*MARK)
|
||||||
|
setting (which (*:0) is), then (?x) did not get unset at the end of its group
|
||||||
|
during the scan for named groups, and hence the external # was incorrectly
|
||||||
|
treated as a comment and the invalid (?' at the end of the pattern was not
|
||||||
|
diagnosed. This caused a buffer overflow during the real compile. This bug was
|
||||||
|
discovered by Karl Skomski with the LLVM fuzzer.
|
||||||
|
|
||||||
|
7. Moved the pcre2_find_bracket() function from src/pcre2_compile.c into its
|
||||||
|
own source module to avoid a circular dependency between src/pcre2_compile.c
|
||||||
|
and src/pcre2_study.c
|
||||||
|
|
||||||
|
8. A callout with a string argument containing an opening square bracket, for
|
||||||
|
example /(?C$[$)(?<]/, was incorrectly processed and could provoke a buffer
|
||||||
|
overflow. This bug was discovered by Karl Skomski with the LLVM fuzzer.
|
||||||
|
|
||||||
|
9. The handling of callouts during the pre-pass for named group identification
|
||||||
|
has been tightened up.
|
||||||
|
|
||||||
|
10. The quantifier {1} can be ignored, whether greedy, non-greedy, or
|
||||||
|
possessive. This is a very minor optimization.
|
||||||
|
|
||||||
|
11. A possessively repeated conditional group that could match an empty string,
|
||||||
|
for example, /(?(R))*+/, was incorrectly compiled.
|
||||||
|
|
||||||
|
12. The Unicode tables have been updated to Unicode 8.0.0 (thanks to Christian
|
||||||
|
Persch).
|
||||||
|
|
||||||
|
13. An empty comment (?#) in a pattern was incorrectly processed and could
|
||||||
|
provoke a buffer overflow. This bug was discovered by Karl Skomski with the
|
||||||
|
LLVM fuzzer.
|
||||||
|
|
||||||
|
14. Fix infinite recursion in the JIT compiler when certain patterns such as
|
||||||
|
/(?:|a|){100}x/ are analysed.
|
||||||
|
|
||||||
|
15. Some patterns with character classes involving [: and \\ were incorrectly
|
||||||
|
compiled and could cause reading from uninitialized memory or an incorrect
|
||||||
|
error diagnosis. Examples are: /[[:\\](?<[::]/ and /[[:\\](?'abc')[a:]. The
|
||||||
|
first of these bugs was discovered by Karl Skomski with the LLVM fuzzer.
|
||||||
|
|
||||||
|
16. Pathological patterns containing many nested occurrences of [: caused
|
||||||
|
pcre2_compile() to run for a very long time. This bug was found by the LLVM
|
||||||
|
fuzzer.
|
||||||
|
|
||||||
|
17. A missing closing parenthesis for a callout with a string argument was not
|
||||||
|
being diagnosed, possibly leading to a buffer overflow. This bug was found by
|
||||||
|
the LLVM fuzzer.
|
||||||
|
|
||||||
|
18. A conditional group with only one branch has an implicit empty alternative
|
||||||
|
branch and must therefore be treated as potentially matching an empty string.
|
||||||
|
|
||||||
|
19. If (?R was followed by - or + incorrect behaviour happened instead of a
|
||||||
|
diagnostic. This bug was discovered by Karl Skomski with the LLVM fuzzer.
|
||||||
|
|
||||||
|
20. Another bug that was introduced by change 36 for 10.20: conditional groups
|
||||||
|
whose condition was an assertion preceded by an explicit callout with a string
|
||||||
|
argument might be incorrectly processed, especially if the string contained \Q.
|
||||||
|
This bug was discovered by Karl Skomski with the LLVM fuzzer.
|
||||||
|
|
||||||
|
21. Compiling PCRE2 with the sanitize options of clang showed up a number of
|
||||||
|
very pedantic coding infelicities and a buffer overflow while checking a UTF-8
|
||||||
|
string if the final multi-byte UTF-8 character was truncated.
|
||||||
|
|
||||||
|
22. For Perl compatibility in EBCDIC environments, ranges such as a-z in a
|
||||||
|
class, where both values are literal letters in the same case, omit the
|
||||||
|
non-letter EBCDIC code points within the range.
|
||||||
|
|
||||||
|
23. Finding the minimum matching length of complex patterns with back
|
||||||
|
references and/or recursions can take a long time. There is now a cut-off that
|
||||||
|
gives up trying to find a minimum length when things get too complex.
|
||||||
|
|
||||||
|
24. An optimization has been added that speeds up finding the minimum matching
|
||||||
|
length for patterns containing repeated capturing groups or recursions.
|
||||||
|
|
||||||
|
25. If a pattern contained a back reference to a group whose number was
|
||||||
|
duplicated as a result of appearing in a (?|...) group, the computation of the
|
||||||
|
minimum matching length gave a wrong result, which could cause incorrect "no
|
||||||
|
match" errors. For such patterns, a minimum matching length cannot at present
|
||||||
|
be computed.
|
||||||
|
|
||||||
|
26. Added a check for integer overflow in conditions (?(<digits>) and
|
||||||
|
(?(R<digits>). This omission was discovered by Karl Skomski with the LLVM
|
||||||
|
fuzzer.
|
||||||
|
|
||||||
|
27. Fixed an issue when \p{Any} inside an xclass did not read the current
|
||||||
|
character.
|
||||||
|
|
||||||
|
28. If pcre2grep was given the -q option with -c or -l, or when handling a
|
||||||
|
binary file, it incorrectly wrote output to stdout.
|
||||||
|
|
||||||
|
29. The JIT compiler did not restore the control verb head in case of *THEN
|
||||||
|
control verbs. This issue was found by Karl Skomski with a custom LLVM fuzzer.
|
||||||
|
|
||||||
|
30. The way recursive references such as (?3) are compiled has been re-written
|
||||||
|
because the old way was the cause of many issues. Now, conversion of the group
|
||||||
|
number into a pattern offset does not happen until the pattern has been
|
||||||
|
completely compiled. This does mean that detection of all infinitely looping
|
||||||
|
recursions is postponed till match time. In the past, some easy ones were
|
||||||
|
detected at compile time. This re-writing was done in response to yet another
|
||||||
|
bug found by the LLVM fuzzer.
|
||||||
|
|
||||||
|
31. A test for a back reference to a non-existent group was missing for items
|
||||||
|
such as \987. This caused incorrect code to be compiled. This issue was found
|
||||||
|
by Karl Skomski with a custom LLVM fuzzer.
|
||||||
|
|
||||||
|
32. Error messages for syntax errors following \g and \k were giving inaccurate
|
||||||
|
offsets in the pattern.
|
||||||
|
|
||||||
|
33. Improve the performance of starting single character repetitions in JIT.
|
||||||
|
|
||||||
|
34. (*LIMIT_MATCH=) now gives an error instead of setting the value to 0.
|
||||||
|
|
||||||
|
35. Error messages for syntax errors in *LIMIT_MATCH and *LIMIT_RECURSION now
|
||||||
|
give the right offset instead of zero.
|
||||||
|
|
||||||
|
36. The JIT compiler should not check repeats after a {0,1} repeat byte code.
|
||||||
|
This issue was found by Karl Skomski with a custom LLVM fuzzer.
|
||||||
|
|
||||||
|
37. The JIT compiler should restore the control chain for empty possessive
|
||||||
|
repeats. This issue was found by Karl Skomski with a custom LLVM fuzzer.
|
||||||
|
|
||||||
|
38. A bug which was introduced by the single character repetition optimization
|
||||||
|
was fixed.
|
||||||
|
|
||||||
|
39. Match limit check added to recursion. This issue was found by Karl Skomski
|
||||||
|
with a custom LLVM fuzzer.
|
||||||
|
|
||||||
|
40. Arrange for the UTF check in pcre2_match() and pcre2_dfa_match() to look
|
||||||
|
only at the part of the subject that is relevant when the starting offset is
|
||||||
|
non-zero.
|
||||||
|
|
||||||
|
41. Improve first character match in JIT with SSE2 on x86.
|
||||||
|
|
||||||
|
42. Fix two assertion fails in JIT. These issues were found by Karl Skomski
|
||||||
|
with a custom LLVM fuzzer.
|
||||||
|
|
||||||
|
43. Correct the setting of CMAKE_C_FLAGS in CMakeLists.txt (patch from Roy Ivy
|
||||||
|
III).
|
||||||
|
|
||||||
|
44. Fix bug in RunTest.bat for new test 14, and adjust the script for the added
|
||||||
|
test (there are now 20 in total).
|
||||||
|
|
||||||
|
45. Fixed a corner case of range optimization in JIT.
|
||||||
|
|
||||||
|
46. Add the ${*MARK} facility to pcre2_substitute().
|
||||||
|
|
||||||
|
47. Modifier lists in pcre2test were splitting at spaces without the required
|
||||||
|
commas.
|
||||||
|
|
||||||
|
48. Implemented PCRE2_ALT_VERBNAMES.
|
||||||
|
|
||||||
|
49. Fixed two issues in JIT. These were found by Karl Skomski with a custom
|
||||||
|
LLVM fuzzer.
|
||||||
|
|
||||||
|
50. The pcre2test program has been extended by adding the #newline_default
|
||||||
|
command. This has made it possible to run the standard tests when PCRE2 is
|
||||||
|
compiled with either CR or CRLF as the default newline convention. As part of
|
||||||
|
this work, the new command was added to several test files and the testing
|
||||||
|
scripts were modified. The pcre2grep tests can now also be run when there is no
|
||||||
|
LF in the default newline convention.
|
||||||
|
|
||||||
|
51. The RunTest script has been modified so that, when JIT is used and valgrind
|
||||||
|
is specified, a valgrind suppressions file is set up to ignore "Invalid read of
|
||||||
|
size 16" errors because these are false positives when the hardware supports
|
||||||
|
the SSE2 instruction set.
|
||||||
|
|
||||||
|
52. It is now possible to have comment lines amid the subject strings in
|
||||||
|
pcre2test (and perltest.sh) input.
|
||||||
|
|
||||||
|
53. Implemented PCRE2_USE_OFFSET_LIMIT and pcre2_set_offset_limit().
|
||||||
|
|
||||||
|
54. Add the null_context modifier to pcre2test so that calling pcre2_compile()
|
||||||
|
and the matching functions with NULL contexts can be tested.
|
||||||
|
|
||||||
|
55. Implemented PCRE2_SUBSTITUTE_EXTENDED.
|
||||||
|
|
||||||
|
56. In a character class such as [\W\p{Any}] where both a negative-type escape
|
||||||
|
("not a word character") and a property escape were present, the property
|
||||||
|
escape was being ignored.
|
||||||
|
|
||||||
|
57. Fixed integer overflow for patterns whose minimum matching length is very,
|
||||||
|
very large.
|
||||||
|
|
||||||
|
58. Implemented --never-backslash-C.
|
||||||
|
|
||||||
|
59. Change 55 above introduced a bug by which certain patterns provoked the
|
||||||
|
erroneous error "\ at end of pattern".
|
||||||
|
|
||||||
|
60. The special sequences [[:<:]] and [[:>:]] gave rise to incorrect compiling
|
||||||
|
errors or other strange effects if compiled in UCP mode. Found with libFuzzer
|
||||||
|
and AddressSanitizer.
|
||||||
|
|
||||||
|
61. Whitespace at the end of a pcre2test pattern line caused a spurious error
|
||||||
|
message if there were only single-character modifiers. It should be ignored.
|
||||||
|
|
||||||
|
62. The use of PCRE2_NO_AUTO_CAPTURE could cause incorrect compilation results
|
||||||
|
or segmentation errors for some patterns. Found with libFuzzer and
|
||||||
|
AddressSanitizer.
|
||||||
|
|
||||||
|
63. Very long names in (*MARK) or (*THEN) etc. items could provoke a buffer
|
||||||
|
overflow.
|
||||||
|
|
||||||
|
64. Improve error message for overly-complicated patterns.
|
||||||
|
|
||||||
|
65. Implemented an optional replication feature for patterns in pcre2test, to
|
||||||
|
make it easier to test long repetitive patterns. The tests for 63 above are
|
||||||
|
converted to use the new feature.
|
||||||
|
|
||||||
|
66. In the POSIX wrapper, if regerror() was given too small a buffer, it could
|
||||||
|
misbehave.
|
||||||
|
|
||||||
|
67. In pcre2_substitute() in UTF mode, the UTF validity check on the
|
||||||
|
replacement string was happening before the length setting when the replacement
|
||||||
|
string was zero-terminated.
|
||||||
|
|
||||||
|
68. In pcre2_substitute() in UTF mode, PCRE2_NO_UTF_CHECK can be set for the
|
||||||
|
second and subsequent calls to pcre2_match().
|
||||||
|
|
||||||
|
69. There was no check for integer overflow for a replacement group number in
|
||||||
|
pcre2_substitute(). An added check for a number greater than the largest group
|
||||||
|
number in the pattern means this is not now needed.
|
||||||
|
|
||||||
|
70. The PCRE2-specific VERSION condition didn't work correctly if only one
|
||||||
|
digit was given after the decimal point, or if more than two digits were given.
|
||||||
|
It now works with one or two digits, and gives a compile time error if more are
|
||||||
|
given.
|
||||||
|
|
||||||
|
71. In pcre2_substitute() there was the possibility of reading one code unit
|
||||||
|
beyond the end of the replacement string.
|
||||||
|
|
||||||
|
72. The code for checking a subject's UTF-32 validity for a pattern with a
|
||||||
|
lookbehind involved an out-of-bounds pointer, which could potentially cause
|
||||||
|
trouble in some environments.
|
||||||
|
|
||||||
|
73. The maximum lookbehind length was incorrectly calculated for patterns such
|
||||||
|
as /(?<=(a)(?-1))x/ which have a recursion within a backreference.
|
||||||
|
|
||||||
|
74. Give an error if a lookbehind assertion is longer than 65535 code units.
|
||||||
|
|
||||||
|
75. Give an error in pcre2_substitute() if a match ends before it starts (as a
|
||||||
|
result of the use of \K).
|
||||||
|
|
||||||
|
76. Check the length of subpattern names and the names in (*MARK:xx) etc.
|
||||||
|
dynamically to avoid the possibility of integer overflow.
|
||||||
|
|
||||||
|
77. Implement pcre2_set_max_pattern_length() so that programs can restrict the
|
||||||
|
size of patterns that they are prepared to handle.
|
||||||
|
|
||||||
|
78. (*NO_AUTO_POSSESS) was not working.
|
||||||
|
|
||||||
|
79. Adding group information caching improves the speed of compiling when
|
||||||
|
checking whether a group has a fixed length and/or could match an empty string,
|
||||||
|
especially when recursion or subroutine calls are involved. However, this
|
||||||
|
cannot be used when (?| is present in the pattern because the same number may
|
||||||
|
be used for groups of different sizes. To catch runaway patterns in this
|
||||||
|
situation, counts have been introduced to the functions that scan for empty
|
||||||
|
branches or compute fixed lengths.
|
||||||
|
|
||||||
|
80. Allow for the possibility of the size of the nest_save structure not being
|
||||||
|
a factor of the size of the compiling workspace (it currently is).
|
||||||
|
|
||||||
|
81. Check for integer overflow in minimum length calculation and cap it at
|
||||||
|
65535.
|
||||||
|
|
||||||
|
82. Small optimizations in code for finding the minimum matching length.
|
||||||
|
|
||||||
|
83. Lock out configuring for EBCDIC with non-8-bit libraries.
|
||||||
|
|
||||||
|
84. Test for error code <= 0 in regerror().
|
||||||
|
|
||||||
|
85. Check for too many replacements (more than INT_MAX) in pcre2_substitute().
|
||||||
|
|
||||||
|
86. Avoid the possibility of computing with an out-of-bounds pointer (though
|
||||||
|
not dereferencing it) while handling lookbehind assertions.
|
||||||
|
|
||||||
|
87. Failure to get memory for the match data in regcomp() is now given as a
|
||||||
|
regcomp() error instead of waiting for regexec() to pick it up.
|
||||||
|
|
||||||
|
88. In pcre2_substitute(), ensure that CRLF is not split when it is a valid
|
||||||
|
newline sequence.
|
||||||
|
|
||||||
|
89. Paranoid check in regcomp() for bad error code from pcre2_compile().
|
||||||
|
|
||||||
|
90. Run test 8 (internal offsets and code sizes) for link sizes 3 and 4 as well
|
||||||
|
as for link size 2.
|
||||||
|
|
||||||
|
91. Document that JIT has a limit on pattern size, and give more information
|
||||||
|
about JIT compile failures in pcre2test.
|
||||||
|
|
||||||
|
92. Implement PCRE2_INFO_HASBACKSLASHC.
|
||||||
|
|
||||||
|
93. Re-arrange valgrind support code in pcre2test to avoid spurious reports
|
||||||
|
with JIT (possibly caused by SSE2?).
|
||||||
|
|
||||||
|
94. Support offset_limit in JIT.
|
||||||
|
|
||||||
|
95. A sequence such as [[:punct:]b] that is, a POSIX character class followed
|
||||||
|
by a single ASCII character in a class item, was incorrectly compiled in UCP
|
||||||
|
mode. The POSIX class got lost, but only if the single character followed it.
|
||||||
|
|
||||||
|
96. [:punct:] in UCP mode was matching some characters in the range 128-255
|
||||||
|
that should not have been matched.
|
||||||
|
|
||||||
|
97. If [:^ascii:] or [:^xdigit:] are present in a non-negated class, all
|
||||||
|
characters with code points greater than 255 are in the class. When a Unicode
|
||||||
|
property was also in the class (if PCRE2_UCP is set, escapes such as \w are
|
||||||
|
turned into Unicode properties), wide characters were not correctly handled,
|
||||||
|
and could fail to match.
|
||||||
|
|
||||||
|
98. In pcre2test, make the "startoffset" modifier a synonym of "offset",
|
||||||
|
because it sets the "startoffset" parameter for pcre2_match().
|
||||||
|
|
||||||
|
99. If PCRE2_AUTO_CALLOUT was set on a pattern that had a (?# comment between
|
||||||
|
an item and its qualifier (for example, A(?#comment)?B) pcre2_compile()
|
||||||
|
misbehaved. This bug was found by the LLVM fuzzer.
|
||||||
|
|
||||||
|
100. The error for an invalid UTF pattern string always gave the code unit
|
||||||
|
offset as zero instead of where the invalidity was found.
|
||||||
|
|
||||||
|
101. Further to 97 above, negated classes such as [^[:^ascii:]\d] were also not
|
||||||
|
working correctly in UCP mode.
|
||||||
|
|
||||||
|
102. Similar to 99 above, if an isolated \E was present between an item and its
|
||||||
|
qualifier when PCRE2_AUTO_CALLOUT was set, pcre2_compile() misbehaved. This bug
|
||||||
|
was found by the LLVM fuzzer.
|
||||||
|
|
||||||
|
103. The POSIX wrapper function regexec() crashed if the option REG_STARTEND
|
||||||
|
was set when the pmatch argument was NULL. It now returns REG_INVARG.
|
||||||
|
|
||||||
|
104. Allow for up to 32-bit numbers in the ordin() function in pcre2grep.
|
||||||
|
|
||||||
|
105. An empty \Q\E sequence between an item and its qualifier caused
|
||||||
|
pcre2_compile() to misbehave when auto callouts were enabled. This bug
|
||||||
|
was found by the LLVM fuzzer.
|
||||||
|
|
||||||
|
106. If both PCRE2_ALT_VERBNAMES and PCRE2_EXTENDED were set, and a (*MARK) or
|
||||||
|
other verb "name" ended with whitespace immediately before the closing
|
||||||
|
parenthesis, pcre2_compile() misbehaved. Example: /(*:abc )/, but only when
|
||||||
|
both those options were set.
|
||||||
|
|
||||||
|
107. In a number of places pcre2_compile() was not handling NULL characters
|
||||||
|
correctly, and pcre2test with the "bincode" modifier was not always correctly
|
||||||
|
displaying fields containing NULLS:
|
||||||
|
|
||||||
|
(a) Within /x extended #-comments
|
||||||
|
(b) Within the "name" part of (*MARK) and other *verbs
|
||||||
|
(c) Within the text argument of a callout
|
||||||
|
|
||||||
|
108. If a pattern that was compiled with PCRE2_EXTENDED started with white
|
||||||
|
space or a #-type comment that was followed by (?-x), which turns off
|
||||||
|
PCRE2_EXTENDED, and there was no subsequent (?x) to turn it on again,
|
||||||
|
pcre2_compile() assumed that (?-x) applied to the whole pattern and
|
||||||
|
consequently mis-compiled it. This bug was found by the LLVM fuzzer. The fix
|
||||||
|
for this bug means that a setting of any of the (?imsxJU) options at the start
|
||||||
|
of a pattern is no longer transferred to the options that are returned by
|
||||||
|
PCRE2_INFO_ALLOPTIONS. In fact, this was an anachronism that should have
|
||||||
|
changed when the effects of those options were all moved to compile time.
|
||||||
|
|
||||||
|
109. An escaped closing parenthesis in the "name" part of a (*verb) when
|
||||||
|
PCRE2_ALT_VERBNAMES was set caused pcre2_compile() to malfunction. This bug
|
||||||
|
was found by the LLVM fuzzer.
|
||||||
|
|
||||||
|
110. Implemented PCRE2_SUBSTITUTE_UNSET_EMPTY, and updated pcre2test to make it
|
||||||
|
possible to test it.
|
||||||
|
|
||||||
|
111. "Harden" pcre2test against ridiculously large values in modifiers and
|
||||||
|
command line arguments.
|
||||||
|
|
||||||
|
112. Implemented PCRE2_SUBSTITUTE_UNKNOWN_UNSET and PCRE2_SUBSTITUTE_OVERFLOW_
|
||||||
|
LENGTH.
|
||||||
|
|
||||||
|
113. Fix printing of *MARK names that contain binary zeroes in pcre2test.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.20 30-June-2015
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
1. Callouts with string arguments have been added.
|
||||||
|
|
||||||
|
2. Assertion code generator in JIT has been optimized.
|
||||||
|
|
||||||
|
3. The invalid pattern (?(?C) has a missing assertion condition at the end. The
|
||||||
|
pcre2_compile() function read past the end of the input before diagnosing an
|
||||||
|
error. This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
4. Implemented pcre2_callout_enumerate().
|
||||||
|
|
||||||
|
5. Fix JIT compilation of conditional blocks whose assertion is converted to
|
||||||
|
(*FAIL). E.g: /(?(?!))/.
|
||||||
|
|
||||||
|
6. The pattern /(?(?!)^)/ caused references to random memory. This bug was
|
||||||
|
discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
7. The assertion (?!) is optimized to (*FAIL). This was not handled correctly
|
||||||
|
when this assertion was used as a condition, for example (?(?!)a|b). In
|
||||||
|
pcre2_match() it worked by luck; in pcre2_dfa_match() it gave an incorrect
|
||||||
|
error about an unsupported item.
|
||||||
|
|
||||||
|
8. For some types of pattern, for example /Z*(|d*){216}/, the auto-
|
||||||
|
possessification code could take exponential time to complete. A recursion
|
||||||
|
depth limit of 1000 has been imposed to limit the resources used by this
|
||||||
|
optimization. This infelicity was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
9. A pattern such as /(*UTF)[\S\V\H]/, which contains a negated special class
|
||||||
|
such as \S in non-UCP mode, explicit wide characters (> 255) can be ignored
|
||||||
|
because \S ensures they are all in the class. The code for doing this was
|
||||||
|
interacting badly with the code for computing the amount of space needed to
|
||||||
|
compile the pattern, leading to a buffer overflow. This bug was discovered by
|
||||||
|
the LLVM fuzzer.
|
||||||
|
|
||||||
|
10. A pattern such as /((?2)+)((?1))/ which has mutual recursion nested inside
|
||||||
|
other kinds of group caused stack overflow at compile time. This bug was
|
||||||
|
discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
11. A pattern such as /(?1)(?#?'){8}(a)/ which had a parenthesized comment
|
||||||
|
between a subroutine call and its quantifier was incorrectly compiled, leading
|
||||||
|
to buffer overflow or other errors. This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
12. The illegal pattern /(?(?<E>.*!.*)?)/ was not being diagnosed as missing an
|
||||||
|
assertion after (?(. The code was failing to check the character after (?(?<
|
||||||
|
for the ! or = that would indicate a lookbehind assertion. This bug was
|
||||||
|
discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
13. A pattern such as /X((?2)()*+){2}+/ which has a possessive quantifier with
|
||||||
|
a fixed maximum following a group that contains a subroutine reference was
|
||||||
|
incorrectly compiled and could trigger buffer overflow. This bug was discovered
|
||||||
|
by the LLVM fuzzer.
|
||||||
|
|
||||||
|
14. Negative relative recursive references such as (?-7) to non-existent
|
||||||
|
subpatterns were not being diagnosed and could lead to unpredictable behaviour.
|
||||||
|
This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
15. The bug fixed in 14 was due to an integer variable that was unsigned when
|
||||||
|
it should have been signed. Some other "int" variables, having been checked,
|
||||||
|
have either been changed to uint32_t or commented as "must be signed".
|
||||||
|
|
||||||
|
16. A mutual recursion within a lookbehind assertion such as (?<=((?2))((?1)))
|
||||||
|
caused a stack overflow instead of the diagnosis of a non-fixed length
|
||||||
|
lookbehind assertion. This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
17. The use of \K in a positive lookbehind assertion in a non-anchored pattern
|
||||||
|
(e.g. /(?<=\Ka)/) could make pcre2grep loop.
|
||||||
|
|
||||||
|
18. There was a similar problem to 17 in pcre2test for global matches, though
|
||||||
|
the code there did catch the loop.
|
||||||
|
|
||||||
|
19. If a greedy quantified \X was preceded by \C in UTF mode (e.g. \C\X*),
|
||||||
|
and a subsequent item in the pattern caused a non-match, backtracking over the
|
||||||
|
repeated \X did not stop, but carried on past the start of the subject, causing
|
||||||
|
reference to random memory and/or a segfault. There were also some other cases
|
||||||
|
where backtracking after \C could crash. This set of bugs was discovered by the
|
||||||
|
LLVM fuzzer.
|
||||||
|
|
||||||
|
20. The function for finding the minimum length of a matching string could take
|
||||||
|
a very long time if mutual recursion was present many times in a pattern, for
|
||||||
|
example, /((?2){73}(?2))((?1))/. A better mutual recursion detection method has
|
||||||
|
been implemented. This infelicity was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
21. Implemented PCRE2_NEVER_BACKSLASH_C.
|
||||||
|
|
||||||
|
22. The feature for string replication in pcre2test could read from freed
|
||||||
|
memory if the replication required a buffer to be extended, and it was not
|
||||||
|
working properly in 16-bit and 32-bit modes. This issue was discovered by a
|
||||||
|
fuzzer: see http://lcamtuf.coredump.cx/afl/.
|
||||||
|
|
||||||
|
23. Added the PCRE2_ALT_CIRCUMFLEX option.
|
||||||
|
|
||||||
|
24. Adjust the treatment of \8 and \9 to be the same as the current Perl
|
||||||
|
behaviour.
|
||||||
|
|
||||||
|
25. Static linking against the PCRE2 library using the pkg-config module was
|
||||||
|
failing on missing pthread symbols.
|
||||||
|
|
||||||
|
26. If a group that contained a recursive back reference also contained a
|
||||||
|
forward reference subroutine call followed by a non-forward-reference
|
||||||
|
subroutine call, for example /.((?2)(?R)\1)()/, pcre2_compile() failed to
|
||||||
|
compile correct code, leading to undefined behaviour or an internally detected
|
||||||
|
error. This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
27. Quantification of certain items (e.g. atomic back references) could cause
|
||||||
|
incorrect code to be compiled when recursive forward references were involved.
|
||||||
|
For example, in this pattern: /(?1)()((((((\1++))\x85)+)|))/. This bug was
|
||||||
|
discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
28. A repeated conditional group whose condition was a reference by name caused
|
||||||
|
a buffer overflow if there was more than one group with the given name. This
|
||||||
|
bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
29. A recursive back reference by name within a group that had the same name as
|
||||||
|
another group caused a buffer overflow. For example: /(?J)(?'d'(?'d'\g{d}))/.
|
||||||
|
This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
30. A forward reference by name to a group whose number is the same as the
|
||||||
|
current group, for example in this pattern: /(?|(\k'Pm')|(?'Pm'))/, caused a
|
||||||
|
buffer overflow at compile time. This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
31. Fix -fsanitize=undefined warnings for left shifts of 1 by 31 (it treats 1
|
||||||
|
as an int; fixed by writing it as 1u).
|
||||||
|
|
||||||
|
32. Fix pcre2grep compile when -std=c99 is used with gcc, though it still gives
|
||||||
|
a warning for "fileno" unless -std=gnu99 us used.
|
||||||
|
|
||||||
|
33. A lookbehind assertion within a set of mutually recursive subpatterns could
|
||||||
|
provoke a buffer overflow. This bug was discovered by the LLVM fuzzer.
|
||||||
|
|
||||||
|
34. Give an error for an empty subpattern name such as (?'').
|
||||||
|
|
||||||
|
35. Make pcre2test give an error if a pattern that follows #forbud_utf contains
|
||||||
|
\P, \p, or \X.
|
||||||
|
|
||||||
|
36. The way named subpatterns are handled has been refactored. There is now a
|
||||||
|
pre-pass over the regex which does nothing other than identify named
|
||||||
|
subpatterns and count the total captures. This means that information about
|
||||||
|
named patterns is known before the rest of the compile. In particular, it means
|
||||||
|
that forward references can be checked as they are encountered. Previously, the
|
||||||
|
code for handling forward references was contorted and led to several errors in
|
||||||
|
computing the memory requirements for some patterns, leading to buffer
|
||||||
|
overflows.
|
||||||
|
|
||||||
|
37. There was no check for integer overflow in subroutine calls such as (?123).
|
||||||
|
|
||||||
|
38. The table entry for \l in EBCDIC environments was incorrect, leading to its
|
||||||
|
being treated as a literal 'l' instead of causing an error.
|
||||||
|
|
||||||
|
39. If a non-capturing group containing a conditional group that could match
|
||||||
|
an empty string was repeated, it was not identified as matching an empty string
|
||||||
|
itself. For example: /^(?:(?(1)x|)+)+$()/.
|
||||||
|
|
||||||
|
40. In an EBCDIC environment, pcretest was mishandling the escape sequences
|
||||||
|
\a and \e in test subject lines.
|
||||||
|
|
||||||
|
41. In an EBCDIC environment, \a in a pattern was converted to the ASCII
|
||||||
|
instead of the EBCDIC value.
|
||||||
|
|
||||||
|
42. The handling of \c in an EBCDIC environment has been revised so that it is
|
||||||
|
now compatible with the specification in Perl's perlebcdic page.
|
||||||
|
|
||||||
|
43. Single character repetition in JIT has been improved. 20-30% speedup
|
||||||
|
was achieved on certain patterns.
|
||||||
|
|
||||||
|
44. The EBCDIC character 0x41 is a non-breaking space, equivalent to 0xa0 in
|
||||||
|
ASCII/Unicode. This has now been added to the list of characters that are
|
||||||
|
recognized as white space in EBCDIC.
|
||||||
|
|
||||||
|
45. When PCRE2 was compiled without Unicode support, the use of \p and \P gave
|
||||||
|
an error (correctly) when used outside a class, but did not give an error
|
||||||
|
within a class.
|
||||||
|
|
||||||
|
46. \h within a class was incorrectly compiled in EBCDIC environments.
|
||||||
|
|
||||||
|
47. JIT should return with error when the compiled pattern requires
|
||||||
|
more stack space than the maximum.
|
||||||
|
|
||||||
|
48. Fixed a memory leak in pcre2grep when a locale is set.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.10 06-March-2015
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. When a pattern is compiled, it remembers the highest back reference so that
|
||||||
|
when matching, if the ovector is too small, extra memory can be obtained to
|
||||||
|
use instead. A conditional subpattern whose condition is a check on a capture
|
||||||
|
having happened, such as, for example in the pattern /^(?:(a)|b)(?(1)A|B)/, is
|
||||||
|
another kind of back reference, but it was not setting the highest
|
||||||
|
backreference number. This mattered only if pcre2_match() was called with an
|
||||||
|
ovector that was too small to hold the capture, and there was no other kind of
|
||||||
|
back reference (a situation which is probably quite rare). The effect of the
|
||||||
|
bug was that the condition was always treated as FALSE when the capture could
|
||||||
|
not be consulted, leading to a incorrect behaviour by pcre2_match(). This bug
|
||||||
|
has been fixed.
|
||||||
|
|
||||||
|
2. Functions for serialization and deserialization of sets of compiled patterns
|
||||||
|
have been added.
|
||||||
|
|
||||||
|
3. The value that is returned by PCRE2_INFO_SIZE has been corrected to remove
|
||||||
|
excess code units at the end of the data block that may occasionally occur if
|
||||||
|
the code for calculating the size over-estimates. This change stops the
|
||||||
|
serialization code copying uninitialized data, to which valgrind objects. The
|
||||||
|
documentation of PCRE2_INFO_SIZE was incorrect in stating that the size did not
|
||||||
|
include the general overhead. This has been corrected.
|
||||||
|
|
||||||
|
4. All code units in every slot in the table of group names are now set, again
|
||||||
|
in order to avoid accessing uninitialized data when serializing.
|
||||||
|
|
||||||
|
5. The (*NO_JIT) feature is implemented.
|
||||||
|
|
||||||
|
6. If a bug that caused pcre2_compile() to use more memory than allocated was
|
||||||
|
triggered when using valgrind, the code in (3) above passed a stupidly large
|
||||||
|
value to valgrind. This caused a crash instead of an "internal error" return.
|
||||||
|
|
||||||
|
7. A reference to a duplicated named group (either a back reference or a test
|
||||||
|
for being set in a conditional) that occurred in a part of the pattern where
|
||||||
|
PCRE2_DUPNAMES was not set caused the amount of memory needed for the pattern
|
||||||
|
to be incorrectly calculated, leading to overwriting.
|
||||||
|
|
||||||
|
8. A mutually recursive set of back references such as (\2)(\1) caused a
|
||||||
|
segfault at compile time (while trying to find the minimum matching length).
|
||||||
|
The infinite loop is now broken (with the minimum length unset, that is, zero).
|
||||||
|
|
||||||
|
9. If an assertion that was used as a condition was quantified with a minimum
|
||||||
|
of zero, matching went wrong. In particular, if the whole group had unlimited
|
||||||
|
repetition and could match an empty string, a segfault was likely. The pattern
|
||||||
|
(?(?=0)?)+ is an example that caused this. Perl allows assertions to be
|
||||||
|
quantified, but not if they are being used as conditions, so the above pattern
|
||||||
|
is faulted by Perl. PCRE2 has now been changed so that it also rejects such
|
||||||
|
patterns.
|
||||||
|
|
||||||
|
10. The error message for an invalid quantifier has been changed from "nothing
|
||||||
|
to repeat" to "quantifier does not follow a repeatable item".
|
||||||
|
|
||||||
|
11. If a bad UTF string is compiled with NO_UTF_CHECK, it may succeed, but
|
||||||
|
scanning the compiled pattern in subsequent auto-possessification can get out
|
||||||
|
of step and lead to an unknown opcode. Previously this could have caused an
|
||||||
|
infinite loop. Now it generates an "internal error" error. This is a tidyup,
|
||||||
|
not a bug fix; passing bad UTF with NO_UTF_CHECK is documented as having an
|
||||||
|
undefined outcome.
|
||||||
|
|
||||||
|
12. A UTF pattern containing a "not" match of a non-ASCII character and a
|
||||||
|
subroutine reference could loop at compile time. Example: /[^\xff]((?1))/.
|
||||||
|
|
||||||
|
13. The locale test (RunTest 3) has been upgraded. It now checks that a locale
|
||||||
|
that is found in the output of "locale -a" can actually be set by pcre2test
|
||||||
|
before it is accepted. Previously, in an environment where a locale was listed
|
||||||
|
but would not set (an example does exist), the test would "pass" without
|
||||||
|
actually doing anything. Also the fr_CA locale has been added to the list of
|
||||||
|
locales that can be used.
|
||||||
|
|
||||||
|
14. Fixed a bug in pcre2_substitute(). If a replacement string ended in a
|
||||||
|
capturing group number without parentheses, the last character was incorrectly
|
||||||
|
literally included at the end of the replacement string.
|
||||||
|
|
||||||
|
15. A possessive capturing group such as (a)*+ with a minimum repeat of zero
|
||||||
|
failed to allow the zero-repeat case if pcre2_match() was called with an
|
||||||
|
ovector too small to capture the group.
|
||||||
|
|
||||||
|
16. Improved error message in pcre2test when setting the stack size (-S) fails.
|
||||||
|
|
||||||
|
17. Fixed two bugs in CMakeLists.txt: (1) Some lines had got lost in the
|
||||||
|
transfer from PCRE1, meaning that CMake configuration failed if "build tests"
|
||||||
|
was selected. (2) The file src/pcre2_serialize.c had not been added to the list
|
||||||
|
of PCRE2 sources, which caused a failure to build pcre2test.
|
||||||
|
|
||||||
|
18. Fixed typo in pcre2_serialize.c (DECL instead of DEFN) that causes problems
|
||||||
|
only on Windows.
|
||||||
|
|
||||||
|
19. Use binary input when reading back saved serialized patterns in pcre2test.
|
||||||
|
|
||||||
|
20. Added RunTest.bat for running the tests under Windows.
|
||||||
|
|
||||||
|
21. "make distclean" was not removing config.h, a file that may be created for
|
||||||
|
use with CMake.
|
||||||
|
|
||||||
|
22. A pattern such as "((?2){0,1999}())?", which has a group containing a
|
||||||
|
forward reference repeated a large (but limited) number of times within a
|
||||||
|
repeated outer group that has a zero minimum quantifier, caused incorrect code
|
||||||
|
to be compiled, leading to the error "internal error: previously-checked
|
||||||
|
referenced subpattern not found" when an incorrect memory address was read.
|
||||||
|
This bug was reported as "heap overflow", discovered by Kai Lu of Fortinet's
|
||||||
|
FortiGuard Labs. (Added 24-March-2015: CVE-2015-2325 was given to this.)
|
||||||
|
|
||||||
|
23. A pattern such as "((?+1)(\1))/" containing a forward reference subroutine
|
||||||
|
call within a group that also contained a recursive back reference caused
|
||||||
|
incorrect code to be compiled. This bug was reported as "heap overflow",
|
||||||
|
discovered by Kai Lu of Fortinet's FortiGuard Labs. (Added 24-March-2015:
|
||||||
|
CVE-2015-2326 was given to this.)
|
||||||
|
|
||||||
|
24. Computing the size of the JIT read-only data in advance has been a source
|
||||||
|
of various issues, and new ones are still appear unfortunately. To fix
|
||||||
|
existing and future issues, size computation is eliminated from the code,
|
||||||
|
and replaced by on-demand memory allocation.
|
||||||
|
|
||||||
|
25. A pattern such as /(?i)[A-`]/, where characters in the other case are
|
||||||
|
adjacent to the end of the range, and the range contained characters with more
|
||||||
|
than one other case, caused incorrect behaviour when compiled in UTF mode. In
|
||||||
|
that example, the range a-j was left out of the class.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.00 05-January-2015
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Version 10.00 is the first release of PCRE2, a revised API for the PCRE
|
||||||
|
library. Changes prior to 10.00 are logged in the ChangeLog file for the old
|
||||||
|
API, up to item 20 for release 8.36.
|
||||||
|
|
||||||
|
The code of the library was heavily revised as part of the new API
|
||||||
|
implementation. Details of each and every modification were not individually
|
||||||
|
logged. In addition to the API changes, the following changes were made. They
|
||||||
|
are either new functionality, or bug fixes and other noticeable changes of
|
||||||
|
behaviour that were implemented after the code had been forked.
|
||||||
|
|
||||||
|
1. Including Unicode support at build time is now enabled by default, but it
|
||||||
|
can optionally be disabled. It is not enabled by default at run time (no
|
||||||
|
change).
|
||||||
|
|
||||||
|
2. The test program, now called pcre2test, was re-specified and almost
|
||||||
|
completely re-written. Its input is not compatible with input for pcretest.
|
||||||
|
|
||||||
|
3. Patterns may start with (*NOTEMPTY) or (*NOTEMPTY_ATSTART) to set the
|
||||||
|
PCRE2_NOTEMPTY or PCRE2_NOTEMPTY_ATSTART options for every subject line that is
|
||||||
|
matched by that pattern.
|
||||||
|
|
||||||
|
4. For the benefit of those who use PCRE2 via some other application, that is,
|
||||||
|
not writing the function calls themselves, it is possible to check the PCRE2
|
||||||
|
version by matching a pattern such as /(?(VERSION>=10)yes|no)/ against a
|
||||||
|
string such as "yesno".
|
||||||
|
|
||||||
|
5. There are case-equivalent Unicode characters whose encodings use different
|
||||||
|
numbers of code units in UTF-8. U+023A and U+2C65 are one example. (It is
|
||||||
|
theoretically possible for this to happen in UTF-16 too.) If a backreference to
|
||||||
|
a group containing one of these characters was greedily repeated, and during
|
||||||
|
the match a backtrack occurred, the subject might be backtracked by the wrong
|
||||||
|
number of code units. For example, if /^(\x{23a})\1*(.)/ is matched caselessly
|
||||||
|
(and in UTF-8 mode) against "\x{23a}\x{2c65}\x{2c65}\x{2c65}", group 2 should
|
||||||
|
capture the final character, which is the three bytes E2, B1, and A5 in UTF-8.
|
||||||
|
Incorrect backtracking meant that group 2 captured only the last two bytes.
|
||||||
|
This bug has been fixed; the new code is slower, but it is used only when the
|
||||||
|
strings matched by the repetition are not all the same length.
|
||||||
|
|
||||||
|
6. A pattern such as /()a/ was not setting the "first character must be 'a'"
|
||||||
|
information. This applied to any pattern with a group that matched no
|
||||||
|
characters, for example: /(?:(?=.)|(?<!x))a/.
|
||||||
|
|
||||||
|
7. When an (*ACCEPT) is triggered inside capturing parentheses, it arranges for
|
||||||
|
those parentheses to be closed with whatever has been captured so far. However,
|
||||||
|
it was failing to mark any other groups between the highest capture so far and
|
||||||
|
the current group as "unset". Thus, the ovector for those groups contained
|
||||||
|
whatever was previously there. An example is the pattern /(x)|((*ACCEPT))/ when
|
||||||
|
matched against "abcd".
|
||||||
|
|
||||||
|
8. The pcre2_substitute() function has been implemented.
|
||||||
|
|
||||||
|
9. If an assertion used as a condition was quantified with a minimum of zero
|
||||||
|
(an odd thing to do, but it happened), SIGSEGV or other misbehaviour could
|
||||||
|
occur.
|
||||||
|
|
||||||
|
10. The PCRE2_NO_DOTSTAR_ANCHOR option has been implemented.
|
||||||
|
|
||||||
|
****
|
||||||
924
3rd/pcre2/HACKING
Normal file
924
3rd/pcre2/HACKING
Normal file
@@ -0,0 +1,924 @@
|
|||||||
|
Technical notes about PCRE2
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
These are very rough technical notes that record potentially useful information
|
||||||
|
about PCRE2 internals. PCRE2 is a library based on the original PCRE library,
|
||||||
|
but with a revised (and incompatible) API. To avoid confusion, the original
|
||||||
|
library is referred to as PCRE1 below. For information about testing PCRE2, see
|
||||||
|
the pcre2test documentation and the comment at the head of the RunTest file.
|
||||||
|
|
||||||
|
PCRE1 releases were up to 8.3x when PCRE2 was developed, and later bug fix
|
||||||
|
releases carried on the 8.xx series, up to the final 8.45 release. PCRE2
|
||||||
|
releases started at 10.00 to avoid confusion with PCRE1.
|
||||||
|
|
||||||
|
|
||||||
|
Historical note 1
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Many years ago I implemented some regular expression functions to an algorithm
|
||||||
|
suggested by Martin Richards. The rather simple patterns were not Unix-like in
|
||||||
|
form, and were quite restricted in what they could do by comparison with Perl.
|
||||||
|
The interesting part about the algorithm was that the amount of space required
|
||||||
|
to hold the compiled form of an expression was known in advance. The code to
|
||||||
|
apply an expression did not operate by backtracking, as the original Henry
|
||||||
|
Spencer code and the current PCRE2 pcre2_match() function and Perl code do, but
|
||||||
|
instead checked all possibilities simultaneously by keeping a list of current
|
||||||
|
states and checking all of them as it advanced through the subject string. In
|
||||||
|
the terminology of Jeffrey Friedl's book, it was a "DFA algorithm", though it
|
||||||
|
was not a traditional Finite State Machine (FSM). When the pattern was all used
|
||||||
|
up, all remaining states were possible matches, and the one matching the
|
||||||
|
longest subset of the subject string was chosen. This did not necessarily
|
||||||
|
maximize the individual wild portions of the pattern, as is expected in Unix
|
||||||
|
and Perl-style regular expressions.
|
||||||
|
|
||||||
|
|
||||||
|
Historical note 2
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The code originally written by Henry Spencer (which was subsequently heavily
|
||||||
|
modified for Perl) compiles the expression twice: once in a dummy mode in order
|
||||||
|
to find out how much store will be needed, and then for real. (The Perl version
|
||||||
|
may or may not still do this; I'm talking about the original library.) The
|
||||||
|
execution function operates by backtracking and maximizing (or, optionally,
|
||||||
|
minimizing, in Perl) the amount of the subject that matches individual wild
|
||||||
|
portions of the pattern. This is an "NFA algorithm" in Friedl's terminology.
|
||||||
|
|
||||||
|
|
||||||
|
Support for 16-bit and 32-bit data strings
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
The PCRE2 library can be compiled in any combination of 8-bit, 16-bit or 32-bit
|
||||||
|
modes, creating up to three different libraries. In the description that
|
||||||
|
follows, the word "short" is used for a 16-bit data quantity, and the phrase
|
||||||
|
"code unit" is used for a quantity that is a byte in 8-bit mode, a short in
|
||||||
|
16-bit mode and a 32-bit word in 32-bit mode. The names of PCRE2 functions are
|
||||||
|
given in generic form, without the _8, _16, or _32 suffix.
|
||||||
|
|
||||||
|
|
||||||
|
Computing the memory requirement: how it was
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
Up to and including release 6.7, PCRE1 worked by running a very degenerate
|
||||||
|
first pass to calculate a maximum memory requirement, and then a second pass to
|
||||||
|
do the real compile - which might use a bit less than the predicted amount of
|
||||||
|
memory. The idea was that this would turn out faster than the Henry Spencer
|
||||||
|
code because the first pass is degenerate and the second pass can just store
|
||||||
|
stuff straight into memory, which it knows is big enough.
|
||||||
|
|
||||||
|
|
||||||
|
Computing the memory requirement: how it is
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
By the time I was working on a potential 6.8 release, the degenerate first pass
|
||||||
|
had become very complicated and hard to maintain. Indeed one of the early
|
||||||
|
things I did for 6.8 was to fix Yet Another Bug in the memory computation. Then
|
||||||
|
I had a flash of inspiration as to how I could run the real compile function in
|
||||||
|
a "fake" mode that enables it to compute how much memory it would need, while
|
||||||
|
in most cases only ever using a small amount of working memory, and without too
|
||||||
|
many tests of the mode that might slow it down. So I refactored the compiling
|
||||||
|
functions to work this way. This got rid of about 600 lines of source and made
|
||||||
|
further maintenance and development easier. As this was such a major change, I
|
||||||
|
never released 6.8, instead upping the number to 7.0 (other quite major changes
|
||||||
|
were also present in the 7.0 release).
|
||||||
|
|
||||||
|
A side effect of this work was that the previous limit of 200 on the nesting
|
||||||
|
depth of parentheses was removed. However, there was a downside: compiling ran
|
||||||
|
more slowly than before (30% or more, depending on the pattern) because it now
|
||||||
|
did a full analysis of the pattern twice. My hope was that this would not be a
|
||||||
|
big issue, and in the event, nobody has commented on it.
|
||||||
|
|
||||||
|
At release 8.34, a limit on the nesting depth of parentheses was re-introduced
|
||||||
|
(default 250, settable at build time) so as to put a limit on the amount of
|
||||||
|
system stack used by the compile function, which uses recursive function calls
|
||||||
|
for nested parenthesized groups. This is a safety feature for environments with
|
||||||
|
small stacks where the patterns are provided by users.
|
||||||
|
|
||||||
|
|
||||||
|
Yet another pattern scan
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
History repeated itself for PCRE2 release 10.20. A number of bugs relating to
|
||||||
|
named subpatterns had been discovered by fuzzers. Most of these were related to
|
||||||
|
the handling of forward references when it was not known if the named group was
|
||||||
|
unique. (References to non-unique names use a different opcode and more
|
||||||
|
memory.) The use of duplicate group numbers (the (?| facility) also caused
|
||||||
|
issues.
|
||||||
|
|
||||||
|
To get around these problems I adopted a new approach by adding a third pass
|
||||||
|
over the pattern (really a "pre-pass"), which does nothing other than identify
|
||||||
|
all the named subpatterns and their corresponding group numbers. This means
|
||||||
|
that the actual compile (both the memory-computing dummy run and the real
|
||||||
|
compile) has full knowledge of group names and numbers throughout. Several
|
||||||
|
dozen lines of messy code were eliminated, though the new pre-pass was not
|
||||||
|
short. In particular, parsing and skipping over [] classes is complicated.
|
||||||
|
|
||||||
|
While working on 10.22 I realized that I could simplify yet again by moving
|
||||||
|
more of the parsing into the pre-pass, thus avoiding doing it in two places, so
|
||||||
|
after 10.22 was released, the code underwent yet another big refactoring. This
|
||||||
|
is how it is from 10.23 onwards:
|
||||||
|
|
||||||
|
The function called parse_regex() scans the pattern characters, parsing them
|
||||||
|
into literal data and meta characters. It converts escapes such as \x{123}
|
||||||
|
into literals, handles \Q...\E, and skips over comments and non-significant
|
||||||
|
white space. The result of the scanning is put into a vector of 32-bit unsigned
|
||||||
|
integers. Values less than 0x80000000 are literal data. Higher values represent
|
||||||
|
meta-characters. The top 16-bits of such values identify the meta-character,
|
||||||
|
and these are given names such as META_CAPTURE. The lower 16-bits are available
|
||||||
|
for data, for example, the capturing group number. The only situation in which
|
||||||
|
literal data values greater than 0x7fffffff can appear is when the 32-bit
|
||||||
|
library is running in non-UTF mode. This is handled by having a special
|
||||||
|
meta-character that is followed by the 32-bit data value.
|
||||||
|
|
||||||
|
The size of the parsed pattern vector, when auto-callouts are not enabled, is
|
||||||
|
bounded by the length of the pattern (with one exception). The code is written
|
||||||
|
so that each item in the pattern uses no more vector elements than the number
|
||||||
|
of code units in the item itself. The exception is the aforementioned large
|
||||||
|
32-bit number handling. For this reason, 32-bit non-UTF patterns are scanned in
|
||||||
|
advance to check for such values. When auto-callouts are enabled, the generous
|
||||||
|
assumption is made that there will be a callout for each pattern code unit
|
||||||
|
(which of course is only actually true if all code units are literals) plus one
|
||||||
|
at the end. A default parsed pattern vector is defined on the system stack, to
|
||||||
|
minimize memory handling, but if this is not big enough, heap memory is used.
|
||||||
|
|
||||||
|
If there are any lookbehinds in the pattern, the parsed pattern is scanned in
|
||||||
|
order to work out their lengths. Then the actual compiling function is run
|
||||||
|
twice, the first time to determine the amount of memory needed for the final
|
||||||
|
compiled pattern. The compiling function processes the parsed pattern vector,
|
||||||
|
not the pattern itself, although some of the parsed items refer to strings in
|
||||||
|
the pattern - for example, group names.
|
||||||
|
|
||||||
|
Some post-processing of the compiled pattern takes place. If there are any
|
||||||
|
recursion or subroutine calls, there is a scan to convert them into offsets.
|
||||||
|
Then there are other scans to apply certain optimizations, some of which can be
|
||||||
|
disabled by setting appropriate options.
|
||||||
|
|
||||||
|
Most errors can be diagnosed during the parsing scan. For those that cannot,
|
||||||
|
the parsed code contains offsets into the pattern so that the actual compiling
|
||||||
|
code can report where the errors are.
|
||||||
|
|
||||||
|
|
||||||
|
The elements of the parsed pattern vector
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
The word "offset" below means a code unit offset into the pattern. When
|
||||||
|
PCRE2_SIZE (which is usually size_t) is no bigger than uint32_t, an offset is
|
||||||
|
stored in a single parsed pattern element. Otherwise (typically on 64-bit
|
||||||
|
systems) it occupies two elements. The following meta items occupy just one
|
||||||
|
element, with no data:
|
||||||
|
|
||||||
|
META_ACCEPT (*ACCEPT)
|
||||||
|
META_ASTERISK *
|
||||||
|
META_ASTERISK_PLUS *+
|
||||||
|
META_ASTERISK_QUERY *?
|
||||||
|
META_ATOMIC (?> start of atomic group
|
||||||
|
META_CIRCUMFLEX ^ metacharacter
|
||||||
|
META_CLASS [ start of non-empty class
|
||||||
|
META_CLASS_EMPTY [] empty class - only with PCRE2_ALLOW_EMPTY_CLASS
|
||||||
|
META_CLASS_EMPTY_NOT [^] negative empty class - ditto
|
||||||
|
META_CLASS_END ] end of non-empty class
|
||||||
|
META_CLASS_NOT [^ start non-empty negative class
|
||||||
|
META_COMMIT (*COMMIT) - no argument (see below for with argument)
|
||||||
|
META_COND_ASSERT (?(?assertion)
|
||||||
|
META_DOLLAR $ metacharacter
|
||||||
|
META_DOT . metacharacter
|
||||||
|
META_END End of pattern (this value is 0x80000000)
|
||||||
|
META_FAIL (*FAIL)
|
||||||
|
META_KET ) closing parenthesis
|
||||||
|
META_LOOKAHEAD (?= start of lookahead
|
||||||
|
META_LOOKAHEAD_NA (*napla: start of non-atomic lookahead
|
||||||
|
META_LOOKAHEADNOT (?! start of negative lookahead
|
||||||
|
META_NOCAPTURE (?: no capture parens
|
||||||
|
META_PLUS +
|
||||||
|
META_PLUS_PLUS ++
|
||||||
|
META_PLUS_QUERY +?
|
||||||
|
META_PRUNE (*PRUNE) - no argument (see below for with argument)
|
||||||
|
META_QUERY ?
|
||||||
|
META_QUERY_PLUS ?+
|
||||||
|
META_QUERY_QUERY ??
|
||||||
|
META_RANGE_ESCAPED hyphen in class range with at least one escape
|
||||||
|
META_RANGE_LITERAL hyphen in class range defined literally
|
||||||
|
META_SKIP (*SKIP) - no argument (see below for with argument)
|
||||||
|
META_THEN (*THEN) - no argument (see below for with argument)
|
||||||
|
META_ECLASS_AND && (or &) in an extended character class
|
||||||
|
META_ECLASS_OR || (or |, +) in an extended character class
|
||||||
|
META_ECLASS_SUB -- (or -) in an extended character class
|
||||||
|
META_ECLASS_XOR ~~ (or ^) in an extended character class
|
||||||
|
META_ECLASS_NOT ! in an extended character class
|
||||||
|
|
||||||
|
The two RANGE values occur only in character classes. They are positioned
|
||||||
|
between two literals that define the start and end of the range. In an EBCDIC
|
||||||
|
environment it is necessary to know whether either of the range values was
|
||||||
|
specified as an escape. In an ASCII/Unicode environment the distinction is not
|
||||||
|
relevant.
|
||||||
|
|
||||||
|
The following have data in the lower 16 bits, and may be followed by other data
|
||||||
|
elements:
|
||||||
|
|
||||||
|
META_ALT | alternation
|
||||||
|
META_BACKREF back reference
|
||||||
|
META_CAPTURE start of capturing group
|
||||||
|
META_ESCAPE non-literal escape sequence
|
||||||
|
META_RECURSE recursion call
|
||||||
|
|
||||||
|
If the data for META_ALT is non-zero, it is inside a lookbehind, and the data
|
||||||
|
is the maximum length of its branch (see META_LOOKBEHIND below for more
|
||||||
|
detail).
|
||||||
|
|
||||||
|
META_BACKREF, META_CAPTURE, and META_RECURSE have the capture group number as
|
||||||
|
their data in the lower 16 bits of the element. META_RECURSE is followed by an
|
||||||
|
offset, for use in error messages.
|
||||||
|
|
||||||
|
META_BACKREF is followed by an offset if the back reference group number is 10
|
||||||
|
or more. The offsets of the first occurrences of references to groups whose
|
||||||
|
numbers are less than 10 are put in cb->small_ref_offset[] (only the first
|
||||||
|
occurrence is useful). On 64-bit systems this avoids using more than two parsed
|
||||||
|
pattern elements for items such as \3. The offset is used when an error occurs
|
||||||
|
because the reference is to a non-existent group.
|
||||||
|
|
||||||
|
META_ESCAPE is used for escapes such as \d that match a character. It has an
|
||||||
|
ESC_xxx value as its data. For ESC_P and ESC_p, the next element contains the
|
||||||
|
16-bit type and data property values, packed together. Escape sequences such as
|
||||||
|
\g and \k are turned into other items like META_RECURSE or META_BACKREF and
|
||||||
|
their ESC_xxx values never occur with META_ESCAPE.
|
||||||
|
|
||||||
|
The following have one data item that follows in the next vector element:
|
||||||
|
|
||||||
|
META_BIGVALUE Next is a literal >= META_END
|
||||||
|
META_POSIX POSIX class item (data identifies the class)
|
||||||
|
META_POSIX_NEG negative POSIX class item (ditto)
|
||||||
|
|
||||||
|
The following are followed by a length element, then a number of character code
|
||||||
|
values (which should match with the length):
|
||||||
|
|
||||||
|
META_MARK (*MARK:xxxx)
|
||||||
|
META_COMMIT_ARG )*COMMIT:xxxx)
|
||||||
|
META_PRUNE_ARG (*PRUNE:xxx)
|
||||||
|
META_SKIP_ARG (*SKIP:xxxx)
|
||||||
|
META_THEN_ARG (*THEN:xxxx)
|
||||||
|
|
||||||
|
The following are followed by a length element, then an offset in the pattern
|
||||||
|
that identifies the name:
|
||||||
|
|
||||||
|
META_COND_NAME (?(<name>) or (?('name') or (?(name)
|
||||||
|
META_COND_RNAME (?(R&name)
|
||||||
|
META_COND_RNUMBER (?(Rdigits)
|
||||||
|
META_RECURSE_BYNAME (?&name)
|
||||||
|
META_BACKREF_BYNAME \k'name' or \k<name> or \k{name} or \g{name}
|
||||||
|
META_SCS_NAME (*scs:(<name>)...)
|
||||||
|
|
||||||
|
META_COND_RNUMBER is used for names that start with R and continue with digits,
|
||||||
|
because this is an ambiguous case. It could be a back reference to a group with
|
||||||
|
that name, or it could be a recursion test on a numbered group.
|
||||||
|
|
||||||
|
These are followed by an offset, for use in error messages, then a number:
|
||||||
|
|
||||||
|
META_COND_NUMBER (?([+-]digits)
|
||||||
|
META_SCS_NUMBER (*scs:(digits)...)
|
||||||
|
|
||||||
|
The following is followed just by an offset, for use in error messages:
|
||||||
|
|
||||||
|
META_COND_DEFINE (?(DEFINE)
|
||||||
|
|
||||||
|
The following are at first also followed just by an offset for use in error
|
||||||
|
messages. After the lengths of the branches of a lookbehind group have been
|
||||||
|
checked the error offset is no longer needed. The lower 16 bits of the main
|
||||||
|
word are now set to the maximum length of the first branch of the lookbehind
|
||||||
|
group, and the second word is set to the minimum matching length for a
|
||||||
|
variable-length lookbehind group, or to LOOKBEHIND_MAX for a group whose
|
||||||
|
branches are all of fixed length. These values are used when generating
|
||||||
|
OP_REVERSE or OP_VREVERSE for the first branch. The miminum value is also used
|
||||||
|
for any subsequent branches because there is only room for one value (the
|
||||||
|
branch maximum length) in a META_ALT item.
|
||||||
|
|
||||||
|
META_LOOKBEHIND (?<= start of lookbehind
|
||||||
|
META_LOOKBEHIND_NA (*naplb: start of non-atomic lookbehind
|
||||||
|
META_LOOKBEHINDNOT (?<! start of negative lookbehind
|
||||||
|
|
||||||
|
The following are followed by two elements, the minimum and maximum. The
|
||||||
|
maximum value is limited to 65535 (MAX_REPEAT_COUNT). A maximum value of
|
||||||
|
"unlimited" is represented by REPEAT_UNLIMITED, which is bigger than it:
|
||||||
|
|
||||||
|
META_MINMAX {n,m} repeat
|
||||||
|
META_MINMAX_PLUS {n,m}+ repeat
|
||||||
|
META_MINMAX_QUERY {n,m}? repeat
|
||||||
|
|
||||||
|
This one is followed by two elements, giving the new option settings for the
|
||||||
|
main and extra options, respectively.
|
||||||
|
|
||||||
|
META_OPTIONS (?i) and friends
|
||||||
|
|
||||||
|
This one is followed by three elements. The first is 0 for '>' and 1 for '>=';
|
||||||
|
the next two are the major and minor numbers:
|
||||||
|
|
||||||
|
META_COND_VERSION (?(VERSION<op>x.y)
|
||||||
|
|
||||||
|
Callouts are converted into one of two items:
|
||||||
|
|
||||||
|
META_CALLOUT_NUMBER (?C with numerical argument
|
||||||
|
META_CALLOUT_STRING (?C with string argument
|
||||||
|
|
||||||
|
In both cases, the next two elements contain the offset and length of the next
|
||||||
|
item in the pattern. Then there is either one callout number, or a length and
|
||||||
|
an offset for the string argument. The length includes both delimiters.
|
||||||
|
|
||||||
|
|
||||||
|
Traditional matching function
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
The "traditional", and original, matching function is called pcre2_match(), and
|
||||||
|
it implements an NFA algorithm, similar to the original Henry Spencer algorithm
|
||||||
|
and the way that Perl works. This is not surprising, since it is intended to be
|
||||||
|
as compatible with Perl as possible. This is the function most users of PCRE2
|
||||||
|
will use most of the time. If PCRE2 is compiled with just-in-time (JIT)
|
||||||
|
support, and studying a compiled pattern with JIT is successful, the JIT code
|
||||||
|
is run instead of the normal pcre2_match() code, but the result is the same.
|
||||||
|
|
||||||
|
The interpreter used to implement backtracking by means of recursive function
|
||||||
|
calls, but this gave rise to regular complaints when patterns with large search
|
||||||
|
trees ran out of stack. There was for a while a fudge that used the heap
|
||||||
|
instead, but this was inefficient and slow. In 2017 I re-wrote pcre2_match() as
|
||||||
|
a single, non-recursive function that implements backtracking via a vector of
|
||||||
|
"frames" on the heap, each frame representing a backtracking point. As well as
|
||||||
|
standard information such as the position in the pattern and position in the
|
||||||
|
subject, each frame has a number of unassigned variables that can be used
|
||||||
|
locally to preserve values at a backtracking point. C macros are used
|
||||||
|
extensively to implement all of this.
|
||||||
|
|
||||||
|
|
||||||
|
Supplementary matching function
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
There is a supplementary matching function called pcre2_dfa_match() that
|
||||||
|
implements a DFA matching algorithm that searches simultaneously for all
|
||||||
|
possible matches that start at one point in the subject string. (Going back to
|
||||||
|
my roots: see Historical Note 1 above.) This function intreprets the same
|
||||||
|
compiled pattern data as pcre2_match(); however, not all the facilities are
|
||||||
|
available, and those that are do not always work in quite the same way. In
|
||||||
|
particular, capturing parentheses and backreferences are not supported. See the
|
||||||
|
user documentation for details.
|
||||||
|
|
||||||
|
The algorithm that is used for pcre2_dfa_match() is not a traditional FSM,
|
||||||
|
because it may have a number of states active at one time. More work would be
|
||||||
|
needed at compile time to produce a traditional FSM where only one state is
|
||||||
|
ever active at once. I believe some other regex matchers work this way. JIT
|
||||||
|
support is not available for this kind of matching.
|
||||||
|
|
||||||
|
|
||||||
|
Changeable options
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The /i, /m, or /s options (PCRE2_CASELESS, PCRE2_MULTILINE, PCRE2_DOTALL) and
|
||||||
|
some others may be changed in the middle of patterns by items such as (?i).
|
||||||
|
Their processing is handled entirely at compile time by generating different
|
||||||
|
opcodes for the different settings. Some options are copied into the opcode's
|
||||||
|
data, for opcodes such as OP_REFI which depends on the (?r)
|
||||||
|
(PCRE2_EXTRA_CASELESS_RESTRICT) option. The runtime functions do not need to
|
||||||
|
keep track of an option's state.
|
||||||
|
|
||||||
|
PCRE2_DUPNAMES, PCRE2_EXTENDED, PCRE2_EXTENDED_MORE, and PCRE2_NO_AUTO_CAPTURE
|
||||||
|
are tracked and processed during the parsing pre-pass. The others are handled
|
||||||
|
from META_OPTIONS items during the main compile phase.
|
||||||
|
|
||||||
|
|
||||||
|
Format of compiled patterns
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The compiled form of a pattern is a vector of unsigned code units (bytes in
|
||||||
|
8-bit mode, shorts in 16-bit mode, 32-bit words in 32-bit mode), containing
|
||||||
|
items of variable length. The first code unit in an item contains an opcode,
|
||||||
|
and the length of the item is either implicit in the opcode or contained in the
|
||||||
|
data that follows it.
|
||||||
|
|
||||||
|
In many cases listed below, LINK_SIZE data values are specified for offsets
|
||||||
|
within the compiled pattern. LINK_SIZE always specifies a number of bytes. The
|
||||||
|
default value for LINK_SIZE is 2, except for the 32-bit library, where it can
|
||||||
|
only be 4. The 8-bit library can be compiled to use 3-byte or 4-byte values,
|
||||||
|
and the 16-bit library can be compiled to use 4-byte values, though this
|
||||||
|
impairs performance. Specifying a LINK_SIZE larger than 2 for these libraries
|
||||||
|
is necessary only when patterns whose compiled length is greater than 65535
|
||||||
|
code units are going to be processed. When a LINK_SIZE value uses more than one
|
||||||
|
code unit, the most significant unit is first.
|
||||||
|
|
||||||
|
In this description, we assume the "normal" compilation options. Data values
|
||||||
|
that are counts (e.g. quantifiers) are always two bytes long in 8-bit mode
|
||||||
|
(most significant byte first), and one code unit in 16-bit and 32-bit modes.
|
||||||
|
|
||||||
|
|
||||||
|
Opcodes with no following data
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
These items are all just one code unit long:
|
||||||
|
|
||||||
|
OP_END end of pattern
|
||||||
|
OP_ANY match any one character other than newline
|
||||||
|
OP_ALLANY match any one character, including newline
|
||||||
|
OP_ANYBYTE match any single code unit, even in UTF-8/16 mode
|
||||||
|
OP_SOD match start of data: \A
|
||||||
|
OP_SOM, start of match (subject + offset): \G
|
||||||
|
OP_SET_SOM, set start of match (\K)
|
||||||
|
OP_CIRC ^ (start of data)
|
||||||
|
OP_CIRCM ^ multiline mode (start of data or after newline)
|
||||||
|
OP_NOT_WORD_BOUNDARY \W
|
||||||
|
OP_WORD_BOUNDARY \w
|
||||||
|
OP_NOT_DIGIT \D
|
||||||
|
OP_DIGIT \d
|
||||||
|
OP_NOT_HSPACE \H
|
||||||
|
OP_HSPACE \h
|
||||||
|
OP_NOT_WHITESPACE \S
|
||||||
|
OP_WHITESPACE \s
|
||||||
|
OP_NOT_VSPACE \V
|
||||||
|
OP_VSPACE \v
|
||||||
|
OP_NOT_WORDCHAR \W
|
||||||
|
OP_WORDCHAR \w
|
||||||
|
OP_EODN match end of data or newline at end: \Z
|
||||||
|
OP_EOD match end of data: \z
|
||||||
|
OP_DOLL $ (end of data, or before final newline)
|
||||||
|
OP_DOLLM $ multiline mode (end of data or before newline)
|
||||||
|
OP_EXTUNI match an extended Unicode grapheme cluster
|
||||||
|
OP_ANYNL match any Unicode newline sequence
|
||||||
|
|
||||||
|
OP_ASSERT_ACCEPT )
|
||||||
|
OP_ACCEPT ) These are Perl 5.10's "backtracking control
|
||||||
|
OP_COMMIT ) verbs". If OP_ACCEPT is inside capturing
|
||||||
|
OP_FAIL ) parentheses, it may be preceded by one or more
|
||||||
|
OP_PRUNE ) OP_CLOSE, each followed by a number that
|
||||||
|
OP_SKIP ) indicates which parentheses must be closed.
|
||||||
|
OP_THEN )
|
||||||
|
|
||||||
|
OP_ASSERT_ACCEPT is used when (*ACCEPT) is encountered within an assertion.
|
||||||
|
This ends the assertion, not the entire pattern match. The assertion (?!) is
|
||||||
|
always optimized to OP_FAIL.
|
||||||
|
|
||||||
|
OP_ALLANY is used for '.' when PCRE2_DOTALL is set. It is also used for \C in
|
||||||
|
non-UTF modes and in UTF-32 mode (since one code unit still equals one
|
||||||
|
character). Another use is for [^] when empty classes are permitted
|
||||||
|
(PCRE2_ALLOW_EMPTY_CLASS is set).
|
||||||
|
|
||||||
|
|
||||||
|
Backtracking control verbs
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Verbs with no arguments generate opcodes with no following data (as listed
|
||||||
|
in the section above).
|
||||||
|
|
||||||
|
(*MARK:NAME) generates OP_MARK followed by the mark name, preceded by a
|
||||||
|
length in one code unit, and followed by a binary zero. The name length is
|
||||||
|
limited by the size of the code unit.
|
||||||
|
|
||||||
|
(*ACCEPT:NAME) and (*FAIL:NAME) are compiled as (*MARK:NAME)(*ACCEPT) and
|
||||||
|
(*MARK:NAME)(*FAIL) respectively.
|
||||||
|
|
||||||
|
For (*COMMIT:NAME), (*PRUNE:NAME), (*SKIP:NAME), and (*THEN:NAME), the opcodes
|
||||||
|
OP_COMMIT_ARG, OP_PRUNE_ARG, OP_SKIP_ARG, and OP_THEN_ARG are used, with the
|
||||||
|
name following in the same format as for OP_MARK.
|
||||||
|
|
||||||
|
|
||||||
|
Matching literal characters
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The OP_CHAR opcode is followed by a single character that is to be matched
|
||||||
|
casefully. For caseless matching of characters that have at most two
|
||||||
|
case-equivalent code points, OP_CHARI is used. In UTF-8 or UTF-16 modes, the
|
||||||
|
character may be more than one code unit long. In UTF-32 mode, characters are
|
||||||
|
always exactly one code unit long.
|
||||||
|
|
||||||
|
If there is only one character in a character class, OP_CHAR or OP_CHARI is
|
||||||
|
used for a positive class, and OP_NOT or OP_NOTI for a negative one (that is,
|
||||||
|
for something like [^a]).
|
||||||
|
|
||||||
|
Caseless matching (positive or negative) of characters that have more than two
|
||||||
|
case-equivalent code points (which is possible only in UTF mode) is handled by
|
||||||
|
compiling a Unicode property item (see below), with the pseudo-property
|
||||||
|
PT_CLIST. The value of this property is an offset in a vector called
|
||||||
|
"ucd_caseless_sets" which identifies the start of a short list of case
|
||||||
|
equivalent characters, terminated by the value NOTACHAR (0xffffffff).
|
||||||
|
|
||||||
|
|
||||||
|
Repeating single characters
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
The common repeats (*, +, ?), when applied to a single character, use the
|
||||||
|
following opcodes, which come in caseful and caseless versions:
|
||||||
|
|
||||||
|
Caseful Caseless
|
||||||
|
OP_STAR OP_STARI
|
||||||
|
OP_MINSTAR OP_MINSTARI
|
||||||
|
OP_POSSTAR OP_POSSTARI
|
||||||
|
OP_PLUS OP_PLUSI
|
||||||
|
OP_MINPLUS OP_MINPLUSI
|
||||||
|
OP_POSPLUS OP_POSPLUSI
|
||||||
|
OP_QUERY OP_QUERYI
|
||||||
|
OP_MINQUERY OP_MINQUERYI
|
||||||
|
OP_POSQUERY OP_POSQUERYI
|
||||||
|
|
||||||
|
Each opcode is followed by the character that is to be repeated. In ASCII or
|
||||||
|
UTF-32 modes, these are two-code-unit items; in UTF-8 or UTF-16 modes, the
|
||||||
|
length is variable. Those with "MIN" in their names are the minimizing
|
||||||
|
versions. Those with "POS" in their names are possessive versions. Other kinds
|
||||||
|
of repeat make use of these opcodes:
|
||||||
|
|
||||||
|
Caseful Caseless
|
||||||
|
OP_UPTO OP_UPTOI
|
||||||
|
OP_MINUPTO OP_MINUPTOI
|
||||||
|
OP_POSUPTO OP_POSUPTOI
|
||||||
|
OP_EXACT OP_EXACTI
|
||||||
|
|
||||||
|
Each of these is followed by a count and then the repeated character. The count
|
||||||
|
is two bytes long in 8-bit mode (most significant byte first), or one code unit
|
||||||
|
in 16-bit and 32-bit modes.
|
||||||
|
|
||||||
|
OP_UPTO matches from 0 to the given number. A repeat with a non-zero minimum
|
||||||
|
and a fixed maximum is coded as an OP_EXACT followed by an OP_UPTO (or
|
||||||
|
OP_MINUPTO or OPT_POSUPTO).
|
||||||
|
|
||||||
|
Another set of matching repeating opcodes (called OP_NOTSTAR, OP_NOTSTARI,
|
||||||
|
etc.) are used for repeated, negated, single-character classes such as [^a]*.
|
||||||
|
The normal single-character opcodes (OP_STAR, etc.) are used for repeated
|
||||||
|
positive single-character classes.
|
||||||
|
|
||||||
|
|
||||||
|
Repeating character types
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Repeats of things like \d are done exactly as for single characters, except
|
||||||
|
that instead of a character, the opcode for the type (e.g. OP_DIGIT) is stored
|
||||||
|
in the next code unit. The opcodes are:
|
||||||
|
|
||||||
|
OP_TYPESTAR
|
||||||
|
OP_TYPEMINSTAR
|
||||||
|
OP_TYPEPOSSTAR
|
||||||
|
OP_TYPEPLUS
|
||||||
|
OP_TYPEMINPLUS
|
||||||
|
OP_TYPEPOSPLUS
|
||||||
|
OP_TYPEQUERY
|
||||||
|
OP_TYPEMINQUERY
|
||||||
|
OP_TYPEPOSQUERY
|
||||||
|
OP_TYPEUPTO
|
||||||
|
OP_TYPEMINUPTO
|
||||||
|
OP_TYPEPOSUPTO
|
||||||
|
OP_TYPEEXACT
|
||||||
|
|
||||||
|
|
||||||
|
Match by Unicode property
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
OP_PROP and OP_NOTPROP are used for positive and negative matches of a
|
||||||
|
character by testing its Unicode property (the \p and \P escape sequences).
|
||||||
|
Each is followed by two code units that encode the desired property as a type
|
||||||
|
and a value. The types are a set of #defines of the form PT_xxx, and the values
|
||||||
|
are enumerations of the form ucp_xx, defined in the pcre2_ucp.h source file.
|
||||||
|
The value is relevant only for PT_GC (General Category), PT_PC (Particular
|
||||||
|
Category), PT_SC (Script), PT_BIDICL (Bidi Class), PT_BOOL (Boolean property),
|
||||||
|
and the pseudo-property PT_CLIST, which is used to identify a list of
|
||||||
|
case-equivalent characters when there are three or more (see above).
|
||||||
|
|
||||||
|
Repeats of these items use the OP_TYPESTAR etc. set of opcodes, followed by
|
||||||
|
three code units: OP_PROP or OP_NOTPROP, and then the desired property type and
|
||||||
|
value.
|
||||||
|
|
||||||
|
|
||||||
|
Character classes
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
If there is only one character in a class, OP_CHAR or OP_CHARI is used for a
|
||||||
|
positive class, and OP_NOT or OP_NOTI for a negative one (that is, for
|
||||||
|
something like [^a]), except when caselessly matching a character that has more
|
||||||
|
than two case-equivalent code points (which can happen only in UTF mode). In
|
||||||
|
this case a Unicode property item is used, as described above in "Matching
|
||||||
|
literal characters".
|
||||||
|
|
||||||
|
A set of repeating opcodes (called OP_NOTSTAR etc.) are used for repeated,
|
||||||
|
negated, single-character classes. The normal single-character opcodes
|
||||||
|
(OP_STAR, etc.) are used for repeated positive single-character classes.
|
||||||
|
|
||||||
|
When there is more than one character in a class, and all the code points are
|
||||||
|
less than 256, OP_CLASS is used for a positive class, and OP_NCLASS for a
|
||||||
|
negative one. In either case, the opcode is followed by a 32-byte (16-short,
|
||||||
|
8-word) bit map containing a 1 bit for every character that is acceptable. The
|
||||||
|
bits are counted from the least significant end of each unit. In caseless mode,
|
||||||
|
bits for both cases are set.
|
||||||
|
|
||||||
|
The reason for having both OP_CLASS and OP_NCLASS is so that, in UTF-8 and
|
||||||
|
16-bit and 32-bit modes, subject characters with values greater than 255 can be
|
||||||
|
handled correctly. For OP_CLASS they do not match, whereas for OP_NCLASS they
|
||||||
|
do.
|
||||||
|
|
||||||
|
For classes containing characters with values greater than 255 or that contain
|
||||||
|
\p or \P, OP_XCLASS is used. It optionally uses a bit map if any acceptable
|
||||||
|
code points are less than 256. After the bit map, the properties of the
|
||||||
|
character class are listed, if they are present. The items in the list
|
||||||
|
follows the declaration order of the pattern string. The property list
|
||||||
|
is followed by single characters and/or character ranges, if they are
|
||||||
|
present. The characters/ranges are sorted in ascending order, and at
|
||||||
|
least one non-matching character must be present between any two of
|
||||||
|
them. In caseless mode, all equivalent characters are explicitly listed.
|
||||||
|
|
||||||
|
OP_XCLASS is followed by a LINK_SIZE value containing the total length of the
|
||||||
|
opcode and its data. This is followed by a code unit containing flag bits:
|
||||||
|
XCL_NOT indicates that this is a negative class, and XCL_MAP indicates that a
|
||||||
|
bit map is present. There follows the bit map, if XCL_MAP is set, and then a
|
||||||
|
sequence of items coded as follows:
|
||||||
|
|
||||||
|
XCL_END marks the end of the list
|
||||||
|
XCL_SINGLE one character follows
|
||||||
|
XCL_RANGE two characters follow
|
||||||
|
XCL_PROP a Unicode property (type, value) follows
|
||||||
|
XCL_NOTPROP a Unicode property (type, value) follows
|
||||||
|
|
||||||
|
If a range starts with a code point less than 256 and ends with one greater
|
||||||
|
than 255, it is split into two ranges, with characters less than 256 being
|
||||||
|
indicated in the bit map, and the rest with XCL_RANGE.
|
||||||
|
|
||||||
|
When XCL_NOT is set, the bit map, if present, contains bits for characters that
|
||||||
|
are allowed (exactly as for OP_NCLASS), but the list of items that follow it
|
||||||
|
specifies characters and properties that are not allowed.
|
||||||
|
|
||||||
|
The meaning of the bitmap indicated by XCL_MAP is that, if one is present, then
|
||||||
|
it fully describes which code points < 256 match the class (without needing to
|
||||||
|
invert the check according to XCL_NOT); the other items in the OP_XCLASS need
|
||||||
|
not be consulted. However, if a bitmap is not present, then code points < 256
|
||||||
|
may still match, so the other items in the OP_XCLASS must be consulted.
|
||||||
|
|
||||||
|
For classes containing logical expressions, such as "[\p{Greek} && \p{Lu}]" for
|
||||||
|
"uppercase Greek letters", OP_ECLASS is used. The expression is encoded as a a
|
||||||
|
stack-based series of operands and operators, in Reverse Polish Notation. Like
|
||||||
|
an OP_XCLASS, the OP_ECLASS is first followed by a LINK_SIZE value containing
|
||||||
|
the total length of the opcode and its data. That is followed by a code unit
|
||||||
|
containing flags: currently just ECL_MAP indicating that a bit map is present.
|
||||||
|
There follows the bit map, if ECL_MAP is set. Finally, there is a sequence of
|
||||||
|
items that are either an operand or operator. Each item starts with a single
|
||||||
|
code unit containing its type:
|
||||||
|
|
||||||
|
ECL_AND AND; no additional data
|
||||||
|
ECL_OR OR; no additional data
|
||||||
|
ECL_XOR XOR; no additional data
|
||||||
|
ECL_NOT NOT; no additional data
|
||||||
|
ECL_XCLASS The additional data which follows ECL_XCLASS is the same as for
|
||||||
|
an OP_XCLASS, except that this data is preceded by ECL_XCLASS
|
||||||
|
rather than OP_XCLASS.
|
||||||
|
Because the OP_ECLASS has its own bitmap (if required), an
|
||||||
|
ECL_XCLASS should not contain a bitmap.
|
||||||
|
|
||||||
|
Additionally, there are two intermediate values used during compilation, but
|
||||||
|
these are folded away during generation of the opcode, and so never appear
|
||||||
|
inside an OP_ECLASS at match time. They are:
|
||||||
|
|
||||||
|
ECL_ANY match all characters; no additional data
|
||||||
|
ECL_NONE match no characters; no additional data
|
||||||
|
|
||||||
|
The meaning of the bitmap indicated by ECL_MAP is the same as XCL_MAP.
|
||||||
|
If the bitmap is present, all codepoints < 256 are checked against the bitmap.
|
||||||
|
|
||||||
|
|
||||||
|
Back references
|
||||||
|
---------------
|
||||||
|
|
||||||
|
OP_REF (caseful) or OP_REFI (caseless) is followed by a count containing the
|
||||||
|
reference number when the reference is to a unique capturing group (either by
|
||||||
|
number or by name). When named groups are used, there may be more than one
|
||||||
|
group with the same name. In this case, a reference to such a group by name
|
||||||
|
generates OP_DNREF or OP_DNREFI. These are followed by two counts: the index
|
||||||
|
(not the byte offset) in the group name table of the first entry for the
|
||||||
|
required name, followed by the number of groups with the same name. The
|
||||||
|
matching code can then search for the first one that is set.
|
||||||
|
|
||||||
|
OP_REFI and OP_DNREFI are further followed by an item containing any
|
||||||
|
case-insensitivity flags.
|
||||||
|
|
||||||
|
|
||||||
|
Repeating character classes and back references
|
||||||
|
-----------------------------------------------
|
||||||
|
|
||||||
|
Single-character classes are handled specially (see above). This section
|
||||||
|
applies to other classes and also to back references. In both cases, the repeat
|
||||||
|
information follows the base item. The matching code looks at the following
|
||||||
|
opcode to see if it is one of these:
|
||||||
|
|
||||||
|
OP_CRSTAR
|
||||||
|
OP_CRMINSTAR
|
||||||
|
OP_CRPOSSTAR
|
||||||
|
OP_CRPLUS
|
||||||
|
OP_CRMINPLUS
|
||||||
|
OP_CRPOSPLUS
|
||||||
|
OP_CRQUERY
|
||||||
|
OP_CRMINQUERY
|
||||||
|
OP_CRPOSQUERY
|
||||||
|
OP_CRRANGE
|
||||||
|
OP_CRMINRANGE
|
||||||
|
OP_CRPOSRANGE
|
||||||
|
|
||||||
|
All but the last three are single-code-unit items, with no data. The range
|
||||||
|
opcodes are followed by the minimum and maximum repeat counts.
|
||||||
|
|
||||||
|
|
||||||
|
Brackets and alternation
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
A pair of non-capturing round brackets is wrapped round each expression at
|
||||||
|
compile time, so alternation always happens in the context of brackets.
|
||||||
|
|
||||||
|
[Note for North Americans: "bracket" to some English speakers, including
|
||||||
|
myself, can be round, square, curly, or pointy. Hence this usage rather than
|
||||||
|
"parentheses".]
|
||||||
|
|
||||||
|
Non-capturing brackets use the opcode OP_BRA, capturing brackets use OP_CBRA. A
|
||||||
|
bracket opcode is followed by a LINK_SIZE value which gives the offset to the
|
||||||
|
next alternative OP_ALT or, if there aren't any branches, to the terminating
|
||||||
|
opcode. Each OP_ALT is followed by a LINK_SIZE value giving the offset to the
|
||||||
|
next one, or to the final opcode. For capturing brackets, the bracket number is
|
||||||
|
a count that immediately follows the offset.
|
||||||
|
|
||||||
|
There are several opcodes that mark the end of a subpattern group. OP_KET is
|
||||||
|
used for subpatterns that do not repeat indefinitely, OP_KETRMIN and
|
||||||
|
OP_KETRMAX are used for indefinite repetitions, minimally or maximally
|
||||||
|
respectively, and OP_KETRPOS for possessive repetitions (see below for more
|
||||||
|
details). All four are followed by a LINK_SIZE value giving (as a positive
|
||||||
|
number) the offset back to the matching opening bracket opcode.
|
||||||
|
|
||||||
|
If a subpattern is quantified such that it is permitted to match zero times, it
|
||||||
|
is preceded by one of OP_BRAZERO, OP_BRAMINZERO, or OP_SKIPZERO. These are
|
||||||
|
single-unit opcodes that tell the matcher that skipping the following
|
||||||
|
subpattern entirely is a valid match. In the case of the first two, not
|
||||||
|
skipping the pattern is also valid (greedy and non-greedy). The third is used
|
||||||
|
when a pattern has the quantifier {0,0}. It cannot be entirely discarded,
|
||||||
|
because it may be called as a subroutine from elsewhere in the pattern.
|
||||||
|
|
||||||
|
A subpattern with an indefinite maximum repetition is replicated in the
|
||||||
|
compiled data its minimum number of times (or once with OP_BRAZERO if the
|
||||||
|
minimum is zero), with the final copy terminating with OP_KETRMIN or OP_KETRMAX
|
||||||
|
as appropriate.
|
||||||
|
|
||||||
|
A subpattern with a bounded maximum repetition is replicated in a nested
|
||||||
|
fashion up to the maximum number of times, with OP_BRAZERO or OP_BRAMINZERO
|
||||||
|
before each replication after the minimum, so that, for example, (abc){2,5} is
|
||||||
|
compiled as (abc)(abc)((abc)((abc)(abc)?)?)?, except that each bracketed group
|
||||||
|
has the same number.
|
||||||
|
|
||||||
|
When a repeated subpattern has an unbounded upper limit, it is checked to see
|
||||||
|
whether it could match an empty string. If this is the case, the opcode in the
|
||||||
|
final replication is changed to OP_SBRA or OP_SCBRA. This tells the matcher
|
||||||
|
that it needs to check for matching an empty string when it hits OP_KETRMIN or
|
||||||
|
OP_KETRMAX, and if so, to break the loop.
|
||||||
|
|
||||||
|
|
||||||
|
Possessive brackets
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
When a repeated group (capturing or non-capturing) is marked as possessive by
|
||||||
|
the "+" notation, e.g. (abc)++, different opcodes are used. Their names all
|
||||||
|
have POS on the end, e.g. OP_BRAPOS instead of OP_BRA and OP_SCBRAPOS instead
|
||||||
|
of OP_SCBRA. The end of such a group is marked by OP_KETRPOS. If the minimum
|
||||||
|
repetition is zero, the group is preceded by OP_BRAPOSZERO.
|
||||||
|
|
||||||
|
|
||||||
|
Once-only (atomic) groups
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
These are just like other subpatterns, but they start with the opcode OP_ONCE.
|
||||||
|
The check for matching an empty string in an unbounded repeat is handled
|
||||||
|
entirely at runtime, so there is just this one opcode for atomic groups.
|
||||||
|
|
||||||
|
|
||||||
|
Assertions
|
||||||
|
----------
|
||||||
|
|
||||||
|
Forward assertions are also just like other subpatterns, but starting with one
|
||||||
|
of the opcodes OP_ASSERT, OP_ASSERT_NA (non-atomic assertion), or
|
||||||
|
OP_ASSERT_NOT.
|
||||||
|
|
||||||
|
Backward assertions use the opcodes OP_ASSERTBACK, OP_ASSERTBACK_NA, and
|
||||||
|
OP_ASSERTBACK_NOT. If all the branches of a backward assertion are of fixed
|
||||||
|
length (not necessarily the same), the first opcode inside each branch is
|
||||||
|
OP_REVERSE, followed by an IMM2_SIZE count of the number of characters to move
|
||||||
|
back the pointer in the subject string, thus allowing each branch to have a
|
||||||
|
different (but fixed) length.
|
||||||
|
|
||||||
|
Variable-length backward assertions whose maximum matching length is limited
|
||||||
|
are also supported. For such assertions, the first opcode inside each branch is
|
||||||
|
OP_VREVERSE, followed by the minimum and maximum lengths for that branch,
|
||||||
|
unless these happen to be equal, in which case OP_REVERSE is used. These
|
||||||
|
IMM2_SIZE values occupy two code units each in 8-bit mode, and 1 code unit in
|
||||||
|
16/32 bit modes.
|
||||||
|
|
||||||
|
In ASCII or UTF-32 mode, the character counts in OP_REVERSE and OP_VREVERSE are
|
||||||
|
also the number of code units, but in UTF-8/16 mode each character may occupy
|
||||||
|
more than one code unit.
|
||||||
|
|
||||||
|
The "scan substring" assertion compiles as OP_ASSERT_SCS. This opcode is
|
||||||
|
followed by a list of arguments. Each argument is either an OP_CREF or
|
||||||
|
OP_DNCREF byte code sequence. The details of these sequences are described
|
||||||
|
in the next section.
|
||||||
|
|
||||||
|
For example (*scs:(1,'NAME')...PATTERN...) is translated to:
|
||||||
|
[OP_ASSERT_SCS] [OP_CREF] [OP_CREF] ...PATTERN... [OP_KET]
|
||||||
|
|
||||||
|
If 'NAME' is a duplicated name, the second [OP_CREF] is [OP_DNCREF] instead.
|
||||||
|
|
||||||
|
|
||||||
|
Conditional subpatterns
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
These are like other subpatterns, but they start with the opcode OP_COND, or
|
||||||
|
OP_SCOND for one that might match an empty string in an unbounded repeat.
|
||||||
|
|
||||||
|
If the condition is a back reference, this is stored at the start of the
|
||||||
|
subpattern using the opcode OP_CREF followed by a count containing the
|
||||||
|
reference number, provided that the reference is to a unique capturing group.
|
||||||
|
If the reference was by name and there is more than one group with that name,
|
||||||
|
OP_DNCREF is used instead. It is followed by two counts: the index in the group
|
||||||
|
names table, and the number of groups with the same name. The allows the
|
||||||
|
matcher to check if any group with the given name is set.
|
||||||
|
|
||||||
|
If the condition is "in recursion" (coded as "(?(R)"), or "in recursion of
|
||||||
|
group x" (coded as "(?(Rx)"), the group number is stored at the start of the
|
||||||
|
subpattern using the opcode OP_RREF (with a value of RREF_ANY (0xffff) for "the
|
||||||
|
whole pattern") or OP_DNRREF (with data as for OP_DNCREF).
|
||||||
|
|
||||||
|
For a DEFINE condition, OP_FALSE is used (with no associated data). During
|
||||||
|
compilation, however, a DEFINE condition is coded as OP_DEFINE so that, when
|
||||||
|
the conditional group is complete, there can be a check to ensure that it
|
||||||
|
contains only one top-level branch. Once this has happened, the opcode is
|
||||||
|
changed to OP_FALSE, so the matcher never sees OP_DEFINE.
|
||||||
|
|
||||||
|
There is a special PCRE2-specific condition of the form (VERSION[>]=x.y), which
|
||||||
|
tests the PCRE2 version number. This compiles into one of the opcodes OP_TRUE
|
||||||
|
or OP_FALSE.
|
||||||
|
|
||||||
|
If a condition is not a back reference, recursion test, DEFINE, or VERSION, it
|
||||||
|
must start with a parenthesized atomic assertion, whose opcode normally
|
||||||
|
immediately follows OP_COND or OP_SCOND. However, if automatic callouts are
|
||||||
|
enabled, a callout is inserted immediately before the assertion. It is also
|
||||||
|
possible to insert a manual callout at this point. Only assertion conditions
|
||||||
|
may have callouts preceding the condition.
|
||||||
|
|
||||||
|
A condition that is the negative assertion (?!) is optimized to OP_FAIL in all
|
||||||
|
parts of the pattern, so this is another opcode that may appear as a condition.
|
||||||
|
It is treated the same as OP_FALSE.
|
||||||
|
|
||||||
|
|
||||||
|
Recursion
|
||||||
|
---------
|
||||||
|
|
||||||
|
Recursion either matches the current pattern, or some subexpression. The opcode
|
||||||
|
OP_RECURSE is followed by a LINK_SIZE value that is the offset to the starting
|
||||||
|
bracket from the start of the whole pattern. OP_RECURSE is also used for
|
||||||
|
"subroutine" calls, even though they are not strictly a recursion. Up till
|
||||||
|
release 10.30 recursions were treated as atomic groups, making them
|
||||||
|
incompatible with Perl (but PCRE had them well before Perl did). From 10.30,
|
||||||
|
backtracking into recursions is supported.
|
||||||
|
|
||||||
|
Repeated recursions used to be wrapped inside OP_ONCE brackets, which not only
|
||||||
|
forced no backtracking, but also allowed repetition to be handled as for other
|
||||||
|
bracketed groups. From 10.30 onwards, repeated recursions are duplicated for
|
||||||
|
their minimum repetitions, and then wrapped in non-capturing brackets for the
|
||||||
|
remainder. For example, (?1){3} is treated as (?1)(?1)(?1), and (?1){2,4} is
|
||||||
|
treated as (?1)(?1)(?:(?1)){0,2}.
|
||||||
|
|
||||||
|
|
||||||
|
Callouts
|
||||||
|
--------
|
||||||
|
|
||||||
|
A callout may have either a numerical argument or a string argument. These use
|
||||||
|
OP_CALLOUT or OP_CALLOUT_STR, respectively. In each case these are followed by
|
||||||
|
two LINK_SIZE values giving the offset in the pattern string to the start of
|
||||||
|
the following item, and another count giving the length of this item. These
|
||||||
|
values make it possible for pcre2test to output useful tracing information
|
||||||
|
using callouts.
|
||||||
|
|
||||||
|
In the case of a numeric callout, after these two values there is a single code
|
||||||
|
unit containing the callout number, in the range 0-255, with 255 being used for
|
||||||
|
callouts that are automatically inserted as a result of the PCRE2_AUTO_CALLOUT
|
||||||
|
option. Thus, this opcode item is of fixed length:
|
||||||
|
|
||||||
|
[OP_CALLOUT] [PATTERN_OFFSET] [PATTERN_LENGTH] [NUMBER]
|
||||||
|
|
||||||
|
For callouts with string arguments, OP_CALLOUT_STR has three more data items:
|
||||||
|
a LINK_SIZE value giving the complete length of the entire opcode item, a
|
||||||
|
LINK_SIZE item containing the offset within the pattern string to the start of
|
||||||
|
the string argument, and the string itself, preceded by its starting delimiter
|
||||||
|
and followed by a binary zero. When a callout function is called, a pointer to
|
||||||
|
the actual string is passed, but the delimiter can be accessed as string[-1] if
|
||||||
|
the application needs it. In the 8-bit library, the callout in /X(?C'abc')Y/ is
|
||||||
|
compiled as the following bytes (decimal numbers represent binary values):
|
||||||
|
|
||||||
|
[OP_CALLOUT_STR] [0] [10] [0] [1] [0] [14] [0] [5] ['] [a] [b] [c] [0]
|
||||||
|
-------- ------- -------- -------
|
||||||
|
| | | |
|
||||||
|
------- LINK_SIZE items ------
|
||||||
|
|
||||||
|
Opcode table checking
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
The last opcode that is defined in pcre2_internal.h is OP_TABLE_LENGTH. This is
|
||||||
|
not a real opcode, but is used to check at compile time that tables indexed by
|
||||||
|
opcode are the correct length, in order to catch updating errors.
|
||||||
|
|
||||||
|
|
||||||
|
See also
|
||||||
|
--------
|
||||||
|
|
||||||
|
The file maint/README contains additional information.
|
||||||
|
|
||||||
|
|
||||||
|
Philip Hazel
|
||||||
|
August 2024
|
||||||
368
3rd/pcre2/INSTALL
Normal file
368
3rd/pcre2/INSTALL
Normal file
@@ -0,0 +1,368 @@
|
|||||||
|
Installation Instructions
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Copyright (C) 1994-1996, 1999-2002, 2004-2017, 2020-2021 Free
|
||||||
|
Software Foundation, Inc.
|
||||||
|
|
||||||
|
Copying and distribution of this file, with or without modification,
|
||||||
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
notice and this notice are preserved. This file is offered as-is,
|
||||||
|
without warranty of any kind.
|
||||||
|
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
Briefly, the shell command './configure && make && make install'
|
||||||
|
should configure, build, and install this package. The following
|
||||||
|
more-detailed instructions are generic; see the 'README' file for
|
||||||
|
instructions specific to this package. Some packages provide this
|
||||||
|
'INSTALL' file but do not implement all of the features documented
|
||||||
|
below. The lack of an optional feature in a given package is not
|
||||||
|
necessarily a bug. More recommendations for GNU packages can be found
|
||||||
|
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||||
|
|
||||||
|
The 'configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a 'Makefile' in each directory of the package.
|
||||||
|
It may also create one or more '.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script 'config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, and a
|
||||||
|
file 'config.log' containing compiler output (useful mainly for
|
||||||
|
debugging 'configure').
|
||||||
|
|
||||||
|
It can also use an optional file (typically called 'config.cache' and
|
||||||
|
enabled with '--cache-file=config.cache' or simply '-C') that saves the
|
||||||
|
results of its tests to speed up reconfiguring. Caching is disabled by
|
||||||
|
default to prevent problems with accidental use of stale cache files.
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how 'configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the 'README' so they can
|
||||||
|
be considered for the next release. If you are using the cache, and at
|
||||||
|
some point 'config.cache' contains results you don't want to keep, you
|
||||||
|
may remove or edit it.
|
||||||
|
|
||||||
|
The file 'configure.ac' (or 'configure.in') is used to create
|
||||||
|
'configure' by a program called 'autoconf'. You need 'configure.ac' if
|
||||||
|
you want to change it or regenerate 'configure' using a newer version of
|
||||||
|
'autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. 'cd' to the directory containing the package's source code and type
|
||||||
|
'./configure' to configure the package for your system.
|
||||||
|
|
||||||
|
Running 'configure' might take a while. While running, it prints
|
||||||
|
some messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type 'make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type 'make check' to run any self-tests that come with
|
||||||
|
the package, generally using the just-built uninstalled binaries.
|
||||||
|
|
||||||
|
4. Type 'make install' to install the programs and any data files and
|
||||||
|
documentation. When installing into a prefix owned by root, it is
|
||||||
|
recommended that the package be configured and built as a regular
|
||||||
|
user, and only the 'make install' phase executed with root
|
||||||
|
privileges.
|
||||||
|
|
||||||
|
5. Optionally, type 'make installcheck' to repeat any self-tests, but
|
||||||
|
this time using the binaries in their final installed location.
|
||||||
|
This target does not install anything. Running this target as a
|
||||||
|
regular user, particularly if the prior 'make install' required
|
||||||
|
root privileges, verifies that the installation completed
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
6. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing 'make clean'. To also remove the
|
||||||
|
files that 'configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type 'make distclean'. There is
|
||||||
|
also a 'make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
7. Often, you can also type 'make uninstall' to remove the installed
|
||||||
|
files again. In practice, not all packages have tested that
|
||||||
|
uninstallation works correctly, even though it is required by the
|
||||||
|
GNU Coding Standards.
|
||||||
|
|
||||||
|
8. Some packages, particularly those that use Automake, provide 'make
|
||||||
|
distcheck', which can by used by developers to test that all other
|
||||||
|
targets like 'make install' and 'make uninstall' work correctly.
|
||||||
|
This target is generally not run by end users.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the 'configure' script does not know about. Run './configure --help'
|
||||||
|
for details on some of the pertinent environment variables.
|
||||||
|
|
||||||
|
You can give 'configure' initial values for configuration parameters
|
||||||
|
by setting variables in the command line or in the environment. Here is
|
||||||
|
an example:
|
||||||
|
|
||||||
|
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||||
|
|
||||||
|
*Note Defining Variables::, for more details.
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you can use GNU 'make'. 'cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the 'configure' script. 'configure' automatically checks for the source
|
||||||
|
code in the directory that 'configure' is in and in '..'. This is known
|
||||||
|
as a "VPATH" build.
|
||||||
|
|
||||||
|
With a non-GNU 'make', it is safer to compile the package for one
|
||||||
|
architecture at a time in the source code directory. After you have
|
||||||
|
installed the package for one architecture, use 'make distclean' before
|
||||||
|
reconfiguring for another architecture.
|
||||||
|
|
||||||
|
On MacOS X 10.5 and later systems, you can create libraries and
|
||||||
|
executables that work on multiple system types--known as "fat" or
|
||||||
|
"universal" binaries--by specifying multiple '-arch' options to the
|
||||||
|
compiler but only a single '-arch' option to the preprocessor. Like
|
||||||
|
this:
|
||||||
|
|
||||||
|
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||||
|
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||||
|
CPP="gcc -E" CXXCPP="g++ -E"
|
||||||
|
|
||||||
|
This is not guaranteed to produce working output in all cases, you
|
||||||
|
may have to build one architecture at a time and combine the results
|
||||||
|
using the 'lipo' tool if you have problems.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, 'make install' installs the package's commands under
|
||||||
|
'/usr/local/bin', include files under '/usr/local/include', etc. You
|
||||||
|
can specify an installation prefix other than '/usr/local' by giving
|
||||||
|
'configure' the option '--prefix=PREFIX', where PREFIX must be an
|
||||||
|
absolute file name.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
|
||||||
|
PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like '--bindir=DIR' to specify different values for particular
|
||||||
|
kinds of files. Run 'configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them. In general, the default
|
||||||
|
for these options is expressed in terms of '${prefix}', so that
|
||||||
|
specifying just '--prefix' will affect all of the other directory
|
||||||
|
specifications that were not explicitly provided.
|
||||||
|
|
||||||
|
The most portable way to affect installation locations is to pass the
|
||||||
|
correct locations to 'configure'; however, many packages provide one or
|
||||||
|
both of the following shortcuts of passing variable assignments to the
|
||||||
|
'make install' command line to change installation locations without
|
||||||
|
having to reconfigure or recompile.
|
||||||
|
|
||||||
|
The first method involves providing an override variable for each
|
||||||
|
affected directory. For example, 'make install
|
||||||
|
prefix=/alternate/directory' will choose an alternate location for all
|
||||||
|
directory configuration variables that were expressed in terms of
|
||||||
|
'${prefix}'. Any directories that were specified during 'configure',
|
||||||
|
but not in terms of '${prefix}', must each be overridden at install time
|
||||||
|
for the entire installation to be relocated. The approach of makefile
|
||||||
|
variable overrides for each directory variable is required by the GNU
|
||||||
|
Coding Standards, and ideally causes no recompilation. However, some
|
||||||
|
platforms have known limitations with the semantics of shared libraries
|
||||||
|
that end up requiring recompilation when using this method, particularly
|
||||||
|
noticeable in packages that use GNU Libtool.
|
||||||
|
|
||||||
|
The second method involves providing the 'DESTDIR' variable. For
|
||||||
|
example, 'make install DESTDIR=/alternate/directory' will prepend
|
||||||
|
'/alternate/directory' before all installation names. The approach of
|
||||||
|
'DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||||
|
does not work on platforms that have drive letters. On the other hand,
|
||||||
|
it does better at avoiding recompilation issues, and works well even
|
||||||
|
when some directory options were not specified in terms of '${prefix}'
|
||||||
|
at 'configure' time.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving 'configure' the
|
||||||
|
option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Some packages pay attention to '--enable-FEATURE' options to
|
||||||
|
'configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to '--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like 'gnu-as' or 'x' (for the X Window System). The
|
||||||
|
'README' should mention any '--enable-' and '--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, 'configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the 'configure' options '--x-includes=DIR' and
|
||||||
|
'--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Some packages offer the ability to configure how verbose the
|
||||||
|
execution of 'make' will be. For these packages, running './configure
|
||||||
|
--enable-silent-rules' sets the default to minimal output, which can be
|
||||||
|
overridden with 'make V=1'; while running './configure
|
||||||
|
--disable-silent-rules' sets the default to verbose, which can be
|
||||||
|
overridden with 'make V=0'.
|
||||||
|
|
||||||
|
Particular systems
|
||||||
|
==================
|
||||||
|
|
||||||
|
On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
|
||||||
|
is not installed, it is recommended to use the following options in
|
||||||
|
order to use an ANSI C compiler:
|
||||||
|
|
||||||
|
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||||
|
|
||||||
|
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||||
|
|
||||||
|
HP-UX 'make' updates targets which have the same timestamps as their
|
||||||
|
prerequisites, which makes it generally unusable when shipped generated
|
||||||
|
files such as 'configure' are involved. Use GNU 'make' instead.
|
||||||
|
|
||||||
|
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||||
|
parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
|
||||||
|
workaround. If GNU CC is not installed, it is therefore recommended to
|
||||||
|
try
|
||||||
|
|
||||||
|
./configure CC="cc"
|
||||||
|
|
||||||
|
and if that doesn't work, try
|
||||||
|
|
||||||
|
./configure CC="cc -nodtk"
|
||||||
|
|
||||||
|
On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
|
||||||
|
directory contains several dysfunctional programs; working variants of
|
||||||
|
these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
|
||||||
|
in your 'PATH', put it _after_ '/usr/bin'.
|
||||||
|
|
||||||
|
On Haiku, software installed for all users goes in '/boot/common',
|
||||||
|
not '/usr/local'. It is recommended to use the following options:
|
||||||
|
|
||||||
|
./configure --prefix=/boot/common
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features 'configure' cannot figure out
|
||||||
|
automatically, but needs to determine by the type of machine the package
|
||||||
|
will run on. Usually, assuming the package is built to be run on the
|
||||||
|
_same_ architectures, 'configure' can figure that out, but if it prints
|
||||||
|
a message saying it cannot guess the machine type, give it the
|
||||||
|
'--build=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as 'sun4', or a canonical name which has the form:
|
||||||
|
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
where SYSTEM can have one of these forms:
|
||||||
|
|
||||||
|
OS
|
||||||
|
KERNEL-OS
|
||||||
|
|
||||||
|
See the file 'config.sub' for the possible values of each field. If
|
||||||
|
'config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the machine type.
|
||||||
|
|
||||||
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
|
use the option '--target=TYPE' to select the type of system they will
|
||||||
|
produce code for.
|
||||||
|
|
||||||
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
platform different from the build platform, you should specify the
|
||||||
|
"host" platform (i.e., that on which the generated programs will
|
||||||
|
eventually be run) with '--host=TYPE'.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for 'configure' scripts to share,
|
||||||
|
you can create a site shell script called 'config.site' that gives
|
||||||
|
default values for variables like 'CC', 'cache_file', and 'prefix'.
|
||||||
|
'configure' looks for 'PREFIX/share/config.site' if it exists, then
|
||||||
|
'PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
'CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all 'configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Defining Variables
|
||||||
|
==================
|
||||||
|
|
||||||
|
Variables not defined in a site shell script can be set in the
|
||||||
|
environment passed to 'configure'. However, some packages may run
|
||||||
|
configure again during the build, and the customized values of these
|
||||||
|
variables may be lost. In order to avoid this problem, you should set
|
||||||
|
them in the 'configure' command line, using 'VAR=value'. For example:
|
||||||
|
|
||||||
|
./configure CC=/usr/local2/bin/gcc
|
||||||
|
|
||||||
|
causes the specified 'gcc' to be used as the C compiler (unless it is
|
||||||
|
overridden in the site shell script).
|
||||||
|
|
||||||
|
Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
|
||||||
|
Autoconf limitation. Until the limitation is lifted, you can use this
|
||||||
|
workaround:
|
||||||
|
|
||||||
|
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||||
|
|
||||||
|
'configure' Invocation
|
||||||
|
======================
|
||||||
|
|
||||||
|
'configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
'--help'
|
||||||
|
'-h'
|
||||||
|
Print a summary of all of the options to 'configure', and exit.
|
||||||
|
|
||||||
|
'--help=short'
|
||||||
|
'--help=recursive'
|
||||||
|
Print a summary of the options unique to this package's
|
||||||
|
'configure', and exit. The 'short' variant lists options used only
|
||||||
|
in the top level, while the 'recursive' variant lists options also
|
||||||
|
present in any nested packages.
|
||||||
|
|
||||||
|
'--version'
|
||||||
|
'-V'
|
||||||
|
Print the version of Autoconf used to generate the 'configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
'--cache-file=FILE'
|
||||||
|
Enable the cache: use and save the results of the tests in FILE,
|
||||||
|
traditionally 'config.cache'. FILE defaults to '/dev/null' to
|
||||||
|
disable caching.
|
||||||
|
|
||||||
|
'--config-cache'
|
||||||
|
'-C'
|
||||||
|
Alias for '--cache-file=config.cache'.
|
||||||
|
|
||||||
|
'--quiet'
|
||||||
|
'--silent'
|
||||||
|
'-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to '/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
'--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
'configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
'--prefix=DIR'
|
||||||
|
Use DIR as the installation prefix. *note Installation Names:: for
|
||||||
|
more details, including other options available for fine-tuning the
|
||||||
|
installation locations.
|
||||||
|
|
||||||
|
'--no-create'
|
||||||
|
'-n'
|
||||||
|
Run the configure checks, but stop before creating any output
|
||||||
|
files.
|
||||||
|
|
||||||
|
'configure' also accepts some other, not widely useful, options. Run
|
||||||
|
'configure --help' for more details.
|
||||||
103
3rd/pcre2/LICENCE.md
Normal file
103
3rd/pcre2/LICENCE.md
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
PCRE2 License
|
||||||
|
=============
|
||||||
|
|
||||||
|
| SPDX-License-Identifier: | BSD-3-Clause WITH PCRE2-exception |
|
||||||
|
|---------|-------|
|
||||||
|
|
||||||
|
PCRE2 is a library of functions to support regular expressions whose syntax
|
||||||
|
and semantics are as close as possible to those of the Perl 5 language.
|
||||||
|
|
||||||
|
Releases 10.00 and above of PCRE2 are distributed under the terms of the "BSD"
|
||||||
|
licence, as specified below, with one exemption for certain binary
|
||||||
|
redistributions. The documentation for PCRE2, supplied in the "doc" directory,
|
||||||
|
is distributed under the same terms as the software itself. The data in the
|
||||||
|
testdata directory is not copyrighted and is in the public domain.
|
||||||
|
|
||||||
|
The basic library functions are written in C and are freestanding. Also
|
||||||
|
included in the distribution is a just-in-time compiler that can be used to
|
||||||
|
optimize pattern matching. This is an optional feature that can be omitted when
|
||||||
|
the library is built.
|
||||||
|
|
||||||
|
|
||||||
|
COPYRIGHT
|
||||||
|
---------
|
||||||
|
|
||||||
|
### The basic library functions
|
||||||
|
|
||||||
|
Written by: Philip Hazel
|
||||||
|
Email local part: Philip.Hazel
|
||||||
|
Email domain: gmail.com
|
||||||
|
|
||||||
|
Retired from University of Cambridge Computing Service,
|
||||||
|
Cambridge, England.
|
||||||
|
|
||||||
|
Copyright (c) 1997-2007 University of Cambridge
|
||||||
|
Copyright (c) 2007-2024 Philip Hazel
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
### PCRE2 Just-In-Time compilation support
|
||||||
|
|
||||||
|
Written by: Zoltan Herczeg
|
||||||
|
Email local part: hzmester
|
||||||
|
Email domain: freemail.hu
|
||||||
|
|
||||||
|
Copyright (c) 2010-2024 Zoltan Herczeg
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
### Stack-less Just-In-Time compiler
|
||||||
|
|
||||||
|
Written by: Zoltan Herczeg
|
||||||
|
Email local part: hzmester
|
||||||
|
Email domain: freemail.hu
|
||||||
|
|
||||||
|
Copyright (c) 2009-2024 Zoltan Herczeg
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
### All other contributions
|
||||||
|
|
||||||
|
Many other contributors have participated in the authorship of PCRE2. As PCRE2
|
||||||
|
has never required a Contributor Licensing Agreement, or other copyright
|
||||||
|
assignment agreement, all contributions have copyright retained by each
|
||||||
|
original contributor or their employer.
|
||||||
|
|
||||||
|
|
||||||
|
THE "BSD" LICENCE
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright notices,
|
||||||
|
this list of conditions and the following disclaimer.
|
||||||
|
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notices, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
|
||||||
|
* Neither the name of the University of Cambridge nor the names of any
|
||||||
|
contributors may be used to endorse or promote products derived from this
|
||||||
|
software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
|
The second condition in the BSD licence (covering binary redistributions) does
|
||||||
|
not apply all the way down a chain of software. If binary package A includes
|
||||||
|
PCRE2, it must respect the condition, but if package B is software that
|
||||||
|
includes package A, the condition is not imposed on package B unless it uses
|
||||||
|
PCRE2 independently.
|
||||||
|
|
||||||
|
End
|
||||||
9
3rd/pcre2/MODULE.bazel
Normal file
9
3rd/pcre2/MODULE.bazel
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
module(
|
||||||
|
name = "pcre2",
|
||||||
|
version = "10.45",
|
||||||
|
compatibility_level = 1,
|
||||||
|
)
|
||||||
|
|
||||||
|
bazel_dep(name = "rules_cc", version = "0.0.1")
|
||||||
|
bazel_dep(name = "bazel_skylib", version = "1.2.1")
|
||||||
|
bazel_dep(name = "platforms", version = "0.0.4")
|
||||||
978
3rd/pcre2/Makefile.am
Normal file
978
3rd/pcre2/Makefile.am
Normal file
@@ -0,0 +1,978 @@
|
|||||||
|
## Process this file with automake to produce Makefile.in.
|
||||||
|
|
||||||
|
AUTOMAKE_OPTIONS = subdir-objects
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
## This seems to have become necessary for building in non-source directory.
|
||||||
|
|
||||||
|
AM_CPPFLAGS="-I$(srcdir)/src"
|
||||||
|
|
||||||
|
## Specify the documentation files that are distributed.
|
||||||
|
|
||||||
|
dist_doc_DATA = \
|
||||||
|
AUTHORS.md \
|
||||||
|
COPYING \
|
||||||
|
ChangeLog \
|
||||||
|
LICENCE.md \
|
||||||
|
NEWS \
|
||||||
|
README \
|
||||||
|
SECURITY.md \
|
||||||
|
doc/pcre2.txt \
|
||||||
|
doc/pcre2-config.txt \
|
||||||
|
doc/pcre2grep.txt \
|
||||||
|
doc/pcre2test.txt
|
||||||
|
|
||||||
|
dist_html_DATA = \
|
||||||
|
doc/html/NON-AUTOTOOLS-BUILD.txt \
|
||||||
|
doc/html/README.txt \
|
||||||
|
doc/html/index.html \
|
||||||
|
doc/html/pcre2-config.html \
|
||||||
|
doc/html/pcre2.html \
|
||||||
|
doc/html/pcre2_callout_enumerate.html \
|
||||||
|
doc/html/pcre2_code_copy.html \
|
||||||
|
doc/html/pcre2_code_copy_with_tables.html \
|
||||||
|
doc/html/pcre2_code_free.html \
|
||||||
|
doc/html/pcre2_compile.html \
|
||||||
|
doc/html/pcre2_compile_context_copy.html \
|
||||||
|
doc/html/pcre2_compile_context_create.html \
|
||||||
|
doc/html/pcre2_compile_context_free.html \
|
||||||
|
doc/html/pcre2_config.html \
|
||||||
|
doc/html/pcre2_convert_context_copy.html \
|
||||||
|
doc/html/pcre2_convert_context_create.html \
|
||||||
|
doc/html/pcre2_convert_context_free.html \
|
||||||
|
doc/html/pcre2_converted_pattern_free.html \
|
||||||
|
doc/html/pcre2_dfa_match.html \
|
||||||
|
doc/html/pcre2_general_context_copy.html \
|
||||||
|
doc/html/pcre2_general_context_create.html \
|
||||||
|
doc/html/pcre2_general_context_free.html \
|
||||||
|
doc/html/pcre2_get_error_message.html \
|
||||||
|
doc/html/pcre2_get_mark.html \
|
||||||
|
doc/html/pcre2_get_match_data_heapframes_size.html \
|
||||||
|
doc/html/pcre2_get_match_data_size.html \
|
||||||
|
doc/html/pcre2_get_ovector_count.html \
|
||||||
|
doc/html/pcre2_get_ovector_pointer.html \
|
||||||
|
doc/html/pcre2_get_startchar.html \
|
||||||
|
doc/html/pcre2_jit_compile.html \
|
||||||
|
doc/html/pcre2_jit_free_unused_memory.html \
|
||||||
|
doc/html/pcre2_jit_match.html \
|
||||||
|
doc/html/pcre2_jit_stack_assign.html \
|
||||||
|
doc/html/pcre2_jit_stack_create.html \
|
||||||
|
doc/html/pcre2_jit_stack_free.html \
|
||||||
|
doc/html/pcre2_maketables.html \
|
||||||
|
doc/html/pcre2_maketables_free.html \
|
||||||
|
doc/html/pcre2_match.html \
|
||||||
|
doc/html/pcre2_match_context_copy.html \
|
||||||
|
doc/html/pcre2_match_context_create.html \
|
||||||
|
doc/html/pcre2_match_context_free.html \
|
||||||
|
doc/html/pcre2_match_data_create.html \
|
||||||
|
doc/html/pcre2_match_data_create_from_pattern.html \
|
||||||
|
doc/html/pcre2_match_data_free.html \
|
||||||
|
doc/html/pcre2_pattern_convert.html \
|
||||||
|
doc/html/pcre2_pattern_info.html \
|
||||||
|
doc/html/pcre2_serialize_decode.html \
|
||||||
|
doc/html/pcre2_serialize_encode.html \
|
||||||
|
doc/html/pcre2_serialize_free.html \
|
||||||
|
doc/html/pcre2_serialize_get_number_of_codes.html \
|
||||||
|
doc/html/pcre2_set_bsr.html \
|
||||||
|
doc/html/pcre2_set_callout.html \
|
||||||
|
doc/html/pcre2_set_character_tables.html \
|
||||||
|
doc/html/pcre2_set_compile_extra_options.html \
|
||||||
|
doc/html/pcre2_set_compile_recursion_guard.html \
|
||||||
|
doc/html/pcre2_set_depth_limit.html \
|
||||||
|
doc/html/pcre2_set_glob_escape.html \
|
||||||
|
doc/html/pcre2_set_glob_separator.html \
|
||||||
|
doc/html/pcre2_set_heap_limit.html \
|
||||||
|
doc/html/pcre2_set_match_limit.html \
|
||||||
|
doc/html/pcre2_set_max_pattern_compiled_length.html \
|
||||||
|
doc/html/pcre2_set_max_pattern_length.html \
|
||||||
|
doc/html/pcre2_set_max_varlookbehind.html \
|
||||||
|
doc/html/pcre2_set_offset_limit.html \
|
||||||
|
doc/html/pcre2_set_optimize.html \
|
||||||
|
doc/html/pcre2_set_newline.html \
|
||||||
|
doc/html/pcre2_set_parens_nest_limit.html \
|
||||||
|
doc/html/pcre2_set_recursion_limit.html \
|
||||||
|
doc/html/pcre2_set_recursion_memory_management.html \
|
||||||
|
doc/html/pcre2_set_substitute_callout.html \
|
||||||
|
doc/html/pcre2_set_substitute_case_callout.html \
|
||||||
|
doc/html/pcre2_substitute.html \
|
||||||
|
doc/html/pcre2_substring_copy_byname.html \
|
||||||
|
doc/html/pcre2_substring_copy_bynumber.html \
|
||||||
|
doc/html/pcre2_substring_free.html \
|
||||||
|
doc/html/pcre2_substring_get_byname.html \
|
||||||
|
doc/html/pcre2_substring_get_bynumber.html \
|
||||||
|
doc/html/pcre2_substring_length_byname.html \
|
||||||
|
doc/html/pcre2_substring_length_bynumber.html \
|
||||||
|
doc/html/pcre2_substring_list_free.html \
|
||||||
|
doc/html/pcre2_substring_list_get.html \
|
||||||
|
doc/html/pcre2_substring_nametable_scan.html \
|
||||||
|
doc/html/pcre2_substring_number_from_name.html \
|
||||||
|
doc/html/pcre2api.html \
|
||||||
|
doc/html/pcre2build.html \
|
||||||
|
doc/html/pcre2callout.html \
|
||||||
|
doc/html/pcre2compat.html \
|
||||||
|
doc/html/pcre2convert.html \
|
||||||
|
doc/html/pcre2demo.html \
|
||||||
|
doc/html/pcre2grep.html \
|
||||||
|
doc/html/pcre2jit.html \
|
||||||
|
doc/html/pcre2limits.html \
|
||||||
|
doc/html/pcre2matching.html \
|
||||||
|
doc/html/pcre2partial.html \
|
||||||
|
doc/html/pcre2pattern.html \
|
||||||
|
doc/html/pcre2perform.html \
|
||||||
|
doc/html/pcre2posix.html \
|
||||||
|
doc/html/pcre2sample.html \
|
||||||
|
doc/html/pcre2serialize.html \
|
||||||
|
doc/html/pcre2syntax.html \
|
||||||
|
doc/html/pcre2test.html \
|
||||||
|
doc/html/pcre2unicode.html
|
||||||
|
|
||||||
|
dist_man_MANS = \
|
||||||
|
doc/pcre2-config.1 \
|
||||||
|
doc/pcre2.3 \
|
||||||
|
doc/pcre2_callout_enumerate.3 \
|
||||||
|
doc/pcre2_code_copy.3 \
|
||||||
|
doc/pcre2_code_copy_with_tables.3 \
|
||||||
|
doc/pcre2_code_free.3 \
|
||||||
|
doc/pcre2_compile.3 \
|
||||||
|
doc/pcre2_compile_context_copy.3 \
|
||||||
|
doc/pcre2_compile_context_create.3 \
|
||||||
|
doc/pcre2_compile_context_free.3 \
|
||||||
|
doc/pcre2_config.3 \
|
||||||
|
doc/pcre2_convert_context_copy.3 \
|
||||||
|
doc/pcre2_convert_context_create.3 \
|
||||||
|
doc/pcre2_convert_context_free.3 \
|
||||||
|
doc/pcre2_converted_pattern_free.3 \
|
||||||
|
doc/pcre2_dfa_match.3 \
|
||||||
|
doc/pcre2_general_context_copy.3 \
|
||||||
|
doc/pcre2_general_context_create.3 \
|
||||||
|
doc/pcre2_general_context_free.3 \
|
||||||
|
doc/pcre2_get_error_message.3 \
|
||||||
|
doc/pcre2_get_mark.3 \
|
||||||
|
doc/pcre2_get_match_data_heapframes_size.3 \
|
||||||
|
doc/pcre2_get_match_data_size.3 \
|
||||||
|
doc/pcre2_get_ovector_count.3 \
|
||||||
|
doc/pcre2_get_ovector_pointer.3 \
|
||||||
|
doc/pcre2_get_startchar.3 \
|
||||||
|
doc/pcre2_jit_compile.3 \
|
||||||
|
doc/pcre2_jit_free_unused_memory.3 \
|
||||||
|
doc/pcre2_jit_match.3 \
|
||||||
|
doc/pcre2_jit_stack_assign.3 \
|
||||||
|
doc/pcre2_jit_stack_create.3 \
|
||||||
|
doc/pcre2_jit_stack_free.3 \
|
||||||
|
doc/pcre2_maketables.3 \
|
||||||
|
doc/pcre2_maketables_free.3 \
|
||||||
|
doc/pcre2_match.3 \
|
||||||
|
doc/pcre2_match_context_copy.3 \
|
||||||
|
doc/pcre2_match_context_create.3 \
|
||||||
|
doc/pcre2_match_context_free.3 \
|
||||||
|
doc/pcre2_match_data_create.3 \
|
||||||
|
doc/pcre2_match_data_create_from_pattern.3 \
|
||||||
|
doc/pcre2_match_data_free.3 \
|
||||||
|
doc/pcre2_pattern_convert.3 \
|
||||||
|
doc/pcre2_pattern_info.3 \
|
||||||
|
doc/pcre2_serialize_decode.3 \
|
||||||
|
doc/pcre2_serialize_encode.3 \
|
||||||
|
doc/pcre2_serialize_free.3 \
|
||||||
|
doc/pcre2_serialize_get_number_of_codes.3 \
|
||||||
|
doc/pcre2_set_bsr.3 \
|
||||||
|
doc/pcre2_set_callout.3 \
|
||||||
|
doc/pcre2_set_character_tables.3 \
|
||||||
|
doc/pcre2_set_compile_extra_options.3 \
|
||||||
|
doc/pcre2_set_compile_recursion_guard.3 \
|
||||||
|
doc/pcre2_set_depth_limit.3 \
|
||||||
|
doc/pcre2_set_glob_escape.3 \
|
||||||
|
doc/pcre2_set_glob_separator.3 \
|
||||||
|
doc/pcre2_set_heap_limit.3 \
|
||||||
|
doc/pcre2_set_match_limit.3 \
|
||||||
|
doc/pcre2_set_max_pattern_compiled_length.3 \
|
||||||
|
doc/pcre2_set_max_pattern_length.3 \
|
||||||
|
doc/pcre2_set_max_varlookbehind.3 \
|
||||||
|
doc/pcre2_set_offset_limit.3 \
|
||||||
|
doc/pcre2_set_optimize.3 \
|
||||||
|
doc/pcre2_set_newline.3 \
|
||||||
|
doc/pcre2_set_parens_nest_limit.3 \
|
||||||
|
doc/pcre2_set_recursion_limit.3 \
|
||||||
|
doc/pcre2_set_recursion_memory_management.3 \
|
||||||
|
doc/pcre2_set_substitute_callout.3 \
|
||||||
|
doc/pcre2_set_substitute_case_callout.3 \
|
||||||
|
doc/pcre2_substitute.3 \
|
||||||
|
doc/pcre2_substring_copy_byname.3 \
|
||||||
|
doc/pcre2_substring_copy_bynumber.3 \
|
||||||
|
doc/pcre2_substring_free.3 \
|
||||||
|
doc/pcre2_substring_get_byname.3 \
|
||||||
|
doc/pcre2_substring_get_bynumber.3 \
|
||||||
|
doc/pcre2_substring_length_byname.3 \
|
||||||
|
doc/pcre2_substring_length_bynumber.3 \
|
||||||
|
doc/pcre2_substring_list_free.3 \
|
||||||
|
doc/pcre2_substring_list_get.3 \
|
||||||
|
doc/pcre2_substring_nametable_scan.3 \
|
||||||
|
doc/pcre2_substring_number_from_name.3 \
|
||||||
|
doc/pcre2api.3 \
|
||||||
|
doc/pcre2build.3 \
|
||||||
|
doc/pcre2callout.3 \
|
||||||
|
doc/pcre2compat.3 \
|
||||||
|
doc/pcre2convert.3 \
|
||||||
|
doc/pcre2demo.3 \
|
||||||
|
doc/pcre2grep.1 \
|
||||||
|
doc/pcre2jit.3 \
|
||||||
|
doc/pcre2limits.3 \
|
||||||
|
doc/pcre2matching.3 \
|
||||||
|
doc/pcre2partial.3 \
|
||||||
|
doc/pcre2pattern.3 \
|
||||||
|
doc/pcre2perform.3 \
|
||||||
|
doc/pcre2posix.3 \
|
||||||
|
doc/pcre2sample.3 \
|
||||||
|
doc/pcre2serialize.3 \
|
||||||
|
doc/pcre2syntax.3 \
|
||||||
|
doc/pcre2test.1 \
|
||||||
|
doc/pcre2unicode.3
|
||||||
|
|
||||||
|
# The Libtool libraries to install. We'll add to this later.
|
||||||
|
|
||||||
|
lib_LTLIBRARIES =
|
||||||
|
|
||||||
|
# Unit tests you want to run when people type 'make check'.
|
||||||
|
# TESTS is for binary unit tests, check_SCRIPTS for script-based tests
|
||||||
|
|
||||||
|
TESTS =
|
||||||
|
check_SCRIPTS =
|
||||||
|
dist_noinst_SCRIPTS =
|
||||||
|
|
||||||
|
# Some of the binaries we make are to be installed, and others are
|
||||||
|
# (non-user-visible) helper programs needed to build the libraries.
|
||||||
|
|
||||||
|
bin_PROGRAMS =
|
||||||
|
noinst_PROGRAMS =
|
||||||
|
|
||||||
|
# Additional files to delete on 'make clean', 'make distclean',
|
||||||
|
# and 'make maintainer-clean'. It turns out that the default is to delete only
|
||||||
|
# those binaries that *this* configuration has created. If the configuration
|
||||||
|
# has been changed, some binaries may not get automatically deleted. Therefore
|
||||||
|
# we list them here.
|
||||||
|
|
||||||
|
CLEANFILES = \
|
||||||
|
pcre2_dftables \
|
||||||
|
pcre2_jit_test \
|
||||||
|
pcre2fuzzcheck-8 \
|
||||||
|
pcre2fuzzcheck-16 \
|
||||||
|
pcre2fuzzcheck-32 \
|
||||||
|
pcre2demo
|
||||||
|
|
||||||
|
DISTCLEANFILES = src/config.h.in~
|
||||||
|
MAINTAINERCLEANFILES =
|
||||||
|
|
||||||
|
# Additional files to bundle with the distribution, over and above what
|
||||||
|
# the Autotools include by default.
|
||||||
|
|
||||||
|
EXTRA_DIST =
|
||||||
|
|
||||||
|
# These files contain additional m4 macros that are used by autoconf.
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
m4/ax_pthread.m4 m4/pcre2_visibility.m4
|
||||||
|
|
||||||
|
# These files contain maintenance information
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
NON-AUTOTOOLS-BUILD \
|
||||||
|
HACKING
|
||||||
|
|
||||||
|
# These are support files for building with Bazel or Zig
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
BUILD.bazel \
|
||||||
|
MODULE.bazel \
|
||||||
|
WORKSPACE.bazel \
|
||||||
|
build.zig
|
||||||
|
|
||||||
|
# These are support files for building under VMS
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
vms/configure.com \
|
||||||
|
vms/openvms_readme.txt \
|
||||||
|
vms/pcre2.h_patch \
|
||||||
|
vms/stdint.h
|
||||||
|
|
||||||
|
# These files are usable versions of pcre2.h and config.h that are distributed
|
||||||
|
# for the benefit of people who are building PCRE2 manually, without the
|
||||||
|
# Autotools support.
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
src/pcre2.h.generic \
|
||||||
|
src/config.h.generic
|
||||||
|
|
||||||
|
# The only difference between pcre2.h.in and pcre2.h is the setting of the PCRE
|
||||||
|
# version number. Therefore, we can create the generic version just by copying.
|
||||||
|
|
||||||
|
src/pcre2.h.generic: src/pcre2.h.in configure.ac
|
||||||
|
rm -f $@
|
||||||
|
cp -p src/pcre2.h $@
|
||||||
|
|
||||||
|
# It is more complicated for config.h.generic. We need the version that results
|
||||||
|
# from a default configuration so as to get all the default values for PCRE
|
||||||
|
# configuration macros such as MATCH_LIMIT and NEWLINE. We can get this by
|
||||||
|
# doing a configure in a temporary directory. However, some trickery is needed,
|
||||||
|
# because the source directory may already be configured. If you just try
|
||||||
|
# running configure in a new directory, it complains. For this reason, we move
|
||||||
|
# config.status out of the way while doing the default configuration. The
|
||||||
|
# resulting config.h is munged by perl to put #ifdefs round any #defines for
|
||||||
|
# macros with values, and to #undef all boolean macros such as HAVE_xxx and
|
||||||
|
# SUPPORT_xxx. We also get rid of any gcc-specific visibility settings.
|
||||||
|
|
||||||
|
src/config.h.generic: configure.ac
|
||||||
|
rm -rf $@ _generic
|
||||||
|
mkdir _generic
|
||||||
|
cs=$(srcdir)/config.status; test ! -f $$cs || mv -f $$cs $$cs.aside
|
||||||
|
cd _generic && $(abs_top_srcdir)/configure || :
|
||||||
|
cs=$(srcdir)/config.status; test ! -f $$cs.aside || mv -f $$cs.aside $$cs
|
||||||
|
test -f _generic/src/config.h
|
||||||
|
perl -n \
|
||||||
|
-e 'BEGIN{$$blank=0;}' \
|
||||||
|
-e 'if(/(.+?)\s*__attribute__ \(\(visibility/){print"$$1\n";$$blank=0;next;}' \
|
||||||
|
-e 'if(/LT_OBJDIR/){print"/* This is ignored unless you are using libtool. */\n";}' \
|
||||||
|
-e 'if(/^#define\s((?:HAVE|SUPPORT|STDC)_\w+)/){print"/* #undef $$1 */\n";$$blank=0;next;}' \
|
||||||
|
-e 'if(/^#define\s(?!PACKAGE|VERSION)(\w+)/){print"#ifndef $$1\n$$_#endif\n";$$blank=0;next;}' \
|
||||||
|
-e 'if(/^\s*$$/){print unless $$blank; $$blank=1;} else{print;$$blank=0;}' \
|
||||||
|
_generic/src/config.h >$@
|
||||||
|
rm -rf _generic
|
||||||
|
|
||||||
|
MAINTAINERCLEANFILES += src/pcre2.h.generic src/config.h.generic
|
||||||
|
|
||||||
|
# These are the header files we'll install. We do not distribute pcre2.h
|
||||||
|
# because it is generated from pcre2.h.in.
|
||||||
|
|
||||||
|
nodist_include_HEADERS = src/pcre2.h
|
||||||
|
include_HEADERS = src/pcre2posix.h
|
||||||
|
|
||||||
|
# This is the "config" script.
|
||||||
|
|
||||||
|
bin_SCRIPTS = pcre2-config
|
||||||
|
|
||||||
|
## ---------------------------------------------------------------
|
||||||
|
## The pcre2_dftables program is used to rebuild character tables before
|
||||||
|
## compiling PCRE2, if --enable-rebuild-chartables is specified. It is not an
|
||||||
|
## installed program. The default (when --enable-rebuild-chartables is not
|
||||||
|
## specified) is to copy a distributed set of tables that are defined for ASCII
|
||||||
|
## code. In this case, pcre2_dftables is not needed.
|
||||||
|
|
||||||
|
if WITH_REBUILD_CHARTABLES
|
||||||
|
noinst_PROGRAMS += pcre2_dftables
|
||||||
|
pcre2_dftables_SOURCES = src/pcre2_dftables.c
|
||||||
|
src/pcre2_chartables.c: pcre2_dftables$(EXEEXT)
|
||||||
|
rm -f $@
|
||||||
|
./pcre2_dftables$(EXEEXT) $@
|
||||||
|
else
|
||||||
|
src/pcre2_chartables.c: $(srcdir)/src/pcre2_chartables.c.dist
|
||||||
|
rm -f $@
|
||||||
|
$(LN_S) $(abs_srcdir)/src/pcre2_chartables.c.dist $(abs_builddir)/src/pcre2_chartables.c
|
||||||
|
endif # WITH_REBUILD_CHARTABLES
|
||||||
|
|
||||||
|
BUILT_SOURCES = src/pcre2_chartables.c
|
||||||
|
NODIST_SOURCES = src/pcre2_chartables.c
|
||||||
|
|
||||||
|
## Define the list of common sources, then arrange to build whichever of the
|
||||||
|
## 8-, 16-, or 32-bit libraries are configured.
|
||||||
|
|
||||||
|
COMMON_SOURCES = \
|
||||||
|
src/pcre2_auto_possess.c \
|
||||||
|
src/pcre2_chkdint.c \
|
||||||
|
src/pcre2_compile.c \
|
||||||
|
src/pcre2_compile.h \
|
||||||
|
src/pcre2_compile_class.c \
|
||||||
|
src/pcre2_config.c \
|
||||||
|
src/pcre2_context.c \
|
||||||
|
src/pcre2_convert.c \
|
||||||
|
src/pcre2_dfa_match.c \
|
||||||
|
src/pcre2_error.c \
|
||||||
|
src/pcre2_extuni.c \
|
||||||
|
src/pcre2_find_bracket.c \
|
||||||
|
src/pcre2_internal.h \
|
||||||
|
src/pcre2_intmodedep.h \
|
||||||
|
src/pcre2_jit_char_inc.h \
|
||||||
|
src/pcre2_jit_compile.c \
|
||||||
|
src/pcre2_jit_neon_inc.h \
|
||||||
|
src/pcre2_jit_simd_inc.h \
|
||||||
|
src/pcre2_maketables.c \
|
||||||
|
src/pcre2_match.c \
|
||||||
|
src/pcre2_match_data.c \
|
||||||
|
src/pcre2_newline.c \
|
||||||
|
src/pcre2_ord2utf.c \
|
||||||
|
src/pcre2_pattern_info.c \
|
||||||
|
src/pcre2_script_run.c \
|
||||||
|
src/pcre2_serialize.c \
|
||||||
|
src/pcre2_string_utils.c \
|
||||||
|
src/pcre2_study.c \
|
||||||
|
src/pcre2_substitute.c \
|
||||||
|
src/pcre2_substring.c \
|
||||||
|
src/pcre2_tables.c \
|
||||||
|
src/pcre2_ucd.c \
|
||||||
|
src/pcre2_ucp.h \
|
||||||
|
src/pcre2_util.h \
|
||||||
|
src/pcre2_valid_utf.c \
|
||||||
|
src/pcre2_xclass.c
|
||||||
|
|
||||||
|
# The pcre2_ucptables.c file is #included by pcre2_tables.c
|
||||||
|
|
||||||
|
EXTRA_DIST += src/pcre2_ucptables.c
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
lib_LTLIBRARIES += libpcre2-8.la
|
||||||
|
libpcre2_8_la_SOURCES = \
|
||||||
|
$(COMMON_SOURCES)
|
||||||
|
nodist_libpcre2_8_la_SOURCES = \
|
||||||
|
$(NODIST_SOURCES)
|
||||||
|
libpcre2_8_la_CFLAGS = \
|
||||||
|
-DPCRE2_CODE_UNIT_WIDTH=8 \
|
||||||
|
$(VISIBILITY_CFLAGS) \
|
||||||
|
$(CET_CFLAGS) \
|
||||||
|
$(AM_CFLAGS)
|
||||||
|
libpcre2_8_la_LIBADD =
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
lib_LTLIBRARIES += libpcre2-16.la
|
||||||
|
libpcre2_16_la_SOURCES = \
|
||||||
|
$(COMMON_SOURCES)
|
||||||
|
nodist_libpcre2_16_la_SOURCES = \
|
||||||
|
$(NODIST_SOURCES)
|
||||||
|
libpcre2_16_la_CFLAGS = \
|
||||||
|
-DPCRE2_CODE_UNIT_WIDTH=16 \
|
||||||
|
$(VISIBILITY_CFLAGS) \
|
||||||
|
$(CET_CFLAGS) \
|
||||||
|
$(AM_CFLAGS)
|
||||||
|
libpcre2_16_la_LIBADD =
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
lib_LTLIBRARIES += libpcre2-32.la
|
||||||
|
libpcre2_32_la_SOURCES = \
|
||||||
|
$(COMMON_SOURCES)
|
||||||
|
nodist_libpcre2_32_la_SOURCES = \
|
||||||
|
$(NODIST_SOURCES)
|
||||||
|
libpcre2_32_la_CFLAGS = \
|
||||||
|
-DPCRE2_CODE_UNIT_WIDTH=32 \
|
||||||
|
$(VISIBILITY_CFLAGS) \
|
||||||
|
$(CET_CFLAGS) \
|
||||||
|
$(AM_CFLAGS)
|
||||||
|
libpcre2_32_la_LIBADD =
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
|
||||||
|
# The pcre2_chartables.c.dist file is the default version of
|
||||||
|
# pcre2_chartables.c, used unless --enable-rebuild-chartables is specified.
|
||||||
|
|
||||||
|
EXTRA_DIST += src/pcre2_chartables.c.dist
|
||||||
|
CLEANFILES += src/pcre2_chartables.c
|
||||||
|
|
||||||
|
# The JIT compiler lives in a separate directory, but its files are #included
|
||||||
|
# when pcre2_jit_compile.c is processed, so they must be distributed.
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
deps/sljit/sljit_src/sljitConfig.h \
|
||||||
|
deps/sljit/sljit_src/sljitConfigCPU.h \
|
||||||
|
deps/sljit/sljit_src/sljitConfigInternal.h \
|
||||||
|
deps/sljit/sljit_src/sljitLir.c \
|
||||||
|
deps/sljit/sljit_src/sljitLir.h \
|
||||||
|
deps/sljit/sljit_src/sljitNativeARM_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeARM_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeARM_T2_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeMIPS_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeMIPS_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeMIPS_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativePPC_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativePPC_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativePPC_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeRISCV_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeRISCV_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeRISCV_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeS390X.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeX86_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeX86_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeX86_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitSerialize.c \
|
||||||
|
deps/sljit/sljit_src/sljitUtils.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorApple.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorFreeBSD.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorPosix.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorWindows.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitProtExecAllocatorNetBSD.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitProtExecAllocatorPosix.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorWindows.c
|
||||||
|
|
||||||
|
# Some of the JIT sources are also in separate files that are #included.
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
src/pcre2_jit_match.c \
|
||||||
|
src/pcre2_jit_misc.c
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
libpcre2_8_la_LDFLAGS = $(EXTRA_LIBPCRE2_8_LDFLAGS)
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
libpcre2_16_la_LDFLAGS = $(EXTRA_LIBPCRE2_16_LDFLAGS)
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
libpcre2_32_la_LDFLAGS = $(EXTRA_LIBPCRE2_32_LDFLAGS)
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
|
||||||
|
if WITH_VALGRIND
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
libpcre2_8_la_CFLAGS += $(VALGRIND_CFLAGS)
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
libpcre2_16_la_CFLAGS += $(VALGRIND_CFLAGS)
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
libpcre2_32_la_CFLAGS += $(VALGRIND_CFLAGS)
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
endif # WITH_VALGRIND
|
||||||
|
|
||||||
|
if WITH_GCOV
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
libpcre2_8_la_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
libpcre2_16_la_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
libpcre2_32_la_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
endif # WITH_GCOV
|
||||||
|
|
||||||
|
## A version of the 8-bit library that has a POSIX API.
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
lib_LTLIBRARIES += libpcre2-posix.la
|
||||||
|
libpcre2_posix_la_SOURCES = src/pcre2posix.c
|
||||||
|
libpcre2_posix_la_CFLAGS = \
|
||||||
|
-DPCRE2_CODE_UNIT_WIDTH=8 @PCRE2POSIX_CFLAG@ \
|
||||||
|
$(VISIBILITY_CFLAGS) $(AM_CFLAGS)
|
||||||
|
libpcre2_posix_la_LDFLAGS = $(EXTRA_LIBPCRE2_POSIX_LDFLAGS)
|
||||||
|
libpcre2_posix_la_LIBADD = libpcre2-8.la
|
||||||
|
if WITH_GCOV
|
||||||
|
libpcre2_posix_la_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
## Build pcre2grep and optional fuzzer stuff if the 8-bit library is enabled
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
bin_PROGRAMS += pcre2grep
|
||||||
|
pcre2grep_SOURCES = src/pcre2grep.c
|
||||||
|
pcre2grep_CFLAGS = $(AM_CFLAGS)
|
||||||
|
pcre2grep_LDADD = $(LIBZ) $(LIBBZ2)
|
||||||
|
pcre2grep_LDADD += libpcre2-8.la
|
||||||
|
if WITH_GCOV
|
||||||
|
pcre2grep_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
pcre2grep_LDADD += $(GCOV_LIBS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
## If fuzzer support is enabled, build a non-distributed library containing the
|
||||||
|
## fuzzing function. Also build the standalone checking binary from the same
|
||||||
|
## source but using -DSTANDALONE.
|
||||||
|
|
||||||
|
if WITH_FUZZ_SUPPORT
|
||||||
|
noinst_LIBRARIES =
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
noinst_LIBRARIES += .libs/libpcre2-fuzzsupport.a
|
||||||
|
_libs_libpcre2_fuzzsupport_a_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
_libs_libpcre2_fuzzsupport_a_CFLAGS = $(AM_CFLAGS)
|
||||||
|
_libs_libpcre2_fuzzsupport_a_LIBADD =
|
||||||
|
|
||||||
|
noinst_PROGRAMS += pcre2fuzzcheck-8
|
||||||
|
pcre2fuzzcheck_8_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
pcre2fuzzcheck_8_CFLAGS = -DSTANDALONE $(AM_CFLAGS)
|
||||||
|
pcre2fuzzcheck_8_LDADD = libpcre2-8.la
|
||||||
|
if WITH_GCOV
|
||||||
|
pcre2fuzzcheck_8_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
pcre2fuzzcheck_8_LDADD += $(GCOV_LIBS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
noinst_LIBRARIES += .libs/libpcre2-fuzzsupport-16.a
|
||||||
|
_libs_libpcre2_fuzzsupport_16_a_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
_libs_libpcre2_fuzzsupport_16_a_CFLAGS = $(AM_CFLAGS) -DPCRE2_CODE_UNIT_WIDTH=16
|
||||||
|
_libs_libpcre2_fuzzsupport_16_a_LIBADD =
|
||||||
|
|
||||||
|
noinst_PROGRAMS += pcre2fuzzcheck-16
|
||||||
|
pcre2fuzzcheck_16_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
pcre2fuzzcheck_16_CFLAGS = -DSTANDALONE $(AM_CFLAGS) -DPCRE2_CODE_UNIT_WIDTH=16
|
||||||
|
pcre2fuzzcheck_16_LDADD = libpcre2-16.la
|
||||||
|
if WITH_GCOV
|
||||||
|
pcre2fuzzcheck_16_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
pcre2fuzzcheck_16_LDADD += $(GCOV_LIBS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
noinst_LIBRARIES += .libs/libpcre2-fuzzsupport-32.a
|
||||||
|
_libs_libpcre2_fuzzsupport_32_a_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
_libs_libpcre2_fuzzsupport_32_a_CFLAGS = $(AM_CFLAGS) -DPCRE2_CODE_UNIT_WIDTH=32
|
||||||
|
_libs_libpcre2_fuzzsupport_32_a_LIBADD =
|
||||||
|
|
||||||
|
noinst_PROGRAMS += pcre2fuzzcheck-32
|
||||||
|
pcre2fuzzcheck_32_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
pcre2fuzzcheck_32_CFLAGS = -DSTANDALONE $(AM_CFLAGS) -DPCRE2_CODE_UNIT_WIDTH=32
|
||||||
|
pcre2fuzzcheck_32_LDADD = libpcre2-32.la
|
||||||
|
if WITH_GCOV
|
||||||
|
pcre2fuzzcheck_32_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
pcre2fuzzcheck_32_LDADD += $(GCOV_LIBS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
|
||||||
|
endif # WITH_FUZZ_SUPPORT
|
||||||
|
|
||||||
|
## -------- Testing ----------
|
||||||
|
|
||||||
|
## If the 8-bit library is enabled, build the POSIX wrapper test program and
|
||||||
|
## arrange for it to run.
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
TESTS += pcre2posix_test
|
||||||
|
noinst_PROGRAMS += pcre2posix_test
|
||||||
|
pcre2posix_test_SOURCES = src/pcre2posix_test.c
|
||||||
|
pcre2posix_test_CFLAGS = $(AM_CFLAGS) @PCRE2POSIX_CFLAG@
|
||||||
|
pcre2posix_test_LDADD = libpcre2-posix.la libpcre2-8.la
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
## If JIT support is enabled, arrange for the JIT test program to run.
|
||||||
|
|
||||||
|
if WITH_JIT
|
||||||
|
TESTS += pcre2_jit_test
|
||||||
|
noinst_PROGRAMS += pcre2_jit_test
|
||||||
|
pcre2_jit_test_SOURCES = src/pcre2_jit_test.c
|
||||||
|
pcre2_jit_test_CFLAGS = $(AM_CFLAGS)
|
||||||
|
pcre2_jit_test_LDADD =
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
pcre2_jit_test_LDADD += libpcre2-8.la
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
pcre2_jit_test_LDADD += libpcre2-16.la
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
pcre2_jit_test_LDADD += libpcre2-32.la
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
if WITH_GCOV
|
||||||
|
pcre2_jit_test_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
pcre2_jit_test_LDADD += $(GCOV_LIBS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
endif # WITH_JIT
|
||||||
|
|
||||||
|
# Build the general pcre2test program. The file src/pcre2_printint.c is
|
||||||
|
# #included by pcre2test as many times as needed, at different code unit
|
||||||
|
# widths.
|
||||||
|
|
||||||
|
bin_PROGRAMS += pcre2test
|
||||||
|
EXTRA_DIST += src/pcre2_printint.c
|
||||||
|
pcre2test_SOURCES = src/pcre2test.c
|
||||||
|
pcre2test_CFLAGS = $(AM_CFLAGS)
|
||||||
|
pcre2test_LDADD = $(LIBREADLINE)
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
pcre2test_LDADD += libpcre2-8.la libpcre2-posix.la
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
pcre2test_LDADD += libpcre2-16.la
|
||||||
|
endif # WITH_PCRE2_16
|
||||||
|
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
pcre2test_LDADD += libpcre2-32.la
|
||||||
|
endif # WITH_PCRE2_32
|
||||||
|
|
||||||
|
if WITH_VALGRIND
|
||||||
|
pcre2test_CFLAGS += $(VALGRIND_CFLAGS)
|
||||||
|
endif # WITH_VALGRIND
|
||||||
|
|
||||||
|
if WITH_GCOV
|
||||||
|
pcre2test_CFLAGS += $(GCOV_CFLAGS)
|
||||||
|
pcre2test_LDADD += $(GCOV_LIBS)
|
||||||
|
endif # WITH_GCOV
|
||||||
|
|
||||||
|
## The main library tests. Each test is a binary plus a script that runs that
|
||||||
|
## binary in various ways. We install these test binaries in case folks find it
|
||||||
|
## helpful. The two .bat files are for running the tests under Windows.
|
||||||
|
|
||||||
|
TESTS += RunTest
|
||||||
|
EXTRA_DIST += RunTest.bat
|
||||||
|
dist_noinst_SCRIPTS += RunTest
|
||||||
|
|
||||||
|
## When the 8-bit library is configured, pcre2grep will have been built.
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
TESTS += RunGrepTest
|
||||||
|
EXTRA_DIST += RunGrepTest.bat
|
||||||
|
dist_noinst_SCRIPTS += RunGrepTest
|
||||||
|
endif # WITH_PCRE2_8
|
||||||
|
|
||||||
|
## Distribute all the test data files
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
testdata/grepbinary \
|
||||||
|
testdata/grepfilelist \
|
||||||
|
testdata/grepinput \
|
||||||
|
testdata/grepinput3 \
|
||||||
|
testdata/grepinput8 \
|
||||||
|
testdata/grepinputBad8 \
|
||||||
|
testdata/grepinputBad8_Trail \
|
||||||
|
testdata/grepinputC.bz2 \
|
||||||
|
testdata/grepinputC.gz \
|
||||||
|
testdata/grepinputM \
|
||||||
|
testdata/grepinputUN \
|
||||||
|
testdata/grepinputv \
|
||||||
|
testdata/grepinputx \
|
||||||
|
testdata/greplist \
|
||||||
|
testdata/grepnot.bz2 \
|
||||||
|
testdata/grepoutput \
|
||||||
|
testdata/grepoutput8 \
|
||||||
|
testdata/grepoutputC \
|
||||||
|
testdata/grepoutputCN \
|
||||||
|
testdata/grepoutputCNU \
|
||||||
|
testdata/grepoutputCU \
|
||||||
|
testdata/grepoutputCbz2 \
|
||||||
|
testdata/grepoutputCgz \
|
||||||
|
testdata/grepoutputN \
|
||||||
|
testdata/grepoutputUN \
|
||||||
|
testdata/greppatN4 \
|
||||||
|
testdata/testbtables \
|
||||||
|
testdata/testinput1 \
|
||||||
|
testdata/testinput2 \
|
||||||
|
testdata/testinput3 \
|
||||||
|
testdata/testinput4 \
|
||||||
|
testdata/testinput5 \
|
||||||
|
testdata/testinput6 \
|
||||||
|
testdata/testinput7 \
|
||||||
|
testdata/testinput8 \
|
||||||
|
testdata/testinput9 \
|
||||||
|
testdata/testinput10 \
|
||||||
|
testdata/testinput11 \
|
||||||
|
testdata/testinput12 \
|
||||||
|
testdata/testinput13 \
|
||||||
|
testdata/testinput14 \
|
||||||
|
testdata/testinput15 \
|
||||||
|
testdata/testinput16 \
|
||||||
|
testdata/testinput17 \
|
||||||
|
testdata/testinput18 \
|
||||||
|
testdata/testinput19 \
|
||||||
|
testdata/testinput20 \
|
||||||
|
testdata/testinput21 \
|
||||||
|
testdata/testinput22 \
|
||||||
|
testdata/testinput23 \
|
||||||
|
testdata/testinput24 \
|
||||||
|
testdata/testinput25 \
|
||||||
|
testdata/testinput26 \
|
||||||
|
testdata/testinput27 \
|
||||||
|
testdata/testinputEBC \
|
||||||
|
testdata/testinputheap \
|
||||||
|
testdata/testoutput1 \
|
||||||
|
testdata/testoutput2 \
|
||||||
|
testdata/testoutput3 \
|
||||||
|
testdata/testoutput3A \
|
||||||
|
testdata/testoutput3B \
|
||||||
|
testdata/testoutput4 \
|
||||||
|
testdata/testoutput5 \
|
||||||
|
testdata/testoutput6 \
|
||||||
|
testdata/testoutput7 \
|
||||||
|
testdata/testoutput8-16-2 \
|
||||||
|
testdata/testoutput8-16-3 \
|
||||||
|
testdata/testoutput8-16-4 \
|
||||||
|
testdata/testoutput8-32-2 \
|
||||||
|
testdata/testoutput8-32-3 \
|
||||||
|
testdata/testoutput8-32-4 \
|
||||||
|
testdata/testoutput8-8-2 \
|
||||||
|
testdata/testoutput8-8-3 \
|
||||||
|
testdata/testoutput8-8-4 \
|
||||||
|
testdata/testoutput9 \
|
||||||
|
testdata/testoutput10 \
|
||||||
|
testdata/testoutput11-16 \
|
||||||
|
testdata/testoutput11-32 \
|
||||||
|
testdata/testoutput12-16 \
|
||||||
|
testdata/testoutput12-32 \
|
||||||
|
testdata/testoutput13 \
|
||||||
|
testdata/testoutput14-16 \
|
||||||
|
testdata/testoutput14-32 \
|
||||||
|
testdata/testoutput14-8 \
|
||||||
|
testdata/testoutput15 \
|
||||||
|
testdata/testoutput16 \
|
||||||
|
testdata/testoutput17 \
|
||||||
|
testdata/testoutput18 \
|
||||||
|
testdata/testoutput19 \
|
||||||
|
testdata/testoutput20 \
|
||||||
|
testdata/testoutput21 \
|
||||||
|
testdata/testoutput22-16 \
|
||||||
|
testdata/testoutput22-32 \
|
||||||
|
testdata/testoutput22-8 \
|
||||||
|
testdata/testoutput23 \
|
||||||
|
testdata/testoutput24 \
|
||||||
|
testdata/testoutput25 \
|
||||||
|
testdata/testoutput26 \
|
||||||
|
testdata/testoutput27 \
|
||||||
|
testdata/testoutputEBC \
|
||||||
|
testdata/testoutputheap-16 \
|
||||||
|
testdata/testoutputheap-32 \
|
||||||
|
testdata/testoutputheap-8 \
|
||||||
|
testdata/valgrind-jit.supp \
|
||||||
|
testdata/wintestinput3 \
|
||||||
|
testdata/wintestoutput3 \
|
||||||
|
perltest.sh
|
||||||
|
|
||||||
|
# RunTest and RunGrepTest should clean up after themselves, but just in case
|
||||||
|
# they don't, add their working files to CLEANFILES.
|
||||||
|
|
||||||
|
CLEANFILES += \
|
||||||
|
testSinput \
|
||||||
|
test3input \
|
||||||
|
test3output \
|
||||||
|
test3outputA \
|
||||||
|
test3outputB \
|
||||||
|
testtry \
|
||||||
|
teststdout \
|
||||||
|
teststderr \
|
||||||
|
teststderrgrep \
|
||||||
|
testtemp1grep \
|
||||||
|
testtemp2grep \
|
||||||
|
testtrygrep \
|
||||||
|
testNinputgrep
|
||||||
|
|
||||||
|
## ------------ End of testing -------------
|
||||||
|
|
||||||
|
|
||||||
|
# PCRE2 demonstration program. Not built automatically. The point is that the
|
||||||
|
# users should build it themselves. So just distribute the source.
|
||||||
|
|
||||||
|
EXTRA_DIST += src/pcre2demo.c
|
||||||
|
|
||||||
|
|
||||||
|
# We have .pc files for pkg-config users.
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA =
|
||||||
|
|
||||||
|
if WITH_PCRE2_8
|
||||||
|
pkgconfig_DATA += libpcre2-8.pc libpcre2-posix.pc
|
||||||
|
endif
|
||||||
|
|
||||||
|
if WITH_PCRE2_16
|
||||||
|
pkgconfig_DATA += libpcre2-16.pc
|
||||||
|
endif
|
||||||
|
|
||||||
|
if WITH_PCRE2_32
|
||||||
|
pkgconfig_DATA += libpcre2-32.pc
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# gcov/lcov code coverage reporting
|
||||||
|
#
|
||||||
|
# Coverage reporting targets:
|
||||||
|
#
|
||||||
|
# coverage: Create a coverage report from 'make check'
|
||||||
|
# coverage-baseline: Capture baseline coverage information
|
||||||
|
# coverage-reset: This zeros the coverage counters only
|
||||||
|
# coverage-report: This creates the coverage report only
|
||||||
|
# coverage-clean-report: This removes the generated coverage report
|
||||||
|
# without cleaning the coverage data itself
|
||||||
|
# coverage-clean-data: This removes the captured coverage data without
|
||||||
|
# removing the coverage files created at compile time (*.gcno)
|
||||||
|
# coverage-clean: This cleans all coverage data including the generated
|
||||||
|
# coverage report.
|
||||||
|
|
||||||
|
if WITH_GCOV
|
||||||
|
COVERAGE_TEST_NAME = $(PACKAGE)
|
||||||
|
COVERAGE_NAME = $(PACKAGE)-$(VERSION)
|
||||||
|
COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info
|
||||||
|
COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage
|
||||||
|
COVERAGE_LCOV_EXTRA_FLAGS =
|
||||||
|
COVERAGE_GENHTML_EXTRA_FLAGS =
|
||||||
|
|
||||||
|
coverage_quiet = $(coverage_quiet_$(V))
|
||||||
|
coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
coverage_quiet_0 = --quiet
|
||||||
|
|
||||||
|
coverage-check: all
|
||||||
|
-$(MAKE) $(AM_MAKEFLAGS) -k check
|
||||||
|
|
||||||
|
coverage-baseline:
|
||||||
|
$(LCOV) $(coverage_quiet) \
|
||||||
|
--directory $(top_builddir) \
|
||||||
|
--output-file "$(COVERAGE_OUTPUT_FILE)" \
|
||||||
|
--capture \
|
||||||
|
--initial
|
||||||
|
|
||||||
|
coverage-report:
|
||||||
|
$(LCOV) $(coverage_quiet) \
|
||||||
|
--directory $(top_builddir) \
|
||||||
|
--capture \
|
||||||
|
--output-file "$(COVERAGE_OUTPUT_FILE).tmp" \
|
||||||
|
--test-name "$(COVERAGE_TEST_NAME)" \
|
||||||
|
--no-checksum \
|
||||||
|
--compat-libtool \
|
||||||
|
$(COVERAGE_LCOV_EXTRA_FLAGS)
|
||||||
|
$(LCOV) $(coverage_quiet) \
|
||||||
|
--directory $(top_builddir) \
|
||||||
|
--output-file "$(COVERAGE_OUTPUT_FILE)" \
|
||||||
|
--remove "$(COVERAGE_OUTPUT_FILE).tmp" \
|
||||||
|
"/tmp/*" \
|
||||||
|
"/usr/include/*" \
|
||||||
|
"$(includedir)/*"
|
||||||
|
-@rm -f "$(COVERAGE_OUTPUT_FILE).tmp"
|
||||||
|
LANG=C $(GENHTML) $(coverage_quiet) \
|
||||||
|
--prefix $(top_builddir) \
|
||||||
|
--output-directory "$(COVERAGE_OUTPUT_DIR)" \
|
||||||
|
--title "$(PACKAGE) $(VERSION) Code Coverage Report" \
|
||||||
|
--show-details "$(COVERAGE_OUTPUT_FILE)" \
|
||||||
|
--legend \
|
||||||
|
$(COVERAGE_GENHTML_EXTRA_FLAGS)
|
||||||
|
@echo "Code coverage report written to file://$(abs_builddir)/$(COVERAGE_OUTPUT_DIR)/index.html"
|
||||||
|
|
||||||
|
coverage-reset:
|
||||||
|
-$(LCOV) $(coverage_quiet) --zerocounters --directory $(top_builddir)
|
||||||
|
|
||||||
|
coverage-clean-report:
|
||||||
|
-rm -f "$(COVERAGE_OUTPUT_FILE)" "$(COVERAGE_OUTPUT_FILE).tmp"
|
||||||
|
-rm -rf "$(COVERAGE_OUTPUT_DIR)"
|
||||||
|
|
||||||
|
coverage-clean-data:
|
||||||
|
-find $(top_builddir) -name "*.gcda" -delete
|
||||||
|
|
||||||
|
coverage-clean: coverage-reset coverage-clean-report coverage-clean-data
|
||||||
|
-find $(top_builddir) -name "*.gcno" -delete
|
||||||
|
|
||||||
|
coverage-distclean: coverage-clean
|
||||||
|
|
||||||
|
coverage: coverage-reset coverage-baseline coverage-check coverage-report
|
||||||
|
clean-local: coverage-clean
|
||||||
|
distclean-local: coverage-distclean
|
||||||
|
|
||||||
|
.PHONY: coverage coverage-baseline coverage-check coverage-report coverage-reset coverage-clean-report coverage-clean-data coverage-clean coverage-distclean
|
||||||
|
|
||||||
|
# Without coverage support, still arrange for 'make distclean' to get rid of
|
||||||
|
# any coverage files that may have been left from a different configuration.
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
coverage:
|
||||||
|
@echo "Configuring with --enable-coverage is required to generate code coverage report."
|
||||||
|
|
||||||
|
DISTCLEANFILES += src/*.gcda src/*.gcno
|
||||||
|
|
||||||
|
distclean-local:
|
||||||
|
rm -rf $(PACKAGE)-$(VERSION)-coverage*
|
||||||
|
|
||||||
|
endif # WITH_GCOV
|
||||||
|
|
||||||
|
## CMake support
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
cmake/COPYING-CMAKE-SCRIPTS \
|
||||||
|
cmake/FindEditline.cmake \
|
||||||
|
cmake/FindReadline.cmake \
|
||||||
|
cmake/pcre2-config-version.cmake.in \
|
||||||
|
cmake/pcre2-config.cmake.in \
|
||||||
|
CMakeLists.txt \
|
||||||
|
config-cmake.h.in
|
||||||
|
|
||||||
|
## end Makefile.am
|
||||||
4029
3rd/pcre2/Makefile.in
Normal file
4029
3rd/pcre2/Makefile.in
Normal file
@@ -0,0 +1,4029 @@
|
|||||||
|
# Makefile.in generated by automake 1.16.5 from Makefile.am.
|
||||||
|
# @configure_input@
|
||||||
|
|
||||||
|
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This Makefile.in is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
@SET_MAKE@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
VPATH = @srcdir@
|
||||||
|
am__is_gnu_make = { \
|
||||||
|
if test -z '$(MAKELEVEL)'; then \
|
||||||
|
false; \
|
||||||
|
elif test -n '$(MAKE_HOST)'; then \
|
||||||
|
true; \
|
||||||
|
elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
|
||||||
|
true; \
|
||||||
|
else \
|
||||||
|
false; \
|
||||||
|
fi; \
|
||||||
|
}
|
||||||
|
am__make_running_with_option = \
|
||||||
|
case $${target_option-} in \
|
||||||
|
?) ;; \
|
||||||
|
*) echo "am__make_running_with_option: internal error: invalid" \
|
||||||
|
"target option '$${target_option-}' specified" >&2; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
has_opt=no; \
|
||||||
|
sane_makeflags=$$MAKEFLAGS; \
|
||||||
|
if $(am__is_gnu_make); then \
|
||||||
|
sane_makeflags=$$MFLAGS; \
|
||||||
|
else \
|
||||||
|
case $$MAKEFLAGS in \
|
||||||
|
*\\[\ \ ]*) \
|
||||||
|
bs=\\; \
|
||||||
|
sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
|
||||||
|
| sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
|
||||||
|
esac; \
|
||||||
|
fi; \
|
||||||
|
skip_next=no; \
|
||||||
|
strip_trailopt () \
|
||||||
|
{ \
|
||||||
|
flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
|
||||||
|
}; \
|
||||||
|
for flg in $$sane_makeflags; do \
|
||||||
|
test $$skip_next = yes && { skip_next=no; continue; }; \
|
||||||
|
case $$flg in \
|
||||||
|
*=*|--*) continue;; \
|
||||||
|
-*I) strip_trailopt 'I'; skip_next=yes;; \
|
||||||
|
-*I?*) strip_trailopt 'I';; \
|
||||||
|
-*O) strip_trailopt 'O'; skip_next=yes;; \
|
||||||
|
-*O?*) strip_trailopt 'O';; \
|
||||||
|
-*l) strip_trailopt 'l'; skip_next=yes;; \
|
||||||
|
-*l?*) strip_trailopt 'l';; \
|
||||||
|
-[dEDm]) skip_next=yes;; \
|
||||||
|
-[JT]) skip_next=yes;; \
|
||||||
|
esac; \
|
||||||
|
case $$flg in \
|
||||||
|
*$$target_option*) has_opt=yes; break;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
test $$has_opt = yes
|
||||||
|
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
|
||||||
|
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
|
||||||
|
pkgdatadir = $(datadir)/@PACKAGE@
|
||||||
|
pkgincludedir = $(includedir)/@PACKAGE@
|
||||||
|
pkglibdir = $(libdir)/@PACKAGE@
|
||||||
|
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||||
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||||
|
install_sh_DATA = $(install_sh) -c -m 644
|
||||||
|
install_sh_PROGRAM = $(install_sh) -c
|
||||||
|
install_sh_SCRIPT = $(install_sh) -c
|
||||||
|
INSTALL_HEADER = $(INSTALL_DATA)
|
||||||
|
transform = $(program_transform_name)
|
||||||
|
NORMAL_INSTALL = :
|
||||||
|
PRE_INSTALL = :
|
||||||
|
POST_INSTALL = :
|
||||||
|
NORMAL_UNINSTALL = :
|
||||||
|
PRE_UNINSTALL = :
|
||||||
|
POST_UNINSTALL = :
|
||||||
|
build_triplet = @build@
|
||||||
|
host_triplet = @host@
|
||||||
|
TESTS = $(am__EXEEXT_6) $(am__EXEEXT_7) RunTest $(am__append_43)
|
||||||
|
bin_PROGRAMS = $(am__EXEEXT_1) pcre2test$(EXEEXT)
|
||||||
|
noinst_PROGRAMS = $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \
|
||||||
|
$(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7)
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@am__append_1 = pcre2_dftables
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_2 = libpcre2-8.la
|
||||||
|
@WITH_PCRE2_16_TRUE@am__append_3 = libpcre2-16.la
|
||||||
|
@WITH_PCRE2_32_TRUE@am__append_4 = libpcre2-32.la
|
||||||
|
@WITH_PCRE2_8_TRUE@@WITH_VALGRIND_TRUE@am__append_5 = $(VALGRIND_CFLAGS)
|
||||||
|
@WITH_PCRE2_16_TRUE@@WITH_VALGRIND_TRUE@am__append_6 = $(VALGRIND_CFLAGS)
|
||||||
|
@WITH_PCRE2_32_TRUE@@WITH_VALGRIND_TRUE@am__append_7 = $(VALGRIND_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__append_8 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_16_TRUE@am__append_9 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_32_TRUE@am__append_10 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_11 = libpcre2-posix.la
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__append_12 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_13 = pcre2grep
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__append_14 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__append_15 = $(GCOV_LIBS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@am__append_16 = .libs/libpcre2-fuzzsupport.a
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@am__append_17 = pcre2fuzzcheck-8
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__append_18 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__append_19 = $(GCOV_LIBS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@am__append_20 = .libs/libpcre2-fuzzsupport-16.a
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@am__append_21 = pcre2fuzzcheck-16
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_16_TRUE@am__append_22 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_16_TRUE@am__append_23 = $(GCOV_LIBS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@am__append_24 = .libs/libpcre2-fuzzsupport-32.a
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@am__append_25 = pcre2fuzzcheck-32
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_32_TRUE@am__append_26 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_32_TRUE@am__append_27 = $(GCOV_LIBS)
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_28 = pcre2posix_test
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_29 = pcre2posix_test
|
||||||
|
@WITH_JIT_TRUE@am__append_30 = pcre2_jit_test
|
||||||
|
@WITH_JIT_TRUE@am__append_31 = pcre2_jit_test
|
||||||
|
@WITH_JIT_TRUE@@WITH_PCRE2_8_TRUE@am__append_32 = libpcre2-8.la
|
||||||
|
@WITH_JIT_TRUE@@WITH_PCRE2_16_TRUE@am__append_33 = libpcre2-16.la
|
||||||
|
@WITH_JIT_TRUE@@WITH_PCRE2_32_TRUE@am__append_34 = libpcre2-32.la
|
||||||
|
@WITH_GCOV_TRUE@@WITH_JIT_TRUE@am__append_35 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@@WITH_JIT_TRUE@am__append_36 = $(GCOV_LIBS)
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_37 = libpcre2-8.la libpcre2-posix.la
|
||||||
|
@WITH_PCRE2_16_TRUE@am__append_38 = libpcre2-16.la
|
||||||
|
@WITH_PCRE2_32_TRUE@am__append_39 = libpcre2-32.la
|
||||||
|
@WITH_VALGRIND_TRUE@am__append_40 = $(VALGRIND_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@am__append_41 = $(GCOV_CFLAGS)
|
||||||
|
@WITH_GCOV_TRUE@am__append_42 = $(GCOV_LIBS)
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_43 = RunGrepTest
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_44 = RunGrepTest.bat
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_45 = RunGrepTest
|
||||||
|
@WITH_PCRE2_8_TRUE@am__append_46 = libpcre2-8.pc libpcre2-posix.pc
|
||||||
|
@WITH_PCRE2_16_TRUE@am__append_47 = libpcre2-16.pc
|
||||||
|
@WITH_PCRE2_32_TRUE@am__append_48 = libpcre2-32.pc
|
||||||
|
@WITH_GCOV_FALSE@am__append_49 = src/*.gcda src/*.gcno
|
||||||
|
subdir = .
|
||||||
|
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||||
|
am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \
|
||||||
|
$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
|
||||||
|
$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
|
||||||
|
$(top_srcdir)/m4/lt~obsolete.m4 \
|
||||||
|
$(top_srcdir)/m4/pcre2_visibility.m4 \
|
||||||
|
$(top_srcdir)/configure.ac
|
||||||
|
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||||
|
$(ACLOCAL_M4)
|
||||||
|
DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
|
||||||
|
$(am__configure_deps) $(am__dist_noinst_SCRIPTS_DIST) \
|
||||||
|
$(dist_doc_DATA) $(dist_html_DATA) $(include_HEADERS) \
|
||||||
|
$(am__DIST_COMMON)
|
||||||
|
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||||
|
configure.lineno config.status.lineno
|
||||||
|
mkinstalldirs = $(install_sh) -d
|
||||||
|
CONFIG_HEADER = $(top_builddir)/src/config.h
|
||||||
|
CONFIG_CLEAN_FILES = libpcre2-8.pc libpcre2-16.pc libpcre2-32.pc \
|
||||||
|
libpcre2-posix.pc pcre2-config src/pcre2.h
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
@WITH_PCRE2_8_TRUE@am__EXEEXT_1 = pcre2grep$(EXEEXT)
|
||||||
|
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
|
||||||
|
"$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" \
|
||||||
|
"$(DESTDIR)$(man3dir)" "$(DESTDIR)$(docdir)" \
|
||||||
|
"$(DESTDIR)$(htmldir)" "$(DESTDIR)$(pkgconfigdir)" \
|
||||||
|
"$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@am__EXEEXT_2 = pcre2_dftables$(EXEEXT)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@am__EXEEXT_3 = pcre2fuzzcheck-8$(EXEEXT)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@am__EXEEXT_4 = pcre2fuzzcheck-16$(EXEEXT)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@am__EXEEXT_5 = pcre2fuzzcheck-32$(EXEEXT)
|
||||||
|
@WITH_PCRE2_8_TRUE@am__EXEEXT_6 = pcre2posix_test$(EXEEXT)
|
||||||
|
@WITH_JIT_TRUE@am__EXEEXT_7 = pcre2_jit_test$(EXEEXT)
|
||||||
|
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
|
||||||
|
LIBRARIES = $(noinst_LIBRARIES)
|
||||||
|
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||||
|
am__vpath_adj = case $$p in \
|
||||||
|
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||||
|
*) f=$$p;; \
|
||||||
|
esac;
|
||||||
|
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
am__install_max = 40
|
||||||
|
am__nobase_strip_setup = \
|
||||||
|
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||||
|
am__nobase_strip = \
|
||||||
|
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||||
|
am__nobase_list = $(am__nobase_strip_setup); \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||||
|
if (++n[$$2] == $(am__install_max)) \
|
||||||
|
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||||
|
END { for (dir in files) print dir, files[dir] }'
|
||||||
|
am__base_list = \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||||
|
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||||
|
am__uninstall_files_from_dir = { \
|
||||||
|
test -z "$$files" \
|
||||||
|
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|
||||||
|
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
|
||||||
|
$(am__cd) "$$dir" && rm -f $$files; }; \
|
||||||
|
}
|
||||||
|
LTLIBRARIES = $(lib_LTLIBRARIES)
|
||||||
|
ARFLAGS = cru
|
||||||
|
AM_V_AR = $(am__v_AR_@AM_V@)
|
||||||
|
am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@)
|
||||||
|
am__v_AR_0 = @echo " AR " $@;
|
||||||
|
am__v_AR_1 =
|
||||||
|
_libs_libpcre2_fuzzsupport_16_a_AR = $(AR) $(ARFLAGS)
|
||||||
|
_libs_libpcre2_fuzzsupport_16_a_DEPENDENCIES =
|
||||||
|
am___libs_libpcre2_fuzzsupport_16_a_SOURCES_DIST = \
|
||||||
|
src/pcre2_fuzzsupport.c
|
||||||
|
am__dirstamp = $(am__leading_dot)dirstamp
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@am__libs_libpcre2_fuzzsupport_16_a_OBJECTS = src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.$(OBJEXT)
|
||||||
|
_libs_libpcre2_fuzzsupport_16_a_OBJECTS = \
|
||||||
|
$(am__libs_libpcre2_fuzzsupport_16_a_OBJECTS)
|
||||||
|
_libs_libpcre2_fuzzsupport_32_a_AR = $(AR) $(ARFLAGS)
|
||||||
|
_libs_libpcre2_fuzzsupport_32_a_DEPENDENCIES =
|
||||||
|
am___libs_libpcre2_fuzzsupport_32_a_SOURCES_DIST = \
|
||||||
|
src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@am__libs_libpcre2_fuzzsupport_32_a_OBJECTS = src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.$(OBJEXT)
|
||||||
|
_libs_libpcre2_fuzzsupport_32_a_OBJECTS = \
|
||||||
|
$(am__libs_libpcre2_fuzzsupport_32_a_OBJECTS)
|
||||||
|
_libs_libpcre2_fuzzsupport_a_AR = $(AR) $(ARFLAGS)
|
||||||
|
_libs_libpcre2_fuzzsupport_a_DEPENDENCIES =
|
||||||
|
am___libs_libpcre2_fuzzsupport_a_SOURCES_DIST = \
|
||||||
|
src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@am__libs_libpcre2_fuzzsupport_a_OBJECTS = src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.$(OBJEXT)
|
||||||
|
_libs_libpcre2_fuzzsupport_a_OBJECTS = \
|
||||||
|
$(am__libs_libpcre2_fuzzsupport_a_OBJECTS)
|
||||||
|
libpcre2_16_la_DEPENDENCIES =
|
||||||
|
am__libpcre2_16_la_SOURCES_DIST = src/pcre2_auto_possess.c \
|
||||||
|
src/pcre2_chkdint.c src/pcre2_compile.c src/pcre2_compile.h \
|
||||||
|
src/pcre2_compile_class.c src/pcre2_config.c \
|
||||||
|
src/pcre2_context.c src/pcre2_convert.c src/pcre2_dfa_match.c \
|
||||||
|
src/pcre2_error.c src/pcre2_extuni.c src/pcre2_find_bracket.c \
|
||||||
|
src/pcre2_internal.h src/pcre2_intmodedep.h \
|
||||||
|
src/pcre2_jit_char_inc.h src/pcre2_jit_compile.c \
|
||||||
|
src/pcre2_jit_neon_inc.h src/pcre2_jit_simd_inc.h \
|
||||||
|
src/pcre2_maketables.c src/pcre2_match.c \
|
||||||
|
src/pcre2_match_data.c src/pcre2_newline.c src/pcre2_ord2utf.c \
|
||||||
|
src/pcre2_pattern_info.c src/pcre2_script_run.c \
|
||||||
|
src/pcre2_serialize.c src/pcre2_string_utils.c \
|
||||||
|
src/pcre2_study.c src/pcre2_substitute.c src/pcre2_substring.c \
|
||||||
|
src/pcre2_tables.c src/pcre2_ucd.c src/pcre2_ucp.h \
|
||||||
|
src/pcre2_util.h src/pcre2_valid_utf.c src/pcre2_xclass.c
|
||||||
|
am__objects_1 = src/libpcre2_16_la-pcre2_auto_possess.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_chkdint.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_compile.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_compile_class.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_config.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_context.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_convert.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_dfa_match.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_error.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_extuni.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_find_bracket.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_jit_compile.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_maketables.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_match.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_match_data.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_newline.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_ord2utf.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_pattern_info.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_script_run.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_serialize.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_string_utils.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_study.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_substitute.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_substring.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_tables.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_ucd.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_valid_utf.lo \
|
||||||
|
src/libpcre2_16_la-pcre2_xclass.lo
|
||||||
|
@WITH_PCRE2_16_TRUE@am_libpcre2_16_la_OBJECTS = $(am__objects_1)
|
||||||
|
am__objects_2 = src/libpcre2_16_la-pcre2_chartables.lo
|
||||||
|
@WITH_PCRE2_16_TRUE@nodist_libpcre2_16_la_OBJECTS = $(am__objects_2)
|
||||||
|
libpcre2_16_la_OBJECTS = $(am_libpcre2_16_la_OBJECTS) \
|
||||||
|
$(nodist_libpcre2_16_la_OBJECTS)
|
||||||
|
AM_V_lt = $(am__v_lt_@AM_V@)
|
||||||
|
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
|
||||||
|
am__v_lt_0 = --silent
|
||||||
|
am__v_lt_1 =
|
||||||
|
libpcre2_16_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(libpcre2_16_la_CFLAGS) $(CFLAGS) $(libpcre2_16_la_LDFLAGS) \
|
||||||
|
$(LDFLAGS) -o $@
|
||||||
|
@WITH_PCRE2_16_TRUE@am_libpcre2_16_la_rpath = -rpath $(libdir)
|
||||||
|
libpcre2_32_la_DEPENDENCIES =
|
||||||
|
am__libpcre2_32_la_SOURCES_DIST = src/pcre2_auto_possess.c \
|
||||||
|
src/pcre2_chkdint.c src/pcre2_compile.c src/pcre2_compile.h \
|
||||||
|
src/pcre2_compile_class.c src/pcre2_config.c \
|
||||||
|
src/pcre2_context.c src/pcre2_convert.c src/pcre2_dfa_match.c \
|
||||||
|
src/pcre2_error.c src/pcre2_extuni.c src/pcre2_find_bracket.c \
|
||||||
|
src/pcre2_internal.h src/pcre2_intmodedep.h \
|
||||||
|
src/pcre2_jit_char_inc.h src/pcre2_jit_compile.c \
|
||||||
|
src/pcre2_jit_neon_inc.h src/pcre2_jit_simd_inc.h \
|
||||||
|
src/pcre2_maketables.c src/pcre2_match.c \
|
||||||
|
src/pcre2_match_data.c src/pcre2_newline.c src/pcre2_ord2utf.c \
|
||||||
|
src/pcre2_pattern_info.c src/pcre2_script_run.c \
|
||||||
|
src/pcre2_serialize.c src/pcre2_string_utils.c \
|
||||||
|
src/pcre2_study.c src/pcre2_substitute.c src/pcre2_substring.c \
|
||||||
|
src/pcre2_tables.c src/pcre2_ucd.c src/pcre2_ucp.h \
|
||||||
|
src/pcre2_util.h src/pcre2_valid_utf.c src/pcre2_xclass.c
|
||||||
|
am__objects_3 = src/libpcre2_32_la-pcre2_auto_possess.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_chkdint.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_compile.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_compile_class.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_config.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_context.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_convert.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_dfa_match.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_error.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_extuni.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_find_bracket.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_jit_compile.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_maketables.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_match.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_match_data.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_newline.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_ord2utf.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_pattern_info.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_script_run.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_serialize.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_string_utils.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_study.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_substitute.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_substring.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_tables.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_ucd.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_valid_utf.lo \
|
||||||
|
src/libpcre2_32_la-pcre2_xclass.lo
|
||||||
|
@WITH_PCRE2_32_TRUE@am_libpcre2_32_la_OBJECTS = $(am__objects_3)
|
||||||
|
am__objects_4 = src/libpcre2_32_la-pcre2_chartables.lo
|
||||||
|
@WITH_PCRE2_32_TRUE@nodist_libpcre2_32_la_OBJECTS = $(am__objects_4)
|
||||||
|
libpcre2_32_la_OBJECTS = $(am_libpcre2_32_la_OBJECTS) \
|
||||||
|
$(nodist_libpcre2_32_la_OBJECTS)
|
||||||
|
libpcre2_32_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(libpcre2_32_la_CFLAGS) $(CFLAGS) $(libpcre2_32_la_LDFLAGS) \
|
||||||
|
$(LDFLAGS) -o $@
|
||||||
|
@WITH_PCRE2_32_TRUE@am_libpcre2_32_la_rpath = -rpath $(libdir)
|
||||||
|
libpcre2_8_la_DEPENDENCIES =
|
||||||
|
am__libpcre2_8_la_SOURCES_DIST = src/pcre2_auto_possess.c \
|
||||||
|
src/pcre2_chkdint.c src/pcre2_compile.c src/pcre2_compile.h \
|
||||||
|
src/pcre2_compile_class.c src/pcre2_config.c \
|
||||||
|
src/pcre2_context.c src/pcre2_convert.c src/pcre2_dfa_match.c \
|
||||||
|
src/pcre2_error.c src/pcre2_extuni.c src/pcre2_find_bracket.c \
|
||||||
|
src/pcre2_internal.h src/pcre2_intmodedep.h \
|
||||||
|
src/pcre2_jit_char_inc.h src/pcre2_jit_compile.c \
|
||||||
|
src/pcre2_jit_neon_inc.h src/pcre2_jit_simd_inc.h \
|
||||||
|
src/pcre2_maketables.c src/pcre2_match.c \
|
||||||
|
src/pcre2_match_data.c src/pcre2_newline.c src/pcre2_ord2utf.c \
|
||||||
|
src/pcre2_pattern_info.c src/pcre2_script_run.c \
|
||||||
|
src/pcre2_serialize.c src/pcre2_string_utils.c \
|
||||||
|
src/pcre2_study.c src/pcre2_substitute.c src/pcre2_substring.c \
|
||||||
|
src/pcre2_tables.c src/pcre2_ucd.c src/pcre2_ucp.h \
|
||||||
|
src/pcre2_util.h src/pcre2_valid_utf.c src/pcre2_xclass.c
|
||||||
|
am__objects_5 = src/libpcre2_8_la-pcre2_auto_possess.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_chkdint.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_compile.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_compile_class.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_config.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_context.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_convert.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_dfa_match.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_error.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_extuni.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_find_bracket.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_jit_compile.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_maketables.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_match.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_match_data.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_newline.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_ord2utf.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_pattern_info.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_script_run.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_serialize.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_string_utils.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_study.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_substitute.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_substring.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_tables.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_ucd.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_valid_utf.lo \
|
||||||
|
src/libpcre2_8_la-pcre2_xclass.lo
|
||||||
|
@WITH_PCRE2_8_TRUE@am_libpcre2_8_la_OBJECTS = $(am__objects_5)
|
||||||
|
am__objects_6 = src/libpcre2_8_la-pcre2_chartables.lo
|
||||||
|
@WITH_PCRE2_8_TRUE@nodist_libpcre2_8_la_OBJECTS = $(am__objects_6)
|
||||||
|
libpcre2_8_la_OBJECTS = $(am_libpcre2_8_la_OBJECTS) \
|
||||||
|
$(nodist_libpcre2_8_la_OBJECTS)
|
||||||
|
libpcre2_8_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libpcre2_8_la_CFLAGS) \
|
||||||
|
$(CFLAGS) $(libpcre2_8_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
@WITH_PCRE2_8_TRUE@am_libpcre2_8_la_rpath = -rpath $(libdir)
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_posix_la_DEPENDENCIES = libpcre2-8.la
|
||||||
|
am__libpcre2_posix_la_SOURCES_DIST = src/pcre2posix.c
|
||||||
|
@WITH_PCRE2_8_TRUE@am_libpcre2_posix_la_OBJECTS = \
|
||||||
|
@WITH_PCRE2_8_TRUE@ src/libpcre2_posix_la-pcre2posix.lo
|
||||||
|
libpcre2_posix_la_OBJECTS = $(am_libpcre2_posix_la_OBJECTS)
|
||||||
|
libpcre2_posix_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(libpcre2_posix_la_CFLAGS) $(CFLAGS) \
|
||||||
|
$(libpcre2_posix_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
@WITH_PCRE2_8_TRUE@am_libpcre2_posix_la_rpath = -rpath $(libdir)
|
||||||
|
am__pcre2_dftables_SOURCES_DIST = src/pcre2_dftables.c
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@am_pcre2_dftables_OBJECTS = \
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@ src/pcre2_dftables.$(OBJEXT)
|
||||||
|
pcre2_dftables_OBJECTS = $(am_pcre2_dftables_OBJECTS)
|
||||||
|
pcre2_dftables_LDADD = $(LDADD)
|
||||||
|
am__pcre2_jit_test_SOURCES_DIST = src/pcre2_jit_test.c
|
||||||
|
@WITH_JIT_TRUE@am_pcre2_jit_test_OBJECTS = \
|
||||||
|
@WITH_JIT_TRUE@ src/pcre2_jit_test-pcre2_jit_test.$(OBJEXT)
|
||||||
|
pcre2_jit_test_OBJECTS = $(am_pcre2_jit_test_OBJECTS)
|
||||||
|
am__DEPENDENCIES_1 =
|
||||||
|
@WITH_GCOV_TRUE@@WITH_JIT_TRUE@am__DEPENDENCIES_2 = \
|
||||||
|
@WITH_GCOV_TRUE@@WITH_JIT_TRUE@ $(am__DEPENDENCIES_1)
|
||||||
|
@WITH_JIT_TRUE@pcre2_jit_test_DEPENDENCIES = $(am__append_32) \
|
||||||
|
@WITH_JIT_TRUE@ $(am__append_33) $(am__append_34) \
|
||||||
|
@WITH_JIT_TRUE@ $(am__DEPENDENCIES_2)
|
||||||
|
pcre2_jit_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(pcre2_jit_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
|
||||||
|
$@
|
||||||
|
am__pcre2fuzzcheck_16_SOURCES_DIST = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@am_pcre2fuzzcheck_16_OBJECTS = src/pcre2fuzzcheck_16-pcre2_fuzzsupport.$(OBJEXT)
|
||||||
|
pcre2fuzzcheck_16_OBJECTS = $(am_pcre2fuzzcheck_16_OBJECTS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_16_TRUE@am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@pcre2fuzzcheck_16_DEPENDENCIES = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ libpcre2-16.la \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ $(am__DEPENDENCIES_3)
|
||||||
|
pcre2fuzzcheck_16_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(pcre2fuzzcheck_16_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||||
|
-o $@
|
||||||
|
am__pcre2fuzzcheck_32_SOURCES_DIST = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@am_pcre2fuzzcheck_32_OBJECTS = src/pcre2fuzzcheck_32-pcre2_fuzzsupport.$(OBJEXT)
|
||||||
|
pcre2fuzzcheck_32_OBJECTS = $(am_pcre2fuzzcheck_32_OBJECTS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_32_TRUE@am__DEPENDENCIES_4 = $(am__DEPENDENCIES_1)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@pcre2fuzzcheck_32_DEPENDENCIES = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ libpcre2-32.la \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ $(am__DEPENDENCIES_4)
|
||||||
|
pcre2fuzzcheck_32_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(pcre2fuzzcheck_32_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||||
|
-o $@
|
||||||
|
am__pcre2fuzzcheck_8_SOURCES_DIST = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@am_pcre2fuzzcheck_8_OBJECTS = src/pcre2fuzzcheck_8-pcre2_fuzzsupport.$(OBJEXT)
|
||||||
|
pcre2fuzzcheck_8_OBJECTS = $(am_pcre2fuzzcheck_8_OBJECTS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__DEPENDENCIES_5 = $(am__DEPENDENCIES_1)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@pcre2fuzzcheck_8_DEPENDENCIES = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ libpcre2-8.la \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ $(am__DEPENDENCIES_5)
|
||||||
|
pcre2fuzzcheck_8_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(pcre2fuzzcheck_8_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||||
|
-o $@
|
||||||
|
am__pcre2grep_SOURCES_DIST = src/pcre2grep.c
|
||||||
|
@WITH_PCRE2_8_TRUE@am_pcre2grep_OBJECTS = \
|
||||||
|
@WITH_PCRE2_8_TRUE@ src/pcre2grep-pcre2grep.$(OBJEXT)
|
||||||
|
pcre2grep_OBJECTS = $(am_pcre2grep_OBJECTS)
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@am__DEPENDENCIES_6 = \
|
||||||
|
@WITH_GCOV_TRUE@@WITH_PCRE2_8_TRUE@ $(am__DEPENDENCIES_1)
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2grep_DEPENDENCIES = $(am__DEPENDENCIES_1) \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(am__DEPENDENCIES_1) libpcre2-8.la \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(am__DEPENDENCIES_6)
|
||||||
|
pcre2grep_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(pcre2grep_CFLAGS) \
|
||||||
|
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
am__pcre2posix_test_SOURCES_DIST = src/pcre2posix_test.c
|
||||||
|
@WITH_PCRE2_8_TRUE@am_pcre2posix_test_OBJECTS = src/pcre2posix_test-pcre2posix_test.$(OBJEXT)
|
||||||
|
pcre2posix_test_OBJECTS = $(am_pcre2posix_test_OBJECTS)
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2posix_test_DEPENDENCIES = libpcre2-posix.la \
|
||||||
|
@WITH_PCRE2_8_TRUE@ libpcre2-8.la
|
||||||
|
pcre2posix_test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
|
||||||
|
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
|
||||||
|
$(pcre2posix_test_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
|
||||||
|
-o $@
|
||||||
|
am_pcre2test_OBJECTS = src/pcre2test-pcre2test.$(OBJEXT)
|
||||||
|
pcre2test_OBJECTS = $(am_pcre2test_OBJECTS)
|
||||||
|
@WITH_GCOV_TRUE@am__DEPENDENCIES_7 = $(am__DEPENDENCIES_1)
|
||||||
|
pcre2test_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__append_37) \
|
||||||
|
$(am__append_38) $(am__append_39) $(am__DEPENDENCIES_7)
|
||||||
|
pcre2test_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(pcre2test_CFLAGS) \
|
||||||
|
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
am__dist_noinst_SCRIPTS_DIST = RunTest RunGrepTest
|
||||||
|
SCRIPTS = $(bin_SCRIPTS) $(dist_noinst_SCRIPTS)
|
||||||
|
AM_V_P = $(am__v_P_@AM_V@)
|
||||||
|
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
|
||||||
|
am__v_P_0 = false
|
||||||
|
am__v_P_1 = :
|
||||||
|
AM_V_GEN = $(am__v_GEN_@AM_V@)
|
||||||
|
am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
|
||||||
|
am__v_GEN_0 = @echo " GEN " $@;
|
||||||
|
am__v_GEN_1 =
|
||||||
|
AM_V_at = $(am__v_at_@AM_V@)
|
||||||
|
am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
|
||||||
|
am__v_at_0 = @
|
||||||
|
am__v_at_1 =
|
||||||
|
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/src
|
||||||
|
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||||
|
am__maybe_remake_depfiles = depfiles
|
||||||
|
am__depfiles_remade = src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Po \
|
||||||
|
src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Po \
|
||||||
|
src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Po \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Plo \
|
||||||
|
src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Plo \
|
||||||
|
src/$(DEPDIR)/pcre2_dftables.Po \
|
||||||
|
src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Po \
|
||||||
|
src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Po \
|
||||||
|
src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Po \
|
||||||
|
src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Po \
|
||||||
|
src/$(DEPDIR)/pcre2grep-pcre2grep.Po \
|
||||||
|
src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Po \
|
||||||
|
src/$(DEPDIR)/pcre2test-pcre2test.Po
|
||||||
|
am__mv = mv -f
|
||||||
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||||
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||||
|
LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
|
||||||
|
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||||
|
$(AM_CFLAGS) $(CFLAGS)
|
||||||
|
AM_V_CC = $(am__v_CC_@AM_V@)
|
||||||
|
am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
|
||||||
|
am__v_CC_0 = @echo " CC " $@;
|
||||||
|
am__v_CC_1 =
|
||||||
|
CCLD = $(CC)
|
||||||
|
LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||||
|
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||||
|
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
AM_V_CCLD = $(am__v_CCLD_@AM_V@)
|
||||||
|
am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
|
||||||
|
am__v_CCLD_0 = @echo " CCLD " $@;
|
||||||
|
am__v_CCLD_1 =
|
||||||
|
SOURCES = $(_libs_libpcre2_fuzzsupport_16_a_SOURCES) \
|
||||||
|
$(_libs_libpcre2_fuzzsupport_32_a_SOURCES) \
|
||||||
|
$(_libs_libpcre2_fuzzsupport_a_SOURCES) \
|
||||||
|
$(libpcre2_16_la_SOURCES) $(nodist_libpcre2_16_la_SOURCES) \
|
||||||
|
$(libpcre2_32_la_SOURCES) $(nodist_libpcre2_32_la_SOURCES) \
|
||||||
|
$(libpcre2_8_la_SOURCES) $(nodist_libpcre2_8_la_SOURCES) \
|
||||||
|
$(libpcre2_posix_la_SOURCES) $(pcre2_dftables_SOURCES) \
|
||||||
|
$(pcre2_jit_test_SOURCES) $(pcre2fuzzcheck_16_SOURCES) \
|
||||||
|
$(pcre2fuzzcheck_32_SOURCES) $(pcre2fuzzcheck_8_SOURCES) \
|
||||||
|
$(pcre2grep_SOURCES) $(pcre2posix_test_SOURCES) \
|
||||||
|
$(pcre2test_SOURCES)
|
||||||
|
DIST_SOURCES = $(am___libs_libpcre2_fuzzsupport_16_a_SOURCES_DIST) \
|
||||||
|
$(am___libs_libpcre2_fuzzsupport_32_a_SOURCES_DIST) \
|
||||||
|
$(am___libs_libpcre2_fuzzsupport_a_SOURCES_DIST) \
|
||||||
|
$(am__libpcre2_16_la_SOURCES_DIST) \
|
||||||
|
$(am__libpcre2_32_la_SOURCES_DIST) \
|
||||||
|
$(am__libpcre2_8_la_SOURCES_DIST) \
|
||||||
|
$(am__libpcre2_posix_la_SOURCES_DIST) \
|
||||||
|
$(am__pcre2_dftables_SOURCES_DIST) \
|
||||||
|
$(am__pcre2_jit_test_SOURCES_DIST) \
|
||||||
|
$(am__pcre2fuzzcheck_16_SOURCES_DIST) \
|
||||||
|
$(am__pcre2fuzzcheck_32_SOURCES_DIST) \
|
||||||
|
$(am__pcre2fuzzcheck_8_SOURCES_DIST) \
|
||||||
|
$(am__pcre2grep_SOURCES_DIST) \
|
||||||
|
$(am__pcre2posix_test_SOURCES_DIST) $(pcre2test_SOURCES)
|
||||||
|
am__can_run_installinfo = \
|
||||||
|
case $$AM_UPDATE_INFO_DIR in \
|
||||||
|
n|no|NO) false;; \
|
||||||
|
*) (install-info --version) >/dev/null 2>&1;; \
|
||||||
|
esac
|
||||||
|
man1dir = $(mandir)/man1
|
||||||
|
man3dir = $(mandir)/man3
|
||||||
|
NROFF = nroff
|
||||||
|
MANS = $(dist_man_MANS)
|
||||||
|
DATA = $(dist_doc_DATA) $(dist_html_DATA) $(pkgconfig_DATA)
|
||||||
|
HEADERS = $(include_HEADERS) $(nodist_include_HEADERS)
|
||||||
|
am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
|
||||||
|
# Read a list of newline-separated strings from the standard input,
|
||||||
|
# and print each of them once, without duplicates. Input order is
|
||||||
|
# *not* preserved.
|
||||||
|
am__uniquify_input = $(AWK) '\
|
||||||
|
BEGIN { nonempty = 0; } \
|
||||||
|
{ items[$$0] = 1; nonempty = 1; } \
|
||||||
|
END { if (nonempty) { for (i in items) print i; }; } \
|
||||||
|
'
|
||||||
|
# Make sure the list of sources is unique. This is necessary because,
|
||||||
|
# e.g., the same source file might be shared among _SOURCES variables
|
||||||
|
# for different programs/libraries.
|
||||||
|
am__define_uniq_tagged_files = \
|
||||||
|
list='$(am__tagged_files)'; \
|
||||||
|
unique=`for i in $$list; do \
|
||||||
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||||
|
done | $(am__uniquify_input)`
|
||||||
|
AM_RECURSIVE_TARGETS = cscope check recheck
|
||||||
|
am__tty_colors_dummy = \
|
||||||
|
mgn= red= grn= lgn= blu= brg= std=; \
|
||||||
|
am__color_tests=no
|
||||||
|
am__tty_colors = { \
|
||||||
|
$(am__tty_colors_dummy); \
|
||||||
|
if test "X$(AM_COLOR_TESTS)" = Xno; then \
|
||||||
|
am__color_tests=no; \
|
||||||
|
elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
|
||||||
|
am__color_tests=yes; \
|
||||||
|
elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
|
||||||
|
am__color_tests=yes; \
|
||||||
|
fi; \
|
||||||
|
if test $$am__color_tests = yes; then \
|
||||||
|
red='[0;31m'; \
|
||||||
|
grn='[0;32m'; \
|
||||||
|
lgn='[1;32m'; \
|
||||||
|
blu='[1;34m'; \
|
||||||
|
mgn='[0;35m'; \
|
||||||
|
brg='[1m'; \
|
||||||
|
std='[m'; \
|
||||||
|
fi; \
|
||||||
|
}
|
||||||
|
am__recheck_rx = ^[ ]*:recheck:[ ]*
|
||||||
|
am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
|
||||||
|
am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
|
||||||
|
# A command that, given a newline-separated list of test names on the
|
||||||
|
# standard input, print the name of the tests that are to be re-run
|
||||||
|
# upon "make recheck".
|
||||||
|
am__list_recheck_tests = $(AWK) '{ \
|
||||||
|
recheck = 1; \
|
||||||
|
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
||||||
|
{ \
|
||||||
|
if (rc < 0) \
|
||||||
|
{ \
|
||||||
|
if ((getline line2 < ($$0 ".log")) < 0) \
|
||||||
|
recheck = 0; \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
|
||||||
|
{ \
|
||||||
|
recheck = 0; \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
|
||||||
|
{ \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
}; \
|
||||||
|
if (recheck) \
|
||||||
|
print $$0; \
|
||||||
|
close ($$0 ".trs"); \
|
||||||
|
close ($$0 ".log"); \
|
||||||
|
}'
|
||||||
|
# A command that, given a newline-separated list of test names on the
|
||||||
|
# standard input, create the global log from their .trs and .log files.
|
||||||
|
am__create_global_log = $(AWK) ' \
|
||||||
|
function fatal(msg) \
|
||||||
|
{ \
|
||||||
|
print "fatal: making $@: " msg | "cat >&2"; \
|
||||||
|
exit 1; \
|
||||||
|
} \
|
||||||
|
function rst_section(header) \
|
||||||
|
{ \
|
||||||
|
print header; \
|
||||||
|
len = length(header); \
|
||||||
|
for (i = 1; i <= len; i = i + 1) \
|
||||||
|
printf "="; \
|
||||||
|
printf "\n\n"; \
|
||||||
|
} \
|
||||||
|
{ \
|
||||||
|
copy_in_global_log = 1; \
|
||||||
|
global_test_result = "RUN"; \
|
||||||
|
while ((rc = (getline line < ($$0 ".trs"))) != 0) \
|
||||||
|
{ \
|
||||||
|
if (rc < 0) \
|
||||||
|
fatal("failed to read from " $$0 ".trs"); \
|
||||||
|
if (line ~ /$(am__global_test_result_rx)/) \
|
||||||
|
{ \
|
||||||
|
sub("$(am__global_test_result_rx)", "", line); \
|
||||||
|
sub("[ ]*$$", "", line); \
|
||||||
|
global_test_result = line; \
|
||||||
|
} \
|
||||||
|
else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
|
||||||
|
copy_in_global_log = 0; \
|
||||||
|
}; \
|
||||||
|
if (copy_in_global_log) \
|
||||||
|
{ \
|
||||||
|
rst_section(global_test_result ": " $$0); \
|
||||||
|
while ((rc = (getline line < ($$0 ".log"))) != 0) \
|
||||||
|
{ \
|
||||||
|
if (rc < 0) \
|
||||||
|
fatal("failed to read from " $$0 ".log"); \
|
||||||
|
print line; \
|
||||||
|
}; \
|
||||||
|
printf "\n"; \
|
||||||
|
}; \
|
||||||
|
close ($$0 ".trs"); \
|
||||||
|
close ($$0 ".log"); \
|
||||||
|
}'
|
||||||
|
# Restructured Text title.
|
||||||
|
am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
|
||||||
|
# Solaris 10 'make', and several other traditional 'make' implementations,
|
||||||
|
# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
|
||||||
|
# by disabling -e (using the XSI extension "set +e") if it's set.
|
||||||
|
am__sh_e_setup = case $$- in *e*) set +e;; esac
|
||||||
|
# Default flags passed to test drivers.
|
||||||
|
am__common_driver_flags = \
|
||||||
|
--color-tests "$$am__color_tests" \
|
||||||
|
--enable-hard-errors "$$am__enable_hard_errors" \
|
||||||
|
--expect-failure "$$am__expect_failure"
|
||||||
|
# To be inserted before the command running the test. Creates the
|
||||||
|
# directory for the log if needed. Stores in $dir the directory
|
||||||
|
# containing $f, in $tst the test, in $log the log. Executes the
|
||||||
|
# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
|
||||||
|
# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
|
||||||
|
# will run the test scripts (or their associated LOG_COMPILER, if
|
||||||
|
# thy have one).
|
||||||
|
am__check_pre = \
|
||||||
|
$(am__sh_e_setup); \
|
||||||
|
$(am__vpath_adj_setup) $(am__vpath_adj) \
|
||||||
|
$(am__tty_colors); \
|
||||||
|
srcdir=$(srcdir); export srcdir; \
|
||||||
|
case "$@" in \
|
||||||
|
*/*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
|
||||||
|
*) am__odir=.;; \
|
||||||
|
esac; \
|
||||||
|
test "x$$am__odir" = x"." || test -d "$$am__odir" \
|
||||||
|
|| $(MKDIR_P) "$$am__odir" || exit $$?; \
|
||||||
|
if test -f "./$$f"; then dir=./; \
|
||||||
|
elif test -f "$$f"; then dir=; \
|
||||||
|
else dir="$(srcdir)/"; fi; \
|
||||||
|
tst=$$dir$$f; log='$@'; \
|
||||||
|
if test -n '$(DISABLE_HARD_ERRORS)'; then \
|
||||||
|
am__enable_hard_errors=no; \
|
||||||
|
else \
|
||||||
|
am__enable_hard_errors=yes; \
|
||||||
|
fi; \
|
||||||
|
case " $(XFAIL_TESTS) " in \
|
||||||
|
*[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
|
||||||
|
am__expect_failure=yes;; \
|
||||||
|
*) \
|
||||||
|
am__expect_failure=no;; \
|
||||||
|
esac; \
|
||||||
|
$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
|
||||||
|
# A shell command to get the names of the tests scripts with any registered
|
||||||
|
# extension removed (i.e., equivalently, the names of the test logs, with
|
||||||
|
# the '.log' extension removed). The result is saved in the shell variable
|
||||||
|
# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
|
||||||
|
# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
|
||||||
|
# since that might cause problem with VPATH rewrites for suffix-less tests.
|
||||||
|
# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
|
||||||
|
am__set_TESTS_bases = \
|
||||||
|
bases='$(TEST_LOGS)'; \
|
||||||
|
bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
|
||||||
|
bases=`echo $$bases`
|
||||||
|
AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
|
||||||
|
RECHECK_LOGS = $(TEST_LOGS)
|
||||||
|
TEST_SUITE_LOG = test-suite.log
|
||||||
|
TEST_EXTENSIONS = @EXEEXT@ .test
|
||||||
|
LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
|
||||||
|
LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
|
||||||
|
am__set_b = \
|
||||||
|
case '$@' in \
|
||||||
|
*/*) \
|
||||||
|
case '$*' in \
|
||||||
|
*/*) b='$*';; \
|
||||||
|
*) b=`echo '$@' | sed 's/\.log$$//'`; \
|
||||||
|
esac;; \
|
||||||
|
*) \
|
||||||
|
b='$*';; \
|
||||||
|
esac
|
||||||
|
am__test_logs1 = $(TESTS:=.log)
|
||||||
|
am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
|
||||||
|
TEST_LOGS = $(am__test_logs2:.test.log=.log)
|
||||||
|
TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
|
||||||
|
TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
|
||||||
|
$(TEST_LOG_FLAGS)
|
||||||
|
am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
|
||||||
|
$(srcdir)/libpcre2-16.pc.in $(srcdir)/libpcre2-32.pc.in \
|
||||||
|
$(srcdir)/libpcre2-8.pc.in $(srcdir)/libpcre2-posix.pc.in \
|
||||||
|
$(srcdir)/pcre2-config.in $(top_srcdir)/src/config.h.in \
|
||||||
|
$(top_srcdir)/src/pcre2.h.in AUTHORS.md COPYING ChangeLog \
|
||||||
|
INSTALL NEWS README ar-lib compile config.guess config.sub \
|
||||||
|
depcomp install-sh ltmain.sh missing test-driver
|
||||||
|
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
distdir = $(PACKAGE)-$(VERSION)
|
||||||
|
top_distdir = $(distdir)
|
||||||
|
am__remove_distdir = \
|
||||||
|
if test -d "$(distdir)"; then \
|
||||||
|
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||||
|
&& rm -rf "$(distdir)" \
|
||||||
|
|| { sleep 5 && rm -rf "$(distdir)"; }; \
|
||||||
|
else :; fi
|
||||||
|
am__post_remove_distdir = $(am__remove_distdir)
|
||||||
|
DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).zip
|
||||||
|
GZIP_ENV = --best
|
||||||
|
DIST_TARGETS = dist-bzip2 dist-gzip dist-zip
|
||||||
|
# Exists only to be overridden by the user if desired.
|
||||||
|
AM_DISTCHECK_DVI_TARGET = dvi
|
||||||
|
distuninstallcheck_listfiles = find . -type f -print
|
||||||
|
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||||
|
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
|
||||||
|
distcleancheck_listfiles = find . -type f -print
|
||||||
|
ACLOCAL = @ACLOCAL@
|
||||||
|
AMTAR = @AMTAR@
|
||||||
|
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
|
||||||
|
AR = @AR@
|
||||||
|
AS = @AS@
|
||||||
|
AUTOCONF = @AUTOCONF@
|
||||||
|
AUTOHEADER = @AUTOHEADER@
|
||||||
|
AUTOMAKE = @AUTOMAKE@
|
||||||
|
AWK = @AWK@
|
||||||
|
CC = @CC@
|
||||||
|
CCDEPMODE = @CCDEPMODE@
|
||||||
|
CET_CFLAGS = @CET_CFLAGS@
|
||||||
|
CFLAGS = @CFLAGS@
|
||||||
|
CPPFLAGS = @CPPFLAGS@
|
||||||
|
CSCOPE = @CSCOPE@
|
||||||
|
CTAGS = @CTAGS@
|
||||||
|
CYGPATH_W = @CYGPATH_W@
|
||||||
|
DEFS = @DEFS@
|
||||||
|
DEPDIR = @DEPDIR@
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@
|
||||||
|
DLLTOOL = @DLLTOOL@
|
||||||
|
DSYMUTIL = @DSYMUTIL@
|
||||||
|
DUMPBIN = @DUMPBIN@
|
||||||
|
ECHO_C = @ECHO_C@
|
||||||
|
ECHO_N = @ECHO_N@
|
||||||
|
ECHO_T = @ECHO_T@
|
||||||
|
EGREP = @EGREP@
|
||||||
|
ETAGS = @ETAGS@
|
||||||
|
EXEEXT = @EXEEXT@
|
||||||
|
EXTRA_LIBPCRE2_16_LDFLAGS = @EXTRA_LIBPCRE2_16_LDFLAGS@
|
||||||
|
EXTRA_LIBPCRE2_32_LDFLAGS = @EXTRA_LIBPCRE2_32_LDFLAGS@
|
||||||
|
EXTRA_LIBPCRE2_8_LDFLAGS = @EXTRA_LIBPCRE2_8_LDFLAGS@
|
||||||
|
EXTRA_LIBPCRE2_POSIX_LDFLAGS = @EXTRA_LIBPCRE2_POSIX_LDFLAGS@
|
||||||
|
FGREP = @FGREP@
|
||||||
|
FILECMD = @FILECMD@
|
||||||
|
GCOV_CFLAGS = @GCOV_CFLAGS@
|
||||||
|
GCOV_CXXFLAGS = @GCOV_CXXFLAGS@
|
||||||
|
GCOV_LIBS = @GCOV_LIBS@
|
||||||
|
GENHTML = @GENHTML@
|
||||||
|
GREP = @GREP@
|
||||||
|
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||||
|
INSTALL = @INSTALL@
|
||||||
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
|
LCOV = @LCOV@
|
||||||
|
LD = @LD@
|
||||||
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBBZ2 = @LIBBZ2@
|
||||||
|
LIBOBJS = @LIBOBJS@
|
||||||
|
LIBREADLINE = @LIBREADLINE@
|
||||||
|
LIBS = @LIBS@
|
||||||
|
LIBTOOL = @LIBTOOL@
|
||||||
|
LIBZ = @LIBZ@
|
||||||
|
LIB_POSTFIX = @LIB_POSTFIX@
|
||||||
|
LIPO = @LIPO@
|
||||||
|
LN_S = @LN_S@
|
||||||
|
LTLIBOBJS = @LTLIBOBJS@
|
||||||
|
LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
|
||||||
|
MAINT = @MAINT@
|
||||||
|
MAKEINFO = @MAKEINFO@
|
||||||
|
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||||
|
MKDIR_P = @MKDIR_P@
|
||||||
|
NM = @NM@
|
||||||
|
NMEDIT = @NMEDIT@
|
||||||
|
OBJDUMP = @OBJDUMP@
|
||||||
|
OBJEXT = @OBJEXT@
|
||||||
|
OTOOL = @OTOOL@
|
||||||
|
OTOOL64 = @OTOOL64@
|
||||||
|
PACKAGE = @PACKAGE@
|
||||||
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||||
|
PACKAGE_NAME = @PACKAGE_NAME@
|
||||||
|
PACKAGE_STRING = @PACKAGE_STRING@
|
||||||
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||||
|
PACKAGE_URL = @PACKAGE_URL@
|
||||||
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||||
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||||
|
PCRE2POSIX_CFLAG = @PCRE2POSIX_CFLAG@
|
||||||
|
PCRE2_DATE = @PCRE2_DATE@
|
||||||
|
PCRE2_MAJOR = @PCRE2_MAJOR@
|
||||||
|
PCRE2_MINOR = @PCRE2_MINOR@
|
||||||
|
PCRE2_PRERELEASE = @PCRE2_PRERELEASE@
|
||||||
|
PCRE2_STATIC_CFLAG = @PCRE2_STATIC_CFLAG@
|
||||||
|
PKG_CONFIG = @PKG_CONFIG@
|
||||||
|
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
|
||||||
|
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
|
||||||
|
PTHREAD_CC = @PTHREAD_CC@
|
||||||
|
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||||
|
PTHREAD_LIBS = @PTHREAD_LIBS@
|
||||||
|
RANLIB = @RANLIB@
|
||||||
|
SED = @SED@
|
||||||
|
SET_MAKE = @SET_MAKE@
|
||||||
|
SHELL = @SHELL@
|
||||||
|
SHTOOL = @SHTOOL@
|
||||||
|
STRIP = @STRIP@
|
||||||
|
VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
|
||||||
|
VALGRIND_LIBS = @VALGRIND_LIBS@
|
||||||
|
VERSION = @VERSION@
|
||||||
|
VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
|
||||||
|
abs_builddir = @abs_builddir@
|
||||||
|
abs_srcdir = @abs_srcdir@
|
||||||
|
abs_top_builddir = @abs_top_builddir@
|
||||||
|
abs_top_srcdir = @abs_top_srcdir@
|
||||||
|
ac_ct_AR = @ac_ct_AR@
|
||||||
|
ac_ct_CC = @ac_ct_CC@
|
||||||
|
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||||
|
am__include = @am__include@
|
||||||
|
am__leading_dot = @am__leading_dot@
|
||||||
|
am__quote = @am__quote@
|
||||||
|
am__tar = @am__tar@
|
||||||
|
am__untar = @am__untar@
|
||||||
|
ax_pthread_config = @ax_pthread_config@
|
||||||
|
bindir = @bindir@
|
||||||
|
build = @build@
|
||||||
|
build_alias = @build_alias@
|
||||||
|
build_cpu = @build_cpu@
|
||||||
|
build_os = @build_os@
|
||||||
|
build_vendor = @build_vendor@
|
||||||
|
builddir = @builddir@
|
||||||
|
datadir = @datadir@
|
||||||
|
datarootdir = @datarootdir@
|
||||||
|
docdir = @docdir@
|
||||||
|
dvidir = @dvidir@
|
||||||
|
enable_pcre2_16 = @enable_pcre2_16@
|
||||||
|
enable_pcre2_32 = @enable_pcre2_32@
|
||||||
|
enable_pcre2_8 = @enable_pcre2_8@
|
||||||
|
exec_prefix = @exec_prefix@
|
||||||
|
host = @host@
|
||||||
|
host_alias = @host_alias@
|
||||||
|
host_cpu = @host_cpu@
|
||||||
|
host_os = @host_os@
|
||||||
|
host_vendor = @host_vendor@
|
||||||
|
htmldir = @htmldir@
|
||||||
|
includedir = @includedir@
|
||||||
|
infodir = @infodir@
|
||||||
|
install_sh = @install_sh@
|
||||||
|
libdir = @libdir@
|
||||||
|
libexecdir = @libexecdir@
|
||||||
|
localedir = @localedir@
|
||||||
|
localstatedir = @localstatedir@
|
||||||
|
mandir = @mandir@
|
||||||
|
mkdir_p = @mkdir_p@
|
||||||
|
oldincludedir = @oldincludedir@
|
||||||
|
pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
runstatedir = @runstatedir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
sysconfdir = @sysconfdir@
|
||||||
|
target_alias = @target_alias@
|
||||||
|
top_build_prefix = @top_build_prefix@
|
||||||
|
top_builddir = @top_builddir@
|
||||||
|
top_srcdir = @top_srcdir@
|
||||||
|
AUTOMAKE_OPTIONS = subdir-objects
|
||||||
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
AM_CPPFLAGS = "-I$(srcdir)/src"
|
||||||
|
dist_doc_DATA = \
|
||||||
|
AUTHORS.md \
|
||||||
|
COPYING \
|
||||||
|
ChangeLog \
|
||||||
|
LICENCE.md \
|
||||||
|
NEWS \
|
||||||
|
README \
|
||||||
|
SECURITY.md \
|
||||||
|
doc/pcre2.txt \
|
||||||
|
doc/pcre2-config.txt \
|
||||||
|
doc/pcre2grep.txt \
|
||||||
|
doc/pcre2test.txt
|
||||||
|
|
||||||
|
dist_html_DATA = \
|
||||||
|
doc/html/NON-AUTOTOOLS-BUILD.txt \
|
||||||
|
doc/html/README.txt \
|
||||||
|
doc/html/index.html \
|
||||||
|
doc/html/pcre2-config.html \
|
||||||
|
doc/html/pcre2.html \
|
||||||
|
doc/html/pcre2_callout_enumerate.html \
|
||||||
|
doc/html/pcre2_code_copy.html \
|
||||||
|
doc/html/pcre2_code_copy_with_tables.html \
|
||||||
|
doc/html/pcre2_code_free.html \
|
||||||
|
doc/html/pcre2_compile.html \
|
||||||
|
doc/html/pcre2_compile_context_copy.html \
|
||||||
|
doc/html/pcre2_compile_context_create.html \
|
||||||
|
doc/html/pcre2_compile_context_free.html \
|
||||||
|
doc/html/pcre2_config.html \
|
||||||
|
doc/html/pcre2_convert_context_copy.html \
|
||||||
|
doc/html/pcre2_convert_context_create.html \
|
||||||
|
doc/html/pcre2_convert_context_free.html \
|
||||||
|
doc/html/pcre2_converted_pattern_free.html \
|
||||||
|
doc/html/pcre2_dfa_match.html \
|
||||||
|
doc/html/pcre2_general_context_copy.html \
|
||||||
|
doc/html/pcre2_general_context_create.html \
|
||||||
|
doc/html/pcre2_general_context_free.html \
|
||||||
|
doc/html/pcre2_get_error_message.html \
|
||||||
|
doc/html/pcre2_get_mark.html \
|
||||||
|
doc/html/pcre2_get_match_data_heapframes_size.html \
|
||||||
|
doc/html/pcre2_get_match_data_size.html \
|
||||||
|
doc/html/pcre2_get_ovector_count.html \
|
||||||
|
doc/html/pcre2_get_ovector_pointer.html \
|
||||||
|
doc/html/pcre2_get_startchar.html \
|
||||||
|
doc/html/pcre2_jit_compile.html \
|
||||||
|
doc/html/pcre2_jit_free_unused_memory.html \
|
||||||
|
doc/html/pcre2_jit_match.html \
|
||||||
|
doc/html/pcre2_jit_stack_assign.html \
|
||||||
|
doc/html/pcre2_jit_stack_create.html \
|
||||||
|
doc/html/pcre2_jit_stack_free.html \
|
||||||
|
doc/html/pcre2_maketables.html \
|
||||||
|
doc/html/pcre2_maketables_free.html \
|
||||||
|
doc/html/pcre2_match.html \
|
||||||
|
doc/html/pcre2_match_context_copy.html \
|
||||||
|
doc/html/pcre2_match_context_create.html \
|
||||||
|
doc/html/pcre2_match_context_free.html \
|
||||||
|
doc/html/pcre2_match_data_create.html \
|
||||||
|
doc/html/pcre2_match_data_create_from_pattern.html \
|
||||||
|
doc/html/pcre2_match_data_free.html \
|
||||||
|
doc/html/pcre2_pattern_convert.html \
|
||||||
|
doc/html/pcre2_pattern_info.html \
|
||||||
|
doc/html/pcre2_serialize_decode.html \
|
||||||
|
doc/html/pcre2_serialize_encode.html \
|
||||||
|
doc/html/pcre2_serialize_free.html \
|
||||||
|
doc/html/pcre2_serialize_get_number_of_codes.html \
|
||||||
|
doc/html/pcre2_set_bsr.html \
|
||||||
|
doc/html/pcre2_set_callout.html \
|
||||||
|
doc/html/pcre2_set_character_tables.html \
|
||||||
|
doc/html/pcre2_set_compile_extra_options.html \
|
||||||
|
doc/html/pcre2_set_compile_recursion_guard.html \
|
||||||
|
doc/html/pcre2_set_depth_limit.html \
|
||||||
|
doc/html/pcre2_set_glob_escape.html \
|
||||||
|
doc/html/pcre2_set_glob_separator.html \
|
||||||
|
doc/html/pcre2_set_heap_limit.html \
|
||||||
|
doc/html/pcre2_set_match_limit.html \
|
||||||
|
doc/html/pcre2_set_max_pattern_compiled_length.html \
|
||||||
|
doc/html/pcre2_set_max_pattern_length.html \
|
||||||
|
doc/html/pcre2_set_max_varlookbehind.html \
|
||||||
|
doc/html/pcre2_set_offset_limit.html \
|
||||||
|
doc/html/pcre2_set_optimize.html \
|
||||||
|
doc/html/pcre2_set_newline.html \
|
||||||
|
doc/html/pcre2_set_parens_nest_limit.html \
|
||||||
|
doc/html/pcre2_set_recursion_limit.html \
|
||||||
|
doc/html/pcre2_set_recursion_memory_management.html \
|
||||||
|
doc/html/pcre2_set_substitute_callout.html \
|
||||||
|
doc/html/pcre2_set_substitute_case_callout.html \
|
||||||
|
doc/html/pcre2_substitute.html \
|
||||||
|
doc/html/pcre2_substring_copy_byname.html \
|
||||||
|
doc/html/pcre2_substring_copy_bynumber.html \
|
||||||
|
doc/html/pcre2_substring_free.html \
|
||||||
|
doc/html/pcre2_substring_get_byname.html \
|
||||||
|
doc/html/pcre2_substring_get_bynumber.html \
|
||||||
|
doc/html/pcre2_substring_length_byname.html \
|
||||||
|
doc/html/pcre2_substring_length_bynumber.html \
|
||||||
|
doc/html/pcre2_substring_list_free.html \
|
||||||
|
doc/html/pcre2_substring_list_get.html \
|
||||||
|
doc/html/pcre2_substring_nametable_scan.html \
|
||||||
|
doc/html/pcre2_substring_number_from_name.html \
|
||||||
|
doc/html/pcre2api.html \
|
||||||
|
doc/html/pcre2build.html \
|
||||||
|
doc/html/pcre2callout.html \
|
||||||
|
doc/html/pcre2compat.html \
|
||||||
|
doc/html/pcre2convert.html \
|
||||||
|
doc/html/pcre2demo.html \
|
||||||
|
doc/html/pcre2grep.html \
|
||||||
|
doc/html/pcre2jit.html \
|
||||||
|
doc/html/pcre2limits.html \
|
||||||
|
doc/html/pcre2matching.html \
|
||||||
|
doc/html/pcre2partial.html \
|
||||||
|
doc/html/pcre2pattern.html \
|
||||||
|
doc/html/pcre2perform.html \
|
||||||
|
doc/html/pcre2posix.html \
|
||||||
|
doc/html/pcre2sample.html \
|
||||||
|
doc/html/pcre2serialize.html \
|
||||||
|
doc/html/pcre2syntax.html \
|
||||||
|
doc/html/pcre2test.html \
|
||||||
|
doc/html/pcre2unicode.html
|
||||||
|
|
||||||
|
dist_man_MANS = \
|
||||||
|
doc/pcre2-config.1 \
|
||||||
|
doc/pcre2.3 \
|
||||||
|
doc/pcre2_callout_enumerate.3 \
|
||||||
|
doc/pcre2_code_copy.3 \
|
||||||
|
doc/pcre2_code_copy_with_tables.3 \
|
||||||
|
doc/pcre2_code_free.3 \
|
||||||
|
doc/pcre2_compile.3 \
|
||||||
|
doc/pcre2_compile_context_copy.3 \
|
||||||
|
doc/pcre2_compile_context_create.3 \
|
||||||
|
doc/pcre2_compile_context_free.3 \
|
||||||
|
doc/pcre2_config.3 \
|
||||||
|
doc/pcre2_convert_context_copy.3 \
|
||||||
|
doc/pcre2_convert_context_create.3 \
|
||||||
|
doc/pcre2_convert_context_free.3 \
|
||||||
|
doc/pcre2_converted_pattern_free.3 \
|
||||||
|
doc/pcre2_dfa_match.3 \
|
||||||
|
doc/pcre2_general_context_copy.3 \
|
||||||
|
doc/pcre2_general_context_create.3 \
|
||||||
|
doc/pcre2_general_context_free.3 \
|
||||||
|
doc/pcre2_get_error_message.3 \
|
||||||
|
doc/pcre2_get_mark.3 \
|
||||||
|
doc/pcre2_get_match_data_heapframes_size.3 \
|
||||||
|
doc/pcre2_get_match_data_size.3 \
|
||||||
|
doc/pcre2_get_ovector_count.3 \
|
||||||
|
doc/pcre2_get_ovector_pointer.3 \
|
||||||
|
doc/pcre2_get_startchar.3 \
|
||||||
|
doc/pcre2_jit_compile.3 \
|
||||||
|
doc/pcre2_jit_free_unused_memory.3 \
|
||||||
|
doc/pcre2_jit_match.3 \
|
||||||
|
doc/pcre2_jit_stack_assign.3 \
|
||||||
|
doc/pcre2_jit_stack_create.3 \
|
||||||
|
doc/pcre2_jit_stack_free.3 \
|
||||||
|
doc/pcre2_maketables.3 \
|
||||||
|
doc/pcre2_maketables_free.3 \
|
||||||
|
doc/pcre2_match.3 \
|
||||||
|
doc/pcre2_match_context_copy.3 \
|
||||||
|
doc/pcre2_match_context_create.3 \
|
||||||
|
doc/pcre2_match_context_free.3 \
|
||||||
|
doc/pcre2_match_data_create.3 \
|
||||||
|
doc/pcre2_match_data_create_from_pattern.3 \
|
||||||
|
doc/pcre2_match_data_free.3 \
|
||||||
|
doc/pcre2_pattern_convert.3 \
|
||||||
|
doc/pcre2_pattern_info.3 \
|
||||||
|
doc/pcre2_serialize_decode.3 \
|
||||||
|
doc/pcre2_serialize_encode.3 \
|
||||||
|
doc/pcre2_serialize_free.3 \
|
||||||
|
doc/pcre2_serialize_get_number_of_codes.3 \
|
||||||
|
doc/pcre2_set_bsr.3 \
|
||||||
|
doc/pcre2_set_callout.3 \
|
||||||
|
doc/pcre2_set_character_tables.3 \
|
||||||
|
doc/pcre2_set_compile_extra_options.3 \
|
||||||
|
doc/pcre2_set_compile_recursion_guard.3 \
|
||||||
|
doc/pcre2_set_depth_limit.3 \
|
||||||
|
doc/pcre2_set_glob_escape.3 \
|
||||||
|
doc/pcre2_set_glob_separator.3 \
|
||||||
|
doc/pcre2_set_heap_limit.3 \
|
||||||
|
doc/pcre2_set_match_limit.3 \
|
||||||
|
doc/pcre2_set_max_pattern_compiled_length.3 \
|
||||||
|
doc/pcre2_set_max_pattern_length.3 \
|
||||||
|
doc/pcre2_set_max_varlookbehind.3 \
|
||||||
|
doc/pcre2_set_offset_limit.3 \
|
||||||
|
doc/pcre2_set_optimize.3 \
|
||||||
|
doc/pcre2_set_newline.3 \
|
||||||
|
doc/pcre2_set_parens_nest_limit.3 \
|
||||||
|
doc/pcre2_set_recursion_limit.3 \
|
||||||
|
doc/pcre2_set_recursion_memory_management.3 \
|
||||||
|
doc/pcre2_set_substitute_callout.3 \
|
||||||
|
doc/pcre2_set_substitute_case_callout.3 \
|
||||||
|
doc/pcre2_substitute.3 \
|
||||||
|
doc/pcre2_substring_copy_byname.3 \
|
||||||
|
doc/pcre2_substring_copy_bynumber.3 \
|
||||||
|
doc/pcre2_substring_free.3 \
|
||||||
|
doc/pcre2_substring_get_byname.3 \
|
||||||
|
doc/pcre2_substring_get_bynumber.3 \
|
||||||
|
doc/pcre2_substring_length_byname.3 \
|
||||||
|
doc/pcre2_substring_length_bynumber.3 \
|
||||||
|
doc/pcre2_substring_list_free.3 \
|
||||||
|
doc/pcre2_substring_list_get.3 \
|
||||||
|
doc/pcre2_substring_nametable_scan.3 \
|
||||||
|
doc/pcre2_substring_number_from_name.3 \
|
||||||
|
doc/pcre2api.3 \
|
||||||
|
doc/pcre2build.3 \
|
||||||
|
doc/pcre2callout.3 \
|
||||||
|
doc/pcre2compat.3 \
|
||||||
|
doc/pcre2convert.3 \
|
||||||
|
doc/pcre2demo.3 \
|
||||||
|
doc/pcre2grep.1 \
|
||||||
|
doc/pcre2jit.3 \
|
||||||
|
doc/pcre2limits.3 \
|
||||||
|
doc/pcre2matching.3 \
|
||||||
|
doc/pcre2partial.3 \
|
||||||
|
doc/pcre2pattern.3 \
|
||||||
|
doc/pcre2perform.3 \
|
||||||
|
doc/pcre2posix.3 \
|
||||||
|
doc/pcre2sample.3 \
|
||||||
|
doc/pcre2serialize.3 \
|
||||||
|
doc/pcre2syntax.3 \
|
||||||
|
doc/pcre2test.1 \
|
||||||
|
doc/pcre2unicode.3
|
||||||
|
|
||||||
|
|
||||||
|
# The Libtool libraries to install. We'll add to this later.
|
||||||
|
lib_LTLIBRARIES = $(am__append_2) $(am__append_3) $(am__append_4) \
|
||||||
|
$(am__append_11)
|
||||||
|
check_SCRIPTS =
|
||||||
|
dist_noinst_SCRIPTS = RunTest $(am__append_45)
|
||||||
|
|
||||||
|
# Additional files to delete on 'make clean', 'make distclean',
|
||||||
|
# and 'make maintainer-clean'. It turns out that the default is to delete only
|
||||||
|
# those binaries that *this* configuration has created. If the configuration
|
||||||
|
# has been changed, some binaries may not get automatically deleted. Therefore
|
||||||
|
# we list them here.
|
||||||
|
|
||||||
|
# RunTest and RunGrepTest should clean up after themselves, but just in case
|
||||||
|
# they don't, add their working files to CLEANFILES.
|
||||||
|
CLEANFILES = pcre2_dftables pcre2_jit_test pcre2fuzzcheck-8 \
|
||||||
|
pcre2fuzzcheck-16 pcre2fuzzcheck-32 pcre2demo \
|
||||||
|
src/pcre2_chartables.c testSinput test3input test3output \
|
||||||
|
test3outputA test3outputB testtry teststdout teststderr \
|
||||||
|
teststderrgrep testtemp1grep testtemp2grep testtrygrep \
|
||||||
|
testNinputgrep
|
||||||
|
DISTCLEANFILES = src/config.h.in~ $(am__append_49)
|
||||||
|
MAINTAINERCLEANFILES = src/pcre2.h.generic src/config.h.generic
|
||||||
|
|
||||||
|
# Additional files to bundle with the distribution, over and above what
|
||||||
|
# the Autotools include by default.
|
||||||
|
|
||||||
|
# These files contain additional m4 macros that are used by autoconf.
|
||||||
|
|
||||||
|
# These files contain maintenance information
|
||||||
|
|
||||||
|
# These are support files for building with Bazel or Zig
|
||||||
|
|
||||||
|
# These are support files for building under VMS
|
||||||
|
|
||||||
|
# These files are usable versions of pcre2.h and config.h that are distributed
|
||||||
|
# for the benefit of people who are building PCRE2 manually, without the
|
||||||
|
# Autotools support.
|
||||||
|
|
||||||
|
# The pcre2_ucptables.c file is #included by pcre2_tables.c
|
||||||
|
|
||||||
|
# The pcre2_chartables.c.dist file is the default version of
|
||||||
|
# pcre2_chartables.c, used unless --enable-rebuild-chartables is specified.
|
||||||
|
|
||||||
|
# The JIT compiler lives in a separate directory, but its files are #included
|
||||||
|
# when pcre2_jit_compile.c is processed, so they must be distributed.
|
||||||
|
|
||||||
|
# Some of the JIT sources are also in separate files that are #included.
|
||||||
|
|
||||||
|
# PCRE2 demonstration program. Not built automatically. The point is that the
|
||||||
|
# users should build it themselves. So just distribute the source.
|
||||||
|
EXTRA_DIST = m4/ax_pthread.m4 m4/pcre2_visibility.m4 \
|
||||||
|
NON-AUTOTOOLS-BUILD HACKING BUILD.bazel MODULE.bazel \
|
||||||
|
WORKSPACE.bazel build.zig vms/configure.com \
|
||||||
|
vms/openvms_readme.txt vms/pcre2.h_patch vms/stdint.h \
|
||||||
|
src/pcre2.h.generic src/config.h.generic src/pcre2_ucptables.c \
|
||||||
|
src/pcre2_chartables.c.dist deps/sljit/sljit_src/sljitConfig.h \
|
||||||
|
deps/sljit/sljit_src/sljitConfigCPU.h \
|
||||||
|
deps/sljit/sljit_src/sljitConfigInternal.h \
|
||||||
|
deps/sljit/sljit_src/sljitLir.c \
|
||||||
|
deps/sljit/sljit_src/sljitLir.h \
|
||||||
|
deps/sljit/sljit_src/sljitNativeARM_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeARM_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeARM_T2_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeMIPS_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeMIPS_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeMIPS_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativePPC_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativePPC_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativePPC_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeRISCV_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeRISCV_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeRISCV_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeS390X.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeX86_32.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeX86_64.c \
|
||||||
|
deps/sljit/sljit_src/sljitNativeX86_common.c \
|
||||||
|
deps/sljit/sljit_src/sljitSerialize.c \
|
||||||
|
deps/sljit/sljit_src/sljitUtils.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorApple.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorFreeBSD.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorPosix.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitExecAllocatorWindows.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitProtExecAllocatorNetBSD.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitProtExecAllocatorPosix.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c \
|
||||||
|
deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorWindows.c \
|
||||||
|
src/pcre2_jit_match.c src/pcre2_jit_misc.c \
|
||||||
|
src/pcre2_printint.c RunTest.bat $(am__append_44) \
|
||||||
|
testdata/grepbinary testdata/grepfilelist testdata/grepinput \
|
||||||
|
testdata/grepinput3 testdata/grepinput8 testdata/grepinputBad8 \
|
||||||
|
testdata/grepinputBad8_Trail testdata/grepinputC.bz2 \
|
||||||
|
testdata/grepinputC.gz testdata/grepinputM \
|
||||||
|
testdata/grepinputUN testdata/grepinputv testdata/grepinputx \
|
||||||
|
testdata/greplist testdata/grepnot.bz2 testdata/grepoutput \
|
||||||
|
testdata/grepoutput8 testdata/grepoutputC \
|
||||||
|
testdata/grepoutputCN testdata/grepoutputCNU \
|
||||||
|
testdata/grepoutputCU testdata/grepoutputCbz2 \
|
||||||
|
testdata/grepoutputCgz testdata/grepoutputN \
|
||||||
|
testdata/grepoutputUN testdata/greppatN4 testdata/testbtables \
|
||||||
|
testdata/testinput1 testdata/testinput2 testdata/testinput3 \
|
||||||
|
testdata/testinput4 testdata/testinput5 testdata/testinput6 \
|
||||||
|
testdata/testinput7 testdata/testinput8 testdata/testinput9 \
|
||||||
|
testdata/testinput10 testdata/testinput11 testdata/testinput12 \
|
||||||
|
testdata/testinput13 testdata/testinput14 testdata/testinput15 \
|
||||||
|
testdata/testinput16 testdata/testinput17 testdata/testinput18 \
|
||||||
|
testdata/testinput19 testdata/testinput20 testdata/testinput21 \
|
||||||
|
testdata/testinput22 testdata/testinput23 testdata/testinput24 \
|
||||||
|
testdata/testinput25 testdata/testinput26 testdata/testinput27 \
|
||||||
|
testdata/testinputEBC testdata/testinputheap \
|
||||||
|
testdata/testoutput1 testdata/testoutput2 testdata/testoutput3 \
|
||||||
|
testdata/testoutput3A testdata/testoutput3B \
|
||||||
|
testdata/testoutput4 testdata/testoutput5 testdata/testoutput6 \
|
||||||
|
testdata/testoutput7 testdata/testoutput8-16-2 \
|
||||||
|
testdata/testoutput8-16-3 testdata/testoutput8-16-4 \
|
||||||
|
testdata/testoutput8-32-2 testdata/testoutput8-32-3 \
|
||||||
|
testdata/testoutput8-32-4 testdata/testoutput8-8-2 \
|
||||||
|
testdata/testoutput8-8-3 testdata/testoutput8-8-4 \
|
||||||
|
testdata/testoutput9 testdata/testoutput10 \
|
||||||
|
testdata/testoutput11-16 testdata/testoutput11-32 \
|
||||||
|
testdata/testoutput12-16 testdata/testoutput12-32 \
|
||||||
|
testdata/testoutput13 testdata/testoutput14-16 \
|
||||||
|
testdata/testoutput14-32 testdata/testoutput14-8 \
|
||||||
|
testdata/testoutput15 testdata/testoutput16 \
|
||||||
|
testdata/testoutput17 testdata/testoutput18 \
|
||||||
|
testdata/testoutput19 testdata/testoutput20 \
|
||||||
|
testdata/testoutput21 testdata/testoutput22-16 \
|
||||||
|
testdata/testoutput22-32 testdata/testoutput22-8 \
|
||||||
|
testdata/testoutput23 testdata/testoutput24 \
|
||||||
|
testdata/testoutput25 testdata/testoutput26 \
|
||||||
|
testdata/testoutput27 testdata/testoutputEBC \
|
||||||
|
testdata/testoutputheap-16 testdata/testoutputheap-32 \
|
||||||
|
testdata/testoutputheap-8 testdata/valgrind-jit.supp \
|
||||||
|
testdata/wintestinput3 testdata/wintestoutput3 perltest.sh \
|
||||||
|
src/pcre2demo.c cmake/COPYING-CMAKE-SCRIPTS \
|
||||||
|
cmake/FindEditline.cmake cmake/FindReadline.cmake \
|
||||||
|
cmake/pcre2-config-version.cmake.in \
|
||||||
|
cmake/pcre2-config.cmake.in CMakeLists.txt config-cmake.h.in
|
||||||
|
|
||||||
|
# These are the header files we'll install. We do not distribute pcre2.h
|
||||||
|
# because it is generated from pcre2.h.in.
|
||||||
|
nodist_include_HEADERS = src/pcre2.h
|
||||||
|
include_HEADERS = src/pcre2posix.h
|
||||||
|
|
||||||
|
# This is the "config" script.
|
||||||
|
bin_SCRIPTS = pcre2-config
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@pcre2_dftables_SOURCES = src/pcre2_dftables.c
|
||||||
|
BUILT_SOURCES = src/pcre2_chartables.c
|
||||||
|
NODIST_SOURCES = src/pcre2_chartables.c
|
||||||
|
COMMON_SOURCES = \
|
||||||
|
src/pcre2_auto_possess.c \
|
||||||
|
src/pcre2_chkdint.c \
|
||||||
|
src/pcre2_compile.c \
|
||||||
|
src/pcre2_compile.h \
|
||||||
|
src/pcre2_compile_class.c \
|
||||||
|
src/pcre2_config.c \
|
||||||
|
src/pcre2_context.c \
|
||||||
|
src/pcre2_convert.c \
|
||||||
|
src/pcre2_dfa_match.c \
|
||||||
|
src/pcre2_error.c \
|
||||||
|
src/pcre2_extuni.c \
|
||||||
|
src/pcre2_find_bracket.c \
|
||||||
|
src/pcre2_internal.h \
|
||||||
|
src/pcre2_intmodedep.h \
|
||||||
|
src/pcre2_jit_char_inc.h \
|
||||||
|
src/pcre2_jit_compile.c \
|
||||||
|
src/pcre2_jit_neon_inc.h \
|
||||||
|
src/pcre2_jit_simd_inc.h \
|
||||||
|
src/pcre2_maketables.c \
|
||||||
|
src/pcre2_match.c \
|
||||||
|
src/pcre2_match_data.c \
|
||||||
|
src/pcre2_newline.c \
|
||||||
|
src/pcre2_ord2utf.c \
|
||||||
|
src/pcre2_pattern_info.c \
|
||||||
|
src/pcre2_script_run.c \
|
||||||
|
src/pcre2_serialize.c \
|
||||||
|
src/pcre2_string_utils.c \
|
||||||
|
src/pcre2_study.c \
|
||||||
|
src/pcre2_substitute.c \
|
||||||
|
src/pcre2_substring.c \
|
||||||
|
src/pcre2_tables.c \
|
||||||
|
src/pcre2_ucd.c \
|
||||||
|
src/pcre2_ucp.h \
|
||||||
|
src/pcre2_util.h \
|
||||||
|
src/pcre2_valid_utf.c \
|
||||||
|
src/pcre2_xclass.c
|
||||||
|
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_8_la_SOURCES = \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(COMMON_SOURCES)
|
||||||
|
|
||||||
|
@WITH_PCRE2_8_TRUE@nodist_libpcre2_8_la_SOURCES = \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(NODIST_SOURCES)
|
||||||
|
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_8_la_CFLAGS = -DPCRE2_CODE_UNIT_WIDTH=8 \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(VISIBILITY_CFLAGS) $(CET_CFLAGS) \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(AM_CFLAGS) $(am__append_5) \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(am__append_8)
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_8_la_LIBADD =
|
||||||
|
@WITH_PCRE2_16_TRUE@libpcre2_16_la_SOURCES = \
|
||||||
|
@WITH_PCRE2_16_TRUE@ $(COMMON_SOURCES)
|
||||||
|
|
||||||
|
@WITH_PCRE2_16_TRUE@nodist_libpcre2_16_la_SOURCES = \
|
||||||
|
@WITH_PCRE2_16_TRUE@ $(NODIST_SOURCES)
|
||||||
|
|
||||||
|
@WITH_PCRE2_16_TRUE@libpcre2_16_la_CFLAGS = \
|
||||||
|
@WITH_PCRE2_16_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=16 \
|
||||||
|
@WITH_PCRE2_16_TRUE@ $(VISIBILITY_CFLAGS) $(CET_CFLAGS) \
|
||||||
|
@WITH_PCRE2_16_TRUE@ $(AM_CFLAGS) $(am__append_6) \
|
||||||
|
@WITH_PCRE2_16_TRUE@ $(am__append_9)
|
||||||
|
@WITH_PCRE2_16_TRUE@libpcre2_16_la_LIBADD =
|
||||||
|
@WITH_PCRE2_32_TRUE@libpcre2_32_la_SOURCES = \
|
||||||
|
@WITH_PCRE2_32_TRUE@ $(COMMON_SOURCES)
|
||||||
|
|
||||||
|
@WITH_PCRE2_32_TRUE@nodist_libpcre2_32_la_SOURCES = \
|
||||||
|
@WITH_PCRE2_32_TRUE@ $(NODIST_SOURCES)
|
||||||
|
|
||||||
|
@WITH_PCRE2_32_TRUE@libpcre2_32_la_CFLAGS = \
|
||||||
|
@WITH_PCRE2_32_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=32 \
|
||||||
|
@WITH_PCRE2_32_TRUE@ $(VISIBILITY_CFLAGS) $(CET_CFLAGS) \
|
||||||
|
@WITH_PCRE2_32_TRUE@ $(AM_CFLAGS) $(am__append_7) \
|
||||||
|
@WITH_PCRE2_32_TRUE@ $(am__append_10)
|
||||||
|
@WITH_PCRE2_32_TRUE@libpcre2_32_la_LIBADD =
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_8_la_LDFLAGS = $(EXTRA_LIBPCRE2_8_LDFLAGS)
|
||||||
|
@WITH_PCRE2_16_TRUE@libpcre2_16_la_LDFLAGS = $(EXTRA_LIBPCRE2_16_LDFLAGS)
|
||||||
|
@WITH_PCRE2_32_TRUE@libpcre2_32_la_LDFLAGS = $(EXTRA_LIBPCRE2_32_LDFLAGS)
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_posix_la_SOURCES = src/pcre2posix.c
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_posix_la_CFLAGS = \
|
||||||
|
@WITH_PCRE2_8_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=8 \
|
||||||
|
@WITH_PCRE2_8_TRUE@ @PCRE2POSIX_CFLAG@ $(VISIBILITY_CFLAGS) \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(AM_CFLAGS) $(am__append_12)
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_posix_la_LDFLAGS = $(EXTRA_LIBPCRE2_POSIX_LDFLAGS)
|
||||||
|
@WITH_PCRE2_8_TRUE@libpcre2_posix_la_LIBADD = libpcre2-8.la
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2grep_SOURCES = src/pcre2grep.c
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2grep_CFLAGS = $(AM_CFLAGS) $(am__append_14)
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2grep_LDADD = $(LIBZ) $(LIBBZ2) libpcre2-8.la \
|
||||||
|
@WITH_PCRE2_8_TRUE@ $(am__append_15)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@noinst_LIBRARIES = $(am__append_16) \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@ $(am__append_20) $(am__append_24)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@_libs_libpcre2_fuzzsupport_a_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@_libs_libpcre2_fuzzsupport_a_CFLAGS = $(AM_CFLAGS)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@_libs_libpcre2_fuzzsupport_a_LIBADD =
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@pcre2fuzzcheck_8_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@pcre2fuzzcheck_8_CFLAGS = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ -DSTANDALONE \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ $(AM_CFLAGS) \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ $(am__append_18)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@pcre2fuzzcheck_8_LDADD = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ libpcre2-8.la \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_8_TRUE@ $(am__append_19)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@_libs_libpcre2_fuzzsupport_16_a_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@_libs_libpcre2_fuzzsupport_16_a_CFLAGS = $(AM_CFLAGS) -DPCRE2_CODE_UNIT_WIDTH=16
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@_libs_libpcre2_fuzzsupport_16_a_LIBADD =
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@pcre2fuzzcheck_16_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@pcre2fuzzcheck_16_CFLAGS = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ -DSTANDALONE \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ $(AM_CFLAGS) \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=16 \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ $(am__append_22)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@pcre2fuzzcheck_16_LDADD = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ libpcre2-16.la \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_16_TRUE@ $(am__append_23)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@_libs_libpcre2_fuzzsupport_32_a_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@_libs_libpcre2_fuzzsupport_32_a_CFLAGS = $(AM_CFLAGS) -DPCRE2_CODE_UNIT_WIDTH=32
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@_libs_libpcre2_fuzzsupport_32_a_LIBADD =
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@pcre2fuzzcheck_32_SOURCES = src/pcre2_fuzzsupport.c
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@pcre2fuzzcheck_32_CFLAGS = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ -DSTANDALONE \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ $(AM_CFLAGS) \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ -DPCRE2_CODE_UNIT_WIDTH=32 \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ $(am__append_26)
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@pcre2fuzzcheck_32_LDADD = \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ libpcre2-32.la \
|
||||||
|
@WITH_FUZZ_SUPPORT_TRUE@@WITH_PCRE2_32_TRUE@ $(am__append_27)
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2posix_test_SOURCES = src/pcre2posix_test.c
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2posix_test_CFLAGS = $(AM_CFLAGS) @PCRE2POSIX_CFLAG@
|
||||||
|
@WITH_PCRE2_8_TRUE@pcre2posix_test_LDADD = libpcre2-posix.la libpcre2-8.la
|
||||||
|
@WITH_JIT_TRUE@pcre2_jit_test_SOURCES = src/pcre2_jit_test.c
|
||||||
|
@WITH_JIT_TRUE@pcre2_jit_test_CFLAGS = $(AM_CFLAGS) $(am__append_35)
|
||||||
|
@WITH_JIT_TRUE@pcre2_jit_test_LDADD = $(am__append_32) \
|
||||||
|
@WITH_JIT_TRUE@ $(am__append_33) $(am__append_34) \
|
||||||
|
@WITH_JIT_TRUE@ $(am__append_36)
|
||||||
|
pcre2test_SOURCES = src/pcre2test.c
|
||||||
|
pcre2test_CFLAGS = $(AM_CFLAGS) $(am__append_40) $(am__append_41)
|
||||||
|
pcre2test_LDADD = $(LIBREADLINE) $(am__append_37) $(am__append_38) \
|
||||||
|
$(am__append_39) $(am__append_42)
|
||||||
|
|
||||||
|
# We have .pc files for pkg-config users.
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = $(am__append_46) $(am__append_47) $(am__append_48)
|
||||||
|
|
||||||
|
# gcov/lcov code coverage reporting
|
||||||
|
#
|
||||||
|
# Coverage reporting targets:
|
||||||
|
#
|
||||||
|
# coverage: Create a coverage report from 'make check'
|
||||||
|
# coverage-baseline: Capture baseline coverage information
|
||||||
|
# coverage-reset: This zeros the coverage counters only
|
||||||
|
# coverage-report: This creates the coverage report only
|
||||||
|
# coverage-clean-report: This removes the generated coverage report
|
||||||
|
# without cleaning the coverage data itself
|
||||||
|
# coverage-clean-data: This removes the captured coverage data without
|
||||||
|
# removing the coverage files created at compile time (*.gcno)
|
||||||
|
# coverage-clean: This cleans all coverage data including the generated
|
||||||
|
# coverage report.
|
||||||
|
@WITH_GCOV_TRUE@COVERAGE_TEST_NAME = $(PACKAGE)
|
||||||
|
@WITH_GCOV_TRUE@COVERAGE_NAME = $(PACKAGE)-$(VERSION)
|
||||||
|
@WITH_GCOV_TRUE@COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info
|
||||||
|
@WITH_GCOV_TRUE@COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage
|
||||||
|
@WITH_GCOV_TRUE@COVERAGE_LCOV_EXTRA_FLAGS =
|
||||||
|
@WITH_GCOV_TRUE@COVERAGE_GENHTML_EXTRA_FLAGS =
|
||||||
|
@WITH_GCOV_TRUE@coverage_quiet = $(coverage_quiet_$(V))
|
||||||
|
@WITH_GCOV_TRUE@coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY))
|
||||||
|
@WITH_GCOV_TRUE@coverage_quiet_0 = --quiet
|
||||||
|
all: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||||
|
|
||||||
|
.SUFFIXES:
|
||||||
|
.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
|
||||||
|
am--refresh: Makefile
|
||||||
|
@:
|
||||||
|
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||||
|
@for dep in $?; do \
|
||||||
|
case '$(am__configure_deps)' in \
|
||||||
|
*$$dep*) \
|
||||||
|
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
||||||
|
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
||||||
|
&& exit 0; \
|
||||||
|
exit 1;; \
|
||||||
|
esac; \
|
||||||
|
done; \
|
||||||
|
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||||
|
$(am__cd) $(top_srcdir) && \
|
||||||
|
$(AUTOMAKE) --foreign Makefile
|
||||||
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||||
|
@case '$?' in \
|
||||||
|
*config.status*) \
|
||||||
|
echo ' $(SHELL) ./config.status'; \
|
||||||
|
$(SHELL) ./config.status;; \
|
||||||
|
*) \
|
||||||
|
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
|
||||||
|
esac;
|
||||||
|
|
||||||
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||||
|
$(SHELL) ./config.status --recheck
|
||||||
|
|
||||||
|
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||||
|
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||||
|
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||||
|
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||||
|
$(am__aclocal_m4_deps):
|
||||||
|
|
||||||
|
src/config.h: src/stamp-h1
|
||||||
|
@test -f $@ || rm -f src/stamp-h1
|
||||||
|
@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) src/stamp-h1
|
||||||
|
|
||||||
|
src/stamp-h1: $(top_srcdir)/src/config.h.in $(top_builddir)/config.status
|
||||||
|
@rm -f src/stamp-h1
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status src/config.h
|
||||||
|
$(top_srcdir)/src/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||||
|
($(am__cd) $(top_srcdir) && $(AUTOHEADER))
|
||||||
|
rm -f src/stamp-h1
|
||||||
|
touch $@
|
||||||
|
|
||||||
|
distclean-hdr:
|
||||||
|
-rm -f src/config.h src/stamp-h1
|
||||||
|
libpcre2-8.pc: $(top_builddir)/config.status $(srcdir)/libpcre2-8.pc.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
libpcre2-16.pc: $(top_builddir)/config.status $(srcdir)/libpcre2-16.pc.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
libpcre2-32.pc: $(top_builddir)/config.status $(srcdir)/libpcre2-32.pc.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
libpcre2-posix.pc: $(top_builddir)/config.status $(srcdir)/libpcre2-posix.pc.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
pcre2-config: $(top_builddir)/config.status $(srcdir)/pcre2-config.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
src/pcre2.h: $(top_builddir)/config.status $(top_srcdir)/src/pcre2.h.in
|
||||||
|
cd $(top_builddir) && $(SHELL) ./config.status $@
|
||||||
|
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do echo "$$p $$p"; done | \
|
||||||
|
sed 's/$(EXEEXT)$$//' | \
|
||||||
|
while read p p1; do if test -f $$p \
|
||||||
|
|| test -f $$p1 \
|
||||||
|
; then echo "$$p"; echo "$$p"; else :; fi; \
|
||||||
|
done | \
|
||||||
|
sed -e 'p;s,.*/,,;n;h' \
|
||||||
|
-e 's|.*|.|' \
|
||||||
|
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||||
|
sed 'N;N;N;s,\n, ,g' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||||
|
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||||
|
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||||
|
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||||
|
END { for (d in files) print "f", d, files[d] }' | \
|
||||||
|
while read type dir files; do \
|
||||||
|
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||||
|
test -z "$$files" || { \
|
||||||
|
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||||
|
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||||
|
} \
|
||||||
|
; done
|
||||||
|
|
||||||
|
uninstall-binPROGRAMS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo "$$p"; done | \
|
||||||
|
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||||
|
-e 's/$$/$(EXEEXT)/' \
|
||||||
|
`; \
|
||||||
|
test -n "$$list" || exit 0; \
|
||||||
|
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||||
|
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||||
|
|
||||||
|
clean-binPROGRAMS:
|
||||||
|
@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list || exit $$?; \
|
||||||
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list
|
||||||
|
|
||||||
|
clean-noinstPROGRAMS:
|
||||||
|
@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list || exit $$?; \
|
||||||
|
test -n "$(EXEEXT)" || exit 0; \
|
||||||
|
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||||
|
echo " rm -f" $$list; \
|
||||||
|
rm -f $$list
|
||||||
|
|
||||||
|
clean-noinstLIBRARIES:
|
||||||
|
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||||
|
|
||||||
|
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||||
|
list2=; for p in $$list; do \
|
||||||
|
if test -f $$p; then \
|
||||||
|
list2="$$list2 $$p"; \
|
||||||
|
else :; fi; \
|
||||||
|
done; \
|
||||||
|
test -z "$$list2" || { \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
|
||||||
|
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
|
||||||
|
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
|
||||||
|
}
|
||||||
|
|
||||||
|
uninstall-libLTLIBRARIES:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
|
||||||
|
for p in $$list; do \
|
||||||
|
$(am__strip_dir) \
|
||||||
|
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
|
||||||
|
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
|
clean-libLTLIBRARIES:
|
||||||
|
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
||||||
|
@list='$(lib_LTLIBRARIES)'; \
|
||||||
|
locs=`for p in $$list; do echo $$p; done | \
|
||||||
|
sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
|
||||||
|
sort -u`; \
|
||||||
|
test -z "$$locs" || { \
|
||||||
|
echo rm -f $${locs}; \
|
||||||
|
rm -f $${locs}; \
|
||||||
|
}
|
||||||
|
src/$(am__dirstamp):
|
||||||
|
@$(MKDIR_P) src
|
||||||
|
@: > src/$(am__dirstamp)
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp):
|
||||||
|
@$(MKDIR_P) src/$(DEPDIR)
|
||||||
|
@: > src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.$(OBJEXT): \
|
||||||
|
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
.libs/$(am__dirstamp):
|
||||||
|
@$(MKDIR_P) .libs
|
||||||
|
@: > .libs/$(am__dirstamp)
|
||||||
|
|
||||||
|
.libs/libpcre2-fuzzsupport-16.a: $(_libs_libpcre2_fuzzsupport_16_a_OBJECTS) $(_libs_libpcre2_fuzzsupport_16_a_DEPENDENCIES) $(EXTRA__libs_libpcre2_fuzzsupport_16_a_DEPENDENCIES) .libs/$(am__dirstamp)
|
||||||
|
$(AM_V_at)-rm -f .libs/libpcre2-fuzzsupport-16.a
|
||||||
|
$(AM_V_AR)$(_libs_libpcre2_fuzzsupport_16_a_AR) .libs/libpcre2-fuzzsupport-16.a $(_libs_libpcre2_fuzzsupport_16_a_OBJECTS) $(_libs_libpcre2_fuzzsupport_16_a_LIBADD)
|
||||||
|
$(AM_V_at)$(RANLIB) .libs/libpcre2-fuzzsupport-16.a
|
||||||
|
src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.$(OBJEXT): \
|
||||||
|
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
.libs/libpcre2-fuzzsupport-32.a: $(_libs_libpcre2_fuzzsupport_32_a_OBJECTS) $(_libs_libpcre2_fuzzsupport_32_a_DEPENDENCIES) $(EXTRA__libs_libpcre2_fuzzsupport_32_a_DEPENDENCIES) .libs/$(am__dirstamp)
|
||||||
|
$(AM_V_at)-rm -f .libs/libpcre2-fuzzsupport-32.a
|
||||||
|
$(AM_V_AR)$(_libs_libpcre2_fuzzsupport_32_a_AR) .libs/libpcre2-fuzzsupport-32.a $(_libs_libpcre2_fuzzsupport_32_a_OBJECTS) $(_libs_libpcre2_fuzzsupport_32_a_LIBADD)
|
||||||
|
$(AM_V_at)$(RANLIB) .libs/libpcre2-fuzzsupport-32.a
|
||||||
|
src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.$(OBJEXT): \
|
||||||
|
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
.libs/libpcre2-fuzzsupport.a: $(_libs_libpcre2_fuzzsupport_a_OBJECTS) $(_libs_libpcre2_fuzzsupport_a_DEPENDENCIES) $(EXTRA__libs_libpcre2_fuzzsupport_a_DEPENDENCIES) .libs/$(am__dirstamp)
|
||||||
|
$(AM_V_at)-rm -f .libs/libpcre2-fuzzsupport.a
|
||||||
|
$(AM_V_AR)$(_libs_libpcre2_fuzzsupport_a_AR) .libs/libpcre2-fuzzsupport.a $(_libs_libpcre2_fuzzsupport_a_OBJECTS) $(_libs_libpcre2_fuzzsupport_a_LIBADD)
|
||||||
|
$(AM_V_at)$(RANLIB) .libs/libpcre2-fuzzsupport.a
|
||||||
|
src/libpcre2_16_la-pcre2_auto_possess.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_chkdint.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_compile.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_compile_class.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_config.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_context.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_convert.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_dfa_match.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_error.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_extuni.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_find_bracket.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_jit_compile.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_maketables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_match.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_match_data.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_newline.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_ord2utf.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_pattern_info.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_script_run.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_serialize.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_string_utils.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_study.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_substitute.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_substring.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_tables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_ucd.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_valid_utf.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_xclass.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_16_la-pcre2_chartables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
libpcre2-16.la: $(libpcre2_16_la_OBJECTS) $(libpcre2_16_la_DEPENDENCIES) $(EXTRA_libpcre2_16_la_DEPENDENCIES)
|
||||||
|
$(AM_V_CCLD)$(libpcre2_16_la_LINK) $(am_libpcre2_16_la_rpath) $(libpcre2_16_la_OBJECTS) $(libpcre2_16_la_LIBADD) $(LIBS)
|
||||||
|
src/libpcre2_32_la-pcre2_auto_possess.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_chkdint.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_compile.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_compile_class.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_config.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_context.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_convert.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_dfa_match.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_error.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_extuni.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_find_bracket.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_jit_compile.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_maketables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_match.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_match_data.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_newline.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_ord2utf.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_pattern_info.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_script_run.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_serialize.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_string_utils.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_study.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_substitute.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_substring.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_tables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_ucd.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_valid_utf.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_xclass.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_32_la-pcre2_chartables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
libpcre2-32.la: $(libpcre2_32_la_OBJECTS) $(libpcre2_32_la_DEPENDENCIES) $(EXTRA_libpcre2_32_la_DEPENDENCIES)
|
||||||
|
$(AM_V_CCLD)$(libpcre2_32_la_LINK) $(am_libpcre2_32_la_rpath) $(libpcre2_32_la_OBJECTS) $(libpcre2_32_la_LIBADD) $(LIBS)
|
||||||
|
src/libpcre2_8_la-pcre2_auto_possess.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_chkdint.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_compile.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_compile_class.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_config.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_context.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_convert.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_dfa_match.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_error.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_extuni.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_find_bracket.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_jit_compile.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_maketables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_match.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_match_data.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_newline.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_ord2utf.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_pattern_info.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_script_run.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_serialize.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_string_utils.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_study.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_substitute.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_substring.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_tables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_ucd.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_valid_utf.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_xclass.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
src/libpcre2_8_la-pcre2_chartables.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
libpcre2-8.la: $(libpcre2_8_la_OBJECTS) $(libpcre2_8_la_DEPENDENCIES) $(EXTRA_libpcre2_8_la_DEPENDENCIES)
|
||||||
|
$(AM_V_CCLD)$(libpcre2_8_la_LINK) $(am_libpcre2_8_la_rpath) $(libpcre2_8_la_OBJECTS) $(libpcre2_8_la_LIBADD) $(LIBS)
|
||||||
|
src/libpcre2_posix_la-pcre2posix.lo: src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
libpcre2-posix.la: $(libpcre2_posix_la_OBJECTS) $(libpcre2_posix_la_DEPENDENCIES) $(EXTRA_libpcre2_posix_la_DEPENDENCIES)
|
||||||
|
$(AM_V_CCLD)$(libpcre2_posix_la_LINK) $(am_libpcre2_posix_la_rpath) $(libpcre2_posix_la_OBJECTS) $(libpcre2_posix_la_LIBADD) $(LIBS)
|
||||||
|
src/pcre2_dftables.$(OBJEXT): src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2_dftables$(EXEEXT): $(pcre2_dftables_OBJECTS) $(pcre2_dftables_DEPENDENCIES) $(EXTRA_pcre2_dftables_DEPENDENCIES)
|
||||||
|
@rm -f pcre2_dftables$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(LINK) $(pcre2_dftables_OBJECTS) $(pcre2_dftables_LDADD) $(LIBS)
|
||||||
|
src/pcre2_jit_test-pcre2_jit_test.$(OBJEXT): src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2_jit_test$(EXEEXT): $(pcre2_jit_test_OBJECTS) $(pcre2_jit_test_DEPENDENCIES) $(EXTRA_pcre2_jit_test_DEPENDENCIES)
|
||||||
|
@rm -f pcre2_jit_test$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2_jit_test_LINK) $(pcre2_jit_test_OBJECTS) $(pcre2_jit_test_LDADD) $(LIBS)
|
||||||
|
src/pcre2fuzzcheck_16-pcre2_fuzzsupport.$(OBJEXT): \
|
||||||
|
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2fuzzcheck-16$(EXEEXT): $(pcre2fuzzcheck_16_OBJECTS) $(pcre2fuzzcheck_16_DEPENDENCIES) $(EXTRA_pcre2fuzzcheck_16_DEPENDENCIES)
|
||||||
|
@rm -f pcre2fuzzcheck-16$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2fuzzcheck_16_LINK) $(pcre2fuzzcheck_16_OBJECTS) $(pcre2fuzzcheck_16_LDADD) $(LIBS)
|
||||||
|
src/pcre2fuzzcheck_32-pcre2_fuzzsupport.$(OBJEXT): \
|
||||||
|
src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2fuzzcheck-32$(EXEEXT): $(pcre2fuzzcheck_32_OBJECTS) $(pcre2fuzzcheck_32_DEPENDENCIES) $(EXTRA_pcre2fuzzcheck_32_DEPENDENCIES)
|
||||||
|
@rm -f pcre2fuzzcheck-32$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2fuzzcheck_32_LINK) $(pcre2fuzzcheck_32_OBJECTS) $(pcre2fuzzcheck_32_LDADD) $(LIBS)
|
||||||
|
src/pcre2fuzzcheck_8-pcre2_fuzzsupport.$(OBJEXT): src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2fuzzcheck-8$(EXEEXT): $(pcre2fuzzcheck_8_OBJECTS) $(pcre2fuzzcheck_8_DEPENDENCIES) $(EXTRA_pcre2fuzzcheck_8_DEPENDENCIES)
|
||||||
|
@rm -f pcre2fuzzcheck-8$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2fuzzcheck_8_LINK) $(pcre2fuzzcheck_8_OBJECTS) $(pcre2fuzzcheck_8_LDADD) $(LIBS)
|
||||||
|
src/pcre2grep-pcre2grep.$(OBJEXT): src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2grep$(EXEEXT): $(pcre2grep_OBJECTS) $(pcre2grep_DEPENDENCIES) $(EXTRA_pcre2grep_DEPENDENCIES)
|
||||||
|
@rm -f pcre2grep$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2grep_LINK) $(pcre2grep_OBJECTS) $(pcre2grep_LDADD) $(LIBS)
|
||||||
|
src/pcre2posix_test-pcre2posix_test.$(OBJEXT): src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2posix_test$(EXEEXT): $(pcre2posix_test_OBJECTS) $(pcre2posix_test_DEPENDENCIES) $(EXTRA_pcre2posix_test_DEPENDENCIES)
|
||||||
|
@rm -f pcre2posix_test$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2posix_test_LINK) $(pcre2posix_test_OBJECTS) $(pcre2posix_test_LDADD) $(LIBS)
|
||||||
|
src/pcre2test-pcre2test.$(OBJEXT): src/$(am__dirstamp) \
|
||||||
|
src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
|
||||||
|
pcre2test$(EXEEXT): $(pcre2test_OBJECTS) $(pcre2test_DEPENDENCIES) $(EXTRA_pcre2test_DEPENDENCIES)
|
||||||
|
@rm -f pcre2test$(EXEEXT)
|
||||||
|
$(AM_V_CCLD)$(pcre2test_LINK) $(pcre2test_OBJECTS) $(pcre2test_LDADD) $(LIBS)
|
||||||
|
install-binSCRIPTS: $(bin_SCRIPTS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
|
||||||
|
done | \
|
||||||
|
sed -e 'p;s,.*/,,;n' \
|
||||||
|
-e 'h;s|.*|.|' \
|
||||||
|
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
|
||||||
|
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
|
||||||
|
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||||
|
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
|
||||||
|
if (++n[d] == $(am__install_max)) { \
|
||||||
|
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
|
||||||
|
else { print "f", d "/" $$4, $$1 } } \
|
||||||
|
END { for (d in files) print "f", d, files[d] }' | \
|
||||||
|
while read type dir files; do \
|
||||||
|
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||||
|
test -z "$$files" || { \
|
||||||
|
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||||
|
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||||
|
} \
|
||||||
|
; done
|
||||||
|
|
||||||
|
uninstall-binSCRIPTS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
|
||||||
|
files=`for p in $$list; do echo "$$p"; done | \
|
||||||
|
sed -e 's,.*/,,;$(transform)'`; \
|
||||||
|
dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
|
||||||
|
|
||||||
|
mostlyclean-compile:
|
||||||
|
-rm -f *.$(OBJEXT)
|
||||||
|
-rm -f src/*.$(OBJEXT)
|
||||||
|
-rm -f src/*.lo
|
||||||
|
|
||||||
|
distclean-compile:
|
||||||
|
-rm -f *.tab.c
|
||||||
|
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Plo@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2_dftables.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2grep-pcre2grep.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Po@am__quote@ # am--include-marker
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pcre2test-pcre2test.Po@am__quote@ # am--include-marker
|
||||||
|
|
||||||
|
$(am__depfiles_remade):
|
||||||
|
@$(MKDIR_P) $(@D)
|
||||||
|
@echo '# dummy' >$@-t && $(am__mv) $@-t $@
|
||||||
|
|
||||||
|
am--depfiles: $(am__depfiles_remade)
|
||||||
|
|
||||||
|
.c.o:
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||||
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||||
|
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
.c.obj:
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||||
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||||
|
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||||
|
|
||||||
|
.c.lo:
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
|
||||||
|
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||||
|
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
|
||||||
|
|
||||||
|
src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.o: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_16_a_CFLAGS) $(CFLAGS) -MT src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.o -MD -MP -MF src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Tpo -c -o src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_16_a_CFLAGS) $(CFLAGS) -c -o src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
|
||||||
|
src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.obj: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_16_a_CFLAGS) $(CFLAGS) -MT src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.obj -MD -MP -MF src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Tpo -c -o src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_16_a_CFLAGS) $(CFLAGS) -c -o src/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
|
||||||
|
src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.o: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_32_a_CFLAGS) $(CFLAGS) -MT src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.o -MD -MP -MF src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Tpo -c -o src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_32_a_CFLAGS) $(CFLAGS) -c -o src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
|
||||||
|
src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.obj: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_32_a_CFLAGS) $(CFLAGS) -MT src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.obj -MD -MP -MF src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Tpo -c -o src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_32_a_CFLAGS) $(CFLAGS) -c -o src/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
|
||||||
|
src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.o: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_a_CFLAGS) $(CFLAGS) -MT src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.o -MD -MP -MF src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Tpo -c -o src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_a_CFLAGS) $(CFLAGS) -c -o src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
|
||||||
|
src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.obj: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_a_CFLAGS) $(CFLAGS) -MT src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.obj -MD -MP -MF src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Tpo -c -o src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(_libs_libpcre2_fuzzsupport_a_CFLAGS) $(CFLAGS) -c -o src/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_auto_possess.lo: src/pcre2_auto_possess.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_auto_possess.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Tpo -c -o src/libpcre2_16_la-pcre2_auto_possess.lo `test -f 'src/pcre2_auto_possess.c' || echo '$(srcdir)/'`src/pcre2_auto_possess.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_auto_possess.c' object='src/libpcre2_16_la-pcre2_auto_possess.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_auto_possess.lo `test -f 'src/pcre2_auto_possess.c' || echo '$(srcdir)/'`src/pcre2_auto_possess.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_chkdint.lo: src/pcre2_chkdint.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_chkdint.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Tpo -c -o src/libpcre2_16_la-pcre2_chkdint.lo `test -f 'src/pcre2_chkdint.c' || echo '$(srcdir)/'`src/pcre2_chkdint.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_chkdint.c' object='src/libpcre2_16_la-pcre2_chkdint.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_chkdint.lo `test -f 'src/pcre2_chkdint.c' || echo '$(srcdir)/'`src/pcre2_chkdint.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_compile.lo: src/pcre2_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_compile.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Tpo -c -o src/libpcre2_16_la-pcre2_compile.lo `test -f 'src/pcre2_compile.c' || echo '$(srcdir)/'`src/pcre2_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_compile.c' object='src/libpcre2_16_la-pcre2_compile.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_compile.lo `test -f 'src/pcre2_compile.c' || echo '$(srcdir)/'`src/pcre2_compile.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_compile_class.lo: src/pcre2_compile_class.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_compile_class.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Tpo -c -o src/libpcre2_16_la-pcre2_compile_class.lo `test -f 'src/pcre2_compile_class.c' || echo '$(srcdir)/'`src/pcre2_compile_class.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_compile_class.c' object='src/libpcre2_16_la-pcre2_compile_class.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_compile_class.lo `test -f 'src/pcre2_compile_class.c' || echo '$(srcdir)/'`src/pcre2_compile_class.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_config.lo: src/pcre2_config.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_config.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Tpo -c -o src/libpcre2_16_la-pcre2_config.lo `test -f 'src/pcre2_config.c' || echo '$(srcdir)/'`src/pcre2_config.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_config.c' object='src/libpcre2_16_la-pcre2_config.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_config.lo `test -f 'src/pcre2_config.c' || echo '$(srcdir)/'`src/pcre2_config.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_context.lo: src/pcre2_context.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_context.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Tpo -c -o src/libpcre2_16_la-pcre2_context.lo `test -f 'src/pcre2_context.c' || echo '$(srcdir)/'`src/pcre2_context.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_context.c' object='src/libpcre2_16_la-pcre2_context.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_context.lo `test -f 'src/pcre2_context.c' || echo '$(srcdir)/'`src/pcre2_context.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_convert.lo: src/pcre2_convert.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_convert.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Tpo -c -o src/libpcre2_16_la-pcre2_convert.lo `test -f 'src/pcre2_convert.c' || echo '$(srcdir)/'`src/pcre2_convert.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_convert.c' object='src/libpcre2_16_la-pcre2_convert.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_convert.lo `test -f 'src/pcre2_convert.c' || echo '$(srcdir)/'`src/pcre2_convert.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_dfa_match.lo: src/pcre2_dfa_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_dfa_match.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Tpo -c -o src/libpcre2_16_la-pcre2_dfa_match.lo `test -f 'src/pcre2_dfa_match.c' || echo '$(srcdir)/'`src/pcre2_dfa_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_dfa_match.c' object='src/libpcre2_16_la-pcre2_dfa_match.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_dfa_match.lo `test -f 'src/pcre2_dfa_match.c' || echo '$(srcdir)/'`src/pcre2_dfa_match.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_error.lo: src/pcre2_error.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_error.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Tpo -c -o src/libpcre2_16_la-pcre2_error.lo `test -f 'src/pcre2_error.c' || echo '$(srcdir)/'`src/pcre2_error.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_error.c' object='src/libpcre2_16_la-pcre2_error.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_error.lo `test -f 'src/pcre2_error.c' || echo '$(srcdir)/'`src/pcre2_error.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_extuni.lo: src/pcre2_extuni.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_extuni.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Tpo -c -o src/libpcre2_16_la-pcre2_extuni.lo `test -f 'src/pcre2_extuni.c' || echo '$(srcdir)/'`src/pcre2_extuni.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_extuni.c' object='src/libpcre2_16_la-pcre2_extuni.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_extuni.lo `test -f 'src/pcre2_extuni.c' || echo '$(srcdir)/'`src/pcre2_extuni.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_find_bracket.lo: src/pcre2_find_bracket.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_find_bracket.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Tpo -c -o src/libpcre2_16_la-pcre2_find_bracket.lo `test -f 'src/pcre2_find_bracket.c' || echo '$(srcdir)/'`src/pcre2_find_bracket.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_find_bracket.c' object='src/libpcre2_16_la-pcre2_find_bracket.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_find_bracket.lo `test -f 'src/pcre2_find_bracket.c' || echo '$(srcdir)/'`src/pcre2_find_bracket.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_jit_compile.lo: src/pcre2_jit_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_jit_compile.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Tpo -c -o src/libpcre2_16_la-pcre2_jit_compile.lo `test -f 'src/pcre2_jit_compile.c' || echo '$(srcdir)/'`src/pcre2_jit_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_jit_compile.c' object='src/libpcre2_16_la-pcre2_jit_compile.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_jit_compile.lo `test -f 'src/pcre2_jit_compile.c' || echo '$(srcdir)/'`src/pcre2_jit_compile.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_maketables.lo: src/pcre2_maketables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_maketables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Tpo -c -o src/libpcre2_16_la-pcre2_maketables.lo `test -f 'src/pcre2_maketables.c' || echo '$(srcdir)/'`src/pcre2_maketables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_maketables.c' object='src/libpcre2_16_la-pcre2_maketables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_maketables.lo `test -f 'src/pcre2_maketables.c' || echo '$(srcdir)/'`src/pcre2_maketables.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_match.lo: src/pcre2_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_match.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Tpo -c -o src/libpcre2_16_la-pcre2_match.lo `test -f 'src/pcre2_match.c' || echo '$(srcdir)/'`src/pcre2_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_match.c' object='src/libpcre2_16_la-pcre2_match.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_match.lo `test -f 'src/pcre2_match.c' || echo '$(srcdir)/'`src/pcre2_match.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_match_data.lo: src/pcre2_match_data.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_match_data.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Tpo -c -o src/libpcre2_16_la-pcre2_match_data.lo `test -f 'src/pcre2_match_data.c' || echo '$(srcdir)/'`src/pcre2_match_data.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_match_data.c' object='src/libpcre2_16_la-pcre2_match_data.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_match_data.lo `test -f 'src/pcre2_match_data.c' || echo '$(srcdir)/'`src/pcre2_match_data.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_newline.lo: src/pcre2_newline.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_newline.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Tpo -c -o src/libpcre2_16_la-pcre2_newline.lo `test -f 'src/pcre2_newline.c' || echo '$(srcdir)/'`src/pcre2_newline.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_newline.c' object='src/libpcre2_16_la-pcre2_newline.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_newline.lo `test -f 'src/pcre2_newline.c' || echo '$(srcdir)/'`src/pcre2_newline.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_ord2utf.lo: src/pcre2_ord2utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_ord2utf.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Tpo -c -o src/libpcre2_16_la-pcre2_ord2utf.lo `test -f 'src/pcre2_ord2utf.c' || echo '$(srcdir)/'`src/pcre2_ord2utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_ord2utf.c' object='src/libpcre2_16_la-pcre2_ord2utf.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_ord2utf.lo `test -f 'src/pcre2_ord2utf.c' || echo '$(srcdir)/'`src/pcre2_ord2utf.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_pattern_info.lo: src/pcre2_pattern_info.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_pattern_info.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Tpo -c -o src/libpcre2_16_la-pcre2_pattern_info.lo `test -f 'src/pcre2_pattern_info.c' || echo '$(srcdir)/'`src/pcre2_pattern_info.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_pattern_info.c' object='src/libpcre2_16_la-pcre2_pattern_info.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_pattern_info.lo `test -f 'src/pcre2_pattern_info.c' || echo '$(srcdir)/'`src/pcre2_pattern_info.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_script_run.lo: src/pcre2_script_run.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_script_run.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Tpo -c -o src/libpcre2_16_la-pcre2_script_run.lo `test -f 'src/pcre2_script_run.c' || echo '$(srcdir)/'`src/pcre2_script_run.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_script_run.c' object='src/libpcre2_16_la-pcre2_script_run.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_script_run.lo `test -f 'src/pcre2_script_run.c' || echo '$(srcdir)/'`src/pcre2_script_run.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_serialize.lo: src/pcre2_serialize.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_serialize.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Tpo -c -o src/libpcre2_16_la-pcre2_serialize.lo `test -f 'src/pcre2_serialize.c' || echo '$(srcdir)/'`src/pcre2_serialize.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_serialize.c' object='src/libpcre2_16_la-pcre2_serialize.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_serialize.lo `test -f 'src/pcre2_serialize.c' || echo '$(srcdir)/'`src/pcre2_serialize.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_string_utils.lo: src/pcre2_string_utils.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_string_utils.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Tpo -c -o src/libpcre2_16_la-pcre2_string_utils.lo `test -f 'src/pcre2_string_utils.c' || echo '$(srcdir)/'`src/pcre2_string_utils.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_string_utils.c' object='src/libpcre2_16_la-pcre2_string_utils.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_string_utils.lo `test -f 'src/pcre2_string_utils.c' || echo '$(srcdir)/'`src/pcre2_string_utils.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_study.lo: src/pcre2_study.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_study.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Tpo -c -o src/libpcre2_16_la-pcre2_study.lo `test -f 'src/pcre2_study.c' || echo '$(srcdir)/'`src/pcre2_study.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_study.c' object='src/libpcre2_16_la-pcre2_study.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_study.lo `test -f 'src/pcre2_study.c' || echo '$(srcdir)/'`src/pcre2_study.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_substitute.lo: src/pcre2_substitute.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_substitute.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Tpo -c -o src/libpcre2_16_la-pcre2_substitute.lo `test -f 'src/pcre2_substitute.c' || echo '$(srcdir)/'`src/pcre2_substitute.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_substitute.c' object='src/libpcre2_16_la-pcre2_substitute.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_substitute.lo `test -f 'src/pcre2_substitute.c' || echo '$(srcdir)/'`src/pcre2_substitute.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_substring.lo: src/pcre2_substring.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_substring.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Tpo -c -o src/libpcre2_16_la-pcre2_substring.lo `test -f 'src/pcre2_substring.c' || echo '$(srcdir)/'`src/pcre2_substring.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_substring.c' object='src/libpcre2_16_la-pcre2_substring.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_substring.lo `test -f 'src/pcre2_substring.c' || echo '$(srcdir)/'`src/pcre2_substring.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_tables.lo: src/pcre2_tables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_tables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Tpo -c -o src/libpcre2_16_la-pcre2_tables.lo `test -f 'src/pcre2_tables.c' || echo '$(srcdir)/'`src/pcre2_tables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_tables.c' object='src/libpcre2_16_la-pcre2_tables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_tables.lo `test -f 'src/pcre2_tables.c' || echo '$(srcdir)/'`src/pcre2_tables.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_ucd.lo: src/pcre2_ucd.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_ucd.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Tpo -c -o src/libpcre2_16_la-pcre2_ucd.lo `test -f 'src/pcre2_ucd.c' || echo '$(srcdir)/'`src/pcre2_ucd.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_ucd.c' object='src/libpcre2_16_la-pcre2_ucd.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_ucd.lo `test -f 'src/pcre2_ucd.c' || echo '$(srcdir)/'`src/pcre2_ucd.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_valid_utf.lo: src/pcre2_valid_utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_valid_utf.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Tpo -c -o src/libpcre2_16_la-pcre2_valid_utf.lo `test -f 'src/pcre2_valid_utf.c' || echo '$(srcdir)/'`src/pcre2_valid_utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_valid_utf.c' object='src/libpcre2_16_la-pcre2_valid_utf.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_valid_utf.lo `test -f 'src/pcre2_valid_utf.c' || echo '$(srcdir)/'`src/pcre2_valid_utf.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_xclass.lo: src/pcre2_xclass.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_xclass.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Tpo -c -o src/libpcre2_16_la-pcre2_xclass.lo `test -f 'src/pcre2_xclass.c' || echo '$(srcdir)/'`src/pcre2_xclass.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_xclass.c' object='src/libpcre2_16_la-pcre2_xclass.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_xclass.lo `test -f 'src/pcre2_xclass.c' || echo '$(srcdir)/'`src/pcre2_xclass.c
|
||||||
|
|
||||||
|
src/libpcre2_16_la-pcre2_chartables.lo: src/pcre2_chartables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_16_la-pcre2_chartables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Tpo -c -o src/libpcre2_16_la-pcre2_chartables.lo `test -f 'src/pcre2_chartables.c' || echo '$(srcdir)/'`src/pcre2_chartables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Tpo src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_chartables.c' object='src/libpcre2_16_la-pcre2_chartables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_16_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_16_la-pcre2_chartables.lo `test -f 'src/pcre2_chartables.c' || echo '$(srcdir)/'`src/pcre2_chartables.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_auto_possess.lo: src/pcre2_auto_possess.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_auto_possess.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Tpo -c -o src/libpcre2_32_la-pcre2_auto_possess.lo `test -f 'src/pcre2_auto_possess.c' || echo '$(srcdir)/'`src/pcre2_auto_possess.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_auto_possess.c' object='src/libpcre2_32_la-pcre2_auto_possess.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_auto_possess.lo `test -f 'src/pcre2_auto_possess.c' || echo '$(srcdir)/'`src/pcre2_auto_possess.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_chkdint.lo: src/pcre2_chkdint.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_chkdint.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Tpo -c -o src/libpcre2_32_la-pcre2_chkdint.lo `test -f 'src/pcre2_chkdint.c' || echo '$(srcdir)/'`src/pcre2_chkdint.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_chkdint.c' object='src/libpcre2_32_la-pcre2_chkdint.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_chkdint.lo `test -f 'src/pcre2_chkdint.c' || echo '$(srcdir)/'`src/pcre2_chkdint.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_compile.lo: src/pcre2_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_compile.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Tpo -c -o src/libpcre2_32_la-pcre2_compile.lo `test -f 'src/pcre2_compile.c' || echo '$(srcdir)/'`src/pcre2_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_compile.c' object='src/libpcre2_32_la-pcre2_compile.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_compile.lo `test -f 'src/pcre2_compile.c' || echo '$(srcdir)/'`src/pcre2_compile.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_compile_class.lo: src/pcre2_compile_class.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_compile_class.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Tpo -c -o src/libpcre2_32_la-pcre2_compile_class.lo `test -f 'src/pcre2_compile_class.c' || echo '$(srcdir)/'`src/pcre2_compile_class.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_compile_class.c' object='src/libpcre2_32_la-pcre2_compile_class.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_compile_class.lo `test -f 'src/pcre2_compile_class.c' || echo '$(srcdir)/'`src/pcre2_compile_class.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_config.lo: src/pcre2_config.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_config.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Tpo -c -o src/libpcre2_32_la-pcre2_config.lo `test -f 'src/pcre2_config.c' || echo '$(srcdir)/'`src/pcre2_config.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_config.c' object='src/libpcre2_32_la-pcre2_config.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_config.lo `test -f 'src/pcre2_config.c' || echo '$(srcdir)/'`src/pcre2_config.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_context.lo: src/pcre2_context.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_context.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Tpo -c -o src/libpcre2_32_la-pcre2_context.lo `test -f 'src/pcre2_context.c' || echo '$(srcdir)/'`src/pcre2_context.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_context.c' object='src/libpcre2_32_la-pcre2_context.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_context.lo `test -f 'src/pcre2_context.c' || echo '$(srcdir)/'`src/pcre2_context.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_convert.lo: src/pcre2_convert.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_convert.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Tpo -c -o src/libpcre2_32_la-pcre2_convert.lo `test -f 'src/pcre2_convert.c' || echo '$(srcdir)/'`src/pcre2_convert.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_convert.c' object='src/libpcre2_32_la-pcre2_convert.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_convert.lo `test -f 'src/pcre2_convert.c' || echo '$(srcdir)/'`src/pcre2_convert.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_dfa_match.lo: src/pcre2_dfa_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_dfa_match.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Tpo -c -o src/libpcre2_32_la-pcre2_dfa_match.lo `test -f 'src/pcre2_dfa_match.c' || echo '$(srcdir)/'`src/pcre2_dfa_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_dfa_match.c' object='src/libpcre2_32_la-pcre2_dfa_match.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_dfa_match.lo `test -f 'src/pcre2_dfa_match.c' || echo '$(srcdir)/'`src/pcre2_dfa_match.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_error.lo: src/pcre2_error.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_error.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Tpo -c -o src/libpcre2_32_la-pcre2_error.lo `test -f 'src/pcre2_error.c' || echo '$(srcdir)/'`src/pcre2_error.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_error.c' object='src/libpcre2_32_la-pcre2_error.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_error.lo `test -f 'src/pcre2_error.c' || echo '$(srcdir)/'`src/pcre2_error.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_extuni.lo: src/pcre2_extuni.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_extuni.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Tpo -c -o src/libpcre2_32_la-pcre2_extuni.lo `test -f 'src/pcre2_extuni.c' || echo '$(srcdir)/'`src/pcre2_extuni.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_extuni.c' object='src/libpcre2_32_la-pcre2_extuni.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_extuni.lo `test -f 'src/pcre2_extuni.c' || echo '$(srcdir)/'`src/pcre2_extuni.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_find_bracket.lo: src/pcre2_find_bracket.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_find_bracket.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Tpo -c -o src/libpcre2_32_la-pcre2_find_bracket.lo `test -f 'src/pcre2_find_bracket.c' || echo '$(srcdir)/'`src/pcre2_find_bracket.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_find_bracket.c' object='src/libpcre2_32_la-pcre2_find_bracket.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_find_bracket.lo `test -f 'src/pcre2_find_bracket.c' || echo '$(srcdir)/'`src/pcre2_find_bracket.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_jit_compile.lo: src/pcre2_jit_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_jit_compile.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Tpo -c -o src/libpcre2_32_la-pcre2_jit_compile.lo `test -f 'src/pcre2_jit_compile.c' || echo '$(srcdir)/'`src/pcre2_jit_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_jit_compile.c' object='src/libpcre2_32_la-pcre2_jit_compile.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_jit_compile.lo `test -f 'src/pcre2_jit_compile.c' || echo '$(srcdir)/'`src/pcre2_jit_compile.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_maketables.lo: src/pcre2_maketables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_maketables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Tpo -c -o src/libpcre2_32_la-pcre2_maketables.lo `test -f 'src/pcre2_maketables.c' || echo '$(srcdir)/'`src/pcre2_maketables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_maketables.c' object='src/libpcre2_32_la-pcre2_maketables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_maketables.lo `test -f 'src/pcre2_maketables.c' || echo '$(srcdir)/'`src/pcre2_maketables.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_match.lo: src/pcre2_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_match.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Tpo -c -o src/libpcre2_32_la-pcre2_match.lo `test -f 'src/pcre2_match.c' || echo '$(srcdir)/'`src/pcre2_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_match.c' object='src/libpcre2_32_la-pcre2_match.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_match.lo `test -f 'src/pcre2_match.c' || echo '$(srcdir)/'`src/pcre2_match.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_match_data.lo: src/pcre2_match_data.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_match_data.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Tpo -c -o src/libpcre2_32_la-pcre2_match_data.lo `test -f 'src/pcre2_match_data.c' || echo '$(srcdir)/'`src/pcre2_match_data.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_match_data.c' object='src/libpcre2_32_la-pcre2_match_data.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_match_data.lo `test -f 'src/pcre2_match_data.c' || echo '$(srcdir)/'`src/pcre2_match_data.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_newline.lo: src/pcre2_newline.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_newline.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Tpo -c -o src/libpcre2_32_la-pcre2_newline.lo `test -f 'src/pcre2_newline.c' || echo '$(srcdir)/'`src/pcre2_newline.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_newline.c' object='src/libpcre2_32_la-pcre2_newline.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_newline.lo `test -f 'src/pcre2_newline.c' || echo '$(srcdir)/'`src/pcre2_newline.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_ord2utf.lo: src/pcre2_ord2utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_ord2utf.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Tpo -c -o src/libpcre2_32_la-pcre2_ord2utf.lo `test -f 'src/pcre2_ord2utf.c' || echo '$(srcdir)/'`src/pcre2_ord2utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_ord2utf.c' object='src/libpcre2_32_la-pcre2_ord2utf.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_ord2utf.lo `test -f 'src/pcre2_ord2utf.c' || echo '$(srcdir)/'`src/pcre2_ord2utf.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_pattern_info.lo: src/pcre2_pattern_info.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_pattern_info.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Tpo -c -o src/libpcre2_32_la-pcre2_pattern_info.lo `test -f 'src/pcre2_pattern_info.c' || echo '$(srcdir)/'`src/pcre2_pattern_info.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_pattern_info.c' object='src/libpcre2_32_la-pcre2_pattern_info.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_pattern_info.lo `test -f 'src/pcre2_pattern_info.c' || echo '$(srcdir)/'`src/pcre2_pattern_info.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_script_run.lo: src/pcre2_script_run.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_script_run.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Tpo -c -o src/libpcre2_32_la-pcre2_script_run.lo `test -f 'src/pcre2_script_run.c' || echo '$(srcdir)/'`src/pcre2_script_run.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_script_run.c' object='src/libpcre2_32_la-pcre2_script_run.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_script_run.lo `test -f 'src/pcre2_script_run.c' || echo '$(srcdir)/'`src/pcre2_script_run.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_serialize.lo: src/pcre2_serialize.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_serialize.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Tpo -c -o src/libpcre2_32_la-pcre2_serialize.lo `test -f 'src/pcre2_serialize.c' || echo '$(srcdir)/'`src/pcre2_serialize.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_serialize.c' object='src/libpcre2_32_la-pcre2_serialize.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_serialize.lo `test -f 'src/pcre2_serialize.c' || echo '$(srcdir)/'`src/pcre2_serialize.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_string_utils.lo: src/pcre2_string_utils.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_string_utils.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Tpo -c -o src/libpcre2_32_la-pcre2_string_utils.lo `test -f 'src/pcre2_string_utils.c' || echo '$(srcdir)/'`src/pcre2_string_utils.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_string_utils.c' object='src/libpcre2_32_la-pcre2_string_utils.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_string_utils.lo `test -f 'src/pcre2_string_utils.c' || echo '$(srcdir)/'`src/pcre2_string_utils.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_study.lo: src/pcre2_study.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_study.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Tpo -c -o src/libpcre2_32_la-pcre2_study.lo `test -f 'src/pcre2_study.c' || echo '$(srcdir)/'`src/pcre2_study.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_study.c' object='src/libpcre2_32_la-pcre2_study.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_study.lo `test -f 'src/pcre2_study.c' || echo '$(srcdir)/'`src/pcre2_study.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_substitute.lo: src/pcre2_substitute.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_substitute.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Tpo -c -o src/libpcre2_32_la-pcre2_substitute.lo `test -f 'src/pcre2_substitute.c' || echo '$(srcdir)/'`src/pcre2_substitute.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_substitute.c' object='src/libpcre2_32_la-pcre2_substitute.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_substitute.lo `test -f 'src/pcre2_substitute.c' || echo '$(srcdir)/'`src/pcre2_substitute.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_substring.lo: src/pcre2_substring.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_substring.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Tpo -c -o src/libpcre2_32_la-pcre2_substring.lo `test -f 'src/pcre2_substring.c' || echo '$(srcdir)/'`src/pcre2_substring.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_substring.c' object='src/libpcre2_32_la-pcre2_substring.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_substring.lo `test -f 'src/pcre2_substring.c' || echo '$(srcdir)/'`src/pcre2_substring.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_tables.lo: src/pcre2_tables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_tables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Tpo -c -o src/libpcre2_32_la-pcre2_tables.lo `test -f 'src/pcre2_tables.c' || echo '$(srcdir)/'`src/pcre2_tables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_tables.c' object='src/libpcre2_32_la-pcre2_tables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_tables.lo `test -f 'src/pcre2_tables.c' || echo '$(srcdir)/'`src/pcre2_tables.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_ucd.lo: src/pcre2_ucd.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_ucd.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Tpo -c -o src/libpcre2_32_la-pcre2_ucd.lo `test -f 'src/pcre2_ucd.c' || echo '$(srcdir)/'`src/pcre2_ucd.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_ucd.c' object='src/libpcre2_32_la-pcre2_ucd.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_ucd.lo `test -f 'src/pcre2_ucd.c' || echo '$(srcdir)/'`src/pcre2_ucd.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_valid_utf.lo: src/pcre2_valid_utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_valid_utf.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Tpo -c -o src/libpcre2_32_la-pcre2_valid_utf.lo `test -f 'src/pcre2_valid_utf.c' || echo '$(srcdir)/'`src/pcre2_valid_utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_valid_utf.c' object='src/libpcre2_32_la-pcre2_valid_utf.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_valid_utf.lo `test -f 'src/pcre2_valid_utf.c' || echo '$(srcdir)/'`src/pcre2_valid_utf.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_xclass.lo: src/pcre2_xclass.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_xclass.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Tpo -c -o src/libpcre2_32_la-pcre2_xclass.lo `test -f 'src/pcre2_xclass.c' || echo '$(srcdir)/'`src/pcre2_xclass.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_xclass.c' object='src/libpcre2_32_la-pcre2_xclass.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_xclass.lo `test -f 'src/pcre2_xclass.c' || echo '$(srcdir)/'`src/pcre2_xclass.c
|
||||||
|
|
||||||
|
src/libpcre2_32_la-pcre2_chartables.lo: src/pcre2_chartables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_32_la-pcre2_chartables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Tpo -c -o src/libpcre2_32_la-pcre2_chartables.lo `test -f 'src/pcre2_chartables.c' || echo '$(srcdir)/'`src/pcre2_chartables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Tpo src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_chartables.c' object='src/libpcre2_32_la-pcre2_chartables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_32_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_32_la-pcre2_chartables.lo `test -f 'src/pcre2_chartables.c' || echo '$(srcdir)/'`src/pcre2_chartables.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_auto_possess.lo: src/pcre2_auto_possess.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_auto_possess.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Tpo -c -o src/libpcre2_8_la-pcre2_auto_possess.lo `test -f 'src/pcre2_auto_possess.c' || echo '$(srcdir)/'`src/pcre2_auto_possess.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_auto_possess.c' object='src/libpcre2_8_la-pcre2_auto_possess.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_auto_possess.lo `test -f 'src/pcre2_auto_possess.c' || echo '$(srcdir)/'`src/pcre2_auto_possess.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_chkdint.lo: src/pcre2_chkdint.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_chkdint.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Tpo -c -o src/libpcre2_8_la-pcre2_chkdint.lo `test -f 'src/pcre2_chkdint.c' || echo '$(srcdir)/'`src/pcre2_chkdint.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_chkdint.c' object='src/libpcre2_8_la-pcre2_chkdint.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_chkdint.lo `test -f 'src/pcre2_chkdint.c' || echo '$(srcdir)/'`src/pcre2_chkdint.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_compile.lo: src/pcre2_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_compile.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Tpo -c -o src/libpcre2_8_la-pcre2_compile.lo `test -f 'src/pcre2_compile.c' || echo '$(srcdir)/'`src/pcre2_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_compile.c' object='src/libpcre2_8_la-pcre2_compile.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_compile.lo `test -f 'src/pcre2_compile.c' || echo '$(srcdir)/'`src/pcre2_compile.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_compile_class.lo: src/pcre2_compile_class.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_compile_class.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Tpo -c -o src/libpcre2_8_la-pcre2_compile_class.lo `test -f 'src/pcre2_compile_class.c' || echo '$(srcdir)/'`src/pcre2_compile_class.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_compile_class.c' object='src/libpcre2_8_la-pcre2_compile_class.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_compile_class.lo `test -f 'src/pcre2_compile_class.c' || echo '$(srcdir)/'`src/pcre2_compile_class.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_config.lo: src/pcre2_config.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_config.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Tpo -c -o src/libpcre2_8_la-pcre2_config.lo `test -f 'src/pcre2_config.c' || echo '$(srcdir)/'`src/pcre2_config.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_config.c' object='src/libpcre2_8_la-pcre2_config.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_config.lo `test -f 'src/pcre2_config.c' || echo '$(srcdir)/'`src/pcre2_config.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_context.lo: src/pcre2_context.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_context.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Tpo -c -o src/libpcre2_8_la-pcre2_context.lo `test -f 'src/pcre2_context.c' || echo '$(srcdir)/'`src/pcre2_context.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_context.c' object='src/libpcre2_8_la-pcre2_context.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_context.lo `test -f 'src/pcre2_context.c' || echo '$(srcdir)/'`src/pcre2_context.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_convert.lo: src/pcre2_convert.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_convert.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Tpo -c -o src/libpcre2_8_la-pcre2_convert.lo `test -f 'src/pcre2_convert.c' || echo '$(srcdir)/'`src/pcre2_convert.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_convert.c' object='src/libpcre2_8_la-pcre2_convert.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_convert.lo `test -f 'src/pcre2_convert.c' || echo '$(srcdir)/'`src/pcre2_convert.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_dfa_match.lo: src/pcre2_dfa_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_dfa_match.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Tpo -c -o src/libpcre2_8_la-pcre2_dfa_match.lo `test -f 'src/pcre2_dfa_match.c' || echo '$(srcdir)/'`src/pcre2_dfa_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_dfa_match.c' object='src/libpcre2_8_la-pcre2_dfa_match.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_dfa_match.lo `test -f 'src/pcre2_dfa_match.c' || echo '$(srcdir)/'`src/pcre2_dfa_match.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_error.lo: src/pcre2_error.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_error.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Tpo -c -o src/libpcre2_8_la-pcre2_error.lo `test -f 'src/pcre2_error.c' || echo '$(srcdir)/'`src/pcre2_error.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_error.c' object='src/libpcre2_8_la-pcre2_error.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_error.lo `test -f 'src/pcre2_error.c' || echo '$(srcdir)/'`src/pcre2_error.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_extuni.lo: src/pcre2_extuni.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_extuni.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Tpo -c -o src/libpcre2_8_la-pcre2_extuni.lo `test -f 'src/pcre2_extuni.c' || echo '$(srcdir)/'`src/pcre2_extuni.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_extuni.c' object='src/libpcre2_8_la-pcre2_extuni.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_extuni.lo `test -f 'src/pcre2_extuni.c' || echo '$(srcdir)/'`src/pcre2_extuni.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_find_bracket.lo: src/pcre2_find_bracket.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_find_bracket.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Tpo -c -o src/libpcre2_8_la-pcre2_find_bracket.lo `test -f 'src/pcre2_find_bracket.c' || echo '$(srcdir)/'`src/pcre2_find_bracket.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_find_bracket.c' object='src/libpcre2_8_la-pcre2_find_bracket.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_find_bracket.lo `test -f 'src/pcre2_find_bracket.c' || echo '$(srcdir)/'`src/pcre2_find_bracket.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_jit_compile.lo: src/pcre2_jit_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_jit_compile.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Tpo -c -o src/libpcre2_8_la-pcre2_jit_compile.lo `test -f 'src/pcre2_jit_compile.c' || echo '$(srcdir)/'`src/pcre2_jit_compile.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_jit_compile.c' object='src/libpcre2_8_la-pcre2_jit_compile.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_jit_compile.lo `test -f 'src/pcre2_jit_compile.c' || echo '$(srcdir)/'`src/pcre2_jit_compile.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_maketables.lo: src/pcre2_maketables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_maketables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Tpo -c -o src/libpcre2_8_la-pcre2_maketables.lo `test -f 'src/pcre2_maketables.c' || echo '$(srcdir)/'`src/pcre2_maketables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_maketables.c' object='src/libpcre2_8_la-pcre2_maketables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_maketables.lo `test -f 'src/pcre2_maketables.c' || echo '$(srcdir)/'`src/pcre2_maketables.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_match.lo: src/pcre2_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_match.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Tpo -c -o src/libpcre2_8_la-pcre2_match.lo `test -f 'src/pcre2_match.c' || echo '$(srcdir)/'`src/pcre2_match.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_match.c' object='src/libpcre2_8_la-pcre2_match.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_match.lo `test -f 'src/pcre2_match.c' || echo '$(srcdir)/'`src/pcre2_match.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_match_data.lo: src/pcre2_match_data.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_match_data.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Tpo -c -o src/libpcre2_8_la-pcre2_match_data.lo `test -f 'src/pcre2_match_data.c' || echo '$(srcdir)/'`src/pcre2_match_data.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_match_data.c' object='src/libpcre2_8_la-pcre2_match_data.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_match_data.lo `test -f 'src/pcre2_match_data.c' || echo '$(srcdir)/'`src/pcre2_match_data.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_newline.lo: src/pcre2_newline.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_newline.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Tpo -c -o src/libpcre2_8_la-pcre2_newline.lo `test -f 'src/pcre2_newline.c' || echo '$(srcdir)/'`src/pcre2_newline.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_newline.c' object='src/libpcre2_8_la-pcre2_newline.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_newline.lo `test -f 'src/pcre2_newline.c' || echo '$(srcdir)/'`src/pcre2_newline.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_ord2utf.lo: src/pcre2_ord2utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_ord2utf.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Tpo -c -o src/libpcre2_8_la-pcre2_ord2utf.lo `test -f 'src/pcre2_ord2utf.c' || echo '$(srcdir)/'`src/pcre2_ord2utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_ord2utf.c' object='src/libpcre2_8_la-pcre2_ord2utf.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_ord2utf.lo `test -f 'src/pcre2_ord2utf.c' || echo '$(srcdir)/'`src/pcre2_ord2utf.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_pattern_info.lo: src/pcre2_pattern_info.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_pattern_info.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Tpo -c -o src/libpcre2_8_la-pcre2_pattern_info.lo `test -f 'src/pcre2_pattern_info.c' || echo '$(srcdir)/'`src/pcre2_pattern_info.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_pattern_info.c' object='src/libpcre2_8_la-pcre2_pattern_info.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_pattern_info.lo `test -f 'src/pcre2_pattern_info.c' || echo '$(srcdir)/'`src/pcre2_pattern_info.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_script_run.lo: src/pcre2_script_run.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_script_run.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Tpo -c -o src/libpcre2_8_la-pcre2_script_run.lo `test -f 'src/pcre2_script_run.c' || echo '$(srcdir)/'`src/pcre2_script_run.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_script_run.c' object='src/libpcre2_8_la-pcre2_script_run.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_script_run.lo `test -f 'src/pcre2_script_run.c' || echo '$(srcdir)/'`src/pcre2_script_run.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_serialize.lo: src/pcre2_serialize.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_serialize.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Tpo -c -o src/libpcre2_8_la-pcre2_serialize.lo `test -f 'src/pcre2_serialize.c' || echo '$(srcdir)/'`src/pcre2_serialize.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_serialize.c' object='src/libpcre2_8_la-pcre2_serialize.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_serialize.lo `test -f 'src/pcre2_serialize.c' || echo '$(srcdir)/'`src/pcre2_serialize.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_string_utils.lo: src/pcre2_string_utils.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_string_utils.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Tpo -c -o src/libpcre2_8_la-pcre2_string_utils.lo `test -f 'src/pcre2_string_utils.c' || echo '$(srcdir)/'`src/pcre2_string_utils.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_string_utils.c' object='src/libpcre2_8_la-pcre2_string_utils.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_string_utils.lo `test -f 'src/pcre2_string_utils.c' || echo '$(srcdir)/'`src/pcre2_string_utils.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_study.lo: src/pcre2_study.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_study.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Tpo -c -o src/libpcre2_8_la-pcre2_study.lo `test -f 'src/pcre2_study.c' || echo '$(srcdir)/'`src/pcre2_study.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_study.c' object='src/libpcre2_8_la-pcre2_study.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_study.lo `test -f 'src/pcre2_study.c' || echo '$(srcdir)/'`src/pcre2_study.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_substitute.lo: src/pcre2_substitute.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_substitute.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Tpo -c -o src/libpcre2_8_la-pcre2_substitute.lo `test -f 'src/pcre2_substitute.c' || echo '$(srcdir)/'`src/pcre2_substitute.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_substitute.c' object='src/libpcre2_8_la-pcre2_substitute.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_substitute.lo `test -f 'src/pcre2_substitute.c' || echo '$(srcdir)/'`src/pcre2_substitute.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_substring.lo: src/pcre2_substring.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_substring.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Tpo -c -o src/libpcre2_8_la-pcre2_substring.lo `test -f 'src/pcre2_substring.c' || echo '$(srcdir)/'`src/pcre2_substring.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_substring.c' object='src/libpcre2_8_la-pcre2_substring.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_substring.lo `test -f 'src/pcre2_substring.c' || echo '$(srcdir)/'`src/pcre2_substring.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_tables.lo: src/pcre2_tables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_tables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Tpo -c -o src/libpcre2_8_la-pcre2_tables.lo `test -f 'src/pcre2_tables.c' || echo '$(srcdir)/'`src/pcre2_tables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_tables.c' object='src/libpcre2_8_la-pcre2_tables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_tables.lo `test -f 'src/pcre2_tables.c' || echo '$(srcdir)/'`src/pcre2_tables.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_ucd.lo: src/pcre2_ucd.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_ucd.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Tpo -c -o src/libpcre2_8_la-pcre2_ucd.lo `test -f 'src/pcre2_ucd.c' || echo '$(srcdir)/'`src/pcre2_ucd.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_ucd.c' object='src/libpcre2_8_la-pcre2_ucd.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_ucd.lo `test -f 'src/pcre2_ucd.c' || echo '$(srcdir)/'`src/pcre2_ucd.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_valid_utf.lo: src/pcre2_valid_utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_valid_utf.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Tpo -c -o src/libpcre2_8_la-pcre2_valid_utf.lo `test -f 'src/pcre2_valid_utf.c' || echo '$(srcdir)/'`src/pcre2_valid_utf.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_valid_utf.c' object='src/libpcre2_8_la-pcre2_valid_utf.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_valid_utf.lo `test -f 'src/pcre2_valid_utf.c' || echo '$(srcdir)/'`src/pcre2_valid_utf.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_xclass.lo: src/pcre2_xclass.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_xclass.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Tpo -c -o src/libpcre2_8_la-pcre2_xclass.lo `test -f 'src/pcre2_xclass.c' || echo '$(srcdir)/'`src/pcre2_xclass.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_xclass.c' object='src/libpcre2_8_la-pcre2_xclass.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_xclass.lo `test -f 'src/pcre2_xclass.c' || echo '$(srcdir)/'`src/pcre2_xclass.c
|
||||||
|
|
||||||
|
src/libpcre2_8_la-pcre2_chartables.lo: src/pcre2_chartables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_8_la-pcre2_chartables.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Tpo -c -o src/libpcre2_8_la-pcre2_chartables.lo `test -f 'src/pcre2_chartables.c' || echo '$(srcdir)/'`src/pcre2_chartables.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Tpo src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_chartables.c' object='src/libpcre2_8_la-pcre2_chartables.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_8_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_8_la-pcre2_chartables.lo `test -f 'src/pcre2_chartables.c' || echo '$(srcdir)/'`src/pcre2_chartables.c
|
||||||
|
|
||||||
|
src/libpcre2_posix_la-pcre2posix.lo: src/pcre2posix.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_posix_la_CFLAGS) $(CFLAGS) -MT src/libpcre2_posix_la-pcre2posix.lo -MD -MP -MF src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Tpo -c -o src/libpcre2_posix_la-pcre2posix.lo `test -f 'src/pcre2posix.c' || echo '$(srcdir)/'`src/pcre2posix.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Tpo src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Plo
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2posix.c' object='src/libpcre2_posix_la-pcre2posix.lo' libtool=yes @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libpcre2_posix_la_CFLAGS) $(CFLAGS) -c -o src/libpcre2_posix_la-pcre2posix.lo `test -f 'src/pcre2posix.c' || echo '$(srcdir)/'`src/pcre2posix.c
|
||||||
|
|
||||||
|
src/pcre2_jit_test-pcre2_jit_test.o: src/pcre2_jit_test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2_jit_test_CFLAGS) $(CFLAGS) -MT src/pcre2_jit_test-pcre2_jit_test.o -MD -MP -MF src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Tpo -c -o src/pcre2_jit_test-pcre2_jit_test.o `test -f 'src/pcre2_jit_test.c' || echo '$(srcdir)/'`src/pcre2_jit_test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Tpo src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_jit_test.c' object='src/pcre2_jit_test-pcre2_jit_test.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2_jit_test_CFLAGS) $(CFLAGS) -c -o src/pcre2_jit_test-pcre2_jit_test.o `test -f 'src/pcre2_jit_test.c' || echo '$(srcdir)/'`src/pcre2_jit_test.c
|
||||||
|
|
||||||
|
src/pcre2_jit_test-pcre2_jit_test.obj: src/pcre2_jit_test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2_jit_test_CFLAGS) $(CFLAGS) -MT src/pcre2_jit_test-pcre2_jit_test.obj -MD -MP -MF src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Tpo -c -o src/pcre2_jit_test-pcre2_jit_test.obj `if test -f 'src/pcre2_jit_test.c'; then $(CYGPATH_W) 'src/pcre2_jit_test.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_jit_test.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Tpo src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_jit_test.c' object='src/pcre2_jit_test-pcre2_jit_test.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2_jit_test_CFLAGS) $(CFLAGS) -c -o src/pcre2_jit_test-pcre2_jit_test.obj `if test -f 'src/pcre2_jit_test.c'; then $(CYGPATH_W) 'src/pcre2_jit_test.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_jit_test.c'; fi`
|
||||||
|
|
||||||
|
src/pcre2fuzzcheck_16-pcre2_fuzzsupport.o: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_16_CFLAGS) $(CFLAGS) -MT src/pcre2fuzzcheck_16-pcre2_fuzzsupport.o -MD -MP -MF src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Tpo -c -o src/pcre2fuzzcheck_16-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/pcre2fuzzcheck_16-pcre2_fuzzsupport.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_16_CFLAGS) $(CFLAGS) -c -o src/pcre2fuzzcheck_16-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
|
||||||
|
src/pcre2fuzzcheck_16-pcre2_fuzzsupport.obj: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_16_CFLAGS) $(CFLAGS) -MT src/pcre2fuzzcheck_16-pcre2_fuzzsupport.obj -MD -MP -MF src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Tpo -c -o src/pcre2fuzzcheck_16-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/pcre2fuzzcheck_16-pcre2_fuzzsupport.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_16_CFLAGS) $(CFLAGS) -c -o src/pcre2fuzzcheck_16-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
|
||||||
|
src/pcre2fuzzcheck_32-pcre2_fuzzsupport.o: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_32_CFLAGS) $(CFLAGS) -MT src/pcre2fuzzcheck_32-pcre2_fuzzsupport.o -MD -MP -MF src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Tpo -c -o src/pcre2fuzzcheck_32-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/pcre2fuzzcheck_32-pcre2_fuzzsupport.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_32_CFLAGS) $(CFLAGS) -c -o src/pcre2fuzzcheck_32-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
|
||||||
|
src/pcre2fuzzcheck_32-pcre2_fuzzsupport.obj: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_32_CFLAGS) $(CFLAGS) -MT src/pcre2fuzzcheck_32-pcre2_fuzzsupport.obj -MD -MP -MF src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Tpo -c -o src/pcre2fuzzcheck_32-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/pcre2fuzzcheck_32-pcre2_fuzzsupport.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_32_CFLAGS) $(CFLAGS) -c -o src/pcre2fuzzcheck_32-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
|
||||||
|
src/pcre2fuzzcheck_8-pcre2_fuzzsupport.o: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_8_CFLAGS) $(CFLAGS) -MT src/pcre2fuzzcheck_8-pcre2_fuzzsupport.o -MD -MP -MF src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Tpo -c -o src/pcre2fuzzcheck_8-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/pcre2fuzzcheck_8-pcre2_fuzzsupport.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_8_CFLAGS) $(CFLAGS) -c -o src/pcre2fuzzcheck_8-pcre2_fuzzsupport.o `test -f 'src/pcre2_fuzzsupport.c' || echo '$(srcdir)/'`src/pcre2_fuzzsupport.c
|
||||||
|
|
||||||
|
src/pcre2fuzzcheck_8-pcre2_fuzzsupport.obj: src/pcre2_fuzzsupport.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_8_CFLAGS) $(CFLAGS) -MT src/pcre2fuzzcheck_8-pcre2_fuzzsupport.obj -MD -MP -MF src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Tpo -c -o src/pcre2fuzzcheck_8-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Tpo src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2_fuzzsupport.c' object='src/pcre2fuzzcheck_8-pcre2_fuzzsupport.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2fuzzcheck_8_CFLAGS) $(CFLAGS) -c -o src/pcre2fuzzcheck_8-pcre2_fuzzsupport.obj `if test -f 'src/pcre2_fuzzsupport.c'; then $(CYGPATH_W) 'src/pcre2_fuzzsupport.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2_fuzzsupport.c'; fi`
|
||||||
|
|
||||||
|
src/pcre2grep-pcre2grep.o: src/pcre2grep.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2grep_CFLAGS) $(CFLAGS) -MT src/pcre2grep-pcre2grep.o -MD -MP -MF src/$(DEPDIR)/pcre2grep-pcre2grep.Tpo -c -o src/pcre2grep-pcre2grep.o `test -f 'src/pcre2grep.c' || echo '$(srcdir)/'`src/pcre2grep.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2grep-pcre2grep.Tpo src/$(DEPDIR)/pcre2grep-pcre2grep.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2grep.c' object='src/pcre2grep-pcre2grep.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2grep_CFLAGS) $(CFLAGS) -c -o src/pcre2grep-pcre2grep.o `test -f 'src/pcre2grep.c' || echo '$(srcdir)/'`src/pcre2grep.c
|
||||||
|
|
||||||
|
src/pcre2grep-pcre2grep.obj: src/pcre2grep.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2grep_CFLAGS) $(CFLAGS) -MT src/pcre2grep-pcre2grep.obj -MD -MP -MF src/$(DEPDIR)/pcre2grep-pcre2grep.Tpo -c -o src/pcre2grep-pcre2grep.obj `if test -f 'src/pcre2grep.c'; then $(CYGPATH_W) 'src/pcre2grep.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2grep.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2grep-pcre2grep.Tpo src/$(DEPDIR)/pcre2grep-pcre2grep.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2grep.c' object='src/pcre2grep-pcre2grep.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2grep_CFLAGS) $(CFLAGS) -c -o src/pcre2grep-pcre2grep.obj `if test -f 'src/pcre2grep.c'; then $(CYGPATH_W) 'src/pcre2grep.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2grep.c'; fi`
|
||||||
|
|
||||||
|
src/pcre2posix_test-pcre2posix_test.o: src/pcre2posix_test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2posix_test_CFLAGS) $(CFLAGS) -MT src/pcre2posix_test-pcre2posix_test.o -MD -MP -MF src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Tpo -c -o src/pcre2posix_test-pcre2posix_test.o `test -f 'src/pcre2posix_test.c' || echo '$(srcdir)/'`src/pcre2posix_test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Tpo src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2posix_test.c' object='src/pcre2posix_test-pcre2posix_test.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2posix_test_CFLAGS) $(CFLAGS) -c -o src/pcre2posix_test-pcre2posix_test.o `test -f 'src/pcre2posix_test.c' || echo '$(srcdir)/'`src/pcre2posix_test.c
|
||||||
|
|
||||||
|
src/pcre2posix_test-pcre2posix_test.obj: src/pcre2posix_test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2posix_test_CFLAGS) $(CFLAGS) -MT src/pcre2posix_test-pcre2posix_test.obj -MD -MP -MF src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Tpo -c -o src/pcre2posix_test-pcre2posix_test.obj `if test -f 'src/pcre2posix_test.c'; then $(CYGPATH_W) 'src/pcre2posix_test.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2posix_test.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Tpo src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2posix_test.c' object='src/pcre2posix_test-pcre2posix_test.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2posix_test_CFLAGS) $(CFLAGS) -c -o src/pcre2posix_test-pcre2posix_test.obj `if test -f 'src/pcre2posix_test.c'; then $(CYGPATH_W) 'src/pcre2posix_test.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2posix_test.c'; fi`
|
||||||
|
|
||||||
|
src/pcre2test-pcre2test.o: src/pcre2test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2test_CFLAGS) $(CFLAGS) -MT src/pcre2test-pcre2test.o -MD -MP -MF src/$(DEPDIR)/pcre2test-pcre2test.Tpo -c -o src/pcre2test-pcre2test.o `test -f 'src/pcre2test.c' || echo '$(srcdir)/'`src/pcre2test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2test-pcre2test.Tpo src/$(DEPDIR)/pcre2test-pcre2test.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2test.c' object='src/pcre2test-pcre2test.o' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2test_CFLAGS) $(CFLAGS) -c -o src/pcre2test-pcre2test.o `test -f 'src/pcre2test.c' || echo '$(srcdir)/'`src/pcre2test.c
|
||||||
|
|
||||||
|
src/pcre2test-pcre2test.obj: src/pcre2test.c
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2test_CFLAGS) $(CFLAGS) -MT src/pcre2test-pcre2test.obj -MD -MP -MF src/$(DEPDIR)/pcre2test-pcre2test.Tpo -c -o src/pcre2test-pcre2test.obj `if test -f 'src/pcre2test.c'; then $(CYGPATH_W) 'src/pcre2test.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2test.c'; fi`
|
||||||
|
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/pcre2test-pcre2test.Tpo src/$(DEPDIR)/pcre2test-pcre2test.Po
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/pcre2test.c' object='src/pcre2test-pcre2test.obj' libtool=no @AMDEPBACKSLASH@
|
||||||
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||||
|
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pcre2test_CFLAGS) $(CFLAGS) -c -o src/pcre2test-pcre2test.obj `if test -f 'src/pcre2test.c'; then $(CYGPATH_W) 'src/pcre2test.c'; else $(CYGPATH_W) '$(srcdir)/src/pcre2test.c'; fi`
|
||||||
|
|
||||||
|
mostlyclean-libtool:
|
||||||
|
-rm -f *.lo
|
||||||
|
|
||||||
|
clean-libtool:
|
||||||
|
-rm -rf .libs _libs
|
||||||
|
-rm -rf src/.libs src/_libs
|
||||||
|
|
||||||
|
distclean-libtool:
|
||||||
|
-rm -f libtool config.lt
|
||||||
|
install-man1: $(dist_man_MANS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list1=''; \
|
||||||
|
list2='$(dist_man_MANS)'; \
|
||||||
|
test -n "$(man1dir)" \
|
||||||
|
&& test -n "`echo $$list1$$list2`" \
|
||||||
|
|| exit 0; \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
|
||||||
|
{ for i in $$list1; do echo "$$i"; done; \
|
||||||
|
if test -n "$$list2"; then \
|
||||||
|
for i in $$list2; do echo "$$i"; done \
|
||||||
|
| sed -n '/\.1[a-z]*$$/p'; \
|
||||||
|
fi; \
|
||||||
|
} | while read p; do \
|
||||||
|
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; echo "$$p"; \
|
||||||
|
done | \
|
||||||
|
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||||
|
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||||
|
sed 'N;N;s,\n, ,g' | { \
|
||||||
|
list=; while read file base inst; do \
|
||||||
|
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||||
|
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||||
|
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
test -z "$$files" || { \
|
||||||
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
|
||||||
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
|
||||||
|
done; }
|
||||||
|
|
||||||
|
uninstall-man1:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||||
|
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||||
|
l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||||
|
sed -n '/\.1[a-z]*$$/p'; \
|
||||||
|
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||||
|
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||||
|
dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
|
||||||
|
install-man3: $(dist_man_MANS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list1=''; \
|
||||||
|
list2='$(dist_man_MANS)'; \
|
||||||
|
test -n "$(man3dir)" \
|
||||||
|
&& test -n "`echo $$list1$$list2`" \
|
||||||
|
|| exit 0; \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
|
||||||
|
{ for i in $$list1; do echo "$$i"; done; \
|
||||||
|
if test -n "$$list2"; then \
|
||||||
|
for i in $$list2; do echo "$$i"; done \
|
||||||
|
| sed -n '/\.3[a-z]*$$/p'; \
|
||||||
|
fi; \
|
||||||
|
} | while read p; do \
|
||||||
|
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; echo "$$p"; \
|
||||||
|
done | \
|
||||||
|
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
|
||||||
|
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||||
|
sed 'N;N;s,\n, ,g' | { \
|
||||||
|
list=; while read file base inst; do \
|
||||||
|
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||||
|
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
|
||||||
|
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \
|
||||||
|
fi; \
|
||||||
|
done; \
|
||||||
|
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
test -z "$$files" || { \
|
||||||
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \
|
||||||
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \
|
||||||
|
done; }
|
||||||
|
|
||||||
|
uninstall-man3:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list=''; test -n "$(man3dir)" || exit 0; \
|
||||||
|
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||||
|
l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||||
|
sed -n '/\.3[a-z]*$$/p'; \
|
||||||
|
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
|
||||||
|
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||||
|
dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
|
||||||
|
install-dist_docDATA: $(dist_doc_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
|
||||||
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-dist_docDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(dist_doc_DATA)'; test -n "$(docdir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir)
|
||||||
|
install-dist_htmlDATA: $(dist_html_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \
|
||||||
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-dist_htmlDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(dist_html_DATA)'; test -n "$(htmldir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(htmldir)'; $(am__uninstall_files_from_dir)
|
||||||
|
install-pkgconfigDATA: $(pkgconfig_DATA)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
|
||||||
|
$(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-pkgconfigDATA:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
|
||||||
|
install-includeHEADERS: $(include_HEADERS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-includeHEADERS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
|
||||||
|
install-nodist_includeHEADERS: $(nodist_include_HEADERS)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
@list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
|
||||||
|
if test -n "$$list"; then \
|
||||||
|
echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
|
||||||
|
$(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
|
||||||
|
fi; \
|
||||||
|
for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
echo "$$d$$p"; \
|
||||||
|
done | $(am__base_list) | \
|
||||||
|
while read files; do \
|
||||||
|
echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
|
||||||
|
$(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
|
||||||
|
done
|
||||||
|
|
||||||
|
uninstall-nodist_includeHEADERS:
|
||||||
|
@$(NORMAL_UNINSTALL)
|
||||||
|
@list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
|
||||||
|
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
|
||||||
|
dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
|
||||||
|
|
||||||
|
ID: $(am__tagged_files)
|
||||||
|
$(am__define_uniq_tagged_files); mkid -fID $$unique
|
||||||
|
tags: tags-am
|
||||||
|
TAGS: tags
|
||||||
|
|
||||||
|
tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||||
|
set x; \
|
||||||
|
here=`pwd`; \
|
||||||
|
$(am__define_uniq_tagged_files); \
|
||||||
|
shift; \
|
||||||
|
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||||
|
test -n "$$unique" || unique=$$empty_fix; \
|
||||||
|
if test $$# -gt 0; then \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
"$$@" $$unique; \
|
||||||
|
else \
|
||||||
|
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||||
|
$$unique; \
|
||||||
|
fi; \
|
||||||
|
fi
|
||||||
|
ctags: ctags-am
|
||||||
|
|
||||||
|
CTAGS: ctags
|
||||||
|
ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
|
||||||
|
$(am__define_uniq_tagged_files); \
|
||||||
|
test -z "$(CTAGS_ARGS)$$unique" \
|
||||||
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||||
|
$$unique
|
||||||
|
|
||||||
|
GTAGS:
|
||||||
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||||
|
&& $(am__cd) $(top_srcdir) \
|
||||||
|
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||||
|
cscope: cscope.files
|
||||||
|
test ! -s cscope.files \
|
||||||
|
|| $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
|
||||||
|
clean-cscope:
|
||||||
|
-rm -f cscope.files
|
||||||
|
cscope.files: clean-cscope cscopelist
|
||||||
|
cscopelist: cscopelist-am
|
||||||
|
|
||||||
|
cscopelist-am: $(am__tagged_files)
|
||||||
|
list='$(am__tagged_files)'; \
|
||||||
|
case "$(srcdir)" in \
|
||||||
|
[\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
|
||||||
|
*) sdir=$(subdir)/$(srcdir) ;; \
|
||||||
|
esac; \
|
||||||
|
for i in $$list; do \
|
||||||
|
if test -f "$$i"; then \
|
||||||
|
echo "$(subdir)/$$i"; \
|
||||||
|
else \
|
||||||
|
echo "$$sdir/$$i"; \
|
||||||
|
fi; \
|
||||||
|
done >> $(top_builddir)/cscope.files
|
||||||
|
|
||||||
|
distclean-tags:
|
||||||
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||||
|
-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
|
||||||
|
|
||||||
|
# Recover from deleted '.trs' file; this should ensure that
|
||||||
|
# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
|
||||||
|
# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
|
||||||
|
# to avoid problems with "make -n".
|
||||||
|
.log.trs:
|
||||||
|
rm -f $< $@
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $<
|
||||||
|
|
||||||
|
# Leading 'am--fnord' is there to ensure the list of targets does not
|
||||||
|
# expand to empty, as could happen e.g. with make check TESTS=''.
|
||||||
|
am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
|
||||||
|
am--force-recheck:
|
||||||
|
@:
|
||||||
|
|
||||||
|
$(TEST_SUITE_LOG): $(TEST_LOGS)
|
||||||
|
@$(am__set_TESTS_bases); \
|
||||||
|
am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
|
||||||
|
redo_bases=`for i in $$bases; do \
|
||||||
|
am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
|
||||||
|
done`; \
|
||||||
|
if test -n "$$redo_bases"; then \
|
||||||
|
redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
|
||||||
|
redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
|
||||||
|
if $(am__make_dryrun); then :; else \
|
||||||
|
rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
|
||||||
|
fi; \
|
||||||
|
fi; \
|
||||||
|
if test -n "$$am__remaking_logs"; then \
|
||||||
|
echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
|
||||||
|
"recursion detected" >&2; \
|
||||||
|
elif test -n "$$redo_logs"; then \
|
||||||
|
am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
|
||||||
|
fi; \
|
||||||
|
if $(am__make_dryrun); then :; else \
|
||||||
|
st=0; \
|
||||||
|
errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
|
||||||
|
for i in $$redo_bases; do \
|
||||||
|
test -f $$i.trs && test -r $$i.trs \
|
||||||
|
|| { echo "$$errmsg $$i.trs" >&2; st=1; }; \
|
||||||
|
test -f $$i.log && test -r $$i.log \
|
||||||
|
|| { echo "$$errmsg $$i.log" >&2; st=1; }; \
|
||||||
|
done; \
|
||||||
|
test $$st -eq 0 || exit 1; \
|
||||||
|
fi
|
||||||
|
@$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
|
||||||
|
ws='[ ]'; \
|
||||||
|
results=`for b in $$bases; do echo $$b.trs; done`; \
|
||||||
|
test -n "$$results" || results=/dev/null; \
|
||||||
|
all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
|
||||||
|
pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
|
||||||
|
fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
|
||||||
|
skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
|
||||||
|
xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
|
||||||
|
xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
|
||||||
|
error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
|
||||||
|
if test `expr $$fail + $$xpass + $$error` -eq 0; then \
|
||||||
|
success=true; \
|
||||||
|
else \
|
||||||
|
success=false; \
|
||||||
|
fi; \
|
||||||
|
br='==================='; br=$$br$$br$$br$$br; \
|
||||||
|
result_count () \
|
||||||
|
{ \
|
||||||
|
if test x"$$1" = x"--maybe-color"; then \
|
||||||
|
maybe_colorize=yes; \
|
||||||
|
elif test x"$$1" = x"--no-color"; then \
|
||||||
|
maybe_colorize=no; \
|
||||||
|
else \
|
||||||
|
echo "$@: invalid 'result_count' usage" >&2; exit 4; \
|
||||||
|
fi; \
|
||||||
|
shift; \
|
||||||
|
desc=$$1 count=$$2; \
|
||||||
|
if test $$maybe_colorize = yes && test $$count -gt 0; then \
|
||||||
|
color_start=$$3 color_end=$$std; \
|
||||||
|
else \
|
||||||
|
color_start= color_end=; \
|
||||||
|
fi; \
|
||||||
|
echo "$${color_start}# $$desc $$count$${color_end}"; \
|
||||||
|
}; \
|
||||||
|
create_testsuite_report () \
|
||||||
|
{ \
|
||||||
|
result_count $$1 "TOTAL:" $$all "$$brg"; \
|
||||||
|
result_count $$1 "PASS: " $$pass "$$grn"; \
|
||||||
|
result_count $$1 "SKIP: " $$skip "$$blu"; \
|
||||||
|
result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
|
||||||
|
result_count $$1 "FAIL: " $$fail "$$red"; \
|
||||||
|
result_count $$1 "XPASS:" $$xpass "$$red"; \
|
||||||
|
result_count $$1 "ERROR:" $$error "$$mgn"; \
|
||||||
|
}; \
|
||||||
|
{ \
|
||||||
|
echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
|
||||||
|
$(am__rst_title); \
|
||||||
|
create_testsuite_report --no-color; \
|
||||||
|
echo; \
|
||||||
|
echo ".. contents:: :depth: 2"; \
|
||||||
|
echo; \
|
||||||
|
for b in $$bases; do echo $$b; done \
|
||||||
|
| $(am__create_global_log); \
|
||||||
|
} >$(TEST_SUITE_LOG).tmp || exit 1; \
|
||||||
|
mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
|
||||||
|
if $$success; then \
|
||||||
|
col="$$grn"; \
|
||||||
|
else \
|
||||||
|
col="$$red"; \
|
||||||
|
test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
|
||||||
|
fi; \
|
||||||
|
echo "$${col}$$br$${std}"; \
|
||||||
|
echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
|
||||||
|
echo "$${col}$$br$${std}"; \
|
||||||
|
create_testsuite_report --maybe-color; \
|
||||||
|
echo "$$col$$br$$std"; \
|
||||||
|
if $$success; then :; else \
|
||||||
|
echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
|
||||||
|
if test -n "$(PACKAGE_BUGREPORT)"; then \
|
||||||
|
echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
|
||||||
|
fi; \
|
||||||
|
echo "$$col$$br$$std"; \
|
||||||
|
fi; \
|
||||||
|
$$success || exit 1
|
||||||
|
|
||||||
|
check-TESTS: $(check_SCRIPTS)
|
||||||
|
@list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
|
||||||
|
@list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
|
||||||
|
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
||||||
|
@set +e; $(am__set_TESTS_bases); \
|
||||||
|
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
||||||
|
trs_list=`for i in $$bases; do echo $$i.trs; done`; \
|
||||||
|
log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
|
||||||
|
exit $$?;
|
||||||
|
recheck: all $(check_SCRIPTS)
|
||||||
|
@test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
||||||
|
@set +e; $(am__set_TESTS_bases); \
|
||||||
|
bases=`for i in $$bases; do echo $$i; done \
|
||||||
|
| $(am__list_recheck_tests)` || exit 1; \
|
||||||
|
log_list=`for i in $$bases; do echo $$i.log; done`; \
|
||||||
|
log_list=`echo $$log_list`; \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
|
||||||
|
am__force_recheck=am--force-recheck \
|
||||||
|
TEST_LOGS="$$log_list"; \
|
||||||
|
exit $$?
|
||||||
|
pcre2posix_test.log: pcre2posix_test$(EXEEXT)
|
||||||
|
@p='pcre2posix_test$(EXEEXT)'; \
|
||||||
|
b='pcre2posix_test'; \
|
||||||
|
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
pcre2_jit_test.log: pcre2_jit_test$(EXEEXT)
|
||||||
|
@p='pcre2_jit_test$(EXEEXT)'; \
|
||||||
|
b='pcre2_jit_test'; \
|
||||||
|
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
RunTest.log: RunTest
|
||||||
|
@p='RunTest'; \
|
||||||
|
b='RunTest'; \
|
||||||
|
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
RunGrepTest.log: RunGrepTest
|
||||||
|
@p='RunGrepTest'; \
|
||||||
|
b='RunGrepTest'; \
|
||||||
|
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
.test.log:
|
||||||
|
@p='$<'; \
|
||||||
|
$(am__set_b); \
|
||||||
|
$(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
||||||
|
--log-file $$b.log --trs-file $$b.trs \
|
||||||
|
$(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
||||||
|
"$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
@am__EXEEXT_TRUE@.test$(EXEEXT).log:
|
||||||
|
@am__EXEEXT_TRUE@ @p='$<'; \
|
||||||
|
@am__EXEEXT_TRUE@ $(am__set_b); \
|
||||||
|
@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
|
||||||
|
@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
|
||||||
|
@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
|
||||||
|
@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
|
||||||
|
distdir: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) distdir-am
|
||||||
|
|
||||||
|
distdir-am: $(DISTFILES)
|
||||||
|
$(am__remove_distdir)
|
||||||
|
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||||
|
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||||
|
list='$(DISTFILES)'; \
|
||||||
|
dist_files=`for file in $$list; do echo $$file; done | \
|
||||||
|
sed -e "s|^$$srcdirstrip/||;t" \
|
||||||
|
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
||||||
|
case $$dist_files in \
|
||||||
|
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
||||||
|
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
||||||
|
sort -u` ;; \
|
||||||
|
esac; \
|
||||||
|
for file in $$dist_files; do \
|
||||||
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||||
|
if test -d $$d/$$file; then \
|
||||||
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||||
|
if test -d "$(distdir)/$$file"; then \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||||
|
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||||
|
fi; \
|
||||||
|
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||||
|
else \
|
||||||
|
test -f "$(distdir)/$$file" \
|
||||||
|
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||||
|
|| exit 1; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
-test -n "$(am__skip_mode_fix)" \
|
||||||
|
|| find "$(distdir)" -type d ! -perm -755 \
|
||||||
|
-exec chmod u+rwx,go+rx {} \; -o \
|
||||||
|
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||||
|
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||||
|
|| chmod -R a+r "$(distdir)"
|
||||||
|
dist-gzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
dist-bzip2: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist-lzip: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist-xz: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist-zstd: distdir
|
||||||
|
tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist-tarZ: distdir
|
||||||
|
@echo WARNING: "Support for distribution archives compressed with" \
|
||||||
|
"legacy program 'compress' is deprecated." >&2
|
||||||
|
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||||
|
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist-shar: distdir
|
||||||
|
@echo WARNING: "Support for shar distribution archives is" \
|
||||||
|
"deprecated." >&2
|
||||||
|
@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
|
||||||
|
shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
dist-zip: distdir
|
||||||
|
-rm -f $(distdir).zip
|
||||||
|
zip -rq $(distdir).zip $(distdir)
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
dist dist-all:
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
|
||||||
|
# This target untars the dist file and tries a VPATH configuration. Then
|
||||||
|
# it guarantees that the distribution is self-contained by making another
|
||||||
|
# tarfile.
|
||||||
|
distcheck: dist
|
||||||
|
case '$(DIST_ARCHIVES)' in \
|
||||||
|
*.tar.gz*) \
|
||||||
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||||
|
*.tar.bz2*) \
|
||||||
|
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||||
|
*.tar.lz*) \
|
||||||
|
lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
|
||||||
|
*.tar.xz*) \
|
||||||
|
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||||
|
*.tar.Z*) \
|
||||||
|
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||||
|
*.shar.gz*) \
|
||||||
|
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
|
||||||
|
*.zip*) \
|
||||||
|
unzip $(distdir).zip ;;\
|
||||||
|
*.tar.zst*) \
|
||||||
|
zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
|
||||||
|
esac
|
||||||
|
chmod -R a-w $(distdir)
|
||||||
|
chmod u+w $(distdir)
|
||||||
|
mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
|
||||||
|
chmod a-w $(distdir)
|
||||||
|
test -d $(distdir)/_build || exit 0; \
|
||||||
|
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||||
|
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||||
|
&& am__cwd=`pwd` \
|
||||||
|
&& $(am__cd) $(distdir)/_build/sub \
|
||||||
|
&& ../../configure \
|
||||||
|
$(AM_DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||||
|
--srcdir=../.. --prefix="$$dc_install_base" \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) check \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
|
||||||
|
distuninstallcheck \
|
||||||
|
&& chmod -R a-w "$$dc_install_base" \
|
||||||
|
&& ({ \
|
||||||
|
(cd ../.. && umask 077 && mkdir "$$dc_destdir") \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
|
||||||
|
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
|
||||||
|
} || { rm -rf "$$dc_destdir"; exit 1; }) \
|
||||||
|
&& rm -rf "$$dc_destdir" \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||||
|
&& rm -rf $(DIST_ARCHIVES) \
|
||||||
|
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||||
|
&& cd "$$am__cwd" \
|
||||||
|
|| exit 1
|
||||||
|
$(am__post_remove_distdir)
|
||||||
|
@(echo "$(distdir) archives ready for distribution: "; \
|
||||||
|
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||||
|
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||||
|
distuninstallcheck:
|
||||||
|
@test -n '$(distuninstallcheck_dir)' || { \
|
||||||
|
echo 'ERROR: trying to run $@ with an empty' \
|
||||||
|
'$$(distuninstallcheck_dir)' >&2; \
|
||||||
|
exit 1; \
|
||||||
|
}; \
|
||||||
|
$(am__cd) '$(distuninstallcheck_dir)' || { \
|
||||||
|
echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
|
||||||
|
exit 1; \
|
||||||
|
}; \
|
||||||
|
test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left after uninstall:" ; \
|
||||||
|
if test -n "$(DESTDIR)"; then \
|
||||||
|
echo " (check DESTDIR support)"; \
|
||||||
|
fi ; \
|
||||||
|
$(distuninstallcheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
distcleancheck: distclean
|
||||||
|
@if test '$(srcdir)' = . ; then \
|
||||||
|
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
|
||||||
|
exit 1 ; \
|
||||||
|
fi
|
||||||
|
@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
|
||||||
|
|| { echo "ERROR: files left in build directory after distclean:" ; \
|
||||||
|
$(distcleancheck_listfiles) ; \
|
||||||
|
exit 1; } >&2
|
||||||
|
check-am: all-am
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) $(check_SCRIPTS)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) check-TESTS
|
||||||
|
check: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) check-am
|
||||||
|
all-am: Makefile $(PROGRAMS) $(LIBRARIES) $(LTLIBRARIES) $(SCRIPTS) \
|
||||||
|
$(MANS) $(DATA) $(HEADERS)
|
||||||
|
install-binPROGRAMS: install-libLTLIBRARIES
|
||||||
|
|
||||||
|
installdirs:
|
||||||
|
for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(htmldir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
|
||||||
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
|
done
|
||||||
|
install: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) install-am
|
||||||
|
install-exec: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) install-exec-am
|
||||||
|
install-data: install-data-am
|
||||||
|
uninstall: uninstall-am
|
||||||
|
|
||||||
|
install-am: all-am
|
||||||
|
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||||
|
|
||||||
|
installcheck: installcheck-am
|
||||||
|
install-strip:
|
||||||
|
if test -z '$(STRIP)'; then \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
install; \
|
||||||
|
else \
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||||
|
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||||
|
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
|
||||||
|
fi
|
||||||
|
mostlyclean-generic:
|
||||||
|
-test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
|
||||||
|
-test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
|
||||||
|
-test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
|
||||||
|
|
||||||
|
clean-generic:
|
||||||
|
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||||
|
|
||||||
|
distclean-generic:
|
||||||
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||||
|
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||||
|
-rm -f .libs/$(am__dirstamp)
|
||||||
|
-rm -f src/$(DEPDIR)/$(am__dirstamp)
|
||||||
|
-rm -f src/$(am__dirstamp)
|
||||||
|
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
|
||||||
|
|
||||||
|
maintainer-clean-generic:
|
||||||
|
@echo "This command is intended for maintainers to use"
|
||||||
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
||||||
|
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
|
||||||
|
@WITH_GCOV_FALSE@clean-local:
|
||||||
|
clean: clean-am
|
||||||
|
|
||||||
|
clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
|
||||||
|
clean-libtool clean-local clean-noinstLIBRARIES \
|
||||||
|
clean-noinstPROGRAMS mostlyclean-am
|
||||||
|
|
||||||
|
distclean: distclean-am
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -f src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2_dftables.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2grep-pcre2grep.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2test-pcre2test.Po
|
||||||
|
-rm -f Makefile
|
||||||
|
distclean-am: clean-am distclean-compile distclean-generic \
|
||||||
|
distclean-hdr distclean-libtool distclean-local distclean-tags
|
||||||
|
|
||||||
|
dvi: dvi-am
|
||||||
|
|
||||||
|
dvi-am:
|
||||||
|
|
||||||
|
html: html-am
|
||||||
|
|
||||||
|
html-am:
|
||||||
|
|
||||||
|
info: info-am
|
||||||
|
|
||||||
|
info-am:
|
||||||
|
|
||||||
|
install-data-am: install-dist_docDATA install-dist_htmlDATA \
|
||||||
|
install-includeHEADERS install-man \
|
||||||
|
install-nodist_includeHEADERS install-pkgconfigDATA
|
||||||
|
|
||||||
|
install-dvi: install-dvi-am
|
||||||
|
|
||||||
|
install-dvi-am:
|
||||||
|
|
||||||
|
install-exec-am: install-binPROGRAMS install-binSCRIPTS \
|
||||||
|
install-libLTLIBRARIES
|
||||||
|
|
||||||
|
install-html: install-html-am
|
||||||
|
|
||||||
|
install-html-am:
|
||||||
|
|
||||||
|
install-info: install-info-am
|
||||||
|
|
||||||
|
install-info-am:
|
||||||
|
|
||||||
|
install-man: install-man1 install-man3
|
||||||
|
|
||||||
|
install-pdf: install-pdf-am
|
||||||
|
|
||||||
|
install-pdf-am:
|
||||||
|
|
||||||
|
install-ps: install-ps-am
|
||||||
|
|
||||||
|
install-ps-am:
|
||||||
|
|
||||||
|
installcheck-am:
|
||||||
|
|
||||||
|
maintainer-clean: maintainer-clean-am
|
||||||
|
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
|
||||||
|
-rm -rf $(top_srcdir)/autom4te.cache
|
||||||
|
-rm -f src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_16_a-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_32_a-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/_libs_libpcre2_fuzzsupport_a-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_auto_possess.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_chartables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_chkdint.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_compile_class.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_config.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_context.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_convert.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_dfa_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_error.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_extuni.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_find_bracket.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_jit_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_maketables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_match_data.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_newline.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_ord2utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_pattern_info.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_script_run.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_serialize.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_string_utils.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_study.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_substitute.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_substring.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_tables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_ucd.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_valid_utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_16_la-pcre2_xclass.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_auto_possess.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_chartables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_chkdint.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_compile_class.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_config.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_context.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_convert.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_dfa_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_error.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_extuni.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_find_bracket.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_jit_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_maketables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_match_data.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_newline.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_ord2utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_pattern_info.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_script_run.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_serialize.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_string_utils.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_study.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_substitute.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_substring.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_tables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_ucd.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_valid_utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_32_la-pcre2_xclass.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_auto_possess.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_chartables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_chkdint.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_compile_class.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_config.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_context.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_convert.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_dfa_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_error.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_extuni.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_find_bracket.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_jit_compile.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_maketables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_match.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_match_data.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_newline.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_ord2utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_pattern_info.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_script_run.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_serialize.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_string_utils.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_study.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_substitute.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_substring.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_tables.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_ucd.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_valid_utf.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_8_la-pcre2_xclass.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/libpcre2_posix_la-pcre2posix.Plo
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2_dftables.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2_jit_test-pcre2_jit_test.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2fuzzcheck_16-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2fuzzcheck_32-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2fuzzcheck_8-pcre2_fuzzsupport.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2grep-pcre2grep.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2posix_test-pcre2posix_test.Po
|
||||||
|
-rm -f src/$(DEPDIR)/pcre2test-pcre2test.Po
|
||||||
|
-rm -f Makefile
|
||||||
|
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||||
|
|
||||||
|
mostlyclean: mostlyclean-am
|
||||||
|
|
||||||
|
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||||
|
mostlyclean-libtool
|
||||||
|
|
||||||
|
pdf: pdf-am
|
||||||
|
|
||||||
|
pdf-am:
|
||||||
|
|
||||||
|
ps: ps-am
|
||||||
|
|
||||||
|
ps-am:
|
||||||
|
|
||||||
|
uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
|
||||||
|
uninstall-dist_docDATA uninstall-dist_htmlDATA \
|
||||||
|
uninstall-includeHEADERS uninstall-libLTLIBRARIES \
|
||||||
|
uninstall-man uninstall-nodist_includeHEADERS \
|
||||||
|
uninstall-pkgconfigDATA
|
||||||
|
|
||||||
|
uninstall-man: uninstall-man1 uninstall-man3
|
||||||
|
|
||||||
|
.MAKE: all check check-am install install-am install-exec \
|
||||||
|
install-strip
|
||||||
|
|
||||||
|
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles am--refresh check \
|
||||||
|
check-TESTS check-am clean clean-binPROGRAMS clean-cscope \
|
||||||
|
clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
|
||||||
|
clean-noinstLIBRARIES clean-noinstPROGRAMS cscope \
|
||||||
|
cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
|
||||||
|
dist-gzip dist-lzip dist-shar dist-tarZ dist-xz dist-zip \
|
||||||
|
dist-zstd distcheck distclean distclean-compile \
|
||||||
|
distclean-generic distclean-hdr distclean-libtool \
|
||||||
|
distclean-local distclean-tags distcleancheck distdir \
|
||||||
|
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||||
|
install install-am install-binPROGRAMS install-binSCRIPTS \
|
||||||
|
install-data install-data-am install-dist_docDATA \
|
||||||
|
install-dist_htmlDATA install-dvi install-dvi-am install-exec \
|
||||||
|
install-exec-am install-html install-html-am \
|
||||||
|
install-includeHEADERS install-info install-info-am \
|
||||||
|
install-libLTLIBRARIES install-man install-man1 install-man3 \
|
||||||
|
install-nodist_includeHEADERS install-pdf install-pdf-am \
|
||||||
|
install-pkgconfigDATA install-ps install-ps-am install-strip \
|
||||||
|
installcheck installcheck-am installdirs maintainer-clean \
|
||||||
|
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||||
|
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||||
|
recheck tags tags-am uninstall uninstall-am \
|
||||||
|
uninstall-binPROGRAMS uninstall-binSCRIPTS \
|
||||||
|
uninstall-dist_docDATA uninstall-dist_htmlDATA \
|
||||||
|
uninstall-includeHEADERS uninstall-libLTLIBRARIES \
|
||||||
|
uninstall-man uninstall-man1 uninstall-man3 \
|
||||||
|
uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA
|
||||||
|
|
||||||
|
.PRECIOUS: Makefile
|
||||||
|
|
||||||
|
|
||||||
|
# The only difference between pcre2.h.in and pcre2.h is the setting of the PCRE
|
||||||
|
# version number. Therefore, we can create the generic version just by copying.
|
||||||
|
|
||||||
|
src/pcre2.h.generic: src/pcre2.h.in configure.ac
|
||||||
|
rm -f $@
|
||||||
|
cp -p src/pcre2.h $@
|
||||||
|
|
||||||
|
# It is more complicated for config.h.generic. We need the version that results
|
||||||
|
# from a default configuration so as to get all the default values for PCRE
|
||||||
|
# configuration macros such as MATCH_LIMIT and NEWLINE. We can get this by
|
||||||
|
# doing a configure in a temporary directory. However, some trickery is needed,
|
||||||
|
# because the source directory may already be configured. If you just try
|
||||||
|
# running configure in a new directory, it complains. For this reason, we move
|
||||||
|
# config.status out of the way while doing the default configuration. The
|
||||||
|
# resulting config.h is munged by perl to put #ifdefs round any #defines for
|
||||||
|
# macros with values, and to #undef all boolean macros such as HAVE_xxx and
|
||||||
|
# SUPPORT_xxx. We also get rid of any gcc-specific visibility settings.
|
||||||
|
|
||||||
|
src/config.h.generic: configure.ac
|
||||||
|
rm -rf $@ _generic
|
||||||
|
mkdir _generic
|
||||||
|
cs=$(srcdir)/config.status; test ! -f $$cs || mv -f $$cs $$cs.aside
|
||||||
|
cd _generic && $(abs_top_srcdir)/configure || :
|
||||||
|
cs=$(srcdir)/config.status; test ! -f $$cs.aside || mv -f $$cs.aside $$cs
|
||||||
|
test -f _generic/src/config.h
|
||||||
|
perl -n \
|
||||||
|
-e 'BEGIN{$$blank=0;}' \
|
||||||
|
-e 'if(/(.+?)\s*__attribute__ \(\(visibility/){print"$$1\n";$$blank=0;next;}' \
|
||||||
|
-e 'if(/LT_OBJDIR/){print"/* This is ignored unless you are using libtool. */\n";}' \
|
||||||
|
-e 'if(/^#define\s((?:HAVE|SUPPORT|STDC)_\w+)/){print"/* #undef $$1 */\n";$$blank=0;next;}' \
|
||||||
|
-e 'if(/^#define\s(?!PACKAGE|VERSION)(\w+)/){print"#ifndef $$1\n$$_#endif\n";$$blank=0;next;}' \
|
||||||
|
-e 'if(/^\s*$$/){print unless $$blank; $$blank=1;} else{print;$$blank=0;}' \
|
||||||
|
_generic/src/config.h >$@
|
||||||
|
rm -rf _generic
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@src/pcre2_chartables.c: pcre2_dftables$(EXEEXT)
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@ rm -f $@
|
||||||
|
@WITH_REBUILD_CHARTABLES_TRUE@ ./pcre2_dftables$(EXEEXT) $@
|
||||||
|
@WITH_REBUILD_CHARTABLES_FALSE@src/pcre2_chartables.c: $(srcdir)/src/pcre2_chartables.c.dist
|
||||||
|
@WITH_REBUILD_CHARTABLES_FALSE@ rm -f $@
|
||||||
|
@WITH_REBUILD_CHARTABLES_FALSE@ $(LN_S) $(abs_srcdir)/src/pcre2_chartables.c.dist $(abs_builddir)/src/pcre2_chartables.c
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-check: all
|
||||||
|
@WITH_GCOV_TRUE@ -$(MAKE) $(AM_MAKEFLAGS) -k check
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-baseline:
|
||||||
|
@WITH_GCOV_TRUE@ $(LCOV) $(coverage_quiet) \
|
||||||
|
@WITH_GCOV_TRUE@ --directory $(top_builddir) \
|
||||||
|
@WITH_GCOV_TRUE@ --output-file "$(COVERAGE_OUTPUT_FILE)" \
|
||||||
|
@WITH_GCOV_TRUE@ --capture \
|
||||||
|
@WITH_GCOV_TRUE@ --initial
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-report:
|
||||||
|
@WITH_GCOV_TRUE@ $(LCOV) $(coverage_quiet) \
|
||||||
|
@WITH_GCOV_TRUE@ --directory $(top_builddir) \
|
||||||
|
@WITH_GCOV_TRUE@ --capture \
|
||||||
|
@WITH_GCOV_TRUE@ --output-file "$(COVERAGE_OUTPUT_FILE).tmp" \
|
||||||
|
@WITH_GCOV_TRUE@ --test-name "$(COVERAGE_TEST_NAME)" \
|
||||||
|
@WITH_GCOV_TRUE@ --no-checksum \
|
||||||
|
@WITH_GCOV_TRUE@ --compat-libtool \
|
||||||
|
@WITH_GCOV_TRUE@ $(COVERAGE_LCOV_EXTRA_FLAGS)
|
||||||
|
@WITH_GCOV_TRUE@ $(LCOV) $(coverage_quiet) \
|
||||||
|
@WITH_GCOV_TRUE@ --directory $(top_builddir) \
|
||||||
|
@WITH_GCOV_TRUE@ --output-file "$(COVERAGE_OUTPUT_FILE)" \
|
||||||
|
@WITH_GCOV_TRUE@ --remove "$(COVERAGE_OUTPUT_FILE).tmp" \
|
||||||
|
@WITH_GCOV_TRUE@ "/tmp/*" \
|
||||||
|
@WITH_GCOV_TRUE@ "/usr/include/*" \
|
||||||
|
@WITH_GCOV_TRUE@ "$(includedir)/*"
|
||||||
|
@WITH_GCOV_TRUE@ -@rm -f "$(COVERAGE_OUTPUT_FILE).tmp"
|
||||||
|
@WITH_GCOV_TRUE@ LANG=C $(GENHTML) $(coverage_quiet) \
|
||||||
|
@WITH_GCOV_TRUE@ --prefix $(top_builddir) \
|
||||||
|
@WITH_GCOV_TRUE@ --output-directory "$(COVERAGE_OUTPUT_DIR)" \
|
||||||
|
@WITH_GCOV_TRUE@ --title "$(PACKAGE) $(VERSION) Code Coverage Report" \
|
||||||
|
@WITH_GCOV_TRUE@ --show-details "$(COVERAGE_OUTPUT_FILE)" \
|
||||||
|
@WITH_GCOV_TRUE@ --legend \
|
||||||
|
@WITH_GCOV_TRUE@ $(COVERAGE_GENHTML_EXTRA_FLAGS)
|
||||||
|
@WITH_GCOV_TRUE@ @echo "Code coverage report written to file://$(abs_builddir)/$(COVERAGE_OUTPUT_DIR)/index.html"
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-reset:
|
||||||
|
@WITH_GCOV_TRUE@ -$(LCOV) $(coverage_quiet) --zerocounters --directory $(top_builddir)
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-clean-report:
|
||||||
|
@WITH_GCOV_TRUE@ -rm -f "$(COVERAGE_OUTPUT_FILE)" "$(COVERAGE_OUTPUT_FILE).tmp"
|
||||||
|
@WITH_GCOV_TRUE@ -rm -rf "$(COVERAGE_OUTPUT_DIR)"
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-clean-data:
|
||||||
|
@WITH_GCOV_TRUE@ -find $(top_builddir) -name "*.gcda" -delete
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-clean: coverage-reset coverage-clean-report coverage-clean-data
|
||||||
|
@WITH_GCOV_TRUE@ -find $(top_builddir) -name "*.gcno" -delete
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage-distclean: coverage-clean
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@coverage: coverage-reset coverage-baseline coverage-check coverage-report
|
||||||
|
@WITH_GCOV_TRUE@clean-local: coverage-clean
|
||||||
|
@WITH_GCOV_TRUE@distclean-local: coverage-distclean
|
||||||
|
|
||||||
|
@WITH_GCOV_TRUE@.PHONY: coverage coverage-baseline coverage-check coverage-report coverage-reset coverage-clean-report coverage-clean-data coverage-clean coverage-distclean
|
||||||
|
|
||||||
|
# Without coverage support, still arrange for 'make distclean' to get rid of
|
||||||
|
# any coverage files that may have been left from a different configuration.
|
||||||
|
|
||||||
|
@WITH_GCOV_FALSE@coverage:
|
||||||
|
@WITH_GCOV_FALSE@ @echo "Configuring with --enable-coverage is required to generate code coverage report."
|
||||||
|
|
||||||
|
@WITH_GCOV_FALSE@distclean-local:
|
||||||
|
@WITH_GCOV_FALSE@ rm -rf $(PACKAGE)-$(VERSION)-coverage*
|
||||||
|
|
||||||
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
|
.NOEXPORT:
|
||||||
578
3rd/pcre2/NEWS
Normal file
578
3rd/pcre2/NEWS
Normal file
@@ -0,0 +1,578 @@
|
|||||||
|
News about PCRE2 releases
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Version 10.45 05-February-2025
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This is a comparatively large release, incorporating new features, some
|
||||||
|
bugfixes, and a few changes with slight backwards compatibility implications.
|
||||||
|
Please see the ChangeLog and Git log for further details.
|
||||||
|
|
||||||
|
Only changes to behaviour, changes to the API, and major changes to the pattern
|
||||||
|
syntax are described here.
|
||||||
|
|
||||||
|
This release is the first to be available as a (signed) Git tag, or
|
||||||
|
alternatively as a (signed) tarball of the Git tag.
|
||||||
|
|
||||||
|
This is also the first release to be made by the new maintainers of PCRE2, and
|
||||||
|
we would like to thank Philip Hazel, creator and maintainer of PCRE and PCRE2.
|
||||||
|
|
||||||
|
* (Git change) The sljit project has been split out into a separate Git
|
||||||
|
repository. Git users must now run `git submodule init; git submodule update`
|
||||||
|
after a Git checkout.
|
||||||
|
|
||||||
|
* (Behaviour change) Update Unicode support to UCD 16.
|
||||||
|
|
||||||
|
* (Match behaviour change) Case-insensitive matching of Unicode properties
|
||||||
|
Ll, Lt, and Lu has been changed to match Perl. Previously, /\p{Ll}/i would
|
||||||
|
match only lower-case characters (even though case-insensitive matching was
|
||||||
|
specified). This also affects case-insensitive matching of POSIX classes such
|
||||||
|
as [:lower:].
|
||||||
|
|
||||||
|
* (Minor match behaviour change) Case-insensitive matching of backreferences now
|
||||||
|
respects the PCRE2_EXTRA_CASELESS_RESTRICT option.
|
||||||
|
|
||||||
|
* (Minor pattern syntax change) Parsing of the \x escape is stricter, and is
|
||||||
|
no longer parsed as an escape for the NUL character if not followed by '{' or
|
||||||
|
a hexadecimal digit. Use \x00 instead.
|
||||||
|
|
||||||
|
* (Major new feature) Add a new feature called scan substring. This is a new
|
||||||
|
type of assertion which matches the content of a capturing block to a
|
||||||
|
sub-pattern.
|
||||||
|
|
||||||
|
Example: to find a word that contains the rare (in English) sequence of
|
||||||
|
letters "rh" not at the start:
|
||||||
|
|
||||||
|
\b(\w++)(*scan_substring:(1).+rh)
|
||||||
|
|
||||||
|
The first group captures a word which is then scanned by the
|
||||||
|
(*scan_substring:(1) ... ) assertion, which tests whether the pattern ".+rh"
|
||||||
|
matches the capture group "(1)".
|
||||||
|
|
||||||
|
* (Major new feature) Add support for UTS#18 compatible character classes,
|
||||||
|
using the new option PCRE2_ALT_EXTENDED_CLASS. This adds '[' as a
|
||||||
|
metacharacter within character classes and the operators '&&', '--' and '~~',
|
||||||
|
allowing subtractions and intersections of character classes to be easily
|
||||||
|
expressed.
|
||||||
|
|
||||||
|
Example: to match Thai or Greek letters (but not letters or other characters
|
||||||
|
in those scripts), use [\p{L}&&[\p{Thai}||\p{Greek}]].
|
||||||
|
|
||||||
|
* (Major new feature) Add support for Perl-style extended character classes,
|
||||||
|
using the syntax (?[...]). This also allows expressing subtractions and
|
||||||
|
intersections of character classes, but using a different syntax to UTS#18.
|
||||||
|
|
||||||
|
Example: to match Thai or Greek letters (but not letters or other characters
|
||||||
|
in those scripts), use (?[\p{L} & (\p{Thai} + \p{Greek})]).
|
||||||
|
|
||||||
|
* (Minor feature) Significant improvements to the character class match engine.
|
||||||
|
Compiled character classes are now more compact, and have faster matching
|
||||||
|
for large or complex character sets, using binary search through the set.
|
||||||
|
|
||||||
|
* JIT compilation now fails with the new error code PCRE2_ERROR_JIT_UNSUPPORTED
|
||||||
|
for patterns which use features not supported by the JIT compiler.
|
||||||
|
|
||||||
|
* (Minor feature) New options PCRE2_EXTRA_NO_BS0 (disallow \0 as an escape for
|
||||||
|
the NUL character); PCRE2_EXTRA_PYTHON_OCTAL (use Python disambiguation rules
|
||||||
|
for deciding whether \12 is a backreference or an octal escape);
|
||||||
|
PCRE2_EXTRA_NEVER_CALLOUT (disable callout syntax entirely);
|
||||||
|
PCRE2_EXTRA_TURKISH_CASING (use Turkish rules for case-insensitive matching).
|
||||||
|
|
||||||
|
* (Minor feature) Add new API function pcre2_set_optimize() for controlling
|
||||||
|
which optimizations are enabled.
|
||||||
|
|
||||||
|
* (Minor new features) A variety of extensions have been made to
|
||||||
|
pcre2_substitute() and its syntax for replacement strings. These now support:
|
||||||
|
\123 octal escapes; titlecasing \u\L; \1 backreferences; \g<1> and $<NAME>
|
||||||
|
backreferences; $& $` $' and $_; new function
|
||||||
|
pcre2_set_substitute_case_callout() to allow locale-aware case transformation.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.44 07-June-2024
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
This is mostly a bug-fix and tidying release. There is one new function, to set
|
||||||
|
a maximum size for a compiled pattern. The maximum name length for groups is
|
||||||
|
increased to 128. Some auxiliary files for building under VMS are added.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.43 16-February-2024
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
There are quite a lot of changes in this release (see ChangeLog and Git log for
|
||||||
|
a list). Those that are not bugfixes or code tidies are:
|
||||||
|
|
||||||
|
* The JIT code no longer supports ARMv5 architecture.
|
||||||
|
|
||||||
|
* A new function pcre2_get_match_data_heapframes_size() for finer heap control.
|
||||||
|
|
||||||
|
* New option flags to restrict the interaction between ASCII and non-ASCII
|
||||||
|
characters for caseless matching and \d and friends. There are also new
|
||||||
|
pattern constructs to control these flags from within a pattern.
|
||||||
|
|
||||||
|
* Upgrade to Unicode 15.0.0.
|
||||||
|
|
||||||
|
* Treat a NULL pattern with zero length as an empty string.
|
||||||
|
|
||||||
|
* Added support for limited-length variable-length lookbehind assertions, with
|
||||||
|
a default maximum length of 255 characters (same as Perl) but with a function
|
||||||
|
to adjust the limit.
|
||||||
|
|
||||||
|
* Support for LoongArch in JIT.
|
||||||
|
|
||||||
|
* Perl changed the meaning of (for example) {,3} which did not used to be
|
||||||
|
recognized as a quantifier. Now it means {0,3} and PCRE2 has also changed.
|
||||||
|
Note that {,} is still not a quantifier.
|
||||||
|
|
||||||
|
* Following Perl, allow spaces and tabs after { and before } in all Perl-
|
||||||
|
compatible items that use braces, and also around commas in quantifiers. The
|
||||||
|
one exception in PCRE2 is \u{...}, which is from ECMAScript, not Perl, and
|
||||||
|
PCRE2 follows ECMAScript usage.
|
||||||
|
|
||||||
|
* Changed the meaning of \w and its synonyms and derivatives (\b and \B) in UCP
|
||||||
|
mode to follow Perl. It now matches characters whose general categories are L
|
||||||
|
or N or whose particular categories are Mn (non-spacing mark) or Pc
|
||||||
|
(combining punctuation).
|
||||||
|
|
||||||
|
* Changed the default meaning of [:xdigit:] in UCP mode to follow Perl. It now
|
||||||
|
matches the "fullwidth" versions of hex digits. PCRE2_EXTRA_ASCII_DIGIT can
|
||||||
|
be used to keep it ASCII only.
|
||||||
|
|
||||||
|
* Make PCRE2_UCP the default in UTF mode in pcre2grep and add --no-ucp,
|
||||||
|
--case-restrict and --posix-digit.
|
||||||
|
|
||||||
|
* Add --group-separator and --no-group-separator to pcre2grep.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.42 11-December-2022
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This is an unexpectedly early release to fix a problem that was introduced in
|
||||||
|
10.41. ChangeLog number 19 (GitHub #139) added the default definition of
|
||||||
|
PCRE2_CALL_CONVENTION to pcre2posix.c instead of pcre2posix.h, which meant that
|
||||||
|
programs including pcre2posix.h but not pcre2.h couldn't compile. A new test
|
||||||
|
that checks this case has been added.
|
||||||
|
|
||||||
|
A couple of other minor issues are also fixed, and a patch for an intermittent
|
||||||
|
JIT fault is also included. See ChangeLog and the Git log.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.41 06-December-2022
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This is another mainly bug-fixing and code-tidying release. There is one
|
||||||
|
significant upgrade to pcre2grep: it now behaves like GNU grep when matching
|
||||||
|
more than one pattern and a later pattern matches at an earlier point in the
|
||||||
|
subject when the matched substrings are being identified by colour or by
|
||||||
|
offsets.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.40 15-April-2022
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
This is mostly a bug-fixing and code-tidying release. However, there are some
|
||||||
|
extensions to Unicode property handling:
|
||||||
|
|
||||||
|
* Added support for Bidi_Class and a number of binary Unicode properties,
|
||||||
|
including Bidi_Control.
|
||||||
|
|
||||||
|
* A number of changes to script matching for \p and \P:
|
||||||
|
|
||||||
|
(a) Script extensions for a character are now coded as a bitmap instead of
|
||||||
|
a list of script numbers, which should be faster and does not need a
|
||||||
|
loop.
|
||||||
|
|
||||||
|
(b) Added the syntax \p{script:xxx} and \p{script_extensions:xxx} (synonyms
|
||||||
|
sc and scx).
|
||||||
|
|
||||||
|
(c) Changed \p{scriptname} from being the same as \p{sc:scriptname} to being
|
||||||
|
the same as \p{scx:scriptname} because this change happened in Perl at
|
||||||
|
release 5.26.
|
||||||
|
|
||||||
|
(d) The standard Unicode 4-letter abbreviations for script names are now
|
||||||
|
recognized.
|
||||||
|
|
||||||
|
(e) In accordance with Unicode and Perl's "loose matching" rules, spaces,
|
||||||
|
hyphens, and underscores are ignored in property names, which are then
|
||||||
|
matched independent of case.
|
||||||
|
|
||||||
|
As always, see ChangeLog for a list of all changes (also the Git log).
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.39 29-October-2021
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
This release is happening soon after 10.38 because the bug fix is important.
|
||||||
|
|
||||||
|
1. Fix incorrect detection of alternatives in first character search in JIT.
|
||||||
|
|
||||||
|
2. Update to Unicode 14.0.0.
|
||||||
|
|
||||||
|
3. Some code cleanups (see ChangeLog).
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.38 01-October-2021
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
As well as some bug fixes and tidies (as always, see ChangeLog for details),
|
||||||
|
the documentation is updated to list the new URLs, following the move of the
|
||||||
|
source repository to GitHub and the mailing list to Google Groups.
|
||||||
|
|
||||||
|
* The CMake build system can now build both static and shared libraries in one
|
||||||
|
go.
|
||||||
|
|
||||||
|
* Following Perl's lead, \K is now locked out in lookaround assertions by
|
||||||
|
default, but an option is provided to re-enable the previous behaviour.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.37 26-May-2021
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
A few more bug fixes and tidies. The only change of real note is the removal of
|
||||||
|
the actual POSIX names regcomp etc. from the POSIX wrapper library because
|
||||||
|
these have caused issues for some applications (see 10.33 #2 below).
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.36 04-December-2020
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Again, mainly bug fixes and tidies. The only enhancements are the addition of
|
||||||
|
GNU grep's -m (aka --max-count) option to pcre2grep, and also unifying the
|
||||||
|
handling of substitution strings for both -O and callouts in pcre2grep, with
|
||||||
|
the addition of $x{...} and $o{...} to allow for characters whose code points
|
||||||
|
are greater than 255 in Unicode mode.
|
||||||
|
|
||||||
|
NOTE: there is an outstanding issue with JIT support for MacOS on arm64
|
||||||
|
hardware. For details, please see Bugzilla issue #2618.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.35 15-April-2020
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Bugfixes, tidies, and a few new enhancements.
|
||||||
|
|
||||||
|
1. Capturing groups that contain recursive backreferences to themselves are no
|
||||||
|
longer automatically atomic, because the restriction is no longer necessary
|
||||||
|
as a result of the 10.30 restructuring.
|
||||||
|
|
||||||
|
2. Several new options for pcre2_substitute().
|
||||||
|
|
||||||
|
3. When Unicode is supported and PCRE2_UCP is set without PCRE2_UTF, Unicode
|
||||||
|
character properties are used for upper/lower case computations on characters
|
||||||
|
whose code points are greater than 127.
|
||||||
|
|
||||||
|
4. The character tables (for low-valued characters) can now more easily be
|
||||||
|
saved and restored in binary.
|
||||||
|
|
||||||
|
5. Updated to Unicode 13.0.0.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.34 21-November-2019
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
Another release with a few enhancements as well as bugfixes and tidies. The
|
||||||
|
main new features are:
|
||||||
|
|
||||||
|
1. There is now some support for matching in invalid UTF strings.
|
||||||
|
|
||||||
|
2. Non-atomic positive lookarounds are implemented in the pcre2_match()
|
||||||
|
interpreter, but not in JIT.
|
||||||
|
|
||||||
|
3. Added two new functions: pcre2_get_match_data_size() and
|
||||||
|
pcre2_maketables_free().
|
||||||
|
|
||||||
|
4. Upgraded to Unicode 12.1.0.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.33 16-April-2019
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
Yet more bugfixes, tidies, and a few enhancements, summarized here (see
|
||||||
|
ChangeLog for the full list):
|
||||||
|
|
||||||
|
1. Callouts from pcre2_substitute() are now available.
|
||||||
|
|
||||||
|
2. The POSIX functions are now all called pcre2_regcomp() etc., with wrapper
|
||||||
|
functions that use the standard POSIX names. However, in pcre2posix.h the POSIX
|
||||||
|
names are defined as macros. This should help avoid linking with the wrong
|
||||||
|
library in some environments, while still exporting the POSIX names for
|
||||||
|
pre-existing programs that use them.
|
||||||
|
|
||||||
|
3. Some new options:
|
||||||
|
|
||||||
|
(a) PCRE2_EXTRA_ESCAPED_CR_IS_LF makes \r behave as \n.
|
||||||
|
|
||||||
|
(b) PCRE2_EXTRA_ALT_BSUX enables support for ECMAScript 6's \u{hh...}
|
||||||
|
construct.
|
||||||
|
|
||||||
|
(c) PCRE2_COPY_MATCHED_SUBJECT causes a copy of a matched subject to be
|
||||||
|
made, instead of just remembering a pointer.
|
||||||
|
|
||||||
|
4. Some new Perl features:
|
||||||
|
|
||||||
|
(a) Perl 5.28's experimental alphabetic names for atomic groups and
|
||||||
|
lookaround assertions, for example, (*pla:...) and (*atomic:...).
|
||||||
|
|
||||||
|
(b) The new Perl "script run" features (*script_run:...) and
|
||||||
|
(*atomic_script_run:...) aka (*sr:...) and (*asr:...).
|
||||||
|
|
||||||
|
(c) When PCRE2_UTF is set, allow non-ASCII letters and decimal digits in
|
||||||
|
capture group names.
|
||||||
|
|
||||||
|
5. --disable-percent-zt disables the use of %zu and %td in formatting strings
|
||||||
|
in pcre2test. They were already automatically disabled for VC and older C
|
||||||
|
compilers.
|
||||||
|
|
||||||
|
6. Some changes related to callouts in pcre2grep:
|
||||||
|
|
||||||
|
(a) Support for running an external program under VMS has been added, in
|
||||||
|
addition to Windows and fork() support.
|
||||||
|
|
||||||
|
(b) --disable-pcre2grep-callout-fork restricts the callout support in
|
||||||
|
to the inbuilt echo facility.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.32 10-September-2018
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
This is another mainly bugfix and tidying release with a few minor
|
||||||
|
enhancements. These are the main ones:
|
||||||
|
|
||||||
|
1. pcre2grep now supports the inclusion of binary zeros in patterns that are
|
||||||
|
read from files via the -f option.
|
||||||
|
|
||||||
|
2. ./configure now supports --enable-jit=auto, which automatically enables JIT
|
||||||
|
if the hardware supports it.
|
||||||
|
|
||||||
|
3. In pcre2_dfa_match(), internal recursive calls no longer use the stack for
|
||||||
|
local workspace and local ovectors. Instead, an initial block of stack is
|
||||||
|
reserved, but if this is insufficient, heap memory is used. The heap limit
|
||||||
|
parameter now applies to pcre2_dfa_match().
|
||||||
|
|
||||||
|
4. Updated to Unicode version 11.0.0.
|
||||||
|
|
||||||
|
5. (*ACCEPT:ARG), (*FAIL:ARG), and (*COMMIT:ARG) are now supported.
|
||||||
|
|
||||||
|
6. Added support for \N{U+dddd}, but only in Unicode mode.
|
||||||
|
|
||||||
|
7. Added support for (?^) to unset all imnsx options.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.31 12-February-2018
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
This is mainly a bugfix and tidying release (see ChangeLog for full details).
|
||||||
|
However, there are some minor enhancements.
|
||||||
|
|
||||||
|
1. New pcre2_config() options: PCRE2_CONFIG_NEVER_BACKSLASH_C and
|
||||||
|
PCRE2_CONFIG_COMPILED_WIDTHS.
|
||||||
|
|
||||||
|
2. New pcre2_pattern_info() option PCRE2_INFO_EXTRAOPTIONS to retrieve the
|
||||||
|
extra compile time options.
|
||||||
|
|
||||||
|
3. There are now public names for all the pcre2_compile() error numbers.
|
||||||
|
|
||||||
|
4. Added PCRE2_CALLOUT_STARTMATCH and PCRE2_CALLOUT_BACKTRACK bits to a new
|
||||||
|
field callout_flags in callout blocks.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.30 14-August-2017
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
The full list of changes that includes bugfixes and tidies is, as always, in
|
||||||
|
ChangeLog. These are the most important new features:
|
||||||
|
|
||||||
|
1. The main interpreter, pcre2_match(), has been refactored into a new version
|
||||||
|
that does not use recursive function calls (and therefore the system stack) for
|
||||||
|
remembering backtracking positions. This makes --disable-stack-for-recursion a
|
||||||
|
NOOP. The new implementation allows backtracking into recursive group calls in
|
||||||
|
patterns, making it more compatible with Perl, and also fixes some other
|
||||||
|
previously hard-to-do issues. For patterns that have a lot of backtracking, the
|
||||||
|
heap is now used, and there is an explicit limit on the amount, settable by
|
||||||
|
pcre2_set_heap_limit() or (*LIMIT_HEAP=xxx). The "recursion limit" is retained,
|
||||||
|
but is renamed as "depth limit" (though the old names remain for
|
||||||
|
compatibility).
|
||||||
|
|
||||||
|
There is also a change in the way callouts from pcre2_match() are handled. The
|
||||||
|
offset_vector field in the callout block is no longer a pointer to the
|
||||||
|
actual ovector that was passed to the matching function in the match data
|
||||||
|
block. Instead it points to an internal ovector of a size large enough to hold
|
||||||
|
all possible captured substrings in the pattern.
|
||||||
|
|
||||||
|
2. The new option PCRE2_ENDANCHORED insists that a pattern match must end at
|
||||||
|
the end of the subject.
|
||||||
|
|
||||||
|
3. The new option PCRE2_EXTENDED_MORE implements Perl's /xx feature, and
|
||||||
|
pcre2test is upgraded to support it. Setting within the pattern by (?xx) is
|
||||||
|
also supported.
|
||||||
|
|
||||||
|
4. (?n) can be used to set PCRE2_NO_AUTO_CAPTURE, because Perl now has this.
|
||||||
|
|
||||||
|
5. Additional compile options in the compile context are now available, and the
|
||||||
|
first two are: PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES and
|
||||||
|
PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL.
|
||||||
|
|
||||||
|
6. The newline type PCRE2_NEWLINE_NUL is now available.
|
||||||
|
|
||||||
|
7. The match limit value now also applies to pcre2_dfa_match() as there are
|
||||||
|
patterns that can use up a lot of resources without necessarily recursing very
|
||||||
|
deeply.
|
||||||
|
|
||||||
|
8. The option REG_PEND (a GNU extension) is now available for the POSIX
|
||||||
|
wrapper. Also there is a new option PCRE2_LITERAL which is used to support
|
||||||
|
REG_NOSPEC.
|
||||||
|
|
||||||
|
9. PCRE2_EXTRA_MATCH_LINE and PCRE2_EXTRA_MATCH_WORD are implemented for the
|
||||||
|
benefit of pcre2grep, and pcre2grep's -F, -w, and -x options are re-implemented
|
||||||
|
using PCRE2_LITERAL, PCRE2_EXTRA_MATCH_WORD, and PCRE2_EXTRA_MATCH_LINE. This
|
||||||
|
is tidier and also fixes some bugs.
|
||||||
|
|
||||||
|
10. The Unicode tables are upgraded from Unicode 8.0.0 to Unicode 10.0.0.
|
||||||
|
|
||||||
|
11. There are some experimental functions for converting foreign patterns
|
||||||
|
(globs and POSIX patterns) into PCRE2 patterns.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.23 14-February-2017
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
1. ChangeLog has the details of a lot of bug fixes and tidies.
|
||||||
|
|
||||||
|
2. There has been a major re-factoring of the pcre2_compile.c file. Most syntax
|
||||||
|
checking is now done in the pre-pass that identifies capturing groups. This has
|
||||||
|
reduced the amount of duplication and made the code tidier. While doing this,
|
||||||
|
some minor bugs and Perl incompatibilities were fixed (see ChangeLog for
|
||||||
|
details.)
|
||||||
|
|
||||||
|
3. Back references are now permitted in lookbehind assertions when there are
|
||||||
|
no duplicated group numbers (that is, (?| has not been used), and, if the
|
||||||
|
reference is by name, there is only one group of that name. The referenced
|
||||||
|
group must, of course be of fixed length.
|
||||||
|
|
||||||
|
4. \g{+<number>} (e.g. \g{+2} ) is now supported. It is a "forward back
|
||||||
|
reference" and can be useful in repetitions (compare \g{-<number>} ). Perl does
|
||||||
|
not recognize this syntax.
|
||||||
|
|
||||||
|
5. pcre2grep now automatically expands its buffer up to a maximum set by
|
||||||
|
--max-buffer-size.
|
||||||
|
|
||||||
|
6. The -t option (grand total) has been added to pcre2grep.
|
||||||
|
|
||||||
|
7. A new function called pcre2_code_copy_with_tables() exists to copy a
|
||||||
|
compiled pattern along with a private copy of the character tables that is
|
||||||
|
uses.
|
||||||
|
|
||||||
|
8. A user supplied a number of patches to upgrade pcre2grep under Windows and
|
||||||
|
tidy the code.
|
||||||
|
|
||||||
|
9. Several updates have been made to pcre2test and test scripts (see
|
||||||
|
ChangeLog).
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.22 29-July-2016
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
1. ChangeLog has the details of a number of bug fixes.
|
||||||
|
|
||||||
|
2. The POSIX wrapper function regcomp() did not used to support back references
|
||||||
|
and subroutine calls if called with the REG_NOSUB option. It now does.
|
||||||
|
|
||||||
|
3. A new function, pcre2_code_copy(), is added, to make a copy of a compiled
|
||||||
|
pattern.
|
||||||
|
|
||||||
|
4. Support for string callouts is added to pcre2grep.
|
||||||
|
|
||||||
|
5. Added the PCRE2_NO_JIT option to pcre2_match().
|
||||||
|
|
||||||
|
6. The pcre2_get_error_message() function now returns with a negative error
|
||||||
|
code if the error number it is given is unknown.
|
||||||
|
|
||||||
|
7. Several updates have been made to pcre2test and test scripts (see
|
||||||
|
ChangeLog).
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.21 12-January-2016
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
1. Many bugs have been fixed. A large number of them were provoked only by very
|
||||||
|
strange pattern input, and were discovered by fuzzers. Some others were
|
||||||
|
discovered by code auditing. See ChangeLog for details.
|
||||||
|
|
||||||
|
2. The Unicode tables have been updated to Unicode version 8.0.0.
|
||||||
|
|
||||||
|
3. For Perl compatibility in EBCDIC environments, ranges such as a-z in a
|
||||||
|
class, where both values are literal letters in the same case, omit the
|
||||||
|
non-letter EBCDIC code points within the range.
|
||||||
|
|
||||||
|
4. There have been a number of enhancements to the pcre2_substitute() function,
|
||||||
|
giving more flexibility to replacement facilities. It is now also possible to
|
||||||
|
cause the function to return the needed buffer size if the one given is too
|
||||||
|
small.
|
||||||
|
|
||||||
|
5. The PCRE2_ALT_VERBNAMES option causes the "name" parts of special verbs such
|
||||||
|
as (*THEN:name) to be processed for backslashes and to take note of
|
||||||
|
PCRE2_EXTENDED.
|
||||||
|
|
||||||
|
6. PCRE2_INFO_HASBACKSLASHC makes it possible for a client to find out if a
|
||||||
|
pattern uses \C, and --never-backslash-C makes it possible to compile a version
|
||||||
|
PCRE2 in which the use of \C is always forbidden.
|
||||||
|
|
||||||
|
7. A limit to the length of pattern that can be handled can now be set by
|
||||||
|
calling pcre2_set_max_pattern_length().
|
||||||
|
|
||||||
|
8. When matching an unanchored pattern, a match can be required to begin within
|
||||||
|
a given number of code units after the start of the subject by calling
|
||||||
|
pcre2_set_offset_limit().
|
||||||
|
|
||||||
|
9. The pcre2test program has been extended to test new facilities, and it can
|
||||||
|
now run the tests when LF on its own is not a valid newline sequence.
|
||||||
|
|
||||||
|
10. The RunTest script has also been updated to enable more tests to be run.
|
||||||
|
|
||||||
|
11. There have been some minor performance enhancements.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.20 30-June-2015
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
1. Callouts with string arguments and the pcre2_callout_enumerate() function
|
||||||
|
have been implemented.
|
||||||
|
|
||||||
|
2. The PCRE2_NEVER_BACKSLASH_C option, which locks out the use of \C, is added.
|
||||||
|
|
||||||
|
3. The PCRE2_ALT_CIRCUMFLEX option lets ^ match after a newline at the end of a
|
||||||
|
subject in multiline mode.
|
||||||
|
|
||||||
|
4. The way named subpatterns are handled has been refactored. The previous
|
||||||
|
approach had several bugs.
|
||||||
|
|
||||||
|
5. The handling of \c in EBCDIC environments has been changed to conform to the
|
||||||
|
perlebcdic document. This is an incompatible change.
|
||||||
|
|
||||||
|
6. Bugs have been mended, many of them discovered by fuzzers.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.10 06-March-2015
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
1. Serialization and de-serialization functions have been added to the API,
|
||||||
|
making it possible to save and restore sets of compiled patterns, though
|
||||||
|
restoration must be done in the same environment that was used for compilation.
|
||||||
|
|
||||||
|
2. The (*NO_JIT) feature has been added; this makes it possible for a pattern
|
||||||
|
creator to specify that JIT is not to be used.
|
||||||
|
|
||||||
|
3. A number of bugs have been fixed. In particular, bugs that caused building
|
||||||
|
on Windows using CMake to fail have been mended.
|
||||||
|
|
||||||
|
|
||||||
|
Version 10.00 05-January-2015
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
Version 10.00 is the first release of PCRE2, a revised API for the PCRE
|
||||||
|
library. Changes prior to 10.00 are logged in the ChangeLog file for the old
|
||||||
|
API, up to item 20 for release 8.36. New programs are recommended to use the
|
||||||
|
new library. Programs that use the original (PCRE1) API will need changing
|
||||||
|
before linking with the new library.
|
||||||
|
|
||||||
|
****
|
||||||
442
3rd/pcre2/NON-AUTOTOOLS-BUILD
Normal file
442
3rd/pcre2/NON-AUTOTOOLS-BUILD
Normal file
@@ -0,0 +1,442 @@
|
|||||||
|
Building PCRE2 without using autotools
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
This document contains the following sections:
|
||||||
|
|
||||||
|
General
|
||||||
|
Generic instructions for the PCRE2 C libraries
|
||||||
|
Stack size in Windows environments
|
||||||
|
Linking programs in Windows environments
|
||||||
|
Calling conventions in Windows environments
|
||||||
|
Comments about Win32 builds
|
||||||
|
Building PCRE2 on Windows with CMake
|
||||||
|
Building PCRE2 on Windows with Visual Studio
|
||||||
|
Testing with RunTest.bat
|
||||||
|
Building PCRE2 on native z/OS and z/VM
|
||||||
|
Building PCRE2 under VMS
|
||||||
|
|
||||||
|
|
||||||
|
GENERAL
|
||||||
|
|
||||||
|
The source of the PCRE2 libraries consists entirely of code written in Standard
|
||||||
|
C, and so should compile successfully on any system that has a Standard C
|
||||||
|
compiler and library.
|
||||||
|
|
||||||
|
The PCRE2 distribution includes a "configure" file for use by the
|
||||||
|
configure/make (autotools) build system, as found in many Unix-like
|
||||||
|
environments. The README file contains information about the options for
|
||||||
|
"configure".
|
||||||
|
|
||||||
|
There is also support for CMake, which some users prefer, especially in Windows
|
||||||
|
environments, though it can also be run in Unix-like environments. See the
|
||||||
|
section entitled "Building PCRE2 on Windows with CMake" below.
|
||||||
|
|
||||||
|
Versions of src/config.h and src/pcre2.h are distributed in the PCRE2 tarballs
|
||||||
|
under the names src/config.h.generic and src/pcre2.h.generic. These are
|
||||||
|
provided for those who build PCRE2 without using "configure" or CMake. If you
|
||||||
|
use "configure" or CMake, the .generic versions are not used.
|
||||||
|
|
||||||
|
|
||||||
|
GENERIC INSTRUCTIONS FOR THE PCRE2 C LIBRARIES
|
||||||
|
|
||||||
|
There are three possible PCRE2 libraries, each handling data with a specific
|
||||||
|
code unit width: 8, 16, or 32 bits. You can build any combination of them. The
|
||||||
|
following are generic instructions for building a PCRE2 C library "by hand". If
|
||||||
|
you are going to use CMake, this section does not apply to you; you can skip
|
||||||
|
ahead to the CMake section. Note that the settings concerned with 8-bit,
|
||||||
|
16-bit, and 32-bit code units relate to the type of data string that PCRE2
|
||||||
|
processes. They are NOT referring to the underlying operating system bit width.
|
||||||
|
You do not have to do anything special to compile in a 64-bit environment, for
|
||||||
|
example.
|
||||||
|
|
||||||
|
(1) Copy or rename the file src/config.h.generic as src/config.h, and edit the
|
||||||
|
macro settings that it contains to whatever is appropriate for your
|
||||||
|
environment. In particular, you can alter the definition of the NEWLINE
|
||||||
|
macro to specify what character(s) you want to be interpreted as line
|
||||||
|
terminators by default. You need to #define at least one of
|
||||||
|
SUPPORT_PCRE2_8, SUPPORT_PCRE2_16, or SUPPORT_PCRE2_32, depending on which
|
||||||
|
libraries you are going to build. You must set all that apply.
|
||||||
|
|
||||||
|
When you subsequently compile any of the PCRE2 modules, you must specify
|
||||||
|
-DHAVE_CONFIG_H to your compiler so that src/config.h is included in the
|
||||||
|
sources.
|
||||||
|
|
||||||
|
An alternative approach is not to edit src/config.h, but to use -D on the
|
||||||
|
compiler command line to make any changes that you need to the
|
||||||
|
configuration options. In this case -DHAVE_CONFIG_H must not be set.
|
||||||
|
|
||||||
|
NOTE: There have been occasions when the way in which certain parameters
|
||||||
|
in src/config.h are used has changed between releases. (In the
|
||||||
|
configure/make world, this is handled automatically.) When upgrading to a
|
||||||
|
new release, you are strongly advised to review src/config.h.generic
|
||||||
|
before re-using what you had previously.
|
||||||
|
|
||||||
|
Note also that the src/config.h.generic file is created from a config.h
|
||||||
|
that was generated by Autotools, which automatically includes settings of
|
||||||
|
a number of macros that are not actually used by PCRE2 (for example,
|
||||||
|
HAVE_DLFCN_H).
|
||||||
|
|
||||||
|
(2) Copy or rename the file src/pcre2.h.generic as src/pcre2.h.
|
||||||
|
|
||||||
|
(3) EITHER:
|
||||||
|
Copy or rename file src/pcre2_chartables.c.dist as
|
||||||
|
src/pcre2_chartables.c.
|
||||||
|
|
||||||
|
OR:
|
||||||
|
Compile src/pcre2_dftables.c as a stand-alone program (using
|
||||||
|
-DHAVE_CONFIG_H if you have set up src/config.h), and then run it with
|
||||||
|
the single argument "src/pcre2_chartables.c". This generates a set of
|
||||||
|
standard character tables and writes them to that file. The tables are
|
||||||
|
generated using the default C locale for your system. If you want to use
|
||||||
|
a locale that is specified by LC_xxx environment variables, add the -L
|
||||||
|
option to the pcre2_dftables command. You must use this method if you
|
||||||
|
are building on a system that uses EBCDIC code.
|
||||||
|
|
||||||
|
The tables in src/pcre2_chartables.c are defaults. The caller of PCRE2 can
|
||||||
|
specify alternative tables at run time.
|
||||||
|
|
||||||
|
(4) For a library that supports 8-bit code units in the character strings that
|
||||||
|
it processes, compile the following source files from the src directory,
|
||||||
|
setting -DPCRE2_CODE_UNIT_WIDTH=8 as a compiler option. Also set
|
||||||
|
-DHAVE_CONFIG_H if you have set up src/config.h with your configuration,
|
||||||
|
or else use other -D settings to change the configuration as required.
|
||||||
|
|
||||||
|
pcre2_auto_possess.c
|
||||||
|
pcre2_chkdint.c
|
||||||
|
pcre2_chartables.c
|
||||||
|
pcre2_compile.c
|
||||||
|
pcre2_compile_class.c
|
||||||
|
pcre2_config.c
|
||||||
|
pcre2_context.c
|
||||||
|
pcre2_convert.c
|
||||||
|
pcre2_dfa_match.c
|
||||||
|
pcre2_error.c
|
||||||
|
pcre2_extuni.c
|
||||||
|
pcre2_find_bracket.c
|
||||||
|
pcre2_jit_compile.c
|
||||||
|
pcre2_maketables.c
|
||||||
|
pcre2_match.c
|
||||||
|
pcre2_match_data.c
|
||||||
|
pcre2_newline.c
|
||||||
|
pcre2_ord2utf.c
|
||||||
|
pcre2_pattern_info.c
|
||||||
|
pcre2_script_run.c
|
||||||
|
pcre2_serialize.c
|
||||||
|
pcre2_string_utils.c
|
||||||
|
pcre2_study.c
|
||||||
|
pcre2_substitute.c
|
||||||
|
pcre2_substring.c
|
||||||
|
pcre2_tables.c
|
||||||
|
pcre2_ucd.c
|
||||||
|
pcre2_valid_utf.c
|
||||||
|
pcre2_xclass.c
|
||||||
|
|
||||||
|
Make sure that you include -I. in the compiler command (or equivalent for
|
||||||
|
an unusual compiler) so that all included PCRE2 header files are first
|
||||||
|
sought in the src directory under the current directory. Otherwise you run
|
||||||
|
the risk of picking up a previously-installed file from somewhere else.
|
||||||
|
|
||||||
|
Note that you must compile pcre2_jit_compile.c, even if you have not
|
||||||
|
defined SUPPORT_JIT in src/config.h, because when JIT support is not
|
||||||
|
configured, dummy functions are compiled. When JIT support IS configured,
|
||||||
|
pcre2_jit_compile.c #includes other files from the sljit dependency,
|
||||||
|
all of whose names begin with "sljit". It also #includes
|
||||||
|
src/pcre2_jit_match.c and src/pcre2_jit_misc.c, so you should not compile
|
||||||
|
those yourself.
|
||||||
|
|
||||||
|
Note also that the pcre2_fuzzsupport.c file contains special code that is
|
||||||
|
useful to those who want to run fuzzing tests on the PCRE2 library. Unless
|
||||||
|
you are doing that, you can ignore it.
|
||||||
|
|
||||||
|
(5) Now link all the compiled code into an object library in whichever form
|
||||||
|
your system keeps such libraries. This is the PCRE2 C 8-bit library,
|
||||||
|
typically called something like libpcre2-8. If your system has static and
|
||||||
|
shared libraries, you may have to do this once for each type.
|
||||||
|
|
||||||
|
(6) If you want to build a library that supports 16-bit or 32-bit code units,
|
||||||
|
set 16 or 32 as the value of -DPCRE2_CODE_UNIT_WIDTH when obeying step 4
|
||||||
|
above. If you want to build more than one PCRE2 library, repeat steps 4
|
||||||
|
and 5 as necessary.
|
||||||
|
|
||||||
|
(7) If you want to build the POSIX wrapper functions (which apply only to the
|
||||||
|
8-bit library), ensure that you have the src/pcre2posix.h file and then
|
||||||
|
compile src/pcre2posix.c. Link the result (on its own) as the pcre2posix
|
||||||
|
library. If targeting a DLL in Windows, make sure to include
|
||||||
|
-DPCRE2POSIX_SHARED with your compiler flags.
|
||||||
|
|
||||||
|
(8) The pcre2test program can be linked with any combination of the 8-bit,
|
||||||
|
16-bit and 32-bit libraries (depending on what you specfied in
|
||||||
|
src/config.h) . Compile src/pcre2test.c; don't forget -DHAVE_CONFIG_H if
|
||||||
|
necessary, but do NOT define PCRE2_CODE_UNIT_WIDTH. Then link with the
|
||||||
|
appropriate library/ies. If you compiled an 8-bit library, pcre2test also
|
||||||
|
needs the pcre2posix wrapper library.
|
||||||
|
|
||||||
|
(9) Run pcre2test on the testinput files in the testdata directory, and check
|
||||||
|
that the output matches the corresponding testoutput files. There are
|
||||||
|
comments about what each test does in the section entitled "Testing PCRE2"
|
||||||
|
in the README file. If you compiled more than one of the 8-bit, 16-bit and
|
||||||
|
32-bit libraries, you need to run pcre2test with the -16 option to do
|
||||||
|
16-bit tests and with the -32 option to do 32-bit tests.
|
||||||
|
|
||||||
|
Some tests are relevant only when certain build-time options are selected.
|
||||||
|
For example, test 4 is for Unicode support, and will not run if you have
|
||||||
|
built PCRE2 without it. See the comments at the start of each testinput
|
||||||
|
file. If you have a suitable Unix-like shell, the RunTest script will run
|
||||||
|
the appropriate tests for you. The command "RunTest list" will output a
|
||||||
|
list of all the tests.
|
||||||
|
|
||||||
|
Note that the supplied files are in Unix format, with just LF characters
|
||||||
|
as line terminators. You may need to edit them to change this if your
|
||||||
|
system uses a different convention.
|
||||||
|
|
||||||
|
(10) If you have built PCRE2 with SUPPORT_JIT, the JIT features can be tested
|
||||||
|
by running pcre2test with the -jit option. This is done automatically by
|
||||||
|
the RunTest script. You might also like to build and run the freestanding
|
||||||
|
JIT test program, src/pcre2_jit_test.c.
|
||||||
|
|
||||||
|
(11) The pcre2test program tests the POSIX wrapper library, but there is also a
|
||||||
|
freestanding test program in src/pcre2posix_test.c. It must be linked with
|
||||||
|
both the pcre2posix library and the 8-bit PCRE2 library.
|
||||||
|
|
||||||
|
(12) If you want to use the pcre2grep command, compile and link
|
||||||
|
src/pcre2grep.c; it uses only the 8-bit PCRE2 library (it does not need
|
||||||
|
the pcre2posix library). If you have built the PCRE2 library with JIT
|
||||||
|
support by defining SUPPORT_JIT in src/config.h, you can also define
|
||||||
|
SUPPORT_PCRE2GREP_JIT, which causes pcre2grep to make use of JIT (unless
|
||||||
|
it is run with --no-jit). If you define SUPPORT_PCRE2GREP_JIT without
|
||||||
|
defining SUPPORT_JIT, pcre2grep does not try to make use of JIT.
|
||||||
|
|
||||||
|
|
||||||
|
STACK SIZE IN WINDOWS ENVIRONMENTS
|
||||||
|
|
||||||
|
Prior to release 10.30 the default system stack size of 1MiB in some Windows
|
||||||
|
environments caused issues with some tests. This should no longer be the case
|
||||||
|
for 10.30 and later releases.
|
||||||
|
|
||||||
|
|
||||||
|
LINKING PROGRAMS IN WINDOWS ENVIRONMENTS
|
||||||
|
|
||||||
|
If you want to statically link a program against a PCRE2 library in the form of
|
||||||
|
a non-dll .a file, you must define PCRE2_STATIC before including src/pcre2.h.
|
||||||
|
|
||||||
|
|
||||||
|
CALLING CONVENTIONS IN WINDOWS ENVIRONMENTS
|
||||||
|
|
||||||
|
It is possible to compile programs to use different calling conventions using
|
||||||
|
MSVC. Search the web for "calling conventions" for more information. To make it
|
||||||
|
easier to change the calling convention for the exported functions in a
|
||||||
|
PCRE2 library, the macro PCRE2_CALL_CONVENTION is present in all the external
|
||||||
|
definitions. It can be set externally when compiling (e.g. in CFLAGS). If it is
|
||||||
|
not set, it defaults to empty; the default calling convention is then used
|
||||||
|
(which is what is wanted most of the time).
|
||||||
|
|
||||||
|
|
||||||
|
COMMENTS ABOUT WIN32 BUILDS (see also "BUILDING PCRE2 ON WINDOWS WITH CMAKE")
|
||||||
|
|
||||||
|
There are two ways of building PCRE2 using the "configure, make, make install"
|
||||||
|
paradigm on Windows systems: using MinGW or using Cygwin. These are not at all
|
||||||
|
the same thing; they are completely different from each other. There is also
|
||||||
|
support for building using CMake, which some users find a more straightforward
|
||||||
|
way of building PCRE2 under Windows.
|
||||||
|
|
||||||
|
The MinGW home page (http://www.mingw.org/) says this:
|
||||||
|
|
||||||
|
MinGW: A collection of freely available and freely distributable Windows
|
||||||
|
specific header files and import libraries combined with GNU toolsets that
|
||||||
|
allow one to produce native Windows programs that do not rely on any
|
||||||
|
3rd-party C runtime DLLs.
|
||||||
|
|
||||||
|
The Cygwin home page (http://www.cygwin.com/) says this:
|
||||||
|
|
||||||
|
Cygwin is a Linux-like environment for Windows. It consists of two parts:
|
||||||
|
|
||||||
|
. A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing
|
||||||
|
substantial Linux API functionality
|
||||||
|
|
||||||
|
. A collection of tools which provide Linux look and feel.
|
||||||
|
|
||||||
|
On both MinGW and Cygwin, PCRE2 should build correctly using:
|
||||||
|
|
||||||
|
./configure && make && make install
|
||||||
|
|
||||||
|
This should create two libraries called libpcre2-8 and libpcre2-posix. These
|
||||||
|
are independent libraries: when you link with libpcre2-posix you must also link
|
||||||
|
with libpcre2-8, which contains the basic functions.
|
||||||
|
|
||||||
|
Using Cygwin's compiler generates libraries and executables that depend on
|
||||||
|
cygwin1.dll. If a library that is generated this way is distributed,
|
||||||
|
cygwin1.dll has to be distributed as well. Since cygwin1.dll is under the GPL
|
||||||
|
licence, this forces not only PCRE2 to be under the GPL, but also the entire
|
||||||
|
application. A distributor who wants to keep their own code proprietary must
|
||||||
|
purchase an appropriate Cygwin licence.
|
||||||
|
|
||||||
|
MinGW has no such restrictions. The MinGW compiler generates a library or
|
||||||
|
executable that can run standalone on Windows without any third party dll or
|
||||||
|
licensing issues.
|
||||||
|
|
||||||
|
But there is more complication:
|
||||||
|
|
||||||
|
If a Cygwin user uses the -mno-cygwin Cygwin gcc flag, what that really does is
|
||||||
|
to tell Cygwin's gcc to use the MinGW gcc. Cygwin's gcc is only acting as a
|
||||||
|
front end to MinGW's gcc (if you install Cygwin's gcc, you get both Cygwin's
|
||||||
|
gcc and MinGW's gcc). So, a user can:
|
||||||
|
|
||||||
|
. Build native binaries by using MinGW or by getting Cygwin and using
|
||||||
|
-mno-cygwin.
|
||||||
|
|
||||||
|
. Build binaries that depend on cygwin1.dll by using Cygwin with the normal
|
||||||
|
compiler flags.
|
||||||
|
|
||||||
|
The test files that are supplied with PCRE2 are in UNIX format, with LF
|
||||||
|
characters as line terminators. Unless your PCRE2 library uses a default
|
||||||
|
newline option that includes LF as a valid newline, it may be necessary to
|
||||||
|
change the line terminators in the test files to get some of the tests to work.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 ON WINDOWS WITH CMAKE
|
||||||
|
|
||||||
|
CMake is an alternative configuration facility that can be used instead of
|
||||||
|
"configure". CMake creates project files (make files, solution files, etc.)
|
||||||
|
tailored to numerous development environments, including Visual Studio,
|
||||||
|
Borland, Msys, MinGW, NMake, and Unix. If possible, use short paths with no
|
||||||
|
spaces in the names for your CMake installation and your PCRE2 source and build
|
||||||
|
directories.
|
||||||
|
|
||||||
|
If you are using CMake and encounter errors, deleting the CMake cache and
|
||||||
|
restarting from a fresh build may fix the error. In the CMake GUI, the cache can
|
||||||
|
be deleted by selecting "File > Delete Cache"; or the folder "CMakeCache" can
|
||||||
|
be deleted.
|
||||||
|
|
||||||
|
1. Install the latest CMake version available from http://www.cmake.org/, and
|
||||||
|
ensure that cmake\bin is on your path.
|
||||||
|
|
||||||
|
2. Unzip (retaining folder structure) the PCRE2 source tree into a source
|
||||||
|
directory such as C:\pcre2. You should ensure your local date and time
|
||||||
|
is not earlier than the file dates in your source dir if the release is
|
||||||
|
very new.
|
||||||
|
|
||||||
|
3. Create a new, empty build directory, preferably a subdirectory of the
|
||||||
|
source dir. For example, C:\pcre2\pcre2-xx\build.
|
||||||
|
|
||||||
|
4. Run CMake.
|
||||||
|
|
||||||
|
- Using the CLI, simply run `cmake ..` inside the `build/` directory. You can
|
||||||
|
use the `ccmake` ncurses GUI to select and configure PCRE2 features.
|
||||||
|
|
||||||
|
- Using the CMake GUI:
|
||||||
|
|
||||||
|
a) Run cmake-gui from the Shell environment of your build tool, for
|
||||||
|
example, Msys for Msys/MinGW or Visual Studio Command Prompt for
|
||||||
|
VC/VC++.
|
||||||
|
|
||||||
|
b) Enter C:\pcre2\pcre2-xx and C:\pcre2\pcre2-xx\build for the source and
|
||||||
|
build directories, respectively.
|
||||||
|
|
||||||
|
c) Press the "Configure" button.
|
||||||
|
|
||||||
|
d) Select the particular IDE / build tool that you are using (Visual
|
||||||
|
Studio, MSYS makefiles, MinGW makefiles, etc.)
|
||||||
|
|
||||||
|
e) The GUI will then list several configuration options. This is where
|
||||||
|
you can disable Unicode support or select other PCRE2 optional features.
|
||||||
|
|
||||||
|
f) Press "Configure" again. The adjacent "Generate" button should now be
|
||||||
|
active.
|
||||||
|
|
||||||
|
g) Press "Generate".
|
||||||
|
|
||||||
|
5. The build directory should now contain a usable build system, be it a
|
||||||
|
solution file for Visual Studio, makefiles for MinGW, etc. Exit from
|
||||||
|
cmake-gui and use the generated build system with your compiler or IDE.
|
||||||
|
E.g., for MinGW you can run "make", or for Visual Studio, open the PCRE2
|
||||||
|
solution, select the desired configuration (Debug, or Release, etc.) and
|
||||||
|
build the ALL_BUILD project.
|
||||||
|
|
||||||
|
Regardless of build system used, `cmake --build .` will build it.
|
||||||
|
|
||||||
|
6. If during configuration with cmake-gui you've elected to build the test
|
||||||
|
programs, you can execute them by building the test project. E.g., for
|
||||||
|
MinGW: "make test"; for Visual Studio build the RUN_TESTS project. The
|
||||||
|
most recent build configuration is targeted by the tests. A summary of
|
||||||
|
test results is presented. Complete test output is subsequently
|
||||||
|
available for review in Testing\Temporary under your build dir.
|
||||||
|
|
||||||
|
Regardless of build system used, `ctest` will run the tests.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 ON WINDOWS WITH VISUAL STUDIO
|
||||||
|
|
||||||
|
The code currently cannot be compiled without an inttypes.h header, which is
|
||||||
|
available only with Visual Studio 2013 or newer. However, this portable and
|
||||||
|
permissively-licensed implementation of the stdint.h header could be used as an
|
||||||
|
alternative:
|
||||||
|
|
||||||
|
http://www.azillionmonkeys.com/qed/pstdint.h
|
||||||
|
|
||||||
|
Just rename it and drop it into the top level of the build tree.
|
||||||
|
|
||||||
|
|
||||||
|
TESTING WITH RUNTEST.BAT
|
||||||
|
|
||||||
|
If configured with CMake, building the test project ("make test" or building
|
||||||
|
ALL_TESTS in Visual Studio) creates (and runs) pcre2_test.bat (and depending
|
||||||
|
on your configuration options, possibly other test programs) in the build
|
||||||
|
directory. The pcre2_test.bat script runs RunTest.bat with correct source and
|
||||||
|
exe paths.
|
||||||
|
|
||||||
|
For manual testing with RunTest.bat, provided the build dir is a subdirectory
|
||||||
|
of the source directory: Open command shell window. Chdir to the location
|
||||||
|
of your pcre2test.exe and pcre2grep.exe programs. Call RunTest.bat with
|
||||||
|
"..\RunTest.Bat" or "..\..\RunTest.bat" as appropriate.
|
||||||
|
|
||||||
|
To run only a particular test with RunTest.Bat provide a test number argument.
|
||||||
|
|
||||||
|
Otherwise:
|
||||||
|
|
||||||
|
1. Copy RunTest.bat into the directory where pcre2test.exe and pcre2grep.exe
|
||||||
|
have been created.
|
||||||
|
|
||||||
|
2. Edit RunTest.bat to identify the full or relative location of
|
||||||
|
the pcre2 source (wherein which the testdata folder resides), e.g.:
|
||||||
|
|
||||||
|
set srcdir=C:\pcre2\pcre2-10.00
|
||||||
|
|
||||||
|
3. In a Windows command environment, chdir to the location of your bat and
|
||||||
|
exe programs.
|
||||||
|
|
||||||
|
4. Run RunTest.bat. Test outputs will automatically be compared to expected
|
||||||
|
results, and discrepancies will be identified in the console output.
|
||||||
|
|
||||||
|
To independently test the just-in-time compiler, run pcre2_jit_test.exe.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 ON NATIVE Z/OS AND Z/VM
|
||||||
|
|
||||||
|
z/OS and z/VM are operating systems for mainframe computers, produced by IBM.
|
||||||
|
The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and
|
||||||
|
applications can be supported through UNIX System Services, and in such an
|
||||||
|
environment it should be possible to build PCRE2 in the same way as in other
|
||||||
|
systems, with the EBCDIC related configuration settings, but it is not known if
|
||||||
|
anybody has tried this.
|
||||||
|
|
||||||
|
In native z/OS (without UNIX System Services) and in z/VM, special ports are
|
||||||
|
required. For details, please see file 939 on this web site:
|
||||||
|
|
||||||
|
http://www.cbttape.org
|
||||||
|
|
||||||
|
Everything in that location, source and executable, is in EBCDIC and native
|
||||||
|
z/OS file formats. The port provides an API for LE languages such as COBOL and
|
||||||
|
for the z/OS and z/VM versions of the Rexx languages.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 UNDER VMS
|
||||||
|
|
||||||
|
Alexey Chuphin has contributed some auxiliary files for building PCRE2 under
|
||||||
|
OpenVMS. They are in the "vms" directory in the distribution tarball. Please
|
||||||
|
read the file called vms/openvms_readme.txt. The pcre2test and pcre2grep
|
||||||
|
programs contain some VMS-specific code.
|
||||||
|
|
||||||
|
==============================
|
||||||
|
Last updated: 26 December 2024
|
||||||
|
==============================
|
||||||
|
|
||||||
970
3rd/pcre2/README
Normal file
970
3rd/pcre2/README
Normal file
@@ -0,0 +1,970 @@
|
|||||||
|
README file for PCRE2 (Perl-compatible regular expression library)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
PCRE2 is a re-working of the original PCRE1 library to provide an entirely new
|
||||||
|
API. Since its initial release in 2015, there has been further development of
|
||||||
|
the code and it now differs from PCRE1 in more than just the API. There are new
|
||||||
|
features, and the internals have been improved. The original PCRE1 library is
|
||||||
|
now obsolete and no longer maintained. The latest release of PCRE2 is available
|
||||||
|
in .tar.gz, tar.bz2, or .zip form from this GitHub repository:
|
||||||
|
|
||||||
|
https://github.com/PCRE2Project/pcre2/releases
|
||||||
|
|
||||||
|
There is a mailing list for discussion about the development of PCRE2 at
|
||||||
|
pcre2-dev@googlegroups.com. You can subscribe by sending an email to
|
||||||
|
pcre2-dev+subscribe@googlegroups.com.
|
||||||
|
|
||||||
|
You can access the archives and also subscribe or manage your subscription
|
||||||
|
here:
|
||||||
|
|
||||||
|
https://groups.google.com/g/pcre2-dev
|
||||||
|
|
||||||
|
Please read the NEWS file if you are upgrading from a previous release. The
|
||||||
|
contents of this README file are:
|
||||||
|
|
||||||
|
The PCRE2 APIs
|
||||||
|
Documentation for PCRE2
|
||||||
|
Building PCRE2 on non-Unix-like systems
|
||||||
|
Building PCRE2 without using autotools
|
||||||
|
Building PCRE2 using autotools
|
||||||
|
Retrieving configuration information
|
||||||
|
Shared libraries
|
||||||
|
Cross-compiling using autotools
|
||||||
|
Making new tarballs
|
||||||
|
Testing PCRE2
|
||||||
|
Character tables
|
||||||
|
File manifest
|
||||||
|
|
||||||
|
|
||||||
|
The PCRE2 APIs
|
||||||
|
--------------
|
||||||
|
|
||||||
|
PCRE2 is written in C, and it has its own API. There are three sets of
|
||||||
|
functions, one for the 8-bit library, which processes strings of bytes, one for
|
||||||
|
the 16-bit library, which processes strings of 16-bit values, and one for the
|
||||||
|
32-bit library, which processes strings of 32-bit values. Unlike PCRE1, there
|
||||||
|
are no C++ wrappers.
|
||||||
|
|
||||||
|
The distribution does contain a set of C wrapper functions for the 8-bit
|
||||||
|
library that are based on the POSIX regular expression API (see the pcre2posix
|
||||||
|
man page). These are built into a library called libpcre2-posix. Note that this
|
||||||
|
just provides a POSIX calling interface to PCRE2; the regular expressions
|
||||||
|
themselves still follow Perl syntax and semantics. The POSIX API is restricted,
|
||||||
|
and does not give full access to all of PCRE2's facilities.
|
||||||
|
|
||||||
|
The header file for the POSIX-style functions is called pcre2posix.h. The
|
||||||
|
official POSIX name is regex.h, but I did not want to risk possible problems
|
||||||
|
with existing files of that name by distributing it that way. To use PCRE2 with
|
||||||
|
an existing program that uses the POSIX API, pcre2posix.h will have to be
|
||||||
|
renamed or pointed at by a link (or the program modified, of course). See the
|
||||||
|
pcre2posix documentation for more details.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation for PCRE2
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
If you install PCRE2 in the normal way on a Unix-like system, you will end up
|
||||||
|
with a set of man pages whose names all start with "pcre2". The one that is
|
||||||
|
just called "pcre2" lists all the others. In addition to these man pages, the
|
||||||
|
PCRE2 documentation is supplied in two other forms:
|
||||||
|
|
||||||
|
1. There are files called doc/pcre2.txt, doc/pcre2grep.txt, and
|
||||||
|
doc/pcre2test.txt in the source distribution. The first of these is a
|
||||||
|
concatenation of the text forms of all the section 3 man pages except the
|
||||||
|
listing of pcre2demo.c and those that summarize individual functions. The
|
||||||
|
other two are the text forms of the section 1 man pages for the pcre2grep
|
||||||
|
and pcre2test commands. These text forms are provided for ease of scanning
|
||||||
|
with text editors or similar tools. They are installed in
|
||||||
|
<prefix>/share/doc/pcre2, where <prefix> is the installation prefix
|
||||||
|
(defaulting to /usr/local).
|
||||||
|
|
||||||
|
2. A set of files containing all the documentation in HTML form, hyperlinked
|
||||||
|
in various ways, and rooted in a file called index.html, is distributed in
|
||||||
|
doc/html and installed in <prefix>/share/doc/pcre2/html.
|
||||||
|
|
||||||
|
|
||||||
|
Building PCRE2 on non-Unix-like systems
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
For a non-Unix-like system, please read the file NON-AUTOTOOLS-BUILD, though if
|
||||||
|
your system supports the use of "configure" and "make" you may be able to build
|
||||||
|
PCRE2 using autotools in the same way as for many Unix-like systems.
|
||||||
|
|
||||||
|
PCRE2 can also be configured using CMake, which can be run in various ways
|
||||||
|
(command line, GUI, etc). This creates Makefiles, solution files, etc. The file
|
||||||
|
NON-AUTOTOOLS-BUILD has information about CMake.
|
||||||
|
|
||||||
|
PCRE2 has been compiled on many different operating systems. It should be
|
||||||
|
straightforward to build PCRE2 on any system that has a Standard C compiler and
|
||||||
|
library, because it uses only Standard C functions.
|
||||||
|
|
||||||
|
|
||||||
|
Building PCRE2 without using autotools
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
The use of autotools (in particular, libtool) is problematic in some
|
||||||
|
environments, even some that are Unix or Unix-like. See the NON-AUTOTOOLS-BUILD
|
||||||
|
file for ways of building PCRE2 without using autotools.
|
||||||
|
|
||||||
|
|
||||||
|
Building PCRE2 using autotools
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
The following instructions assume the use of the widely used "configure; make;
|
||||||
|
make install" (autotools) process.
|
||||||
|
|
||||||
|
If you have downloaded and unpacked a PCRE2 release tarball, run the
|
||||||
|
"configure" command from the PCRE2 directory, with your current directory set
|
||||||
|
to the directory where you want the files to be created. This command is a
|
||||||
|
standard GNU "autoconf" configuration script, for which generic instructions
|
||||||
|
are supplied in the file INSTALL.
|
||||||
|
|
||||||
|
The files in the GitHub repository do not contain "configure". If you have
|
||||||
|
downloaded the PCRE2 source files from GitHub, before you can run "configure"
|
||||||
|
you must run the shell script called autogen.sh. This runs a number of
|
||||||
|
autotools to create a "configure" script (you must of course have the autotools
|
||||||
|
commands installed in order to do this).
|
||||||
|
|
||||||
|
Most commonly, people build PCRE2 within its own distribution directory, and in
|
||||||
|
this case, on many systems, just running "./configure" is sufficient. However,
|
||||||
|
the usual methods of changing standard defaults are available. For example:
|
||||||
|
|
||||||
|
CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local
|
||||||
|
|
||||||
|
This command specifies that the C compiler should be run with the flags '-O2
|
||||||
|
-Wall' instead of the default, and that "make install" should install PCRE2
|
||||||
|
under /opt/local instead of the default /usr/local.
|
||||||
|
|
||||||
|
If you want to build in a different directory, just run "configure" with that
|
||||||
|
directory as current. For example, suppose you have unpacked the PCRE2 source
|
||||||
|
into /source/pcre2/pcre2-xxx, but you want to build it in
|
||||||
|
/build/pcre2/pcre2-xxx:
|
||||||
|
|
||||||
|
cd /build/pcre2/pcre2-xxx
|
||||||
|
/source/pcre2/pcre2-xxx/configure
|
||||||
|
|
||||||
|
PCRE2 is written in C and is normally compiled as a C library. However, it is
|
||||||
|
possible to build it as a C++ library, though the provided building apparatus
|
||||||
|
does not have any features to support this.
|
||||||
|
|
||||||
|
There are some optional features that can be included or omitted from the PCRE2
|
||||||
|
library. They are also documented in the pcre2build man page.
|
||||||
|
|
||||||
|
. By default, both shared and static libraries are built. You can change this
|
||||||
|
by adding one of these options to the "configure" command:
|
||||||
|
|
||||||
|
--disable-shared
|
||||||
|
--disable-static
|
||||||
|
|
||||||
|
Setting --disable-shared ensures that PCRE2 libraries are built as static
|
||||||
|
libraries. The binaries that are then created as part of the build process
|
||||||
|
(for example, pcre2test and pcre2grep) are linked statically with one or more
|
||||||
|
PCRE2 libraries, but may also be dynamically linked with other libraries such
|
||||||
|
as libc. If you want these binaries to be fully statically linked, you can
|
||||||
|
set LDFLAGS like this:
|
||||||
|
|
||||||
|
LDFLAGS=--static ./configure --disable-shared
|
||||||
|
|
||||||
|
Note the two hyphens in --static. Of course, this works only if static
|
||||||
|
versions of all the relevant libraries are available for linking. See also
|
||||||
|
"Shared libraries" below.
|
||||||
|
|
||||||
|
. By default, only the 8-bit library is built. If you add --enable-pcre2-16 to
|
||||||
|
the "configure" command, the 16-bit library is also built. If you add
|
||||||
|
--enable-pcre2-32 to the "configure" command, the 32-bit library is also
|
||||||
|
built. If you want only the 16-bit or 32-bit library, use --disable-pcre2-8
|
||||||
|
to disable building the 8-bit library.
|
||||||
|
|
||||||
|
. If you want to include support for just-in-time (JIT) compiling, which can
|
||||||
|
give large performance improvements on certain platforms, add --enable-jit to
|
||||||
|
the "configure" command. This support is available only for certain hardware
|
||||||
|
architectures. If you try to enable it on an unsupported architecture, there
|
||||||
|
will be a compile time error. If in doubt, use --enable-jit=auto, which
|
||||||
|
enables JIT only if the current hardware is supported.
|
||||||
|
|
||||||
|
. If you are enabling JIT under SELinux environment you may also want to add
|
||||||
|
--enable-jit-sealloc, which enables the use of an executable memory allocator
|
||||||
|
that is compatible with SELinux. Warning: this allocator is experimental!
|
||||||
|
It does not support fork() operation and may crash when no disk space is
|
||||||
|
available. This option has no effect if JIT is disabled.
|
||||||
|
|
||||||
|
. If you do not want to make use of the default support for UTF-8 Unicode
|
||||||
|
character strings in the 8-bit library, UTF-16 Unicode character strings in
|
||||||
|
the 16-bit library, or UTF-32 Unicode character strings in the 32-bit
|
||||||
|
library, you can add --disable-unicode to the "configure" command. This
|
||||||
|
reduces the size of the libraries. It is not possible to configure one
|
||||||
|
library with Unicode support, and another without, in the same configuration.
|
||||||
|
It is also not possible to use --enable-ebcdic (see below) with Unicode
|
||||||
|
support, so if this option is set, you must also use --disable-unicode.
|
||||||
|
|
||||||
|
When Unicode support is available, the use of a UTF encoding still has to be
|
||||||
|
enabled by setting the PCRE2_UTF option at run time or starting a pattern
|
||||||
|
with (*UTF). When PCRE2 is compiled with Unicode support, its input can only
|
||||||
|
either be ASCII or UTF-8/16/32, even when running on EBCDIC platforms.
|
||||||
|
|
||||||
|
As well as supporting UTF strings, Unicode support includes support for the
|
||||||
|
\P, \p, and \X sequences that recognize Unicode character properties.
|
||||||
|
However, only a subset of Unicode properties are supported; see the
|
||||||
|
pcre2pattern man page for details. Escape sequences such as \d and \w in
|
||||||
|
patterns do not by default make use of Unicode properties, but can be made to
|
||||||
|
do so by setting the PCRE2_UCP option or starting a pattern with (*UCP).
|
||||||
|
|
||||||
|
. You can build PCRE2 to recognize either CR or LF or the sequence CRLF, or any
|
||||||
|
of the preceding, or any of the Unicode newline sequences, or the NUL (zero)
|
||||||
|
character as indicating the end of a line. Whatever you specify at build time
|
||||||
|
is the default; the caller of PCRE2 can change the selection at run time. The
|
||||||
|
default newline indicator is a single LF character (the Unix standard). You
|
||||||
|
can specify the default newline indicator by adding --enable-newline-is-cr,
|
||||||
|
--enable-newline-is-lf, --enable-newline-is-crlf,
|
||||||
|
--enable-newline-is-anycrlf, --enable-newline-is-any, or
|
||||||
|
--enable-newline-is-nul to the "configure" command, respectively.
|
||||||
|
|
||||||
|
. By default, the sequence \R in a pattern matches any Unicode line ending
|
||||||
|
sequence. This is independent of the option specifying what PCRE2 considers
|
||||||
|
to be the end of a line (see above). However, the caller of PCRE2 can
|
||||||
|
restrict \R to match only CR, LF, or CRLF. You can make this the default by
|
||||||
|
adding --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R").
|
||||||
|
|
||||||
|
. In a pattern, the escape sequence \C matches a single code unit, even in a
|
||||||
|
UTF mode. This can be dangerous because it breaks up multi-code-unit
|
||||||
|
characters. You can build PCRE2 with the use of \C permanently locked out by
|
||||||
|
adding --enable-never-backslash-C (note the upper case C) to the "configure"
|
||||||
|
command. When \C is allowed by the library, individual applications can lock
|
||||||
|
it out by calling pcre2_compile() with the PCRE2_NEVER_BACKSLASH_C option.
|
||||||
|
|
||||||
|
. PCRE2 has a counter that limits the depth of nesting of parentheses in a
|
||||||
|
pattern. This limits the amount of system stack that a pattern uses when it
|
||||||
|
is compiled. The default is 250, but you can change it by setting, for
|
||||||
|
example,
|
||||||
|
|
||||||
|
--with-parens-nest-limit=500
|
||||||
|
|
||||||
|
. PCRE2 has a counter that can be set to limit the amount of computing resource
|
||||||
|
it uses when matching a pattern. If the limit is exceeded during a match, the
|
||||||
|
match fails. The default is ten million. You can change the default by
|
||||||
|
setting, for example,
|
||||||
|
|
||||||
|
--with-match-limit=500000
|
||||||
|
|
||||||
|
on the "configure" command. This is just the default; individual calls to
|
||||||
|
pcre2_match() or pcre2_dfa_match() can supply their own value. There is more
|
||||||
|
discussion in the pcre2api man page (search for pcre2_set_match_limit).
|
||||||
|
|
||||||
|
. There is a separate counter that limits the depth of nested backtracking
|
||||||
|
(pcre2_match()) or nested function calls (pcre2_dfa_match()) during a
|
||||||
|
matching process, which indirectly limits the amount of heap memory that is
|
||||||
|
used, and in the case of pcre2_dfa_match() the amount of stack as well. This
|
||||||
|
counter also has a default of ten million, which is essentially "unlimited".
|
||||||
|
You can change the default by setting, for example,
|
||||||
|
|
||||||
|
--with-match-limit-depth=5000
|
||||||
|
|
||||||
|
There is more discussion in the pcre2api man page (search for
|
||||||
|
pcre2_set_depth_limit).
|
||||||
|
|
||||||
|
. You can also set an explicit limit on the amount of heap memory used by
|
||||||
|
the pcre2_match() and pcre2_dfa_match() interpreters:
|
||||||
|
|
||||||
|
--with-heap-limit=500
|
||||||
|
|
||||||
|
The units are kibibytes (units of 1024 bytes). This limit does not apply when
|
||||||
|
the JIT optimization (which has its own memory control features) is used.
|
||||||
|
There is more discussion on the pcre2api man page (search for
|
||||||
|
pcre2_set_heap_limit).
|
||||||
|
|
||||||
|
. In the 8-bit library, the default maximum compiled pattern size is around
|
||||||
|
64 kibibytes. You can increase this by adding --with-link-size=3 to the
|
||||||
|
"configure" command. PCRE2 then uses three bytes instead of two for offsets
|
||||||
|
to different parts of the compiled pattern. In the 16-bit library,
|
||||||
|
--with-link-size=3 is the same as --with-link-size=4, which (in both
|
||||||
|
libraries) uses four-byte offsets. Increasing the internal link size reduces
|
||||||
|
performance in the 8-bit and 16-bit libraries. In the 32-bit library, the
|
||||||
|
link size setting is ignored, as 4-byte offsets are always used.
|
||||||
|
|
||||||
|
. Lookbehind assertions in which one or more branches can match a variable
|
||||||
|
number of characters are supported only if there is a maximum matching length
|
||||||
|
for each top-level branch. There is a limit to this maximum that defaults to
|
||||||
|
255 characters. You can alter this default by a setting such as
|
||||||
|
|
||||||
|
--with-max-varlookbehind=100
|
||||||
|
|
||||||
|
The limit can be changed at runtime by calling pcre2_set_max_varlookbehind().
|
||||||
|
Lookbehind assertions in which every branch matches a fixed number of
|
||||||
|
characters (not necessarily all the same) are not constrained by this limit.
|
||||||
|
|
||||||
|
. For speed, PCRE2 uses four tables for manipulating and identifying characters
|
||||||
|
whose code point values are less than 256. By default, it uses a set of
|
||||||
|
tables for ASCII encoding that is part of the distribution. If you specify
|
||||||
|
|
||||||
|
--enable-rebuild-chartables
|
||||||
|
|
||||||
|
a program called pcre2_dftables is compiled and run in the default C locale
|
||||||
|
when you obey "make". It builds a source file called pcre2_chartables.c. If
|
||||||
|
you do not specify this option, pcre2_chartables.c is created as a copy of
|
||||||
|
pcre2_chartables.c.dist. See "Character tables" below for further
|
||||||
|
information.
|
||||||
|
|
||||||
|
. It is possible to compile PCRE2 for use on systems that use EBCDIC as their
|
||||||
|
character code (as opposed to ASCII/Unicode) by specifying
|
||||||
|
|
||||||
|
--enable-ebcdic --disable-unicode
|
||||||
|
|
||||||
|
This automatically implies --enable-rebuild-chartables (see above). However,
|
||||||
|
when PCRE2 is built this way, it always operates in EBCDIC. It cannot support
|
||||||
|
both EBCDIC and UTF-8/16/32. There is a second option, --enable-ebcdic-nl25,
|
||||||
|
which specifies that the code value for the EBCDIC NL character is 0x25
|
||||||
|
instead of the default 0x15.
|
||||||
|
|
||||||
|
. If you specify --enable-debug, additional debugging code is included in the
|
||||||
|
build. This option is intended for use by the PCRE2 maintainers.
|
||||||
|
|
||||||
|
. In environments where valgrind is installed, if you specify
|
||||||
|
|
||||||
|
--enable-valgrind
|
||||||
|
|
||||||
|
PCRE2 will use valgrind annotations to mark certain memory regions as
|
||||||
|
unaddressable. This allows it to detect invalid memory accesses, and is
|
||||||
|
mostly useful for debugging PCRE2 itself.
|
||||||
|
|
||||||
|
. In environments where the gcc compiler is used and lcov is installed, if you
|
||||||
|
specify
|
||||||
|
|
||||||
|
--enable-coverage
|
||||||
|
|
||||||
|
the build process implements a code coverage report for the test suite. The
|
||||||
|
report is generated by running "make coverage". If ccache is installed on
|
||||||
|
your system, it must be disabled when building PCRE2 for coverage reporting.
|
||||||
|
You can do this by setting the environment variable CCACHE_DISABLE=1 before
|
||||||
|
running "make" to build PCRE2. There is more information about coverage
|
||||||
|
reporting in the "pcre2build" documentation.
|
||||||
|
|
||||||
|
. When JIT support is enabled, pcre2grep automatically makes use of it, unless
|
||||||
|
you add --disable-pcre2grep-jit to the "configure" command.
|
||||||
|
|
||||||
|
. There is support for calling external programs during matching in the
|
||||||
|
pcre2grep command, using PCRE2's callout facility with string arguments. This
|
||||||
|
support can be disabled by adding --disable-pcre2grep-callout to the
|
||||||
|
"configure" command. There are two kinds of callout: one that generates
|
||||||
|
output from inbuilt code, and another that calls an external program. The
|
||||||
|
latter has special support for Windows and VMS; otherwise it assumes the
|
||||||
|
existence of the fork() function. This facility can be disabled by adding
|
||||||
|
--disable-pcre2grep-callout-fork to the "configure" command.
|
||||||
|
|
||||||
|
. The pcre2grep program currently supports only 8-bit data files, and so
|
||||||
|
requires the 8-bit PCRE2 library. It is possible to compile pcre2grep to use
|
||||||
|
libz and/or libbz2, in order to read .gz and .bz2 files (respectively), by
|
||||||
|
specifying one or both of
|
||||||
|
|
||||||
|
--enable-pcre2grep-libz
|
||||||
|
--enable-pcre2grep-libbz2
|
||||||
|
|
||||||
|
Of course, the relevant libraries must be installed on your system.
|
||||||
|
|
||||||
|
. The default starting size (in bytes) of the internal buffer used by pcre2grep
|
||||||
|
can be set by, for example:
|
||||||
|
|
||||||
|
--with-pcre2grep-bufsize=51200
|
||||||
|
|
||||||
|
The value must be a plain integer. The default is 20480. The amount of memory
|
||||||
|
used by pcre2grep is actually three times this number, to allow for "before"
|
||||||
|
and "after" lines. If very long lines are encountered, the buffer is
|
||||||
|
automatically enlarged, up to a fixed maximum size.
|
||||||
|
|
||||||
|
. The default maximum size of pcre2grep's internal buffer can be set by, for
|
||||||
|
example:
|
||||||
|
|
||||||
|
--with-pcre2grep-max-bufsize=2097152
|
||||||
|
|
||||||
|
The default is either 1048576 or the value of --with-pcre2grep-bufsize,
|
||||||
|
whichever is the larger.
|
||||||
|
|
||||||
|
. It is possible to compile pcre2test so that it links with the libreadline
|
||||||
|
or libedit libraries, by specifying, respectively,
|
||||||
|
|
||||||
|
--enable-pcre2test-libreadline or --enable-pcre2test-libedit
|
||||||
|
|
||||||
|
If this is done, when pcre2test's input is from a terminal, it reads it using
|
||||||
|
the readline() function. This provides line-editing and history facilities.
|
||||||
|
Note that libreadline is GPL-licensed, so if you distribute a binary of
|
||||||
|
pcre2test linked in this way, there may be licensing issues. These can be
|
||||||
|
avoided by linking with libedit (which has a BSD licence) instead.
|
||||||
|
|
||||||
|
Enabling libreadline causes the -lreadline option to be added to the
|
||||||
|
pcre2test build. In many operating environments with a system-installed
|
||||||
|
readline library this is sufficient. However, in some environments (e.g. if
|
||||||
|
an unmodified distribution version of readline is in use), it may be
|
||||||
|
necessary to specify something like LIBS="-lncurses" as well. This is
|
||||||
|
because, to quote the readline INSTALL, "Readline uses the termcap functions,
|
||||||
|
but does not link with the termcap or curses library itself, allowing
|
||||||
|
applications which link with readline the option to choose an appropriate
|
||||||
|
library." If you get error messages about missing functions tgetstr, tgetent,
|
||||||
|
tputs, tgetflag, or tgoto, this is the problem, and linking with the ncurses
|
||||||
|
library should fix it.
|
||||||
|
|
||||||
|
. The C99 standard defines formatting modifiers z and t for size_t and
|
||||||
|
ptrdiff_t values, respectively. By default, PCRE2 uses these modifiers in
|
||||||
|
environments other than Microsoft Visual Studio versions earlier than 2013
|
||||||
|
when __STDC_VERSION__ is defined and has a value greater than or equal to
|
||||||
|
199901L (indicating C99). However, there is at least one environment that
|
||||||
|
claims to be C99 but does not support these modifiers. If
|
||||||
|
--disable-percent-zt is specified, no use is made of the z or t modifiers.
|
||||||
|
Instead of %td or %zu, %lu is used, with a cast for size_t values.
|
||||||
|
|
||||||
|
. There is a special option called --enable-fuzz-support for use by people who
|
||||||
|
want to run fuzzing tests on PCRE2. If set, it causes an extra library
|
||||||
|
called libpcre2-fuzzsupport.a to be built, but not installed. This contains
|
||||||
|
a single function called LLVMFuzzerTestOneInput() whose arguments are a
|
||||||
|
pointer to a string and the length of the string. When called, this function
|
||||||
|
tries to compile the string as a pattern, and if that succeeds, to match
|
||||||
|
it. This is done both with no options and with some random options bits that
|
||||||
|
are generated from the string. Setting --enable-fuzz-support also causes an
|
||||||
|
executable called pcre2fuzzcheck-{8,16,32} to be created. This is normally
|
||||||
|
run under valgrind or used when PCRE2 is compiled with address sanitizing
|
||||||
|
enabled. It calls the fuzzing function and outputs information about what it
|
||||||
|
is doing. The input strings are specified by arguments: if an argument
|
||||||
|
starts with "=" the rest of it is a literal input string. Otherwise, it is
|
||||||
|
assumed to be a file name, and the contents of the file are the test string.
|
||||||
|
|
||||||
|
. Releases before 10.30 could be compiled with --disable-stack-for-recursion,
|
||||||
|
which caused pcre2_match() to use individual blocks on the heap for
|
||||||
|
backtracking instead of recursive function calls (which use the stack). This
|
||||||
|
is now obsolete because pcre2_match() was refactored always to use the heap
|
||||||
|
(in a much more efficient way than before). This option is retained for
|
||||||
|
backwards compatibility, but has no effect other than to output a warning.
|
||||||
|
|
||||||
|
The "configure" script builds the following files for the basic C library:
|
||||||
|
|
||||||
|
. Makefile the makefile that builds the library
|
||||||
|
. src/config.h build-time configuration options for the library
|
||||||
|
. src/pcre2.h the public PCRE2 header file
|
||||||
|
. pcre2-config script that shows the building settings such as CFLAGS
|
||||||
|
that were set for "configure"
|
||||||
|
. libpcre2-8.pc )
|
||||||
|
. libpcre2-16.pc ) data for the pkg-config command
|
||||||
|
. libpcre2-32.pc )
|
||||||
|
. libpcre2-posix.pc )
|
||||||
|
. libtool script that builds shared and/or static libraries
|
||||||
|
|
||||||
|
Versions of config.h and pcre2.h are distributed in the src directory of PCRE2
|
||||||
|
tarballs under the names config.h.generic and pcre2.h.generic. These are
|
||||||
|
provided for those who have to build PCRE2 without using "configure" or CMake.
|
||||||
|
If you use "configure" or CMake, the .generic versions are not used.
|
||||||
|
|
||||||
|
The "configure" script also creates config.status, which is an executable
|
||||||
|
script that can be run to recreate the configuration, and config.log, which
|
||||||
|
contains compiler output from tests that "configure" runs.
|
||||||
|
|
||||||
|
Once "configure" has run, you can run "make". This builds whichever of the
|
||||||
|
libraries libpcre2-8, libpcre2-16 and libpcre2-32 are configured, and a test
|
||||||
|
program called pcre2test. If you enabled JIT support with --enable-jit, another
|
||||||
|
test program called pcre2_jit_test is built as well. If the 8-bit library is
|
||||||
|
built, libpcre2-posix, pcre2posix_test, and the pcre2grep command are also
|
||||||
|
built. Running "make" with the -j option may speed up compilation on
|
||||||
|
multiprocessor systems.
|
||||||
|
|
||||||
|
The command "make check" runs all the appropriate tests. Details of the PCRE2
|
||||||
|
tests are given below in a separate section of this document. The -j option of
|
||||||
|
"make" can also be used when running the tests.
|
||||||
|
|
||||||
|
You can use "make install" to install PCRE2 into live directories on your
|
||||||
|
system. The following are installed (file names are all relative to the
|
||||||
|
<prefix> that is set when "configure" is run):
|
||||||
|
|
||||||
|
Commands (bin):
|
||||||
|
pcre2test
|
||||||
|
pcre2grep (if 8-bit support is enabled)
|
||||||
|
pcre2-config
|
||||||
|
|
||||||
|
Libraries (lib):
|
||||||
|
libpcre2-8 (if 8-bit support is enabled)
|
||||||
|
libpcre2-16 (if 16-bit support is enabled)
|
||||||
|
libpcre2-32 (if 32-bit support is enabled)
|
||||||
|
libpcre2-posix (if 8-bit support is enabled)
|
||||||
|
|
||||||
|
Configuration information (lib/pkgconfig):
|
||||||
|
libpcre2-8.pc
|
||||||
|
libpcre2-16.pc
|
||||||
|
libpcre2-32.pc
|
||||||
|
libpcre2-posix.pc
|
||||||
|
|
||||||
|
Header files (include):
|
||||||
|
pcre2.h
|
||||||
|
pcre2posix.h
|
||||||
|
|
||||||
|
Man pages (share/man/man{1,3}):
|
||||||
|
pcre2grep.1
|
||||||
|
pcre2test.1
|
||||||
|
pcre2-config.1
|
||||||
|
pcre2.3
|
||||||
|
pcre2*.3 (lots more pages, all starting "pcre2")
|
||||||
|
|
||||||
|
HTML documentation (share/doc/pcre2/html):
|
||||||
|
index.html
|
||||||
|
*.html (lots more pages, hyperlinked from index.html)
|
||||||
|
|
||||||
|
Text file documentation (share/doc/pcre2):
|
||||||
|
AUTHORS
|
||||||
|
COPYING
|
||||||
|
ChangeLog
|
||||||
|
LICENCE
|
||||||
|
NEWS
|
||||||
|
README
|
||||||
|
SECURITY
|
||||||
|
pcre2.txt (a concatenation of the man(3) pages)
|
||||||
|
pcre2test.txt the pcre2test man page
|
||||||
|
pcre2grep.txt the pcre2grep man page
|
||||||
|
pcre2-config.txt the pcre2-config man page
|
||||||
|
|
||||||
|
If you want to remove PCRE2 from your system, you can run "make uninstall".
|
||||||
|
This removes all the files that "make install" installed. However, it does not
|
||||||
|
remove any directories, because these are often shared with other programs.
|
||||||
|
|
||||||
|
|
||||||
|
Retrieving configuration information
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Running "make install" installs the command pcre2-config, which can be used to
|
||||||
|
recall information about the PCRE2 configuration and installation. For example:
|
||||||
|
|
||||||
|
pcre2-config --version
|
||||||
|
|
||||||
|
prints the version number, and
|
||||||
|
|
||||||
|
pcre2-config --libs8
|
||||||
|
|
||||||
|
outputs information about where the 8-bit library is installed. This command
|
||||||
|
can be included in makefiles for programs that use PCRE2, saving the programmer
|
||||||
|
from having to remember too many details. Run pcre2-config with no arguments to
|
||||||
|
obtain a list of possible arguments.
|
||||||
|
|
||||||
|
The pkg-config command is another system for saving and retrieving information
|
||||||
|
about installed libraries. Instead of separate commands for each library, a
|
||||||
|
single command is used. For example:
|
||||||
|
|
||||||
|
pkg-config --libs libpcre2-16
|
||||||
|
|
||||||
|
The data is held in *.pc files that are installed in a directory called
|
||||||
|
<prefix>/lib/pkgconfig.
|
||||||
|
|
||||||
|
|
||||||
|
Shared libraries
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The default distribution builds PCRE2 as shared libraries and static libraries,
|
||||||
|
as long as the operating system supports shared libraries. Shared library
|
||||||
|
support relies on the "libtool" script which is built as part of the
|
||||||
|
"configure" process.
|
||||||
|
|
||||||
|
The libtool script is used to compile and link both shared and static
|
||||||
|
libraries. They are placed in a subdirectory called .libs when they are newly
|
||||||
|
built. The programs pcre2test and pcre2grep are built to use these uninstalled
|
||||||
|
libraries (by means of wrapper scripts in the case of shared libraries). When
|
||||||
|
you use "make install" to install shared libraries, pcre2grep and pcre2test are
|
||||||
|
automatically re-built to use the newly installed shared libraries before being
|
||||||
|
installed themselves. However, the versions left in the build directory still
|
||||||
|
use the uninstalled libraries.
|
||||||
|
|
||||||
|
To build PCRE2 using static libraries only you must use --disable-shared when
|
||||||
|
configuring it. For example:
|
||||||
|
|
||||||
|
./configure --prefix=/usr/gnu --disable-shared
|
||||||
|
|
||||||
|
Then run "make" in the usual way. Similarly, you can use --disable-static to
|
||||||
|
build only shared libraries. Note, however, that when you build only static
|
||||||
|
libraries, binary programs such as pcre2test and pcre2grep may still be
|
||||||
|
dynamically linked with other libraries (for example, libc) unless you set
|
||||||
|
LDFLAGS to --static when running "configure".
|
||||||
|
|
||||||
|
|
||||||
|
Cross-compiling using autotools
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
You can specify CC and CFLAGS in the normal way to the "configure" command, in
|
||||||
|
order to cross-compile PCRE2 for some other host. However, you should NOT
|
||||||
|
specify --enable-rebuild-chartables, because if you do, the pcre2_dftables.c
|
||||||
|
source file is compiled and run on the local host, in order to generate the
|
||||||
|
inbuilt character tables (the pcre2_chartables.c file). This will probably not
|
||||||
|
work, because pcre2_dftables.c needs to be compiled with the local compiler,
|
||||||
|
not the cross compiler.
|
||||||
|
|
||||||
|
When --enable-rebuild-chartables is not specified, pcre2_chartables.c is
|
||||||
|
created by making a copy of pcre2_chartables.c.dist, which is a default set of
|
||||||
|
tables that assumes ASCII code. Cross-compiling with the default tables should
|
||||||
|
not be a problem.
|
||||||
|
|
||||||
|
If you need to modify the character tables when cross-compiling, you should
|
||||||
|
move pcre2_chartables.c.dist out of the way, then compile pcre2_dftables.c by
|
||||||
|
hand and run it on the local host to make a new version of
|
||||||
|
pcre2_chartables.c.dist. See the pcre2build section "Creating character tables
|
||||||
|
at build time" for more details.
|
||||||
|
|
||||||
|
|
||||||
|
Making new tarballs
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The command "make dist" creates three PCRE2 tarballs, in tar.gz, tar.bz2, and
|
||||||
|
zip formats. The command "make distcheck" does the same, but then does a trial
|
||||||
|
build of the new distribution to ensure that it works.
|
||||||
|
|
||||||
|
If you have modified any of the man page sources in the doc directory, you
|
||||||
|
should first run the maint/PrepareRelease script before making a distribution.
|
||||||
|
This script creates the .txt and HTML forms of the documentation from the man
|
||||||
|
pages.
|
||||||
|
|
||||||
|
|
||||||
|
Testing PCRE2
|
||||||
|
-------------
|
||||||
|
|
||||||
|
To test the basic PCRE2 library on a Unix-like system, run the RunTest script.
|
||||||
|
There is another script called RunGrepTest that tests the pcre2grep command.
|
||||||
|
When the 8-bit library is built, a test program for the POSIX wrapper, called
|
||||||
|
pcre2posix_test, is compiled, and when JIT support is enabled, a test program
|
||||||
|
called pcre2_jit_test is built. The scripts and the program tests are all run
|
||||||
|
when you obey "make check". For other environments, see the instructions in
|
||||||
|
NON-AUTOTOOLS-BUILD.
|
||||||
|
|
||||||
|
The RunTest script runs the pcre2test test program (which is documented in its
|
||||||
|
own man page) on each of the relevant testinput files in the testdata
|
||||||
|
directory, and compares the output with the contents of the corresponding
|
||||||
|
testoutput files. RunTest uses a file called testtry to hold the main output
|
||||||
|
from pcre2test. Other files whose names begin with "test" are used as working
|
||||||
|
files in some tests.
|
||||||
|
|
||||||
|
Some tests are relevant only when certain build-time options were selected. For
|
||||||
|
example, the tests for UTF-8/16/32 features are run only when Unicode support
|
||||||
|
is available. RunTest outputs a comment when it skips a test.
|
||||||
|
|
||||||
|
Many (but not all) of the tests that are not skipped are run twice if JIT
|
||||||
|
support is available. On the second run, JIT compilation is forced. This
|
||||||
|
testing can be suppressed by putting "-nojit" on the RunTest command line.
|
||||||
|
|
||||||
|
The entire set of tests is run once for each of the 8-bit, 16-bit and 32-bit
|
||||||
|
libraries that are enabled. If you want to run just one set of tests, call
|
||||||
|
RunTest with either the -8, -16 or -32 option.
|
||||||
|
|
||||||
|
If valgrind is installed, you can run the tests under it by putting "-valgrind"
|
||||||
|
on the RunTest command line. To run pcre2test on just one or more specific test
|
||||||
|
files, give their numbers as arguments to RunTest, for example:
|
||||||
|
|
||||||
|
RunTest 2 7 11
|
||||||
|
|
||||||
|
You can also specify ranges of tests such as 3-6 or 3- (meaning 3 to the
|
||||||
|
end), or a number preceded by ~ to exclude a test. For example:
|
||||||
|
|
||||||
|
Runtest 3-15 ~10
|
||||||
|
|
||||||
|
This runs tests 3 to 15, excluding test 10, and just ~13 runs all the tests
|
||||||
|
except test 13. Whatever order the arguments are in, the tests are always run
|
||||||
|
in numerical order.
|
||||||
|
|
||||||
|
You can also call RunTest with the single argument "list" to cause it to output
|
||||||
|
a list of tests.
|
||||||
|
|
||||||
|
The test sequence starts with "test 0", which is a special test that has no
|
||||||
|
input file, and whose output is not checked. This is because it will be
|
||||||
|
different on different hardware and with different configurations. The test
|
||||||
|
exists in order to exercise some of pcre2test's code that would not otherwise
|
||||||
|
be run.
|
||||||
|
|
||||||
|
Tests 1 and 2 can always be run, as they expect only plain text strings (not
|
||||||
|
UTF) and make no use of Unicode properties. The first test file can be fed
|
||||||
|
directly into the perltest.sh script to check that Perl gives the same results.
|
||||||
|
The only difference you should see is in the first few lines, where the Perl
|
||||||
|
version is given instead of the PCRE2 version. The second set of tests check
|
||||||
|
auxiliary functions, error detection, and run-time flags that are specific to
|
||||||
|
PCRE2. It also uses the debugging flags to check some of the internals of
|
||||||
|
pcre2_compile().
|
||||||
|
|
||||||
|
If you build PCRE2 with a locale setting that is not the standard C locale, the
|
||||||
|
character tables may be different (see next paragraph). In some cases, this may
|
||||||
|
cause failures in the second set of tests. For example, in a locale where the
|
||||||
|
isprint() function yields TRUE for characters in the range 128-255, the use of
|
||||||
|
[:isascii:] inside a character class defines a different set of characters, and
|
||||||
|
this shows up in this test as a difference in the compiled code, which is being
|
||||||
|
listed for checking. For example, where the comparison test output contains
|
||||||
|
[\x00-\x7f] the test might contain [\x00-\xff], and similarly in some other
|
||||||
|
cases. This is not a bug in PCRE2.
|
||||||
|
|
||||||
|
Test 3 checks pcre2_maketables(), the facility for building a set of character
|
||||||
|
tables for a specific locale and using them instead of the default tables. The
|
||||||
|
script uses the "locale" command to check for the availability of the "fr_FR",
|
||||||
|
"french", or "fr" locale, and uses the first one that it finds. If the "locale"
|
||||||
|
command fails, or if its output doesn't include "fr_FR", "french", or "fr" in
|
||||||
|
the list of available locales, the third test cannot be run, and a comment is
|
||||||
|
output to say why. If running this test produces an error like this:
|
||||||
|
|
||||||
|
** Failed to set locale "fr_FR"
|
||||||
|
|
||||||
|
it means that the given locale is not available on your system, despite being
|
||||||
|
listed by "locale". This does not mean that PCRE2 is broken. There are three
|
||||||
|
alternative output files for the third test, because three different versions
|
||||||
|
of the French locale have been encountered. The test passes if its output
|
||||||
|
matches any one of them.
|
||||||
|
|
||||||
|
Tests 4 and 5 check UTF and Unicode property support, test 4 being compatible
|
||||||
|
with the perltest.sh script, and test 5 checking PCRE2-specific things.
|
||||||
|
|
||||||
|
Tests 6 and 7 check the pcre2_dfa_match() alternative matching function, in
|
||||||
|
non-UTF mode and UTF-mode with Unicode property support, respectively.
|
||||||
|
|
||||||
|
Test 8 checks some internal offsets and code size features, but it is run only
|
||||||
|
when Unicode support is enabled. The output is different in 8-bit, 16-bit, and
|
||||||
|
32-bit modes and for different link sizes, so there are different output files
|
||||||
|
for each mode and link size.
|
||||||
|
|
||||||
|
Tests 9 and 10 are run only in 8-bit mode, and tests 11 and 12 are run only in
|
||||||
|
16-bit and 32-bit modes. These are tests that generate different output in
|
||||||
|
8-bit mode. Each pair are for general cases and Unicode support, respectively.
|
||||||
|
|
||||||
|
Test 13 checks the handling of non-UTF characters greater than 255 by
|
||||||
|
pcre2_dfa_match() in 16-bit and 32-bit modes.
|
||||||
|
|
||||||
|
Test 14 contains some special UTF and UCP tests that give different output for
|
||||||
|
different code unit widths.
|
||||||
|
|
||||||
|
Test 15 contains a number of tests that must not be run with JIT. They check,
|
||||||
|
among other non-JIT things, the match-limiting features of the interpretive
|
||||||
|
matcher.
|
||||||
|
|
||||||
|
Test 16 is run only when JIT support is not available. It checks that an
|
||||||
|
attempt to use JIT has the expected behaviour.
|
||||||
|
|
||||||
|
Test 17 is run only when JIT support is available. It checks JIT complete and
|
||||||
|
partial modes, match-limiting under JIT, and other JIT-specific features.
|
||||||
|
|
||||||
|
Tests 18 and 19 are run only in 8-bit mode. They check the POSIX interface to
|
||||||
|
the 8-bit library, without and with Unicode support, respectively.
|
||||||
|
|
||||||
|
Test 20 checks the serialization functions by writing a set of compiled
|
||||||
|
patterns to a file, and then reloading and checking them.
|
||||||
|
|
||||||
|
Tests 21 and 22 test \C support when the use of \C is not locked out, without
|
||||||
|
and with UTF support, respectively. Test 23 tests \C when it is locked out.
|
||||||
|
|
||||||
|
Tests 24 and 25 test the experimental pattern conversion functions, without and
|
||||||
|
with UTF support, respectively.
|
||||||
|
|
||||||
|
Test 26 checks Unicode property support using tests that are generated
|
||||||
|
automatically from the Unicode data tables.
|
||||||
|
|
||||||
|
|
||||||
|
Character tables
|
||||||
|
----------------
|
||||||
|
|
||||||
|
For speed, PCRE2 uses four tables for manipulating and identifying characters
|
||||||
|
whose code point values are less than 256. By default, a set of tables that is
|
||||||
|
built into the library is used. The pcre2_maketables() function can be called
|
||||||
|
by an application to create a new set of tables in the current locale. This are
|
||||||
|
passed to PCRE2 by calling pcre2_set_character_tables() to put a pointer into a
|
||||||
|
compile context.
|
||||||
|
|
||||||
|
The source file called pcre2_chartables.c contains the default set of tables.
|
||||||
|
By default, this is created as a copy of pcre2_chartables.c.dist, which
|
||||||
|
contains tables for ASCII coding. However, if --enable-rebuild-chartables is
|
||||||
|
specified for ./configure, a new version of pcre2_chartables.c is built by the
|
||||||
|
program pcre2_dftables (compiled from pcre2_dftables.c), which uses the ANSI C
|
||||||
|
character handling functions such as isalnum(), isalpha(), isupper(),
|
||||||
|
islower(), etc. to build the table sources. This means that the default C
|
||||||
|
locale that is set for your system will control the contents of these default
|
||||||
|
tables. You can change the default tables by editing pcre2_chartables.c and
|
||||||
|
then re-building PCRE2. If you do this, you should take care to ensure that the
|
||||||
|
file does not get automatically re-generated. The best way to do this is to
|
||||||
|
move pcre2_chartables.c.dist out of the way and replace it with your customized
|
||||||
|
tables.
|
||||||
|
|
||||||
|
When the pcre2_dftables program is run as a result of specifying
|
||||||
|
--enable-rebuild-chartables, it uses the default C locale that is set on your
|
||||||
|
system. It does not pay attention to the LC_xxx environment variables. In other
|
||||||
|
words, it uses the system's default locale rather than whatever the compiling
|
||||||
|
user happens to have set. If you really do want to build a source set of
|
||||||
|
character tables in a locale that is specified by the LC_xxx variables, you can
|
||||||
|
run the pcre2_dftables program by hand with the -L option. For example:
|
||||||
|
|
||||||
|
./pcre2_dftables -L pcre2_chartables.c.special
|
||||||
|
|
||||||
|
The second argument names the file where the source code for the tables is
|
||||||
|
written. The first two 256-byte tables provide lower casing and case flipping
|
||||||
|
functions, respectively. The next table consists of a number of 32-byte bit
|
||||||
|
maps which identify certain character classes such as digits, "word"
|
||||||
|
characters, white space, etc. These are used when building 32-byte bit maps
|
||||||
|
that represent character classes for code points less than 256. The final
|
||||||
|
256-byte table has bits indicating various character types, as follows:
|
||||||
|
|
||||||
|
1 white space character
|
||||||
|
2 letter
|
||||||
|
4 lower case letter
|
||||||
|
8 decimal digit
|
||||||
|
16 alphanumeric or '_'
|
||||||
|
|
||||||
|
You can also specify -b (with or without -L) when running pcre2_dftables. This
|
||||||
|
causes the tables to be written in binary instead of as source code. A set of
|
||||||
|
binary tables can be loaded into memory by an application and passed to
|
||||||
|
pcre2_compile() in the same way as tables created dynamically by calling
|
||||||
|
pcre2_maketables(). The tables are just a string of bytes, independent of
|
||||||
|
hardware characteristics such as endianness. This means they can be bundled
|
||||||
|
with an application that runs in different environments, to ensure consistent
|
||||||
|
behaviour.
|
||||||
|
|
||||||
|
See also the pcre2build section "Creating character tables at build time".
|
||||||
|
|
||||||
|
|
||||||
|
File manifest
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The distribution should contain the files listed below.
|
||||||
|
|
||||||
|
(A) Source files for the PCRE2 library functions and their headers are found in
|
||||||
|
the src directory:
|
||||||
|
|
||||||
|
src/pcre2_dftables.c auxiliary program for building pcre2_chartables.c
|
||||||
|
when --enable-rebuild-chartables is specified
|
||||||
|
|
||||||
|
src/pcre2_chartables.c.dist a default set of character tables that assume
|
||||||
|
ASCII coding; unless --enable-rebuild-chartables is
|
||||||
|
specified, used by copying to pcre2_chartables.c
|
||||||
|
|
||||||
|
src/pcre2posix.c )
|
||||||
|
src/pcre2_auto_possess.c )
|
||||||
|
src/pcre2_chkdint.c )
|
||||||
|
src/pcre2_compile.c )
|
||||||
|
src/pcre2_compile_class.c )
|
||||||
|
src/pcre2_config.c )
|
||||||
|
src/pcre2_context.c )
|
||||||
|
src/pcre2_convert.c )
|
||||||
|
src/pcre2_dfa_match.c )
|
||||||
|
src/pcre2_error.c )
|
||||||
|
src/pcre2_extuni.c )
|
||||||
|
src/pcre2_find_bracket.c )
|
||||||
|
src/pcre2_jit_compile.c )
|
||||||
|
src/pcre2_jit_match.c ) sources for the functions in the library,
|
||||||
|
src/pcre2_jit_misc.c ) and some internal functions that they use
|
||||||
|
src/pcre2_maketables.c )
|
||||||
|
src/pcre2_match.c )
|
||||||
|
src/pcre2_match_data.c )
|
||||||
|
src/pcre2_newline.c )
|
||||||
|
src/pcre2_ord2utf.c )
|
||||||
|
src/pcre2_pattern_info.c )
|
||||||
|
src/pcre2_script_run.c )
|
||||||
|
src/pcre2_serialize.c )
|
||||||
|
src/pcre2_string_utils.c )
|
||||||
|
src/pcre2_study.c )
|
||||||
|
src/pcre2_substitute.c )
|
||||||
|
src/pcre2_substring.c )
|
||||||
|
src/pcre2_tables.c )
|
||||||
|
src/pcre2_ucd.c )
|
||||||
|
src/pcre2_ucptables.c )
|
||||||
|
src/pcre2_valid_utf.c )
|
||||||
|
src/pcre2_xclass.c )
|
||||||
|
|
||||||
|
src/pcre2_printint.c debugging function that is used by pcre2test,
|
||||||
|
src/pcre2_fuzzsupport.c function for (optional) fuzzing support
|
||||||
|
|
||||||
|
src/config.h.in template for config.h, when built by "configure"
|
||||||
|
src/pcre2.h.in template for pcre2.h when built by "configure"
|
||||||
|
src/pcre2posix.h header for the external POSIX wrapper API
|
||||||
|
src/pcre2_compile.h header for internal use
|
||||||
|
src/pcre2_internal.h header for internal use
|
||||||
|
src/pcre2_intmodedep.h a mode-specific internal header
|
||||||
|
src/pcre2_jit_char_inc.h header used by JIT
|
||||||
|
src/pcre2_jit_neon_inc.h header used by JIT
|
||||||
|
src/pcre2_jit_simd_inc.h header used by JIT
|
||||||
|
src/pcre2_ucp.h header for Unicode property handling
|
||||||
|
src/pcre2_util.h header for internal utils
|
||||||
|
|
||||||
|
deps/sljit/sljit_src/* source files for the JIT compiler
|
||||||
|
|
||||||
|
(B) Source files for programs that use PCRE2:
|
||||||
|
|
||||||
|
src/pcre2demo.c simple demonstration of coding calls to PCRE2
|
||||||
|
src/pcre2grep.c source of a grep utility that uses PCRE2
|
||||||
|
src/pcre2test.c comprehensive test program
|
||||||
|
src/pcre2_jit_test.c JIT test program
|
||||||
|
src/pcre2posix_test.c POSIX wrapper API test program
|
||||||
|
|
||||||
|
(C) Auxiliary files:
|
||||||
|
|
||||||
|
AUTHORS.md information about the authors of PCRE2
|
||||||
|
ChangeLog log of changes to the code
|
||||||
|
HACKING some notes about the internals of PCRE2
|
||||||
|
INSTALL generic installation instructions
|
||||||
|
LICENCE.md conditions for the use of PCRE2
|
||||||
|
COPYING the same, using GNU's standard name
|
||||||
|
SECURITY.md information on reporting vulnerabilities
|
||||||
|
Makefile.in ) template for Unix Makefile, which is built by
|
||||||
|
) "configure"
|
||||||
|
Makefile.am ) the automake input that was used to create
|
||||||
|
) Makefile.in
|
||||||
|
NEWS important changes in this release
|
||||||
|
NON-AUTOTOOLS-BUILD notes on building PCRE2 without using autotools
|
||||||
|
README this file
|
||||||
|
RunTest a Unix shell script for running tests
|
||||||
|
RunGrepTest a Unix shell script for pcre2grep tests
|
||||||
|
RunTest.bat a Windows batch file for running tests
|
||||||
|
RunGrepTest.bat a Windows batch file for pcre2grep tests
|
||||||
|
aclocal.m4 m4 macros (generated by "aclocal")
|
||||||
|
m4/* m4 macros (used by autoconf)
|
||||||
|
configure a configuring shell script (built by autoconf)
|
||||||
|
configure.ac ) the autoconf input that was used to build
|
||||||
|
) "configure" and config.h
|
||||||
|
doc/*.3 man page sources for PCRE2
|
||||||
|
doc/*.1 man page sources for pcre2grep and pcre2test
|
||||||
|
doc/html/* HTML documentation
|
||||||
|
doc/pcre2.txt plain text version of the man pages
|
||||||
|
doc/pcre2-config.txt plain text documentation of pcre2-config script
|
||||||
|
doc/pcre2grep.txt plain text documentation of grep utility program
|
||||||
|
doc/pcre2test.txt plain text documentation of test program
|
||||||
|
libpcre2-8.pc.in template for libpcre2-8.pc for pkg-config
|
||||||
|
libpcre2-16.pc.in template for libpcre2-16.pc for pkg-config
|
||||||
|
libpcre2-32.pc.in template for libpcre2-32.pc for pkg-config
|
||||||
|
libpcre2-posix.pc.in template for libpcre2-posix.pc for pkg-config
|
||||||
|
ar-lib )
|
||||||
|
config.guess )
|
||||||
|
config.sub )
|
||||||
|
depcomp ) helper tools generated by libtool and
|
||||||
|
compile ) automake, used internally by ./configure
|
||||||
|
install-sh )
|
||||||
|
ltmain.sh )
|
||||||
|
missing )
|
||||||
|
test-driver )
|
||||||
|
perltest.sh Script for running a Perl test program
|
||||||
|
pcre2-config.in source of script which retains PCRE2 information
|
||||||
|
testdata/testinput* test data for main library tests
|
||||||
|
testdata/testoutput* expected test results
|
||||||
|
testdata/grep* input and output for pcre2grep tests
|
||||||
|
testdata/* other supporting test files
|
||||||
|
|
||||||
|
(D) Auxiliary files for CMake support
|
||||||
|
|
||||||
|
cmake/COPYING-CMAKE-SCRIPTS
|
||||||
|
cmake/FindEditline.cmake
|
||||||
|
cmake/FindReadline.cmake
|
||||||
|
cmake/pcre2-config-version.cmake.in
|
||||||
|
cmake/pcre2-config.cmake.in
|
||||||
|
CMakeLists.txt
|
||||||
|
config-cmake.h.in
|
||||||
|
|
||||||
|
(E) Auxiliary files for building PCRE2 "by hand"
|
||||||
|
|
||||||
|
src/pcre2.h.generic ) a version of the public PCRE2 header file
|
||||||
|
) for use in non-"configure" environments
|
||||||
|
src/config.h.generic ) a version of config.h for use in non-"configure"
|
||||||
|
) environments
|
||||||
|
|
||||||
|
(F) Auxiliary files for building PCRE2 using other build systems
|
||||||
|
|
||||||
|
BUILD.bazel )
|
||||||
|
MODULE.bazel ) files used by the Bazel build system
|
||||||
|
WORKSPACE.bazel )
|
||||||
|
build.zig file used by zig's build system
|
||||||
|
|
||||||
|
(G) Auxiliary files for building PCRE2 under OpenVMS
|
||||||
|
|
||||||
|
vms/configure.com )
|
||||||
|
vms/openvms_readme.txt ) These files were contributed by a PCRE2 user.
|
||||||
|
vms/pcre2.h_patch )
|
||||||
|
vms/stdint.h )
|
||||||
|
|
||||||
|
==============================
|
||||||
|
Last updated: 18 December 2024
|
||||||
|
==============================
|
||||||
|
|
||||||
56
3rd/pcre2/README.md
Normal file
56
3rd/pcre2/README.md
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
# PCRE2 - Perl-Compatible Regular Expressions
|
||||||
|
|
||||||
|
The PCRE2 library is a set of C functions that implement regular expression
|
||||||
|
pattern matching using the same syntax and semantics as Perl 5. PCRE2 has its
|
||||||
|
own native API, as well as a set of wrapper functions that correspond to the
|
||||||
|
POSIX regular expression API. The PCRE2 library is free, even for building
|
||||||
|
proprietary software. It comes in three forms, for processing 8-bit, 16-bit,
|
||||||
|
or 32-bit code units, in either literal or UTF encoding.
|
||||||
|
|
||||||
|
PCRE2 was first released in 2015 to replace the API in the original PCRE
|
||||||
|
library, which is now obsolete and no longer maintained. As well as a more
|
||||||
|
flexible API, the code of PCRE2 has been much improved since the fork.
|
||||||
|
|
||||||
|
## Download
|
||||||
|
|
||||||
|
As well as downloading from the
|
||||||
|
[GitHub site](https://github.com/PCRE2Project/pcre2), you can download PCRE2
|
||||||
|
or the older, unmaintained PCRE1 library from an
|
||||||
|
[*unofficial* mirror](https://sourceforge.net/projects/pcre/files/) at SourceForge.
|
||||||
|
|
||||||
|
You can check out the PCRE2 source code via Git or Subversion:
|
||||||
|
|
||||||
|
git clone https://github.com/PCRE2Project/pcre2.git
|
||||||
|
svn co https://github.com/PCRE2Project/pcre2.git
|
||||||
|
|
||||||
|
## Contributed Ports
|
||||||
|
|
||||||
|
If you just need the command-line PCRE2 tools on Windows, precompiled binary
|
||||||
|
versions are available at this
|
||||||
|
[Rexegg page](http://www.rexegg.com/pcregrep-pcretest.html).
|
||||||
|
|
||||||
|
A PCRE2 port for z/OS, a mainframe operating system which uses EBCDIC as its
|
||||||
|
default character encoding, can be found at
|
||||||
|
[http://www.cbttape.org](http://www.cbttape.org/) (File 939).
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
You can read the PCRE2 documentation
|
||||||
|
[here](https://PCRE2Project.github.io/pcre2/doc/html/index.html).
|
||||||
|
|
||||||
|
Comparisons to Perl's regular expression semantics can be found in the
|
||||||
|
community authored Wikipedia entry for PCRE.
|
||||||
|
|
||||||
|
There is a curated summary of changes for each PCRE release, copies of
|
||||||
|
documentation from older releases, and other useful information from the third
|
||||||
|
party authored
|
||||||
|
[RexEgg PCRE Documentation and Change Log page](http://www.rexegg.com/pcre-documentation.html).
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
|
||||||
|
To report a problem with the PCRE2 library, or to make a feature request, please
|
||||||
|
use the PCRE2 GitHub issues tracker. There is a mailing list for discussion of
|
||||||
|
PCRE2 issues and development at pcre2-dev@googlegroups.com, which is where any
|
||||||
|
announcements will be made. You can browse the
|
||||||
|
[list archives](https://groups.google.com/g/pcre2-dev).
|
||||||
|
|
||||||
1157
3rd/pcre2/RunGrepTest
Normal file
1157
3rd/pcre2/RunGrepTest
Normal file
@@ -0,0 +1,1157 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
# Run pcre2grep tests. The assumption is that the PCRE2 tests check the library
|
||||||
|
# itself. What we are checking here is the file handling and options that are
|
||||||
|
# supported by pcre2grep. This script must be run in the build directory.
|
||||||
|
|
||||||
|
# CODING CONVENTIONS:
|
||||||
|
# * Put printf arguments in single, not double quotes to avoid unwanted
|
||||||
|
# escaping.
|
||||||
|
# * Use \0 for binary zero in printf, not \x0, for the benefit of older
|
||||||
|
# versions (and use octal for other special values).
|
||||||
|
|
||||||
|
# Set the C locale, so that sort(1) behaves predictably.
|
||||||
|
|
||||||
|
LC_ALL=C
|
||||||
|
export LC_ALL
|
||||||
|
|
||||||
|
# Remove any non-default colouring and aliases that the caller may have set.
|
||||||
|
|
||||||
|
unset PCRE2GREP_COLOUR PCRE2GREP_COLOR PCREGREP_COLOUR PCREGREP_COLOR
|
||||||
|
unset GREP_COLOR GREP_COLORS
|
||||||
|
unset cp ls mv rm
|
||||||
|
|
||||||
|
# Remember the current (build) directory, set the program to be tested, and
|
||||||
|
# valgrind settings when requested.
|
||||||
|
|
||||||
|
builddir=`pwd`
|
||||||
|
: ${pcre2grep:=$builddir/pcre2grep}
|
||||||
|
: ${pcre2test:=$builddir/pcre2test}
|
||||||
|
|
||||||
|
if [ ! -x $pcre2grep ] ; then
|
||||||
|
echo "** $pcre2grep does not exist or is not executable."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -x $pcre2test ] ; then
|
||||||
|
echo "** $pcre2test does not exist or is not executable."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
valgrind=
|
||||||
|
while [ $# -gt 0 ] ; do
|
||||||
|
case $1 in
|
||||||
|
valgrind|-valgrind) valgrind="valgrind -q --leak-check=no --smc-check=all-non-file --error-exitcode=70";;
|
||||||
|
*) echo "RunGrepTest: Unknown argument $1"; exit 1;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
pcre2grep_version=`$pcre2grep -V`
|
||||||
|
if [ "$valgrind" = "" ] ; then
|
||||||
|
echo "Testing $pcre2grep_version"
|
||||||
|
else
|
||||||
|
echo "Testing $pcre2grep_version using valgrind"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set up a suitable "diff" command for comparison. Some systems have a diff
|
||||||
|
# that lacks a -u option. Try to deal with this; better do the test for the -b
|
||||||
|
# option as well.
|
||||||
|
|
||||||
|
cf="diff"
|
||||||
|
diff -b /dev/null /dev/null 2>/dev/null && cf="diff -b"
|
||||||
|
diff -u /dev/null /dev/null 2>/dev/null && cf="diff -u"
|
||||||
|
diff -ub /dev/null /dev/null 2>/dev/null && cf="diff -ub"
|
||||||
|
|
||||||
|
# Add a -a (always treat as text) if available. This was added in an attempt
|
||||||
|
# to get more detail from an Alpine Linux test failure on GitHub.
|
||||||
|
|
||||||
|
$cf -a /dev/null /dev/null 2>/dev/null && cf="$cf -a"
|
||||||
|
|
||||||
|
# Some tests involve NUL characters. It seems impossible to handle them easily
|
||||||
|
# in many operating systems. An earlier version of this script used sed to
|
||||||
|
# translate NUL into the string ZERO, but this didn't work on Solaris (aka
|
||||||
|
# SunOS), where the version of sed explicitly doesn't like them, and also MacOS
|
||||||
|
# (Darwin), OpenBSD, FreeBSD, NetBSD, and some Linux distributions like Alpine,
|
||||||
|
# even when using GNU sed. A user suggested using tr instead, which
|
||||||
|
# necessitates translating to a single character. However, on (some versions
|
||||||
|
# of?) Solaris, the normal "tr" cannot handle binary zeros, but if
|
||||||
|
# /usr/xpg4/bin/tr is available, it can do so, so test for that.
|
||||||
|
|
||||||
|
if [ -x /usr/xpg4/bin/tr ] ; then
|
||||||
|
tr=/usr/xpg4/bin/tr
|
||||||
|
else
|
||||||
|
tr=tr
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If this test is being run from "make check", $srcdir will be set. If not, set
|
||||||
|
# it to the current or parent directory, whichever one contains the test data.
|
||||||
|
# Subsequently, we run most of the pcre2grep tests in the source directory so
|
||||||
|
# that the file names in the output are always the same.
|
||||||
|
|
||||||
|
if [ -z "$srcdir" -o ! -d "$srcdir/testdata" ] ; then
|
||||||
|
if [ -d "./testdata" ] ; then
|
||||||
|
srcdir=.
|
||||||
|
elif [ -d "../testdata" ] ; then
|
||||||
|
srcdir=..
|
||||||
|
else
|
||||||
|
echo "Cannot find the testdata directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set up the path to the valgrind JIT suppressions
|
||||||
|
|
||||||
|
vjs=
|
||||||
|
if [ "$valgrind" != "" ] ; then
|
||||||
|
$pcre2test -C jit >/dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
vjs="--suppressions=`realpath "$srcdir"`/testdata/valgrind-jit.supp"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for the availability of UTF-8 support
|
||||||
|
|
||||||
|
$pcre2test -C unicode >/dev/null
|
||||||
|
utf8=$?
|
||||||
|
|
||||||
|
# Check default newline convention. If it does not include LF, force LF.
|
||||||
|
|
||||||
|
nl=`$pcre2test -C newline`
|
||||||
|
if [ "$nl" != "LF" -a "$nl" != "ANY" -a "$nl" != "ANYCRLF" ]; then
|
||||||
|
pcre2grep="$pcre2grep -N LF"
|
||||||
|
echo "Default newline setting forced to LF"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ------ Function to run and check a special pcre2grep arguments test -------
|
||||||
|
|
||||||
|
checkspecial()
|
||||||
|
{
|
||||||
|
$valgrind $pcre2grep $1 >>testtrygrep 2>&1
|
||||||
|
if [ $? -ne $2 ] ; then
|
||||||
|
echo "** pcre2grep $1 failed - check testtrygrep"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------ Normal tests ------
|
||||||
|
|
||||||
|
echo "Testing pcre2grep main features"
|
||||||
|
|
||||||
|
echo "---------------------------- Test 1 ------------------------------" >testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 2 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep '^PATTERN' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 3 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -in PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 4 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -ic PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 5 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -in PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 6 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -inh PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 7 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -il PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 8 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -l PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 9 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -q PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 10 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -q NEVER-PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 11 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -vn pattern ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 12 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -ix pattern ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 13 -----------------------------" >>testtrygrep
|
||||||
|
echo seventeen >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f./testdata/greplist -f $builddir/testtemp1grep ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 14 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -w pat ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 15 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep 'abc^*' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 16 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep abc ./testdata/grepinput ./testdata/nonexistfile) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 17 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -M 'the\noutput' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 18 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn '(the\noutput|dog\.\n--)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 19 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mix 'Pattern' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 20 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mixn 'complete pair\nof lines' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 21 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nA3 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 22 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nB3 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 23 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -C3 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 24 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A9 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 25 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nB9 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 26 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A9 -B9 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 27 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A10 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 28 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nB10 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 29 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -C12 -B10 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 30 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -inB3 'pattern' ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 31 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -inA3 'pattern' ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 32 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L 'fox' ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 33 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep 'fox' ./testdata/grepnonexist) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 34 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -s 'fox' ./testdata/grepnonexist) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 35 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include=grepinputx --include grepinput8 --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 36 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include='grepinput[^C]' --exclude 'grepinput$' --exclude='grepinput(Bad)?8' --exclude=grepinputM --exclude=grepinputUN --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 37 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep '^(a+)*\d' ./testdata/grepinput) >>testtrygrep 2>teststderrgrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "======== STDERR ========" >>testtrygrep
|
||||||
|
cat teststderrgrep >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 38 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep '>\x00<' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 39 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A1 'before the binary zero' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 40 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -B1 'after the binary zero' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 41 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -B1 -o '\w+ the binary zero' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 42 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -B1 -onH '\w+ the binary zero' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 43 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -on 'before|zero|after' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 44 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -on -e before -ezero -e after ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 45 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -on -f ./testdata/greplist -e binary ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 46 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -e 'unopened)' -e abc ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -eabc -e '(unclosed' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -eabc -e xyz -e '[unclosed' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regex=123 -eabc -e xyz -e '[unclosed' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 47 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Fx "AB.VE
|
||||||
|
elephant" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 48 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -F "AB.VE
|
||||||
|
elephant" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 49 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -F -e DATA -e "AB.VE
|
||||||
|
elephant" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 50 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep "^(abc|def|ghi|jkl)" ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 51 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mv "brown\sfox" ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 52 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --colour=always jumps ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 53 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-offsets 'before|zero|after' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 54 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets 'before|zero|after' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 55 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f./testdata/greplist --color=always ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 56 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -c --exclude=grepinputC lazy ./testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 57 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -c -l --exclude=grepinputC lazy ./testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 58 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regex=PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 59 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regexp=PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 60 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regex PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 61 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --regexp PATTERN ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 62 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $pcre2grep --match-limit=1000 --no-jit -M 'This is a file(.|\R)*file.' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 63 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $pcre2grep --recursion-limit=1K --no-jit -M 'This is a file(.|\R)*file.' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 64 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o1 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 65 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o2 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 66 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o3 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 67 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o12 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 68 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --only-matching=2 '(?<=PAT)TERN (ap(pear)s)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 69 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -vn --colour=always pattern ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 70 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always -M "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always -M -n "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -M "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -M -n "triple:\t.*\n\n" ./testdata/grepinput3) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 71 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "^01|^02|^03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 72 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "^01|^02|^03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 73 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "^01|^02|^03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 74 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "^01|02|^03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 75 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "^01|02|^03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 76 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "^01|02|^03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 77 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "^01|^02|03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 78 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "^01|^02|03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 79 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "^01|^02|03" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 80 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o "\b01|\b02" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 81 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --color=always "\\b01|\\b02" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 82 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --colour=always "\\b01|\\b02" ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 83 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --buffer-size=10 --max-buffer-size=100 "^a" ./testdata/grepinput3) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 84 -----------------------------" >>testtrygrep
|
||||||
|
echo testdata/grepinput3 >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-list ./testdata/grepfilelist --file-list $builddir/testtemp1grep "fox|complete|t7") >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 85 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-list=./testdata/grepfilelist "dolor" ./testdata/grepinput3) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 86 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 87 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep "cat" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 88 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -v "cat" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 89 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -I "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 90 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=without-match "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 91 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -a "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 92 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=text "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 93 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --text "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 94 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include=grepinputx --include grepinput8 'fox' ./testdata/grepinput* | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 95 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-list ./testdata/grepfilelist --exclude grepinputv "fox|complete") >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 96 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include-dir=testdata --exclude '^(?!grepinput)' --exclude=grepinput[MCU] 'fox' ./test* | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 97 -----------------------------" >>testtrygrep
|
||||||
|
echo "grepinput$" >testtemp1grep
|
||||||
|
echo "grepinput8" >>testtemp1grep
|
||||||
|
echo "grepinputBad8" >>testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include=grepinput --exclude=grepinput[MCU] --exclude-from $builddir/testtemp1grep --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 98 -----------------------------" >>testtrygrep
|
||||||
|
echo "grepinput$" >testtemp1grep
|
||||||
|
echo "grepinput8" >>testtemp1grep
|
||||||
|
echo "grepinputBad8" >>testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --exclude=grepinput3 --exclude=grepinput[MCU] --include=grepinput --exclude-from $builddir/testtemp1grep --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 99 -----------------------------" >>testtrygrep
|
||||||
|
echo "grepinput$" >testtemp1grep
|
||||||
|
echo "grepinput8" >testtemp2grep
|
||||||
|
echo "grepinputBad8" >>testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -L -r --include grepinput --exclude=grepinput[MCU] --exclude-from $builddir/testtemp1grep --exclude-from=$builddir/testtemp2grep --exclude-dir='^\.' 'fox' ./testdata | sort) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 100 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Ho2 --only-matching=1 -o3 '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 101 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o3 -Ho2 -o12 --only-matching=1 -o3 --colour=always --om-separator='|' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 102 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n "^$" ./testdata/grepinput3) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 103 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --only-matching "^$" ./testdata/grepinput3) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 104 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n --only-matching "^$" ./testdata/grepinput3) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 105 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --colour=always "ipsum|" ./testdata/grepinput3) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 106 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; echo "a" | $valgrind $vjs $pcre2grep -M "|a" ) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 107 -----------------------------" >>testtrygrep
|
||||||
|
echo "a" >testtemp1grep
|
||||||
|
echo "aaaaa" >>testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets --allow-lookaround-bsk '(?<=\Ka)' $builddir/testtemp1grep) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 108 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -lq PATTERN ./testdata/grepinput ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 109 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -cq --exclude=grepinputC lazy ./testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 110 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --om-separator / -Mo0 -o1 -o2 'match (\d+):\n (.)\n' testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 111 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets -M 'match (\d+):\n (.)\n' testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 112 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --file-offsets -M 'match (\d+):\n (.)\n' testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 113 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --total-count --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 114 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tc --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 115 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tlc --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 116 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --exclude=grepinput[MCU] -th 'the' testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 117 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tch --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 118 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -tL --exclude=grepinputC 'the' testdata/grepinput*) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 119 -----------------------------" >>testtrygrep
|
||||||
|
printf '123\n456\n789\n---abc\ndef\nxyz\n---\n' >testNinputgrep
|
||||||
|
$valgrind $vjs $pcre2grep -Mo '(\n|[^-])*---' testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 120 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO '$0:$2$1$3' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO '$&:$2$1$3' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m 1 -O '$0:$a$b$e$f$r$t$v' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO '${X}' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HO 'XX$' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -O '$x{12345678}' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -O '$x{123Z' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --output '$x{1234}' '(\w+) binary (\w+)(\.)?' ./testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 121 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -F '\E and (regex)' testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 122 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -w 'cat|dog' testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 123 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -w 'dog|cat' testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 124 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn --colour=always 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn --colour=always -A2 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -Mn -A2 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 125 -----------------------------" >>testtrygrep
|
||||||
|
printf 'abcd\n' >testNinputgrep
|
||||||
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?<=\K.)' testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?=.\K)' testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?<=\K[ac])' testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?=[ac]\K)' testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
GREP_COLORS='ms=1;20' $valgrind $vjs $pcre2grep --colour=always --allow-lookaround-bsk '(?=[ac]\K)' testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 126 -----------------------------" >>testtrygrep
|
||||||
|
printf 'Next line pattern has binary zero\nABC\0XYZ\n' >testtemp1grep
|
||||||
|
printf 'ABC\0XYZ\nABCDEF\nDEFABC\n' >testtemp2grep
|
||||||
|
$valgrind $vjs $pcre2grep -a -f testtemp1grep testtemp2grep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
printf 'Next line pattern is erroneous.\n^abc)(xy' >testtemp1grep
|
||||||
|
$valgrind $vjs $pcre2grep -a -f testtemp1grep testtemp2grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 127 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 128 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m1M -o1 --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 129 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m 2 'fox' testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 130 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o -m2 'fox' testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 131 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -oc -m2 'fox' testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 132 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; exec 3<testdata/grepinput; $valgrind $vjs $pcre2grep -m1 -A3 '^match' <&3; echo '---'; head -1 <&3; exec 3<&-) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 133 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; exec 3<testdata/grepinput; $valgrind $vjs $pcre2grep -m1 -A3 '^match' <&3; echo '---'; $valgrind $vjs $pcre2grep -m1 -A3 '^match' <&3; exec 3<&-) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 134 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --max-count=1 -nH -O '=$x{41}$x423$o{103}$o1045=' 'fox' -) <$srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 135 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -HZ 'word' ./testdata/grepinputv) | $tr '\000' '@' >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -lZ 'word' ./testdata/grepinputv ./testdata/grepinputv) | $tr '\000' '@' >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -A 1 -B 1 -HZ 'word' ./testdata/grepinputv) | $tr '\000' '@' >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -MHZn 'start[\s]+end' testdata/grepinputM) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 136 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -m1MK -o1 --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --max-count=1MK -o1 --om-capture=0 'pattern()()()()' testdata/grepinput) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 137 -----------------------------" >>testtrygrep
|
||||||
|
printf 'Last line\nhas no newline' >testtemp1grep
|
||||||
|
$valgrind $vjs $pcre2grep -A1 Last testtemp1grep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 138 -----------------------------" >>testtrygrep
|
||||||
|
printf 'AbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\n' >testtemp1grep
|
||||||
|
$valgrind $vjs $pcre2grep --no-jit --heap-limit=0 b testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 139 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-buffered 'fox' testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 140 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --buffer-size=10 -A1 'brown' testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 141 -----------------------------" >>testtrygrep
|
||||||
|
printf "%s/testdata/grepinputv\n-\n" "$srcdir" >testtemp1grep
|
||||||
|
printf 'This is a line from stdin.' >testtemp2grep
|
||||||
|
$valgrind $vjs $pcre2grep --file-list testtemp1grep "line from stdin" <testtemp2grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 142 -----------------------------" >>testtrygrep
|
||||||
|
printf "/does/not/exist\n" >testtemp1grep
|
||||||
|
printf 'This is a line from stdin.' >testtemp2grep
|
||||||
|
$valgrind $vjs $pcre2grep --file-list testtemp1grep "line from stdin" >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 143 -----------------------------" >>testtrygrep
|
||||||
|
printf 'fox|cat' >testtemp1grep
|
||||||
|
$valgrind $vjs $pcre2grep -f - $srcdir/testdata/grepinputv <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 144 -----------------------------" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -f /non/exist $srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 145 -----------------------------" >>testtrygrep
|
||||||
|
printf '*meta*\rdog.' >testtemp1grep
|
||||||
|
$valgrind $vjs $pcre2grep -Ncr -F -f testtemp1grep $srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 146 -----------------------------" >>testtrygrep
|
||||||
|
printf 'A123B' >testtemp1grep
|
||||||
|
$valgrind $vjs $pcre2grep -H -e '123|fox' - <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -h -e '123|fox' - $srcdir/testdata/grepinputv <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep - $srcdir/testdata/grepinputv <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 147 -----------------------------" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -e '123|fox' -- -nonfile >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 148 -----------------------------" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --nonexist >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -n-n-bad >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --context >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --only-matching --output=xx >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --colour=badvalue >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --newline=badvalue >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -d badvalue >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -D badvalue >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --buffer-size=0 >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --exclude '(badpat' abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --exclude-from /non/exist abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --include-from /non/exist abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep --file-list=/non/exist abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 149 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=binary "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --binary-files=wrong "dog" ./testdata/grepbinary) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
# This test runs the code that tests locale support. However, on some systems
|
||||||
|
# (e.g. Alpine Linux) there is no locale support and running this test just
|
||||||
|
# generates a "no match" result. Therefore, we test for locale support, and if
|
||||||
|
# it is found missing, we pretend that the test has run as expected so that the
|
||||||
|
# output matches.
|
||||||
|
|
||||||
|
echo "---------------------------- Test 150 -----------------------------" >>testtrygrep
|
||||||
|
which locale >/dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "pcre2grep: Failed to set locale locale.bad (obtained from LC_CTYPE)" >>testtrygrep
|
||||||
|
echo "RC=2" >>testtrygrep
|
||||||
|
else
|
||||||
|
|
||||||
|
(cd $srcdir; unset LC_ALL; LC_CTYPE=locale.bad $valgrind $vjs $pcre2grep abc /dev/null) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "---------------------------- Test 151 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --colour=always -e this -e The -e 'The wo' testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 152 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nA3 --group-separator='++' 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 153 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nA3 --no-group-separator 'four' ./testdata/grepinputx) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 154 -----------------------------" >>testtrygrep
|
||||||
|
>testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 155 -----------------------------" >>testtrygrep
|
||||||
|
echo "" >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 156 -----------------------------" >>testtrygrep
|
||||||
|
echo "" >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --posix-pattern-file --file $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 157 -----------------------------" >>testtrygrep
|
||||||
|
echo "spaces " >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -o --posix-pattern-file --file=$builddir/testtemp1grep ./testdata/grepinputv >$builddir/testtemp2grep && $valgrind $vjs $pcre2grep -q "s " $builddir/testtemp2grep) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 158 -----------------------------" >>testtrygrep
|
||||||
|
echo "spaces." >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -f $builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 159 -----------------------------" >>testtrygrep
|
||||||
|
printf "spaces.\r\n" >testtemp1grep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --posix-pattern-file -f$builddir/testtemp1grep ./testdata/grepinputv) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test 160 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -nC3 '^(ert|jkl)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n -B4 -A2 '^(ert|dfg)' ./testdata/grepinput) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
|
||||||
|
# Now compare the results.
|
||||||
|
|
||||||
|
$cf $srcdir/testdata/grepoutput testtrygrep
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
|
||||||
|
|
||||||
|
# These tests require UTF-8 support
|
||||||
|
|
||||||
|
if [ $utf8 -ne 0 ] ; then
|
||||||
|
echo "Testing pcre2grep UTF-8 features"
|
||||||
|
|
||||||
|
echo "---------------------------- Test U1 ------------------------------" >testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n -u --newline=any "^X" ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U2 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -n -u -C 3 --newline=any "Match" ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U3 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep --line-offsets -u --newline=any --allow-lookaround-bsk '(?<=\K\x{17f})' ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U4 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u -o '....' ./testdata/grepinputBad8) >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U5 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -U -o '....' ./testdata/grepinputBad8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U6 -----------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u -m1 -O '=$x{1d3}$o{744}=' 'fox') <$srcdir/testdata/grepinputv >>testtrygrep 2>&1
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U7 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -ui --colour=always 'k+|\babc\b' ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U8 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -UiEP --colour=always 'k+|\babc\b' ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U9 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u --colour=always 'A\d' ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "---------------------------- Test U10 ------------------------------" >>testtrygrep
|
||||||
|
(cd $srcdir; $valgrind $vjs $pcre2grep -u --posix-digit --colour=always 'A\d' ./testdata/grepinput8) >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
$cf $srcdir/testdata/grepoutput8 testtrygrep
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "Skipping pcre2grep UTF-8 tests: no UTF-8 support in PCRE2 library"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# We go to some contortions to try to ensure that the tests for the various
|
||||||
|
# newline settings will work in environments where the normal newline sequence
|
||||||
|
# is not \n. Do not use exported files, whose line endings might be changed.
|
||||||
|
# Instead, create an input file using printf so that its contents are exactly
|
||||||
|
# what we want. Note the messy fudge to get printf to write a string that
|
||||||
|
# starts with a hyphen. These tests are run in the build directory.
|
||||||
|
|
||||||
|
echo "Testing pcre2grep newline settings"
|
||||||
|
printf 'abc\rdef\r\nghi\njkl' >testNinputgrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N1 ------------------------------\r\n' - >testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -n -N CR "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -B1 -n -N CR "^def" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N2 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -n --newline=crlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -B1 -n -N CRLF "^ghi" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N3 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
pattern=`printf 'def\rjkl'`
|
||||||
|
$valgrind $vjs $pcre2grep -n --newline=cr -F "$pattern" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N4 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -n --newline=crlf -F -f $srcdir/testdata/greppatN4 testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N5 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -n --newline=any "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -B1 -n --newline=any "^def" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N6 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -n --newline=anycrlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -B1 -n --newline=anycrlf "^jkl" testNinputgrep >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N7 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
printf 'xyz\0abc\0def' >testNinputgrep
|
||||||
|
$valgrind $vjs $pcre2grep -na --newline=nul "^(abc|def)" testNinputgrep | $tr '\000' '@' >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -B1 -na --newline=nul "^(abc|def)" testNinputgrep | $tr '\000' '@' >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test N8 ------------------------------\r\n' - >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -na --newline=anycrlf "^a" $srcdir/testdata/grepinputBad8_Trail >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "" >>testtrygrep
|
||||||
|
|
||||||
|
$cf $srcdir/testdata/grepoutputN testtrygrep
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
|
||||||
|
|
||||||
|
# These newline tests need UTF support.
|
||||||
|
|
||||||
|
if [ $utf8 -ne 0 ] ; then
|
||||||
|
echo "Testing pcre2grep newline settings with UTF-8 features"
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test UN1 ------------------------------\r\n' - >testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -nau --newline=anycrlf "^(abc|def)" $srcdir/testdata/grepinputUN >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
printf '%c--------------------------- Test UN2 ------------------------------\r\n' - >testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -nauU --newline=anycrlf "^a" $srcdir/testdata/grepinputBad8_Trail >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
echo "" >>testtrygrep
|
||||||
|
|
||||||
|
$cf $srcdir/testdata/grepoutputUN testtrygrep
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
else
|
||||||
|
echo "Skipping pcre2grep newline UTF-8 tests: no UTF-8 support in PCRE2 library"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# If pcre2grep supports script callouts, run some tests on them. It is possible
|
||||||
|
# to restrict these callouts to the non-fork case, either for security, or for
|
||||||
|
# environments that do not support fork(). This is handled by comparing to a
|
||||||
|
# different output.
|
||||||
|
|
||||||
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q 'callout scripts in patterns are supported'; then
|
||||||
|
echo "Testing pcre2grep script callouts"
|
||||||
|
echo "--- Test 1 ---" >testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep '(T)(..(.))(?C"/bin/echo|Arg1: [$1] [$2] [$3]|Arg2: $|${1}$| ($4) ($14) ($0)")()' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "--- Test 2 ---" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep '(T)(..(.))()()()()()()()(..)(?C"/bin/echo|Arg1: [$11] [${11}]")' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "--- Test 3 ---" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep '(T)(?C"|$0:$1$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "--- Test 4 ---" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep '(T)(?C"/bin/echo|$0:$1$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "--- Test 5 ---" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep '(T)(?C"|$1$n")(*F)' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "--- Test 6 ---" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -m1 '(T)(?C"|$0:$1:$x{41}$o{101}$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q 'Non-fork callout scripts in patterns are supported'; then
|
||||||
|
nonfork=1
|
||||||
|
$cf $srcdir/testdata/grepoutputCN testtrygrep
|
||||||
|
else
|
||||||
|
nonfork=0
|
||||||
|
$cf $srcdir/testdata/grepoutputC testtrygrep
|
||||||
|
fi
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
|
||||||
|
# These callout tests need UTF support.
|
||||||
|
|
||||||
|
if [ $utf8 -ne 0 ] ; then
|
||||||
|
echo "Testing pcre2grep script callout with UTF-8 features"
|
||||||
|
echo "--- Test 1 ---" >testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -u '(T)(?C"|$0:$x{a6}$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
echo "--- Test 2 ---" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep -u '(T)(?C"/bin/echo|$0:$x{a6}$n")' $srcdir/testdata/grepinputv >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
|
||||||
|
if [ $nonfork = 1 ] ; then
|
||||||
|
$cf $srcdir/testdata/grepoutputCNU testtrygrep
|
||||||
|
else
|
||||||
|
$cf $srcdir/testdata/grepoutputCU testtrygrep
|
||||||
|
fi
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
else
|
||||||
|
echo "Skipping pcre2grep script callout UTF-8 tests: no UTF-8 support in PCRE2 library"
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset nonfork
|
||||||
|
else
|
||||||
|
echo "Script callouts are not supported"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Test reading .gz and .bz2 files when supported.
|
||||||
|
|
||||||
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q '\.gz are read using zlib'; then
|
||||||
|
echo "Testing reading .gz file"
|
||||||
|
$valgrind $vjs $pcre2grep 'one|two' $srcdir/testdata/grepinputC.gz >testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$cf $srcdir/testdata/grepoutputCgz testtrygrep
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if $valgrind $vjs $pcre2grep --help | $valgrind $vjs $pcre2grep -q '\.bz2 are read using bzlib2'; then
|
||||||
|
echo "Testing reading .bz2 file"
|
||||||
|
$valgrind $vjs $pcre2grep 'one|two' $srcdir/testdata/grepinputC.bz2 >testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$valgrind $vjs $pcre2grep 'one|two' $srcdir/testdata/grepnot.bz2 >>testtrygrep
|
||||||
|
echo "RC=$?" >>testtrygrep
|
||||||
|
$cf $srcdir/testdata/grepoutputCbz2 testtrygrep
|
||||||
|
if [ $? != 0 ] ; then exit 1; fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Finally, some tests to exercise code that is not tested above, just to be
|
||||||
|
# sure that it runs OK. Doing this improves the coverage statistics. The output
|
||||||
|
# is not checked.
|
||||||
|
|
||||||
|
echo "Testing miscellaneous pcre2grep arguments (unchecked)"
|
||||||
|
echo '' >testtrygrep
|
||||||
|
checkspecial '-xxxxx' 2
|
||||||
|
checkspecial '--help' 0
|
||||||
|
checkspecial '--line-buffered --colour=auto abc /dev/null' 1
|
||||||
|
checkspecial '--line-buffered --color abc /dev/null' 1
|
||||||
|
checkspecial '-dskip abc .' 1
|
||||||
|
checkspecial '-Dread -Dskip abc /dev/null' 1
|
||||||
|
|
||||||
|
# Clean up local working files
|
||||||
|
rm -f testNinputgrep teststderrgrep testtrygrep testtemp1grep testtemp2grep
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# End
|
||||||
1109
3rd/pcre2/RunGrepTest.bat
Normal file
1109
3rd/pcre2/RunGrepTest.bat
Normal file
@@ -0,0 +1,1109 @@
|
|||||||
|
@echo off
|
||||||
|
|
||||||
|
:: Run pcre2grep tests. The assumption is that the PCRE2 tests check the library
|
||||||
|
:: itself. What we are checking here is the file handling and options that are
|
||||||
|
:: supported by pcre2grep. This script must be run in the build directory.
|
||||||
|
:: (jmh: I've only tested in the main directory, using my own builds.)
|
||||||
|
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
|
:: Remove any non-default colouring that the caller may have set.
|
||||||
|
|
||||||
|
set PCRE2GREP_COLOUR=
|
||||||
|
set PCRE2GREP_COLOR=
|
||||||
|
set PCREGREP_COLOUR=
|
||||||
|
set PCREGREP_COLOR=
|
||||||
|
set GREP_COLORS=
|
||||||
|
set GREP_COLOR=
|
||||||
|
|
||||||
|
:: Remember the current (build) directory and set the program to be tested.
|
||||||
|
|
||||||
|
set builddir="%CD%"
|
||||||
|
|
||||||
|
if [%pcre2grep%]==[] set pcre2grep=%builddir%\pcre2grep.exe
|
||||||
|
if [%pcre2test%]==[] set pcre2test=%builddir%\pcre2test.exe
|
||||||
|
|
||||||
|
if NOT exist %pcre2grep% (
|
||||||
|
echo ** %pcre2grep% does not exist.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if NOT exist %pcre2test% (
|
||||||
|
echo ** %pcre2test% does not exist.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
for /f "delims=" %%a in ('"%pcre2grep%" -V') do set pcre2grep_version=%%a
|
||||||
|
echo Testing %pcre2grep_version%
|
||||||
|
|
||||||
|
:: Set up a suitable "diff" command for comparison. Some systems have a diff
|
||||||
|
:: that lacks a -u option. Try to deal with this; better do the test for the -b
|
||||||
|
:: option as well. Use FC if there's no diff, taking care to ignore equality.
|
||||||
|
|
||||||
|
set cf=
|
||||||
|
set cfout=
|
||||||
|
diff -b nul nul 2>nul && set cf=diff -b
|
||||||
|
diff -u nul nul 2>nul && set cf=diff -u
|
||||||
|
diff -ub nul nul 2>nul && set cf=diff -ub
|
||||||
|
if NOT defined cf (
|
||||||
|
set cf=fc /n
|
||||||
|
set "cfout=>testcf || (type testcf & cmd /c exit /b 1)"
|
||||||
|
)
|
||||||
|
|
||||||
|
:: Set srcdir to the current or parent directory, whichever one contains the
|
||||||
|
:: test data. Subsequently, we run most of the pcre2grep tests in the source
|
||||||
|
:: directory so that the file names in the output are always the same.
|
||||||
|
|
||||||
|
if NOT defined srcdir set srcdir=.
|
||||||
|
if NOT exist %srcdir%\testdata\ (
|
||||||
|
if exist testdata\ (
|
||||||
|
set srcdir=.
|
||||||
|
) else if exist ..\testdata\ (
|
||||||
|
set srcdir=..
|
||||||
|
) else if exist ..\..\testdata\ (
|
||||||
|
set srcdir=..\..
|
||||||
|
) else (
|
||||||
|
echo Cannot find the testdata directory
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
:: Check for the availability of UTF-8 support
|
||||||
|
|
||||||
|
%pcre2test% -C unicode >nul
|
||||||
|
set utf8=%ERRORLEVEL%
|
||||||
|
|
||||||
|
:: Check default newline convention. If it does not include LF, force LF.
|
||||||
|
|
||||||
|
for /f %%a in ('"%pcre2test%" -C newline') do set nl=%%a
|
||||||
|
if NOT "%nl%" == "LF" if NOT "%nl%" == "ANY" if NOT "%nl%" == "ANYCRLF" (
|
||||||
|
set pcre2grep=%pcre2grep% -N LF
|
||||||
|
echo Default newline setting forced to LF
|
||||||
|
)
|
||||||
|
|
||||||
|
:: Create a simple printf via cscript/JScript (an actual printf may translate
|
||||||
|
:: LF to CRLF, which this one does not). We only support the barebones we need:
|
||||||
|
:: \r, \n, \0, and %s (but only once).
|
||||||
|
|
||||||
|
echo WScript.StdOut.Write(WScript.Arguments(0).replace(/\\r/g, "\r").replace(/\\n/g, "\n").replace(/\\0/g, "\x00").replace(/%%s/g, function() { return WScript.Arguments(1) })) >printf.js
|
||||||
|
set printf=cscript //nologo printf.js
|
||||||
|
|
||||||
|
:: Create a simple 'tr' via cscript/JScript.
|
||||||
|
echo WScript.StdOut.Write(WScript.StdIn.ReadAll().replace(/\x00/g, "@")) >trnull.js
|
||||||
|
set trnull=cscript //nologo trnull.js
|
||||||
|
|
||||||
|
:: ------ Normal tests ------
|
||||||
|
|
||||||
|
echo Testing pcre2grep main features
|
||||||
|
|
||||||
|
echo ---------------------------- Test 1 ------------------------------>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 2 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "^PATTERN" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 3 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -in PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 4 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -ic PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 5 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -in PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 6 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -inh PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 7 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -il PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 8 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -l PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 9 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -q PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 10 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -q NEVER-PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 11 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -vn pattern ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 12 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -ix pattern ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 13 ----------------------------->>testtrygrep
|
||||||
|
echo seventeen >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -f./testdata/greplist -f %builddir%\testtemp1grep ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 14 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -w pat ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 15 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "abc^*" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 16 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% abc ./testdata/grepinput ./testdata/nonexistfile & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 17 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -M "the\noutput" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 18 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mn "(the\noutput|dog\.\n--)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 19 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mix "Pattern" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 20 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mixn "complete pair\nof lines" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 21 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nA3 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 22 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nB3 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 23 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -C3 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 24 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -A9 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 25 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nB9 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 26 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -A9 -B9 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 27 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -A10 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 28 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nB10 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 29 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -C12 -B10 "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 30 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -inB3 "pattern" ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 31 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -inA3 "pattern" ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 32 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L "fox" ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 33 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "fox" ./testdata/grepnonexist & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 34 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -s "fox" ./testdata/grepnonexist & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 35 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --include=grepinputx --include grepinput8 --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 36 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --include="grepinput[^C]" --exclude "grepinput$" --exclude="grepinput(Bad)?8" --exclude=grepinputM --exclude=grepinputUN --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 37 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "^(a+)*\d" ./testdata/grepinput & popd) >>testtrygrep 2>teststderrgrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
echo ======== STDERR ========>>testtrygrep
|
||||||
|
type teststderrgrep >>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 38 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% ">\x00<" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 39 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -A1 "before the binary zero" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 40 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -B1 "after the binary zero" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 41 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -B1 -o "\w+ the binary zero" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 42 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -B1 -onH "\w+ the binary zero" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 43 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -on "before|zero|after" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 44 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -on -e before -ezero -e after ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 45 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -on -f ./testdata/greplist -e binary ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 46 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -e "unopened)" -e abc ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -eabc -e "(unclosed" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -eabc -e xyz -e "[unclosed" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --regex=123 -eabc -e xyz -e "[unclosed" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 47 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Fx AB.VE^
|
||||||
|
|
||||||
|
elephant ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 48 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -F AB.VE^
|
||||||
|
|
||||||
|
elephant ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 49 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -F -e DATA -e AB.VE^
|
||||||
|
|
||||||
|
elephant ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 50 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "^(abc|def|ghi|jkl)" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 51 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mv "brown\sfox" ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 52 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --colour=always jumps ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 53 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --file-offsets "before|zero|after" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 54 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --line-offsets "before|zero|after" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 55 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -f./testdata/greplist --color=always ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 56 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -c --exclude=grepinputC lazy ./testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 57 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -c -l --exclude=grepinputC lazy ./testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 58 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --regex=PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 59 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --regexp=PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 60 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --regex PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 61 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --regexp PATTERN ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 62 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --match-limit=1000 --no-jit -M "This is a file(.|\R)*file." ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 63 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --recursion-limit=1000 --no-jit -M "This is a file(.|\R)*file." ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 64 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o1 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 65 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o2 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 66 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o3 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 67 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o12 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 68 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --only-matching=2 "(?<=PAT)TERN (ap(pear)s)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 69 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -vn --colour=always pattern ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 70 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --color=always -M "triple:\t.*\n\n" ./testdata/grepinput3 & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --color=always -M -n "triple:\t.*\n\n" ./testdata/grepinput3 & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -M "triple:\t.*\n\n" ./testdata/grepinput3 & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -M -n "triple:\t.*\n\n" ./testdata/grepinput3 & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 71 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o "^01|^02|^03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 72 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --color=always "^01|^02|^03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 73 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o --colour=always "^01|^02|^03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 74 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o "^01|02|^03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 75 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --color=always "^01|02|^03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 76 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o --colour=always "^01|02|^03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 77 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o "^01|^02|03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 78 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --color=always "^01|^02|03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 79 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o --colour=always "^01|^02|03" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 80 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o "\b01|\b02" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 81 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --color=always "\b01|\b02" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 82 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o --colour=always "\b01|\b02" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 83 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --buffer-size=10 --max-buffer-size=100 "^a" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 84 ----------------------------->>testtrygrep
|
||||||
|
echo testdata/grepinput3 >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --file-list ./testdata/grepfilelist --file-list %builddir%\testtemp1grep "fox|complete|t7" & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 85 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --file-list=./testdata/grepfilelist "dolor" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 86 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 87 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% "cat" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 88 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -v "cat" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 89 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -I "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 90 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --binary-files=without-match "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 91 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -a "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 92 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --binary-files=text "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 93 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --text "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 94 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --include=grepinputx --include grepinput8 "fox" ./testdata/grepinput* | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 95 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --file-list ./testdata/grepfilelist --exclude grepinputv "fox|complete" & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 96 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --include-dir=testdata --exclude "^^(?^!grepinput)" --exclude=grepinput[MCU] "fox" ./test* | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 97 ----------------------------->>testtrygrep
|
||||||
|
echo grepinput$>testtemp1grep
|
||||||
|
echo grepinput8>>testtemp1grep
|
||||||
|
echo grepinputBad8>>testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --include=grepinput --exclude=grepinput[MCU] --exclude-from %builddir%\testtemp1grep --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 98 ----------------------------->>testtrygrep
|
||||||
|
echo grepinput$>testtemp1grep
|
||||||
|
echo grepinput8>>testtemp1grep
|
||||||
|
echo grepinputBad8>>testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --exclude=grepinput3 --exclude=grepinput[MCU] --include=grepinput --exclude-from %builddir%\testtemp1grep --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 99 ----------------------------->>testtrygrep
|
||||||
|
echo grepinput$>testtemp1grep
|
||||||
|
echo grepinput8>testtemp2grep
|
||||||
|
echo grepinputBad8>>testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -L -r --include grepinput --exclude=grepinput[MCU] --exclude-from %builddir%\testtemp1grep --exclude-from=%builddir%\testtemp2grep --exclude-dir="^\." "fox" ./testdata | sort & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 100 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Ho2 --only-matching=1 -o3 "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 101 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o3 -Ho2 -o12 --only-matching=1 -o3 --colour=always --om-separator="|" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 102 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -n "^$" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 103 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --only-matching "^$" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 104 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -n --only-matching "^$" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 105 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --colour=always "ipsum|" ./testdata/grepinput3 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 106 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & echo a| %pcre2grep% -M "|a" & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 107 ----------------------------->>testtrygrep
|
||||||
|
echo a>testtemp1grep
|
||||||
|
echo aaaaa>>testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --line-offsets --allow-lookaround-bsk "(?<=\Ka)" %builddir%\testtemp1grep & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 108 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -lq PATTERN ./testdata/grepinput ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 109 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -cq --exclude=grepinputC lazy ./testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 110 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --om-separator / -Mo0 -o1 -o2 "match (\d+):\n (.)\n" testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 111 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --line-offsets -M "match (\d+):\n (.)\n" testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 112 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --file-offsets -M "match (\d+):\n (.)\n" testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 113 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --total-count --exclude=grepinputC "the" testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 114 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -tc --exclude=grepinputC "the" testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 115 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -tlc --exclude=grepinputC "the" testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 116 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --exclude=grepinput[MCU] -th "the" testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 117 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -tch --exclude=grepinputC "the" testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 118 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -tL --exclude=grepinputC "the" testdata/grepinput* & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 119 ----------------------------->>testtrygrep
|
||||||
|
%printf% "123\n456\n789\n---abc\ndef\nxyz\n---\n" >testNinputgrep
|
||||||
|
%pcre2grep% -Mo "(\n|[^-])*---" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 120 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -HO "$0:$2$1$3" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -HO "$&:$2$1$3" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -m 1 -O "$0:$a$b$e$f$r$t$v" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -HO "${X}" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -HO "XX$" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -O "$x{12345678}" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -O "$x{123Z" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --output "$x{1234}" "(\w+) binary (\w+)(\.)?" ./testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 121 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -F "\E and (regex)" testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 122 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -w "cat|dog" testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 123 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -w "dog|cat" testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 124 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mn --colour=always "start[\s]+end" testdata/grepinputM & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mn --colour=always -A2 "start[\s]+end" testdata/grepinputM & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mn "start[\s]+end" testdata/grepinputM & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -Mn -A2 "start[\s]+end" testdata/grepinputM & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 125 ----------------------------->>testtrygrep
|
||||||
|
%printf% "abcd\n" >testNinputgrep
|
||||||
|
%pcre2grep% --colour=always --allow-lookaround-bsk "(?<=\K.)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --colour=always --allow-lookaround-bsk "(?=.\K)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --colour=always --allow-lookaround-bsk "(?<=\K[ac])" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --colour=always --allow-lookaround-bsk "(?=[ac]\K)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
set GREP_COLORS=ms=1;20
|
||||||
|
%pcre2grep% --colour=always --allow-lookaround-bsk "(?=[ac]\K)" testNinputgrep >>testtrygrep
|
||||||
|
set GREP_COLORS=
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 126 ----------------------------->>testtrygrep
|
||||||
|
%printf% "Next line pattern has binary zero\nABC\0XYZ\n" >testtemp1grep
|
||||||
|
%printf% "ABC\0XYZ\nABCDEF\nDEFABC\n" >testtemp2grep
|
||||||
|
%pcre2grep% -a -f testtemp1grep testtemp2grep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%printf% "Next line pattern is erroneous.\n^abc)(xy" >testtemp1grep
|
||||||
|
%pcre2grep% -a -f testtemp1grep testtemp2grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 127 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o --om-capture=0 "pattern()()()()" testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 128 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -m1M -o1 --om-capture=0 "pattern()()()()" testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 129 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -m 2 "fox" testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 130 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o -m2 "fox" testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 131 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -oc -m2 "fox" testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 132 ----------------------------->>testtrygrep
|
||||||
|
:: The Unix tests use fd3 here, but Windows only has StdIn/StdOut/StdErr (which, at the kernel
|
||||||
|
:: level, are not even numbered). Use a subshell instead.
|
||||||
|
(pushd %srcdir% & (%pcre2grep% -m1 -A3 "^match" & echo ---& head -1) <testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 133 ----------------------------->>testtrygrep
|
||||||
|
:: The Unix tests use fd3 here, but Windows only has StdIn/StdOut/StdErr (which, at the kernel
|
||||||
|
:: level, are not even numbered). Use a subshell instead.
|
||||||
|
(pushd %srcdir% & (%pcre2grep% -m1 -A3 "^match" & echo ---& %pcre2grep% -m1 -A3 "^match") <testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 134 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --max-count=1 -nH -O "=$x{41}$x423$o{103}$o1045=" "fox" - & popd) <%srcdir%\testdata\grepinputv >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 135 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -HZ "word" ./testdata/grepinputv & popd) | %trnull% >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -lZ "word" ./testdata/grepinputv ./testdata/grepinputv & popd) | %trnull% >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -A 1 -B 1 -HZ "word" ./testdata/grepinputv & popd) | %trnull% >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -MHZn "start[\s]+end" testdata/grepinputM & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 136 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -m1MK -o1 --om-capture=0 "pattern()()()()" testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --max-count=1MK -o1 --om-capture=0 "pattern()()()()" testdata/grepinput & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 137 ----------------------------->>testtrygrep
|
||||||
|
%printf% "Last line\nhas no newline" >testtemp1grep
|
||||||
|
%pcre2grep% -A1 Last testtemp1grep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 138 ----------------------------->>testtrygrep
|
||||||
|
%printf% "AbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\nAbC\n" >testtemp1grep
|
||||||
|
%pcre2grep% --no-jit --heap-limit=0 b testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 139 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --line-buffered "fox" testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 140 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --buffer-size=10 -A1 "brown" testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 141 ----------------------------->>testtrygrep
|
||||||
|
%printf% "%%s\testdata\grepinputv\n-\n" "%srcdir%" >testtemp1grep
|
||||||
|
%printf% "This is a line from stdin." >testtemp2grep
|
||||||
|
%pcre2grep% --file-list testtemp1grep "line from stdin" <testtemp2grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 142 ----------------------------->>testtrygrep
|
||||||
|
%printf% "/does/not/exist\n" >testtemp1grep
|
||||||
|
%printf% "This is a line from stdin." >testtemp2grep
|
||||||
|
%pcre2grep% --file-list testtemp1grep "line from stdin" >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 143 ----------------------------->>testtrygrep
|
||||||
|
%printf% "fox|cat" >testtemp1grep
|
||||||
|
%pcre2grep% -f - %srcdir%\testdata\grepinputv <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 144 ----------------------------->>testtrygrep
|
||||||
|
%pcre2grep% -f /non/exist %srcdir%\testdata\grepinputv >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 145 ----------------------------->>testtrygrep
|
||||||
|
%printf% "*meta*\rdog." >testtemp1grep
|
||||||
|
%pcre2grep% -Ncr -F -f testtemp1grep %srcdir%\testdata\grepinputv >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 146 ----------------------------->>testtrygrep
|
||||||
|
%printf% "A123B" >testtemp1grep
|
||||||
|
%pcre2grep% -H -e "123|fox" - <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -h -e "123|fox" - %srcdir%\testdata\grepinputv <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% - %srcdir%\testdata\grepinputv <testtemp1grep >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 147 ----------------------------->>testtrygrep
|
||||||
|
%pcre2grep% -e "123|fox" -- -nonfile >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 148 ----------------------------->>testtrygrep
|
||||||
|
%pcre2grep% --nonexist >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -n-n-bad >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --context >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --only-matching --output=xx >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --colour=badvalue >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --newline=badvalue >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -d badvalue >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -D badvalue >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --buffer-size=0 >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --exclude "(badpat" abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --exclude-from /non/exist abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --include-from /non/exist abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% --file-list=/non/exist abc /dev/null >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 149 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --binary-files=binary "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --binary-files=wrong "dog" ./testdata/grepbinary & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 150 ----------------------------->>testtrygrep
|
||||||
|
:: The Unix version of this tests checks for whether locales are supported. On Windows,
|
||||||
|
:: we assume they always are.
|
||||||
|
set LC_ALL=
|
||||||
|
set LC_CTYPE=locale.bad
|
||||||
|
(pushd %srcdir% & %pcre2grep% abc /dev/null & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
set LC_CTYPE=
|
||||||
|
|
||||||
|
echo ---------------------------- Test 151 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --colour=always -e this -e The -e "The wo" testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 152 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nA3 --group-separator="++" "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 153 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nA3 --no-group-separator "four" ./testdata/grepinputx & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 154 ----------------------------->>testtrygrep
|
||||||
|
echo. >nul 2>testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -f %builddir%\testtemp1grep ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 155 ----------------------------->>testtrygrep
|
||||||
|
echo. >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -f %builddir%\testtemp1grep ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 156 ----------------------------->>testtrygrep
|
||||||
|
%printf% "\n" >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --posix-pattern-file --file %builddir%\testtemp1grep ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 157 ----------------------------->>testtrygrep
|
||||||
|
%printf% "spaces \n" >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -o --posix-pattern-file --file=%builddir%\testtemp1grep ./testdata/grepinputv >%builddir%\testtemp2grep && %pcre2grep% -q "s " %builddir%\testtemp2grep & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 158 ----------------------------->>testtrygrep
|
||||||
|
%printf% "spaces.\n" >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -f %builddir%\testtemp1grep ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 159 ----------------------------->>testtrygrep
|
||||||
|
%printf% "spaces.\r\n" >testtemp1grep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --posix-pattern-file -f%builddir%\testtemp1grep ./testdata/grepinputv & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test 160 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -nC3 "^(ert|jkl)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -n -B4 -A2 "^(ert|dfg)" ./testdata/grepinput & popd) >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
:: Now compare the results.
|
||||||
|
|
||||||
|
%cf% %srcdir%\testdata\grepoutput testtrygrep %cfout%
|
||||||
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|
||||||
|
|
||||||
|
:: These tests require UTF-8 support
|
||||||
|
|
||||||
|
if %utf8% neq 0 (
|
||||||
|
echo Testing pcre2grep UTF-8 features
|
||||||
|
|
||||||
|
echo ---------------------------- Test U1 ------------------------------>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -n -u --newline=any "^X" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U2 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -n -u -C 3 --newline=any "Match" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U3 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% --line-offsets -u --newline=any --allow-lookaround-bsk "(?<=\K\x{17f})" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U4 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -u -o "...." ./testdata/grepinputBad8 & popd) >>testtrygrep 2>&1
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U5 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -U -o "...." ./testdata/grepinputBad8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U6 ----------------------------->>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -u -m1 -O "=$x{1d3}$o{744}=" "fox" & popd) <%srcdir%\testdata\grepinputv >>testtrygrep 2>&1
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U7 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -ui --colour=always "k+|\babc\b" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U8 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -UiEP --colour=always "k+|\babc\b" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U9 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -u --colour=always "A\d" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test U10 ------------------------------>>testtrygrep
|
||||||
|
(pushd %srcdir% & %pcre2grep% -u --posix-digit --colour=always "A\d" ./testdata/grepinput8 & popd) >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
%cf% %srcdir%\testdata\grepoutput8 testtrygrep %cfout%
|
||||||
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|
||||||
|
) else (
|
||||||
|
echo Skipping pcre2grep UTF-8 tests: no UTF-8 support in PCRE2 library
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
:: We go to some contortions to try to ensure that the tests for the various
|
||||||
|
:: newline settings will work in environments where the normal newline sequence
|
||||||
|
:: is not \n. Do not use exported files, whose line endings might be changed.
|
||||||
|
:: Instead, create an input file so that its contents are exactly what we want.
|
||||||
|
:: These tests are run in the build directory.
|
||||||
|
|
||||||
|
echo Testing pcre2grep newline settings
|
||||||
|
%printf% "abc\rdef\r\nghi\njkl" >testNinputgrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N1 ------------------------------>testtrygrep
|
||||||
|
%pcre2grep% -n -N CR "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -B1 -n -N CR "^def" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N2 ------------------------------>>testtrygrep
|
||||||
|
%pcre2grep% -n --newline=crlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -B1 -n -N CRLF "^ghi" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N3 ------------------------------>>testtrygrep
|
||||||
|
for /f %%a in ('%printf% "def\rjkl"') do set pattern=%%a
|
||||||
|
%pcre2grep% -n --newline=cr -F "!pattern!" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N4 ------------------------------>>testtrygrep
|
||||||
|
%pcre2grep% -n --newline=crlf -F -f %srcdir%\testdata\greppatN4 testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N5 ------------------------------>>testtrygrep
|
||||||
|
%pcre2grep% -n --newline=any "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -B1 -n --newline=any "^def" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N6 ------------------------------>>testtrygrep
|
||||||
|
%pcre2grep% -n --newline=anycrlf "^(abc|def|ghi|jkl)" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -B1 -n --newline=anycrlf "^jkl" testNinputgrep >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N7 ------------------------------>>testtrygrep
|
||||||
|
%printf% "xyz\0abc\0def" >testNinputgrep
|
||||||
|
%pcre2grep% -na --newline=nul "^(abc|def)" testNinputgrep | %trnull% >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
%pcre2grep% -B1 -na --newline=nul "^(abc|def)" testNinputgrep | %trnull% >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test N8 ------------------------------>>testtrygrep
|
||||||
|
%pcre2grep% -na --newline=anycrlf "^a" %srcdir%\testdata\grepinputBad8_Trail >>testtrygrep
|
||||||
|
echo RC=^%ERRORLEVEL%>>testtrygrep
|
||||||
|
|
||||||
|
%printf% "\n" >>testtrygrep
|
||||||
|
|
||||||
|
%cf% %srcdir%\testdata\grepoutputN testtrygrep %cfout%
|
||||||
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|
||||||
|
|
||||||
|
:: These newline tests need UTF support.
|
||||||
|
|
||||||
|
if %utf8% neq 0 (
|
||||||
|
echo Testing pcre2grep newline settings with UTF-8 features
|
||||||
|
|
||||||
|
echo ---------------------------- Test UN1 ------------------------------>testtrygrep
|
||||||
|
%pcre2grep% -nau --newline=anycrlf "^(abc|def)" %srcdir%\testdata\grepinputUN >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
echo ---------------------------- Test UN2 ------------------------------>testtrygrep
|
||||||
|
%pcre2grep% -nauU --newline=anycrlf "^a" %srcdir%\testdata\grepinputBad8_Trail >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
%printf% "\n" >>testtrygrep
|
||||||
|
|
||||||
|
%cf% %srcdir%\testdata\grepoutputUN testtrygrep %cfout%
|
||||||
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|
||||||
|
) else (
|
||||||
|
echo Skipping pcre2grep newline UTF-8 tests: no UTF-8 support in PCRE2 library
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
:: If pcre2grep supports script callouts, run some tests on them. It is possible
|
||||||
|
:: to restrict these callouts to the non-fork case, either for security, or for
|
||||||
|
:: environments that do not support fork(). This is handled by comparing to a
|
||||||
|
:: different output.
|
||||||
|
|
||||||
|
%pcre2grep% --help | %pcre2grep% -q "callout scripts in patterns are supported"
|
||||||
|
if %ERRORLEVEL% equ 0 (
|
||||||
|
echo Testing pcre2grep script callouts
|
||||||
|
|
||||||
|
echo --- Test 1 --->testtrygrep
|
||||||
|
%pcre2grep% "(T)(..(.))(?C'cmd|/c echo|Arg1: [$1] [$2] [$3]|Arg2: ^$|${1}^$| ($4) ($14) ($0)')()" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
echo --- Test 2 --->>testtrygrep
|
||||||
|
%pcre2grep% "(T)(..(.))()()()()()()()(..)(?C'cmd|/c echo|Arg1: [$11] [${11}]')" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
echo --- Test 3 --->>testtrygrep
|
||||||
|
%pcre2grep% "(T)(?C'|$0:$1$n')" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
echo --- Test 4 --->>testtrygrep
|
||||||
|
%pcre2grep% "(T)(?C'cscript|//nologo|printf.js|%%s\r\n|$0:$1$n')" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
echo --- Test 5 --->>testtrygrep
|
||||||
|
%pcre2grep% "(T)(?C'|$1$n')(*F)" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
echo --- Test 6 --->>testtrygrep
|
||||||
|
%pcre2grep% -m1 "(T)(?C'|$0:$1:$x{41}$o{101}$n')" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
%pcre2grep% --help | %pcre2grep% -q "Non-fork callout scripts in patterns are supported"
|
||||||
|
if ^!ERRORLEVEL! equ 0 (
|
||||||
|
set nonfork=1
|
||||||
|
%cf% %srcdir%\testdata\grepoutputCN testtrygrep %cfout%
|
||||||
|
) else (
|
||||||
|
set nonfork=0
|
||||||
|
%cf% %srcdir%\testdata\grepoutputC testtrygrep %cfout%
|
||||||
|
)
|
||||||
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|
||||||
|
@REM These callout tests need UTF support.
|
||||||
|
|
||||||
|
if %utf8% neq 0 (
|
||||||
|
echo Testing pcre2grep script callout with UTF-8 features
|
||||||
|
|
||||||
|
echo --- Test 1 --->testtrygrep
|
||||||
|
%pcre2grep% -u "(T)(?C'|$0:$x{a6}$n')" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
echo --- Test 2 --->>testtrygrep
|
||||||
|
%pcre2grep% -u "(T)(?C'cscript|//nologo|printf.js|%%s\r\n|$0:$x{a6}$n')" %srcdir%\testdata\grepinputv >>testtrygrep
|
||||||
|
echo RC=^!ERRORLEVEL!>>testtrygrep
|
||||||
|
|
||||||
|
if ^!nonfork! equ 1 (
|
||||||
|
%cf% %srcdir%\testdata\grepoutputCNU testtrygrep %cfout%
|
||||||
|
) else (
|
||||||
|
%cf% %srcdir%\testdata\grepoutputCU testtrygrep %cfout%
|
||||||
|
)
|
||||||
|
if ERRORLEVEL 1 exit /b 1
|
||||||
|
|
||||||
|
) else (
|
||||||
|
echo Skipping pcre2grep script callout UTF-8 tests: no UTF-8 support in PCRE2 library
|
||||||
|
)
|
||||||
|
|
||||||
|
) else (
|
||||||
|
echo Script callouts are not supported
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
:: Finally, some tests to exercise code that is not tested above, just to be
|
||||||
|
:: sure that it runs OK. Doing this improves the coverage statistics. The output
|
||||||
|
:: is not checked.
|
||||||
|
|
||||||
|
echo Testing miscellaneous pcre2grep arguments (unchecked)
|
||||||
|
echo. >nul 2>testtrygrep
|
||||||
|
call :checkspecial "-xxxxx" 2 || exit /b 1
|
||||||
|
call :checkspecial "--help" 0 || exit /b 1
|
||||||
|
call :checkspecial "--line-buffered --colour=auto abc nul" 1 || exit /b 1
|
||||||
|
call :checkspecial "--line-buffered --color abc nul" 1 || exit /b 1
|
||||||
|
call :checkspecial "-dskip abc ." 1 || exit /b 1
|
||||||
|
call :checkspecial "-Dread -Dskip abc nul" 1 || exit /b 1
|
||||||
|
|
||||||
|
|
||||||
|
:: Clean up local working files
|
||||||
|
del testcf printf.js trnull.js testNinputgrep teststderrgrep testtrygrep testtemp1grep testtemp2grep
|
||||||
|
|
||||||
|
exit /b 0
|
||||||
|
|
||||||
|
:: ------ Function to run and check a special pcre2grep arguments test -------
|
||||||
|
|
||||||
|
:checkspecial
|
||||||
|
%pcre2grep% %~1 >>testtrygrep 2>&1
|
||||||
|
if %ERRORLEVEL% neq %2 (
|
||||||
|
echo ** pcre2grep %~1 failed - check testtrygrep
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
exit /b 0
|
||||||
|
|
||||||
|
:: End
|
||||||
947
3rd/pcre2/RunTest
Normal file
947
3rd/pcre2/RunTest
Normal file
@@ -0,0 +1,947 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Run the PCRE2 tests using the pcre2test program. The appropriate tests are
|
||||||
|
# selected, depending on which build-time options were used.
|
||||||
|
#
|
||||||
|
# When JIT support is available, all appropriate tests are run with and without
|
||||||
|
# JIT, unless "-nojit" is given on the command line. There are also two tests
|
||||||
|
# for JIT-specific features, one to be run when JIT support is available
|
||||||
|
# (unless "-nojit" is specified), and one when it is not.
|
||||||
|
#
|
||||||
|
# Whichever of the 8-, 16- and 32-bit libraries exist are tested. It is also
|
||||||
|
# possible to select which to test by giving "-8", "-16" or "-32" on the
|
||||||
|
# command line.
|
||||||
|
#
|
||||||
|
# As well as "-nojit", "-8", "-16", and "-32", arguments for this script are
|
||||||
|
# individual test numbers, ranges of tests such as 3-6 or 3- (meaning 3 to the
|
||||||
|
# end), or a number preceded by ~ to exclude a test. For example, "3-15 ~10"
|
||||||
|
# runs tests 3 to 15, excluding test 10, and just "~10" runs all the tests
|
||||||
|
# except test 10. Whatever order the arguments are in, these tests are always
|
||||||
|
# run in numerical order.
|
||||||
|
#
|
||||||
|
# If no specific tests are selected (which is the case when this script is run
|
||||||
|
# via 'make check') the default is to run all the numbered tests.
|
||||||
|
#
|
||||||
|
# There may also be named (as well as numbered) tests for special purposes. At
|
||||||
|
# present there is just one, called "heap". This test's output contains the
|
||||||
|
# sizes of heap frames and frame vectors, which depend on the environment. It
|
||||||
|
# is therefore not run unless explicitly requested.
|
||||||
|
#
|
||||||
|
# Inappropriate tests are automatically skipped (with a comment to say so). For
|
||||||
|
# example, if JIT support is not compiled, test 16 is skipped, whereas if JIT
|
||||||
|
# support is compiled, test 15 is skipped.
|
||||||
|
#
|
||||||
|
# Other arguments can be one of the words "-valgrind", "-valgrind-log", or
|
||||||
|
# "-sim" followed by an argument to run cross-compiled executables under a
|
||||||
|
# simulator, for example:
|
||||||
|
#
|
||||||
|
# RunTest 3 -sim "qemu-arm -s 8388608"
|
||||||
|
#
|
||||||
|
# For backwards compatibility, -nojit, -valgrind, -valgrind-log, and -sim may
|
||||||
|
# be given without the leading "-" character.
|
||||||
|
#
|
||||||
|
# When PCRE2 is compiled by clang with -fsanitize arguments, some tests need
|
||||||
|
# very much more stack than normal. In environments where the stack can be
|
||||||
|
# set at runtime, -bigstack sets a gigantic stack.
|
||||||
|
#
|
||||||
|
# There are two special cases where only one argument is allowed:
|
||||||
|
#
|
||||||
|
# If the first and only argument is "ebcdic", the script runs the special
|
||||||
|
# EBCDIC test that can be useful for checking certain EBCDIC features, even
|
||||||
|
# when run in an ASCII environment. PCRE2 must be built with EBCDIC support for
|
||||||
|
# this test to be run.
|
||||||
|
#
|
||||||
|
# If the script is obeyed as "RunTest list", a list of available tests is
|
||||||
|
# output, but none of them are run.
|
||||||
|
###############################################################################
|
||||||
|
|
||||||
|
# Define test titles in variables so that they can be output as a list. Some
|
||||||
|
# of them are modified (e.g. with -8 or -16) when used in the actual tests.
|
||||||
|
|
||||||
|
title0="Test 0: Unchecked pcre2test argument tests (to improve coverage)"
|
||||||
|
title1="Test 1: Main non-UTF, non-UCP functionality (compatible with Perl >= 5.10)"
|
||||||
|
title2="Test 2: API, errors, internals and non-Perl stuff"
|
||||||
|
title3="Test 3: Locale-specific features"
|
||||||
|
title4A="Test 4: UTF"
|
||||||
|
title4B=" and Unicode property support (compatible with Perl >= 5.10)"
|
||||||
|
title5A="Test 5: API, internals, and non-Perl stuff for UTF"
|
||||||
|
title5B=" and UCP support"
|
||||||
|
title6="Test 6: DFA matching main non-UTF, non-UCP functionality"
|
||||||
|
title7A="Test 7: DFA matching with UTF"
|
||||||
|
title7B=" and Unicode property support"
|
||||||
|
title8="Test 8: Internal offsets and code size tests"
|
||||||
|
title9="Test 9: Specials for the basic 8-bit library"
|
||||||
|
title10="Test 10: Specials for the 8-bit library with UTF-8 and UCP support"
|
||||||
|
title11="Test 11: Specials for the basic 16-bit and 32-bit libraries"
|
||||||
|
title12="Test 12: Specials for the 16-bit and 32-bit libraries UTF and UCP support"
|
||||||
|
title13="Test 13: DFA specials for the basic 16-bit and 32-bit libraries"
|
||||||
|
title14="Test 14: DFA specials for UTF and UCP support"
|
||||||
|
title15="Test 15: Non-JIT limits and other non-JIT tests"
|
||||||
|
title16="Test 16: JIT-specific features when JIT is not available"
|
||||||
|
title17="Test 17: JIT-specific features when JIT is available"
|
||||||
|
title18="Test 18: Tests of the POSIX interface, excluding UTF/UCP"
|
||||||
|
title19="Test 19: Tests of the POSIX interface with UTF/UCP"
|
||||||
|
title20="Test 20: Serialization and code copy tests"
|
||||||
|
title21="Test 21: \C tests without UTF (supported for DFA matching)"
|
||||||
|
title22="Test 22: \C tests with UTF (not supported for DFA matching)"
|
||||||
|
title23="Test 23: \C disabled test"
|
||||||
|
title24="Test 24: Non-UTF pattern conversion tests"
|
||||||
|
title25="Test 25: UTF pattern conversion tests"
|
||||||
|
title26="Test 26: Unicode property tests (compatible with Perl >= 5.38)"
|
||||||
|
title27="Test 27: Auto-generated unicode property tests"
|
||||||
|
maxtest=27
|
||||||
|
titleheap="Test 'heap': Environment-specific heap tests"
|
||||||
|
|
||||||
|
if [ $# -eq 1 -a "$1" = "list" ]; then
|
||||||
|
echo $title0
|
||||||
|
echo $title1
|
||||||
|
echo $title2 "(not UTF or UCP)"
|
||||||
|
echo $title3
|
||||||
|
echo $title4A $title4B
|
||||||
|
echo $title5A $title5B
|
||||||
|
echo $title6
|
||||||
|
echo $title7A $title7B
|
||||||
|
echo $title8
|
||||||
|
echo $title9
|
||||||
|
echo $title10
|
||||||
|
echo $title11
|
||||||
|
echo $title12
|
||||||
|
echo $title13
|
||||||
|
echo $title14
|
||||||
|
echo $title15
|
||||||
|
echo $title16
|
||||||
|
echo $title17
|
||||||
|
echo $title18
|
||||||
|
echo $title19
|
||||||
|
echo $title20
|
||||||
|
echo $title21
|
||||||
|
echo $title22
|
||||||
|
echo $title23
|
||||||
|
echo $title24
|
||||||
|
echo $title25
|
||||||
|
echo $title26
|
||||||
|
echo $title27
|
||||||
|
echo ""
|
||||||
|
echo $titleheap
|
||||||
|
echo ""
|
||||||
|
echo "Numbered tests are automatically run if nothing selected."
|
||||||
|
echo "Named tests must be explicitly selected."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set up a suitable "diff" command for comparison. Some systems
|
||||||
|
# have a diff that lacks a -u option. Try to deal with this.
|
||||||
|
|
||||||
|
cf="diff"
|
||||||
|
diff -u /dev/null /dev/null 2>/dev/null && cf="diff -u"
|
||||||
|
|
||||||
|
# Find the test data
|
||||||
|
|
||||||
|
if [ -n "$srcdir" -a -d "$srcdir" ] ; then
|
||||||
|
testdata="$srcdir/testdata"
|
||||||
|
elif [ -d "./testdata" ] ; then
|
||||||
|
testdata=./testdata
|
||||||
|
elif [ -d "../testdata" ] ; then
|
||||||
|
testdata=../testdata
|
||||||
|
else
|
||||||
|
echo "Cannot find the testdata directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Function to check results of a test -------
|
||||||
|
|
||||||
|
# This function is called with three parameters:
|
||||||
|
#
|
||||||
|
# $1 the value of $? after a call to pcre2test
|
||||||
|
# $2 the suffix of the output file to compare with
|
||||||
|
# $3 the $opt value (empty, -jit, or -dfa)
|
||||||
|
#
|
||||||
|
# Note: must define using name(), not "function name", for Solaris.
|
||||||
|
|
||||||
|
checkresult()
|
||||||
|
{
|
||||||
|
if [ $1 -ne 0 ] ; then
|
||||||
|
echo "** pcre2test failed - check testtry"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
case "$3" in
|
||||||
|
-jit) with=" with JIT";;
|
||||||
|
-dfa) with=" with DFA";;
|
||||||
|
*) with="";;
|
||||||
|
esac
|
||||||
|
$cf $testdata/testoutput$2 testtry
|
||||||
|
if [ $? != 0 ] ; then
|
||||||
|
echo ""
|
||||||
|
echo "** Test $2 failed$with"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo " OK$with"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Function to run and check a special pcre2test arguments test -------
|
||||||
|
|
||||||
|
checkspecial()
|
||||||
|
{
|
||||||
|
$sim $valgrind $vjs $pcre2test $1 >>testtry
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
echo "** pcre2test $1 failed - check testtry"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Test setup ------
|
||||||
|
|
||||||
|
# Default values
|
||||||
|
|
||||||
|
arg8=
|
||||||
|
arg16=
|
||||||
|
arg32=
|
||||||
|
nojit=
|
||||||
|
bigstack=
|
||||||
|
sim=
|
||||||
|
skip=
|
||||||
|
valgrind=
|
||||||
|
vjs=
|
||||||
|
: ${pcre2test:=./pcre2test}
|
||||||
|
|
||||||
|
# This is in case the caller has set aliases (as I do - PH)
|
||||||
|
unset cp ls mv rm
|
||||||
|
|
||||||
|
if [ ! -x $pcre2test ] ; then
|
||||||
|
echo "** $pcre2test does not exist or is not executable."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Process options and select which tests to run; for those that are explicitly
|
||||||
|
# requested, check that the necessary optional facilities are available.
|
||||||
|
|
||||||
|
do0=no
|
||||||
|
do1=no
|
||||||
|
do2=no
|
||||||
|
do3=no
|
||||||
|
do4=no
|
||||||
|
do5=no
|
||||||
|
do6=no
|
||||||
|
do7=no
|
||||||
|
do8=no
|
||||||
|
do9=no
|
||||||
|
do10=no
|
||||||
|
do11=no
|
||||||
|
do12=no
|
||||||
|
do13=no
|
||||||
|
do14=no
|
||||||
|
do15=no
|
||||||
|
do16=no
|
||||||
|
do17=no
|
||||||
|
do18=no
|
||||||
|
do19=no
|
||||||
|
do20=no
|
||||||
|
do21=no
|
||||||
|
do22=no
|
||||||
|
do23=no
|
||||||
|
do24=no
|
||||||
|
do25=no
|
||||||
|
do26=no
|
||||||
|
do27=no
|
||||||
|
doheap=no
|
||||||
|
doebcdic=no
|
||||||
|
|
||||||
|
while [ $# -gt 0 ] ; do
|
||||||
|
case $1 in
|
||||||
|
0) do0=yes;;
|
||||||
|
1) do1=yes;;
|
||||||
|
2) do2=yes;;
|
||||||
|
3) do3=yes;;
|
||||||
|
4) do4=yes;;
|
||||||
|
5) do5=yes;;
|
||||||
|
6) do6=yes;;
|
||||||
|
7) do7=yes;;
|
||||||
|
8) do8=yes;;
|
||||||
|
9) do9=yes;;
|
||||||
|
10) do10=yes;;
|
||||||
|
11) do11=yes;;
|
||||||
|
12) do12=yes;;
|
||||||
|
13) do13=yes;;
|
||||||
|
14) do14=yes;;
|
||||||
|
15) do15=yes;;
|
||||||
|
16) do16=yes;;
|
||||||
|
17) do17=yes;;
|
||||||
|
18) do18=yes;;
|
||||||
|
19) do19=yes;;
|
||||||
|
20) do20=yes;;
|
||||||
|
21) do21=yes;;
|
||||||
|
22) do22=yes;;
|
||||||
|
23) do23=yes;;
|
||||||
|
24) do24=yes;;
|
||||||
|
25) do25=yes;;
|
||||||
|
26) do26=yes;;
|
||||||
|
27) do27=yes;;
|
||||||
|
heap) doheap=yes;;
|
||||||
|
ebcdic) doebcdic=yes;;
|
||||||
|
-8) arg8=yes;;
|
||||||
|
-16) arg16=yes;;
|
||||||
|
-32) arg32=yes;;
|
||||||
|
bigstack|-bigstack) bigstack=yes;;
|
||||||
|
nojit|-nojit) nojit=yes;;
|
||||||
|
sim|-sim) shift; sim=$1;;
|
||||||
|
valgrind|-valgrind) valgrind="valgrind --tool=memcheck -q --smc-check=all-non-file --error-exitcode=70";;
|
||||||
|
valgrind-log|-valgrind-log) valgrind="valgrind --tool=memcheck --num-callers=30 --leak-check=no --error-limit=no --smc-check=all-non-file --log-file=report.%p ";;
|
||||||
|
~*)
|
||||||
|
if expr "$1" : '~[0-9][0-9]*$' >/dev/null; then
|
||||||
|
skip="$skip `expr "$1" : '~\([0-9]*\)*$'`"
|
||||||
|
else
|
||||||
|
echo "Unknown option or test selector '$1'"; exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*-*)
|
||||||
|
if expr "$1" : '[0-9][0-9]*-[0-9]*$' >/dev/null; then
|
||||||
|
tf=`expr "$1" : '\([0-9]*\)'`
|
||||||
|
tt=`expr "$1" : '.*-\([0-9]*\)'`
|
||||||
|
if [ "$tt" = "" ] ; then tt=$maxtest; fi
|
||||||
|
if expr \( "$tt" ">" "$maxtest" \) >/dev/null; then
|
||||||
|
echo "Invalid test range '$1'"; exit 1
|
||||||
|
fi
|
||||||
|
while expr "$tf" "<=" "$tt" >/dev/null; do
|
||||||
|
eval do${tf}=yes
|
||||||
|
tf=`expr $tf + 1`
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Invalid test range '$1'"; exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*) echo "Unknown option or test selector '$1'"; exit 1;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
# Find which optional facilities are available.
|
||||||
|
|
||||||
|
$sim $pcre2test -C linksize >/dev/null
|
||||||
|
link_size=$?
|
||||||
|
if [ $link_size -lt 2 ] ; then
|
||||||
|
echo "RunTest: Failed to find internal link size"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ $link_size -gt 4 ] ; then
|
||||||
|
echo "RunTest: Failed to find internal link size"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If it is possible to set the system stack size and -bigstack was given,
|
||||||
|
# set up a large stack.
|
||||||
|
|
||||||
|
$sim $pcre2test -S 32 /dev/null /dev/null
|
||||||
|
support_setstack=$?
|
||||||
|
if [ $support_setstack -eq 0 -a "$bigstack" != "" ] ; then
|
||||||
|
setstack="-S 32"
|
||||||
|
else
|
||||||
|
setstack=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# All of 8-bit, 16-bit, and 32-bit character strings may be supported, but only
|
||||||
|
# one need be.
|
||||||
|
|
||||||
|
$sim $pcre2test -C pcre2-8 >/dev/null
|
||||||
|
support8=$?
|
||||||
|
$sim $pcre2test -C pcre2-16 >/dev/null
|
||||||
|
support16=$?
|
||||||
|
$sim $pcre2test -C pcre2-32 >/dev/null
|
||||||
|
support32=$?
|
||||||
|
|
||||||
|
# \C may be disabled
|
||||||
|
|
||||||
|
$sim $pcre2test -C backslash-C >/dev/null
|
||||||
|
supportBSC=$?
|
||||||
|
|
||||||
|
# Initialize all bitsizes skipped
|
||||||
|
|
||||||
|
test8=skip
|
||||||
|
test16=skip
|
||||||
|
test32=skip
|
||||||
|
|
||||||
|
# If no bitsize arguments, select all that are available
|
||||||
|
|
||||||
|
if [ "$arg8$arg16$arg32" = "" ] ; then
|
||||||
|
if [ $support8 -ne 0 ] ; then
|
||||||
|
test8=-8
|
||||||
|
fi
|
||||||
|
if [ $support16 -ne 0 ] ; then
|
||||||
|
test16=-16
|
||||||
|
fi
|
||||||
|
if [ $support32 -ne 0 ] ; then
|
||||||
|
test32=-32
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Otherwise, select requested bit sizes
|
||||||
|
|
||||||
|
else
|
||||||
|
if [ "$arg8" = yes ] ; then
|
||||||
|
if [ $support8 -eq 0 ] ; then
|
||||||
|
echo "Cannot run 8-bit library tests: 8-bit library not compiled"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
test8=-8
|
||||||
|
fi
|
||||||
|
if [ "$arg16" = yes ] ; then
|
||||||
|
if [ $support16 -eq 0 ] ; then
|
||||||
|
echo "Cannot run 16-bit library tests: 16-bit library not compiled"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
test16=-16
|
||||||
|
fi
|
||||||
|
if [ "$arg32" = yes ] ; then
|
||||||
|
if [ $support32 -eq 0 ] ; then
|
||||||
|
echo "Cannot run 32-bit library tests: 32-bit library not compiled"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
test32=-32
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# UTF support is implied by Unicode support, and it always applies to all bit
|
||||||
|
# sizes if both are supported; we can't have UTF-8 support without UTF-16 or
|
||||||
|
# UTF-32 support.
|
||||||
|
|
||||||
|
$sim $pcre2test -C unicode >/dev/null
|
||||||
|
utf=$?
|
||||||
|
|
||||||
|
# When JIT is used with valgrind, we need to set up valgrind suppressions as
|
||||||
|
# otherwise there are a lot of false positive valgrind reports when the
|
||||||
|
# the hardware supports SSE2.
|
||||||
|
|
||||||
|
jitopt=
|
||||||
|
$sim $pcre2test -C jit >/dev/null
|
||||||
|
jit=$?
|
||||||
|
if [ $jit -ne 0 -a "$nojit" != "yes" ] ; then
|
||||||
|
jitopt=-jit
|
||||||
|
if [ "$valgrind" != "" ] ; then
|
||||||
|
vjs="--suppressions=$testdata/valgrind-jit.supp"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If no specific tests were requested, select all the numbered tests. Those
|
||||||
|
# that are not relevant will be automatically skipped.
|
||||||
|
|
||||||
|
if [ $do0 = no -a $do1 = no -a $do2 = no -a $do3 = no -a \
|
||||||
|
$do4 = no -a $do5 = no -a $do6 = no -a $do7 = no -a \
|
||||||
|
$do8 = no -a $do9 = no -a $do10 = no -a $do11 = no -a \
|
||||||
|
$do12 = no -a $do13 = no -a $do14 = no -a $do15 = no -a \
|
||||||
|
$do16 = no -a $do17 = no -a $do18 = no -a $do19 = no -a \
|
||||||
|
$do20 = no -a $do21 = no -a $do22 = no -a $do23 = no -a \
|
||||||
|
$do24 = no -a $do25 = no -a $do26 = no -a $do27 = no -a \
|
||||||
|
$doheap = no -a $doebcdic = no \
|
||||||
|
]; then
|
||||||
|
do0=yes
|
||||||
|
do1=yes
|
||||||
|
do2=yes
|
||||||
|
do3=yes
|
||||||
|
do4=yes
|
||||||
|
do5=yes
|
||||||
|
do6=yes
|
||||||
|
do7=yes
|
||||||
|
do8=yes
|
||||||
|
do9=yes
|
||||||
|
do10=yes
|
||||||
|
do11=yes
|
||||||
|
do12=yes
|
||||||
|
do13=yes
|
||||||
|
do14=yes
|
||||||
|
do15=yes
|
||||||
|
do16=yes
|
||||||
|
do17=yes
|
||||||
|
do18=yes
|
||||||
|
do19=yes
|
||||||
|
do20=yes
|
||||||
|
do21=yes
|
||||||
|
do22=yes
|
||||||
|
do23=yes
|
||||||
|
do24=yes
|
||||||
|
do25=yes
|
||||||
|
do26=yes
|
||||||
|
do27=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle any explicit skips at this stage, so that an argument list may consist
|
||||||
|
# only of explicit skips.
|
||||||
|
|
||||||
|
for i in $skip; do eval do$i=no; done
|
||||||
|
|
||||||
|
# Show which release and which test data
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo PCRE2 C library tests using test data from $testdata
|
||||||
|
$sim $pcre2test /dev/null
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Normal Tests ------
|
||||||
|
|
||||||
|
for bmode in "$test8" "$test16" "$test32"; do
|
||||||
|
case "$bmode" in
|
||||||
|
skip) continue;;
|
||||||
|
-16) if [ "$test8$test32" != "skipskip" ] ; then echo ""; fi
|
||||||
|
bits=16; echo "---- Testing 16-bit library ----"; echo "";;
|
||||||
|
-32) if [ "$test8$test16" != "skipskip" ] ; then echo ""; fi
|
||||||
|
bits=32; echo "---- Testing 32-bit library ----"; echo "";;
|
||||||
|
-8) bits=8; echo "---- Testing 8-bit library ----"; echo "";;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Test 0 is a special test. Its output is not checked, because it will
|
||||||
|
# be different on different hardware and with different configurations.
|
||||||
|
# Running this test just exercises the code.
|
||||||
|
|
||||||
|
if [ $do0 = yes ] ; then
|
||||||
|
echo $title0
|
||||||
|
echo '/abc/jit,memory,framesize' >testSinput
|
||||||
|
echo ' abc' >>testSinput
|
||||||
|
echo '' >testtry
|
||||||
|
checkspecial '-C'
|
||||||
|
checkspecial '--help'
|
||||||
|
if [ $support_setstack -eq 0 ] ; then
|
||||||
|
checkspecial '-S 1 -t 10 testSinput'
|
||||||
|
fi
|
||||||
|
echo " OK"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Primary non-UTF test, compatible with JIT and all versions of Perl >= 5.8
|
||||||
|
|
||||||
|
if [ $do1 = yes ] ; then
|
||||||
|
echo $title1
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput1 testtry
|
||||||
|
checkresult $? 1 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# PCRE2 tests that are not Perl-compatible: API, errors, internals. We copy
|
||||||
|
# the testbtables file to the current directory for use by this test.
|
||||||
|
|
||||||
|
if [ $do2 = yes ] ; then
|
||||||
|
echo $title2 "(excluding UTF-$bits)"
|
||||||
|
cp $testdata/testbtables .
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput2 testtry
|
||||||
|
saverc=$?
|
||||||
|
if [ $saverc = 0 ] ; then
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $bmode $opt -error -80,-62,-2,-1,0,100,101,191,300 >>testtry
|
||||||
|
checkresult $? 2 "$opt"
|
||||||
|
else
|
||||||
|
checkresult $saverc 2 "$opt"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Locale-specific tests, provided that either the "fr_FR", "fr_CA", "french"
|
||||||
|
# or "fr" locale is available. The first two are Unix-like standards; the
|
||||||
|
# last two are for Windows. Unfortunately, different versions of the French
|
||||||
|
# locale give different outputs for some items. This test passes if the
|
||||||
|
# output matches any one of the alternative output files.
|
||||||
|
|
||||||
|
if [ $do3 = yes ] ; then
|
||||||
|
locale=
|
||||||
|
|
||||||
|
# In some environments locales that are listed by the "locale -a"
|
||||||
|
# command do not seem to work with setlocale(). Therefore, we do
|
||||||
|
# a preliminary test to see if pcre2test can set one before going
|
||||||
|
# on to use it.
|
||||||
|
|
||||||
|
for loc in 'fr_FR' 'french' 'fr' 'fr_CA'; do
|
||||||
|
locale -a | grep "^$loc\$" >/dev/null
|
||||||
|
if [ $? -eq 0 ] ; then
|
||||||
|
echo "/a/locale=$loc" | \
|
||||||
|
$sim $valgrind $pcre2test -q $bmode | \
|
||||||
|
grep "Failed to set locale" >/dev/null
|
||||||
|
if [ $? -ne 0 ] ; then
|
||||||
|
locale=$loc
|
||||||
|
if [ "$locale" = "fr_FR" ] ; then
|
||||||
|
infile=$testdata/testinput3
|
||||||
|
outfile=$testdata/testoutput3
|
||||||
|
outfile2=$testdata/testoutput3A
|
||||||
|
outfile3=$testdata/testoutput3B
|
||||||
|
else
|
||||||
|
infile=test3input
|
||||||
|
outfile=test3output
|
||||||
|
outfile2=test3outputA
|
||||||
|
outfile3=test3outputB
|
||||||
|
sed "s/fr_FR/$loc/" $testdata/testinput3 >test3input
|
||||||
|
sed "s/fr_FR/$loc/" $testdata/testoutput3 >test3output
|
||||||
|
sed "s/fr_FR/$loc/" $testdata/testoutput3A >test3outputA
|
||||||
|
sed "s/fr_FR/$loc/" $testdata/testoutput3B >test3outputB
|
||||||
|
fi
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$locale" != "" ] ; then
|
||||||
|
echo $title3 "(using '$locale' locale)"
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $infile testtry
|
||||||
|
if [ $? = 0 ] ; then
|
||||||
|
case "$opt" in
|
||||||
|
-jit) with=" with JIT";;
|
||||||
|
*) with="";;
|
||||||
|
esac
|
||||||
|
if $cf $outfile testtry >teststdout || \
|
||||||
|
$cf $outfile2 testtry >teststdout || \
|
||||||
|
$cf $outfile3 testtry >teststdout
|
||||||
|
then
|
||||||
|
echo " OK$with"
|
||||||
|
else
|
||||||
|
echo "** Locale test did not run successfully$with. The output did not match"
|
||||||
|
echo " $outfile, $outfile2 or $outfile3."
|
||||||
|
echo " This may mean that there is a problem with the locale settings rather"
|
||||||
|
echo " than a bug in PCRE2."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Cannot test locale-specific features - none of the 'fr_FR', 'fr_CA',"
|
||||||
|
echo "'fr' or 'french' locales can be set, or the \"locale\" command is"
|
||||||
|
echo "not available to check for them."
|
||||||
|
echo " "
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for UTF and Unicode property support
|
||||||
|
|
||||||
|
if [ $do4 = yes ] ; then
|
||||||
|
echo ${title4A}-${bits}${title4B}
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput4 testtry
|
||||||
|
checkresult $? 4 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $do5 = yes ] ; then
|
||||||
|
echo ${title5A}-${bits}$title5B
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput5 testtry
|
||||||
|
checkresult $? 5 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for DFA matching support
|
||||||
|
|
||||||
|
if [ $do6 = yes ] ; then
|
||||||
|
echo $title6
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput6 testtry
|
||||||
|
checkresult $? 6 ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $do7 = yes ] ; then
|
||||||
|
echo ${title7A}-${bits}$title7B
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $opt $testdata/testinput7 testtry
|
||||||
|
checkresult $? 7 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test of internal offsets and code sizes. This test is run only when there
|
||||||
|
# is UTF/UCP support. The actual tests are mostly the same as in some of the
|
||||||
|
# above, but in this test we inspect some offsets and sizes. This is a
|
||||||
|
# doublecheck for the maintainer, just in case something changes unexpectedly.
|
||||||
|
# The output from this test is different in 8-bit, 16-bit, and 32-bit modes
|
||||||
|
# and for different link sizes, so there are different output files for each
|
||||||
|
# mode and link size.
|
||||||
|
|
||||||
|
if [ $do8 = yes ] ; then
|
||||||
|
echo $title8
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput8 testtry
|
||||||
|
checkresult $? 8-$bits-$link_size ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for 8-bit-specific features
|
||||||
|
|
||||||
|
if [ "$do9" = yes ] ; then
|
||||||
|
echo $title9
|
||||||
|
if [ "$bits" = "16" -o "$bits" = "32" ] ; then
|
||||||
|
echo " Skipped when running 16/32-bit tests"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput9 testtry
|
||||||
|
checkresult $? 9 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for UTF-8 and UCP 8-bit-specific features
|
||||||
|
|
||||||
|
if [ "$do10" = yes ] ; then
|
||||||
|
echo $title10
|
||||||
|
if [ "$bits" = "16" -o "$bits" = "32" ] ; then
|
||||||
|
echo " Skipped when running 16/32-bit tests"
|
||||||
|
elif [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput10 testtry
|
||||||
|
checkresult $? 10 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for 16-bit and 32-bit features. Output is different for the two widths.
|
||||||
|
|
||||||
|
if [ $do11 = yes ] ; then
|
||||||
|
echo $title11
|
||||||
|
if [ "$bits" = "8" ] ; then
|
||||||
|
echo " Skipped when running 8-bit tests"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput11 testtry
|
||||||
|
checkresult $? 11-$bits "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for 16-bit and 32-bit features with UTF-16/32 and UCP support. Output
|
||||||
|
# is different for the two widths.
|
||||||
|
|
||||||
|
if [ $do12 = yes ] ; then
|
||||||
|
echo $title12
|
||||||
|
if [ "$bits" = "8" ] ; then
|
||||||
|
echo " Skipped when running 8-bit tests"
|
||||||
|
elif [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput12 testtry
|
||||||
|
checkresult $? 12-$bits "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for 16/32-bit-specific features in DFA non-UTF modes
|
||||||
|
|
||||||
|
if [ $do13 = yes ] ; then
|
||||||
|
echo $title13
|
||||||
|
if [ "$bits" = "8" ] ; then
|
||||||
|
echo " Skipped when running 8-bit tests"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput13 testtry
|
||||||
|
checkresult $? 13 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for DFA UTF and UCP features. Output is different for the different widths.
|
||||||
|
|
||||||
|
if [ $do14 = yes ] ; then
|
||||||
|
echo $title14
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $opt $testdata/testinput14 testtry
|
||||||
|
checkresult $? 14-$bits ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test non-JIT match and recursion limits
|
||||||
|
|
||||||
|
if [ $do15 = yes ] ; then
|
||||||
|
echo $title15
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput15 testtry
|
||||||
|
checkresult $? 15 ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test JIT-specific features when JIT is not available
|
||||||
|
|
||||||
|
if [ $do16 = yes ] ; then
|
||||||
|
echo $title16
|
||||||
|
if [ $jit -ne 0 ] ; then
|
||||||
|
echo " Skipped because JIT is available"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput16 testtry
|
||||||
|
checkresult $? 16 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test JIT-specific features when JIT is available
|
||||||
|
|
||||||
|
if [ $do17 = yes ] ; then
|
||||||
|
echo $title17
|
||||||
|
if [ $jit -eq 0 -o "$nojit" = "yes" ] ; then
|
||||||
|
echo " Skipped because JIT is not available or nojit was specified"
|
||||||
|
else
|
||||||
|
$sim $valgrind $vjs $pcre2test -q $setstack $bmode $testdata/testinput17 testtry
|
||||||
|
checkresult $? 17 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for the POSIX interface without UTF/UCP (8-bit only)
|
||||||
|
|
||||||
|
if [ $do18 = yes ] ; then
|
||||||
|
echo $title18
|
||||||
|
if [ "$bits" = "16" -o "$bits" = "32" ] ; then
|
||||||
|
echo " Skipped when running 16/32-bit tests"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput18 testtry
|
||||||
|
checkresult $? 18 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Tests for the POSIX interface with UTF/UCP (8-bit only)
|
||||||
|
|
||||||
|
if [ $do19 = yes ] ; then
|
||||||
|
echo $title19
|
||||||
|
if [ "$bits" = "16" -o "$bits" = "32" ] ; then
|
||||||
|
echo " Skipped when running 16/32-bit tests"
|
||||||
|
elif [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput19 testtry
|
||||||
|
checkresult $? 19 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Serialization tests
|
||||||
|
|
||||||
|
if [ $do20 = yes ] ; then
|
||||||
|
echo $title20
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput20 testtry
|
||||||
|
checkresult $? 20 ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# \C tests without UTF - DFA matching is supported
|
||||||
|
|
||||||
|
if [ "$do21" = yes ] ; then
|
||||||
|
echo $title21
|
||||||
|
if [ $supportBSC -eq 0 ] ; then
|
||||||
|
echo " Skipped because \C is disabled"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt -dfa; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput21 testtry
|
||||||
|
checkresult $? 21 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# \C tests with UTF - DFA matching is not supported for \C in UTF mode
|
||||||
|
|
||||||
|
if [ "$do22" = yes ] ; then
|
||||||
|
echo $title22
|
||||||
|
if [ $supportBSC -eq 0 ] ; then
|
||||||
|
echo " Skipped because \C is disabled"
|
||||||
|
elif [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput22 testtry
|
||||||
|
checkresult $? 22-$bits "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Test when \C is disabled
|
||||||
|
|
||||||
|
if [ "$do23" = yes ] ; then
|
||||||
|
echo $title23
|
||||||
|
if [ $supportBSC -ne 0 ] ; then
|
||||||
|
echo " Skipped because \C is not disabled"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput23 testtry
|
||||||
|
checkresult $? 23 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Non-UTF pattern conversion tests
|
||||||
|
|
||||||
|
if [ "$do24" = yes ] ; then
|
||||||
|
echo $title24
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput24 testtry
|
||||||
|
checkresult $? 24 ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# UTF pattern conversion tests
|
||||||
|
|
||||||
|
if [ "$do25" = yes ] ; then
|
||||||
|
echo $title25
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinput25 testtry
|
||||||
|
checkresult $? 25 ""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unicode property tests
|
||||||
|
|
||||||
|
if [ $do26 = yes ] ; then
|
||||||
|
echo $title26
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput26 testtry
|
||||||
|
checkresult $? 26 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Auto-generated Unicode property tests
|
||||||
|
|
||||||
|
if [ $do27 = yes ] ; then
|
||||||
|
echo $title27
|
||||||
|
if [ $utf -eq 0 ] ; then
|
||||||
|
echo " Skipped because UTF-$bits support is not available"
|
||||||
|
else
|
||||||
|
for opt in "" $jitopt; do
|
||||||
|
$sim $valgrind ${opt:+$vjs} $pcre2test -q $setstack $bmode $opt $testdata/testinput27 testtry
|
||||||
|
checkresult $? 27 "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Manually selected heap tests - output may vary in different environments,
|
||||||
|
# which is why that are not automatically run.
|
||||||
|
|
||||||
|
if [ $doheap = yes ] ; then
|
||||||
|
echo $titleheap
|
||||||
|
$sim $valgrind $pcre2test -q $setstack $bmode $testdata/testinputheap testtry
|
||||||
|
checkresult $? heap-$bits ""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# End of loop for 8/16/32-bit tests
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# ------ Special EBCDIC Test -------
|
||||||
|
|
||||||
|
if [ $doebcdic = yes ] ; then
|
||||||
|
$sim $valgrind $pcre2test -C ebcdic >/dev/null
|
||||||
|
ebcdic=$?
|
||||||
|
if [ $ebcdic -ne 1 ] ; then
|
||||||
|
echo "Cannot run EBCDIC tests: EBCDIC support not compiled"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
for opt in "" "-dfa"; do
|
||||||
|
$sim $valgrind $pcre2test -q $opt $testdata/testinputEBC >testtry
|
||||||
|
checkresult $? EBC "$opt"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Clean up local working files
|
||||||
|
rm -f testbtables testSinput test3input testsaved1 testsaved2 test3output test3outputA test3outputB teststdout teststderr testtry
|
||||||
|
|
||||||
|
# End
|
||||||
564
3rd/pcre2/RunTest.bat
Normal file
564
3rd/pcre2/RunTest.bat
Normal file
@@ -0,0 +1,564 @@
|
|||||||
|
@echo off
|
||||||
|
@rem
|
||||||
|
@rem MS Windows batch file to run pcre2test on testfiles with the correct
|
||||||
|
@rem options. This file must use CRLF linebreaks to function properly,
|
||||||
|
@rem and requires both pcre2test and pcre2grep.
|
||||||
|
@rem
|
||||||
|
@rem ------------------------ HISTORY ----------------------------------
|
||||||
|
@rem This file was originally contributed to PCRE1 by Ralf Junker, and touched
|
||||||
|
@rem up by Daniel Richard G. Tests 10-12 added by Philip H.
|
||||||
|
@rem Philip H also changed test 3 to use "wintest" files.
|
||||||
|
@rem
|
||||||
|
@rem Updated by Tom Fortmann to support explicit test numbers on the command
|
||||||
|
@rem line. Added argument validation and added error reporting.
|
||||||
|
@rem
|
||||||
|
@rem Sheri Pierce added logic to skip feature dependent tests
|
||||||
|
@rem tests 4 5 7 10 12 14 19 22 25 and 26 require Unicode support
|
||||||
|
@rem 8 requires Unicode and link size 2
|
||||||
|
@rem 16 requires absence of jit support
|
||||||
|
@rem 17 requires presence of jit support
|
||||||
|
@rem Sheri P also added override tests for study and jit testing
|
||||||
|
@rem Zoltan Herczeg added libpcre16 support
|
||||||
|
@rem Zoltan Herczeg added libpcre32 support
|
||||||
|
@rem -------------------------------------------------------------------
|
||||||
|
@rem
|
||||||
|
@rem The file was converted for PCRE2 by PH, February 2015.
|
||||||
|
@rem Updated for new test 14 (moving others up a number), August 2015.
|
||||||
|
@rem Tidied and updated for new tests 21, 22, 23 by PH, October 2015.
|
||||||
|
@rem PH added missing "set type" for test 22, April 2016.
|
||||||
|
@rem PH added copy command for new testbtables file, November 2020
|
||||||
|
@rem PH caused it to show comparison output when comparison failed, July 2023
|
||||||
|
@rem PH updated unknown error number in test
|
||||||
|
|
||||||
|
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
if [%srcdir%]==[] (
|
||||||
|
if exist testdata\ set srcdir=.)
|
||||||
|
if [%srcdir%]==[] (
|
||||||
|
if exist ..\testdata\ set srcdir=..)
|
||||||
|
if [%srcdir%]==[] (
|
||||||
|
if exist ..\..\testdata\ set srcdir=..\..)
|
||||||
|
if NOT exist %srcdir%\testdata\ (
|
||||||
|
echo Error: distribution testdata folder not found!
|
||||||
|
call :conferror
|
||||||
|
exit /b 1
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
|
||||||
|
if [%pcre2test%]==[] set pcre2test=.\pcre2test.exe
|
||||||
|
|
||||||
|
echo source dir is %srcdir%
|
||||||
|
echo pcre2test=%pcre2test%
|
||||||
|
|
||||||
|
if NOT exist %pcre2test% (
|
||||||
|
echo Error: %pcre2test% not found!
|
||||||
|
echo.
|
||||||
|
call :conferror
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
%pcre2test% -C linksize >NUL
|
||||||
|
set link_size=%ERRORLEVEL%
|
||||||
|
%pcre2test% -C pcre2-8 >NUL
|
||||||
|
set support8=%ERRORLEVEL%
|
||||||
|
%pcre2test% -C pcre2-16 >NUL
|
||||||
|
set support16=%ERRORLEVEL%
|
||||||
|
%pcre2test% -C pcre2-32 >NUL
|
||||||
|
set support32=%ERRORLEVEL%
|
||||||
|
%pcre2test% -C unicode >NUL
|
||||||
|
set unicode=%ERRORLEVEL%
|
||||||
|
%pcre2test% -C jit >NUL
|
||||||
|
set jit=%ERRORLEVEL%
|
||||||
|
%pcre2test% -C backslash-C >NUL
|
||||||
|
set supportBSC=%ERRORLEVEL%
|
||||||
|
|
||||||
|
if %support8% EQU 1 (
|
||||||
|
if not exist testout8 md testout8
|
||||||
|
if not exist testoutjit8 md testoutjit8
|
||||||
|
)
|
||||||
|
|
||||||
|
if %support16% EQU 1 (
|
||||||
|
if not exist testout16 md testout16
|
||||||
|
if not exist testoutjit16 md testoutjit16
|
||||||
|
)
|
||||||
|
|
||||||
|
if %support32% EQU 1 (
|
||||||
|
if not exist testout32 md testout32
|
||||||
|
if not exist testoutjit32 md testoutjit32
|
||||||
|
)
|
||||||
|
|
||||||
|
set do1=no
|
||||||
|
set do2=no
|
||||||
|
set do3=no
|
||||||
|
set do4=no
|
||||||
|
set do5=no
|
||||||
|
set do6=no
|
||||||
|
set do7=no
|
||||||
|
set do8=no
|
||||||
|
set do9=no
|
||||||
|
set do10=no
|
||||||
|
set do11=no
|
||||||
|
set do12=no
|
||||||
|
set do13=no
|
||||||
|
set do14=no
|
||||||
|
set do15=no
|
||||||
|
set do16=no
|
||||||
|
set do17=no
|
||||||
|
set do18=no
|
||||||
|
set do19=no
|
||||||
|
set do20=no
|
||||||
|
set do21=no
|
||||||
|
set do22=no
|
||||||
|
set do23=no
|
||||||
|
set do24=no
|
||||||
|
set do25=no
|
||||||
|
set do26=no
|
||||||
|
set do27=no
|
||||||
|
set all=yes
|
||||||
|
|
||||||
|
for %%a in (%*) do (
|
||||||
|
set valid=no
|
||||||
|
for %%v in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27) do if %%v == %%a set valid=yes
|
||||||
|
if "!valid!" == "yes" (
|
||||||
|
set do%%a=yes
|
||||||
|
set all=no
|
||||||
|
) else (
|
||||||
|
echo Invalid test number - %%a!
|
||||||
|
echo Usage %0 [ test_number ] ...
|
||||||
|
echo Where test_number is one or more optional test numbers 1 through 27, default is all tests.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
set failed="no"
|
||||||
|
|
||||||
|
if "%all%" == "yes" (
|
||||||
|
set do1=yes
|
||||||
|
set do2=yes
|
||||||
|
set do3=yes
|
||||||
|
set do4=yes
|
||||||
|
set do5=yes
|
||||||
|
set do6=yes
|
||||||
|
set do7=yes
|
||||||
|
set do8=yes
|
||||||
|
set do9=yes
|
||||||
|
set do10=yes
|
||||||
|
set do11=yes
|
||||||
|
set do12=yes
|
||||||
|
set do13=yes
|
||||||
|
set do14=yes
|
||||||
|
set do15=yes
|
||||||
|
set do16=yes
|
||||||
|
set do17=yes
|
||||||
|
set do18=yes
|
||||||
|
set do19=yes
|
||||||
|
set do20=yes
|
||||||
|
set do21=yes
|
||||||
|
set do22=yes
|
||||||
|
set do23=yes
|
||||||
|
set do24=yes
|
||||||
|
set do25=yes
|
||||||
|
set do26=yes
|
||||||
|
set do27=yes
|
||||||
|
)
|
||||||
|
|
||||||
|
@echo RunTest.bat's pcre2test output is written to newly created subfolders
|
||||||
|
@echo named testout{8,16,32} and testoutjit{8,16,32}.
|
||||||
|
@echo.
|
||||||
|
|
||||||
|
set mode=
|
||||||
|
set bits=8
|
||||||
|
|
||||||
|
:nextMode
|
||||||
|
if "%mode%" == "" (
|
||||||
|
if %support8% EQU 0 goto modeSkip
|
||||||
|
echo.
|
||||||
|
echo ---- Testing 8-bit library ----
|
||||||
|
echo.
|
||||||
|
)
|
||||||
|
if "%mode%" == "-16" (
|
||||||
|
if %support16% EQU 0 goto modeSkip
|
||||||
|
echo.
|
||||||
|
echo ---- Testing 16-bit library ----
|
||||||
|
echo.
|
||||||
|
)
|
||||||
|
if "%mode%" == "-32" (
|
||||||
|
if %support32% EQU 0 goto modeSkip
|
||||||
|
echo.
|
||||||
|
echo ---- Testing 32-bit library ----
|
||||||
|
echo.
|
||||||
|
)
|
||||||
|
if "%do1%" == "yes" call :do1
|
||||||
|
if "%do2%" == "yes" call :do2
|
||||||
|
if "%do3%" == "yes" call :do3
|
||||||
|
if "%do4%" == "yes" call :do4
|
||||||
|
if "%do5%" == "yes" call :do5
|
||||||
|
if "%do6%" == "yes" call :do6
|
||||||
|
if "%do7%" == "yes" call :do7
|
||||||
|
if "%do8%" == "yes" call :do8
|
||||||
|
if "%do9%" == "yes" call :do9
|
||||||
|
if "%do10%" == "yes" call :do10
|
||||||
|
if "%do11%" == "yes" call :do11
|
||||||
|
if "%do12%" == "yes" call :do12
|
||||||
|
if "%do13%" == "yes" call :do13
|
||||||
|
if "%do14%" == "yes" call :do14
|
||||||
|
if "%do15%" == "yes" call :do15
|
||||||
|
if "%do16%" == "yes" call :do16
|
||||||
|
if "%do17%" == "yes" call :do17
|
||||||
|
if "%do18%" == "yes" call :do18
|
||||||
|
if "%do19%" == "yes" call :do19
|
||||||
|
if "%do20%" == "yes" call :do20
|
||||||
|
if "%do21%" == "yes" call :do21
|
||||||
|
if "%do22%" == "yes" call :do22
|
||||||
|
if "%do23%" == "yes" call :do23
|
||||||
|
if "%do24%" == "yes" call :do24
|
||||||
|
if "%do25%" == "yes" call :do25
|
||||||
|
if "%do26%" == "yes" call :do26
|
||||||
|
if "%do27%" == "yes" call :do27
|
||||||
|
:modeSkip
|
||||||
|
if "%mode%" == "" (
|
||||||
|
set mode=-16
|
||||||
|
set bits=16
|
||||||
|
goto nextMode
|
||||||
|
)
|
||||||
|
if "%mode%" == "-16" (
|
||||||
|
set mode=-32
|
||||||
|
set bits=32
|
||||||
|
goto nextMode
|
||||||
|
)
|
||||||
|
|
||||||
|
@rem If mode is -32, testing is finished
|
||||||
|
if %failed% == "yes" (
|
||||||
|
echo In above output, one or more of the various tests failed!
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
echo All OK
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:runsub
|
||||||
|
@rem Function to execute pcre2test and compare the output
|
||||||
|
@rem Arguments are as follows:
|
||||||
|
@rem
|
||||||
|
@rem 1 = test number
|
||||||
|
@rem 2 = outputdir
|
||||||
|
@rem 3 = test name use double quotes
|
||||||
|
@rem 4 - 9 = pcre2test options
|
||||||
|
|
||||||
|
if [%1] == [] (
|
||||||
|
echo Missing test number argument!
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if [%2] == [] (
|
||||||
|
echo Missing outputdir!
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if [%3] == [] (
|
||||||
|
echo Missing test name argument!
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if %1 == 8 (
|
||||||
|
set outnum=%1-%bits%-%link_size%
|
||||||
|
) else if %1 == 11 (
|
||||||
|
set outnum=%1-%bits%
|
||||||
|
) else if %1 == 12 (
|
||||||
|
set outnum=%1-%bits%
|
||||||
|
) else if %1 == 14 (
|
||||||
|
set outnum=%1-%bits%
|
||||||
|
) else if %1 == 22 (
|
||||||
|
set outnum=%1-%bits%
|
||||||
|
) else (
|
||||||
|
set outnum=%1
|
||||||
|
)
|
||||||
|
set testinput=testinput%1
|
||||||
|
set testoutput=testoutput%outnum%
|
||||||
|
if exist %srcdir%\testdata\win%testinput% (
|
||||||
|
set testinput=wintestinput%1
|
||||||
|
set testoutput=wintestoutput%outnum%
|
||||||
|
)
|
||||||
|
|
||||||
|
echo Test %1: %3
|
||||||
|
%pcre2test% %mode% %4 %5 %6 %7 %8 %9 %srcdir%\testdata\%testinput% >%2%bits%\%testoutput%
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo. failed executing command-line:
|
||||||
|
echo. %pcre2test% %mode% %4 %5 %6 %7 %8 %9 %srcdir%\testdata\%testinput% ^>%2%bits%\%testoutput%
|
||||||
|
set failed="yes"
|
||||||
|
goto :eof
|
||||||
|
) else if [%1]==[2] (
|
||||||
|
%pcre2test% %mode% %4 %5 %6 %7 %8 %9 -error -80,-62,-2,-1,0,100,101,191,300 >>%2%bits%\%testoutput%
|
||||||
|
)
|
||||||
|
|
||||||
|
fc /n %srcdir%\testdata\%testoutput% %2%bits%\%testoutput% >NUL
|
||||||
|
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo. failed comparison: fc /n %srcdir%\testdata\%testoutput% %2%bits%\%testoutput%
|
||||||
|
if [%1]==[3] (
|
||||||
|
echo.
|
||||||
|
echo ** Test 3 failure usually means french locale is not
|
||||||
|
echo ** available on the system, rather than a bug or problem with PCRE2.
|
||||||
|
echo.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
fc /n %srcdir%\testdata\%testoutput% %2%bits%\%testoutput%
|
||||||
|
|
||||||
|
set failed="yes"
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
|
||||||
|
echo. Passed.
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do1
|
||||||
|
call :runsub 1 testout "Main non-UTF, non-UCP functionality (Compatible with Perl >= 5.10)" -q
|
||||||
|
if %jit% EQU 1 call :runsub 1 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do2
|
||||||
|
copy /y %srcdir%\testdata\testbtables testbtables
|
||||||
|
call :runsub 2 testout "API, errors, internals, and non-Perl stuff" -q
|
||||||
|
if %jit% EQU 1 call :runsub 2 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do3
|
||||||
|
call :runsub 3 testout "Locale-specific features" -q
|
||||||
|
if %jit% EQU 1 call :runsub 3 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do4
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 4 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 4 testout "UTF-%bits% and Unicode property support - (Compatible with Perl >= 5.10)" -q
|
||||||
|
if %jit% EQU 1 call :runsub 4 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do5
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 5 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 5 testout "API, internals, and non-Perl stuff for UTF-%bits% and UCP" -q
|
||||||
|
if %jit% EQU 1 call :runsub 5 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do6
|
||||||
|
call :runsub 6 testout "DFA matching main non-UTF, non-UCP functionality" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do7
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 7 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 7 testout "DFA matching with UTF-%bits% and Unicode property support" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do8
|
||||||
|
if NOT %link_size% EQU 2 (
|
||||||
|
echo Test 8 Skipped because link size is not 2.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 8 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 8 testout "Internal offsets and code size tests" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do9
|
||||||
|
if NOT %bits% EQU 8 (
|
||||||
|
echo Test 9 Skipped when running 16/32-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 9 testout "Specials for the basic 8-bit library" -q
|
||||||
|
if %jit% EQU 1 call :runsub 9 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do10
|
||||||
|
if NOT %bits% EQU 8 (
|
||||||
|
echo Test 10 Skipped when running 16/32-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 10 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 10 testout "Specials for the 8-bit library with Unicode support" -q
|
||||||
|
if %jit% EQU 1 call :runsub 10 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do11
|
||||||
|
if %bits% EQU 8 (
|
||||||
|
echo Test 11 Skipped when running 8-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 11 testout "Specials for the basic 16/32-bit library" -q
|
||||||
|
if %jit% EQU 1 call :runsub 11 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do12
|
||||||
|
if %bits% EQU 8 (
|
||||||
|
echo Test 12 Skipped when running 8-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 12 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 12 testout "Specials for the 16/32-bit library with Unicode support" -q
|
||||||
|
if %jit% EQU 1 call :runsub 12 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do13
|
||||||
|
if %bits% EQU 8 (
|
||||||
|
echo Test 13 Skipped when running 8-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 13 testout "DFA specials for the basic 16/32-bit library" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do14
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 14 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 14 testout "DFA specials for UTF and UCP support" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do15
|
||||||
|
call :runsub 15 testout "Non-JIT limits and other non_JIT tests" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do16
|
||||||
|
if %jit% EQU 1 (
|
||||||
|
echo Test 16 Skipped due to presence of JIT support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 16 testout "JIT-specific features when JIT is not available" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do17
|
||||||
|
if %jit% EQU 0 (
|
||||||
|
echo Test 17 Skipped due to absence of JIT support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 17 testout "JIT-specific features when JIT is available" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do18
|
||||||
|
if %bits% EQU 16 (
|
||||||
|
echo Test 18 Skipped when running 16-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %bits% EQU 32 (
|
||||||
|
echo Test 18 Skipped when running 32-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 18 testout "POSIX interface, excluding UTF-8 and UCP" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do19
|
||||||
|
if %bits% EQU 16 (
|
||||||
|
echo Test 19 Skipped when running 16-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %bits% EQU 32 (
|
||||||
|
echo Test 19 Skipped when running 32-bit tests.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 19 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 19 testout "POSIX interface with UTF-8 and UCP" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do20
|
||||||
|
call :runsub 20 testout "Serialization tests" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do21
|
||||||
|
if %supportBSC% EQU 0 (
|
||||||
|
echo Test 21 Skipped due to absence of backslash-C support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 21 testout "Backslash-C tests without UTF" -q
|
||||||
|
call :runsub 21 testout "Backslash-C tests without UTF (DFA)" -q -dfa
|
||||||
|
if %jit% EQU 1 call :runsub 21 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do22
|
||||||
|
if %supportBSC% EQU 0 (
|
||||||
|
echo Test 22 Skipped due to absence of backslash-C support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 22 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 22 testout "Backslash-C tests with UTF" -q
|
||||||
|
if %jit% EQU 1 call :runsub 22 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do23
|
||||||
|
if %supportBSC% EQU 1 (
|
||||||
|
echo Test 23 Skipped due to presence of backslash-C support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 23 testout "Backslash-C disabled test" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do24
|
||||||
|
call :runsub 24 testout "Non-UTF pattern conversion tests" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do25
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 25 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 25 testout "UTF pattern conversion tests" -q
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do26
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 26 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 26 testout "Unicode property tests (Compatible with Perl >= 5.38)" -q
|
||||||
|
if %jit% EQU 1 call :runsub 26 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:do27
|
||||||
|
if %unicode% EQU 0 (
|
||||||
|
echo Test 27 Skipped due to absence of Unicode support.
|
||||||
|
goto :eof
|
||||||
|
)
|
||||||
|
call :runsub 27 testout "Auto-generated unicode property tests" -q
|
||||||
|
if %jit% EQU 1 call :runsub 27 testoutjit "Test with JIT Override" -q -jit
|
||||||
|
goto :eof
|
||||||
|
|
||||||
|
:conferror
|
||||||
|
@echo.
|
||||||
|
@echo Either your build is incomplete or you have a configuration error.
|
||||||
|
@echo.
|
||||||
|
@echo If configured with cmake and executed via "make test" or the MSVC "RUN_TESTS"
|
||||||
|
@echo project, pcre2_test.bat defines variables and automatically calls RunTest.bat.
|
||||||
|
@echo For manual testing of all available features, after configuring with cmake
|
||||||
|
@echo and building, you can run the built pcre2_test.bat. For best results with
|
||||||
|
@echo cmake builds and tests avoid directories with full path names that include
|
||||||
|
@echo spaces for source or build.
|
||||||
|
@echo.
|
||||||
|
@echo Otherwise, if the build dir is in a subdir of the source dir, testdata needed
|
||||||
|
@echo for input and verification should be found automatically when (from the
|
||||||
|
@echo location of the the built exes) you call RunTest.bat. By default RunTest.bat
|
||||||
|
@echo runs all tests compatible with the linked pcre2 library but it can be given
|
||||||
|
@echo a test number as an argument.
|
||||||
|
@echo.
|
||||||
|
@echo If the build dir is not under the source dir you can either copy your exes
|
||||||
|
@echo to the source folder or copy RunTest.bat and the testdata folder to the
|
||||||
|
@echo location of your built exes and then run RunTest.bat.
|
||||||
|
@echo.
|
||||||
|
goto :eof
|
||||||
44
3rd/pcre2/SECURITY.md
Normal file
44
3rd/pcre2/SECURITY.md
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# Security policies
|
||||||
|
|
||||||
|
## Release security
|
||||||
|
|
||||||
|
The PCRE2 project provides source-only releases, with no binaries.
|
||||||
|
|
||||||
|
These source releases can be downloaded from the
|
||||||
|
[GitHub Releases](https://github.com/PCRE2Project/pcre2/releases) page. Each
|
||||||
|
release file is GPG-signed.
|
||||||
|
|
||||||
|
* Releases up to and including 10.44 are signed by Philip Hazel (GPG key:
|
||||||
|
<kbd>45F68D54BBE23FB3039B46E59766E084FB0F43D8</kbd>)
|
||||||
|
* Releases from 10.45 onwards will be signed by Nicholas Wilson (GPG key:
|
||||||
|
<kbd>A95536204A3BB489715231282A98E77EB6F24CA8</kbd>, cross-signed by Philip
|
||||||
|
Hazel's key for release continuity)
|
||||||
|
|
||||||
|
From releases 10.45 onwards, the source code will additionally be provided via
|
||||||
|
Git checkout of the (GPG-signed) release tag.
|
||||||
|
|
||||||
|
Please contact the maintainers for any queries about release integrity or the
|
||||||
|
project's supply-chain.
|
||||||
|
|
||||||
|
## Reporting vulnerabilities
|
||||||
|
|
||||||
|
The PCRE2 project prioritises security. We appreciate third-party testing and
|
||||||
|
security research, and would be grateful if you could responsibly disclose your
|
||||||
|
findings to us. We will make every effort to acknowledge your contributions.
|
||||||
|
|
||||||
|
To report a security issue, please use the GitHub Security Advisory
|
||||||
|
["Report a Vulnerability"](https://github.com/PCRE2Project/pcre2/security/advisories/new)
|
||||||
|
tab. (Alternatively, if you prefer you may send a GPG-encrypted email to one of
|
||||||
|
the maintainers.)
|
||||||
|
|
||||||
|
### Timeline
|
||||||
|
|
||||||
|
As a very small volunteer team, we cannot guarantee rapid response, but would
|
||||||
|
aim to respond within 1 week, or perhaps 2 during holidays.
|
||||||
|
|
||||||
|
### Response procedure
|
||||||
|
|
||||||
|
PCRE2 has never previously made a rapid or embargoed release in response to a
|
||||||
|
security incident. We would work with security managers from trusted downstream
|
||||||
|
distributors, such as major Linux distributions, before disclosing the
|
||||||
|
vulnerability publicly.
|
||||||
1
3rd/pcre2/WORKSPACE.bazel
Normal file
1
3rd/pcre2/WORKSPACE.bazel
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# See MODULE.bazel
|
||||||
1597
3rd/pcre2/aclocal.m4
vendored
Normal file
1597
3rd/pcre2/aclocal.m4
vendored
Normal file
@@ -0,0 +1,1597 @@
|
|||||||
|
# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||||
|
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||||
|
# PARTICULAR PURPOSE.
|
||||||
|
|
||||||
|
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
|
||||||
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
|
m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
|
||||||
|
[m4_warning([this file was generated for autoconf 2.71.
|
||||||
|
You have another version of autoconf. It may work, but is not guaranteed to.
|
||||||
|
If you have problems, you may need to regenerate the build system entirely.
|
||||||
|
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
|
||||||
|
|
||||||
|
# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
|
||||||
|
# serial 12 (pkg-config-0.29.2)
|
||||||
|
|
||||||
|
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
|
||||||
|
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
|
||||||
|
dnl
|
||||||
|
dnl This program is free software; you can redistribute it and/or modify
|
||||||
|
dnl it under the terms of the GNU General Public License as published by
|
||||||
|
dnl the Free Software Foundation; either version 2 of the License, or
|
||||||
|
dnl (at your option) any later version.
|
||||||
|
dnl
|
||||||
|
dnl This program is distributed in the hope that it will be useful, but
|
||||||
|
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
dnl General Public License for more details.
|
||||||
|
dnl
|
||||||
|
dnl You should have received a copy of the GNU General Public License
|
||||||
|
dnl along with this program; if not, write to the Free Software
|
||||||
|
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||||
|
dnl 02111-1307, USA.
|
||||||
|
dnl
|
||||||
|
dnl As a special exception to the GNU General Public License, if you
|
||||||
|
dnl distribute this file as part of a program that contains a
|
||||||
|
dnl configuration script generated by Autoconf, you may include it under
|
||||||
|
dnl the same distribution terms that you use for the rest of that
|
||||||
|
dnl program.
|
||||||
|
|
||||||
|
dnl PKG_PREREQ(MIN-VERSION)
|
||||||
|
dnl -----------------------
|
||||||
|
dnl Since: 0.29
|
||||||
|
dnl
|
||||||
|
dnl Verify that the version of the pkg-config macros are at least
|
||||||
|
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
|
||||||
|
dnl installed version of pkg-config, this checks the developer's version
|
||||||
|
dnl of pkg.m4 when generating configure.
|
||||||
|
dnl
|
||||||
|
dnl To ensure that this macro is defined, also add:
|
||||||
|
dnl m4_ifndef([PKG_PREREQ],
|
||||||
|
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
|
||||||
|
dnl
|
||||||
|
dnl See the "Since" comment for each macro you use to see what version
|
||||||
|
dnl of the macros you require.
|
||||||
|
m4_defun([PKG_PREREQ],
|
||||||
|
[m4_define([PKG_MACROS_VERSION], [0.29.2])
|
||||||
|
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
|
||||||
|
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
|
||||||
|
])dnl PKG_PREREQ
|
||||||
|
|
||||||
|
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
|
||||||
|
dnl ----------------------------------
|
||||||
|
dnl Since: 0.16
|
||||||
|
dnl
|
||||||
|
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
|
||||||
|
dnl first found in the path. Checks that the version of pkg-config found
|
||||||
|
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
|
||||||
|
dnl used since that's the first version where most current features of
|
||||||
|
dnl pkg-config existed.
|
||||||
|
AC_DEFUN([PKG_PROG_PKG_CONFIG],
|
||||||
|
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
|
||||||
|
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
|
||||||
|
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
|
||||||
|
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
|
||||||
|
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
|
||||||
|
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
|
||||||
|
|
||||||
|
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
|
||||||
|
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
|
||||||
|
fi
|
||||||
|
if test -n "$PKG_CONFIG"; then
|
||||||
|
_pkg_min_version=m4_default([$1], [0.9.0])
|
||||||
|
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
|
||||||
|
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
PKG_CONFIG=""
|
||||||
|
fi
|
||||||
|
fi[]dnl
|
||||||
|
])dnl PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
|
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||||
|
dnl -------------------------------------------------------------------
|
||||||
|
dnl Since: 0.18
|
||||||
|
dnl
|
||||||
|
dnl Check to see whether a particular set of modules exists. Similar to
|
||||||
|
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
|
||||||
|
dnl
|
||||||
|
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||||
|
dnl only at the first occurrence in configure.ac, so if the first place
|
||||||
|
dnl it's called might be skipped (such as if it is within an "if", you
|
||||||
|
dnl have to call PKG_CHECK_EXISTS manually
|
||||||
|
AC_DEFUN([PKG_CHECK_EXISTS],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
if test -n "$PKG_CONFIG" && \
|
||||||
|
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
|
||||||
|
m4_default([$2], [:])
|
||||||
|
m4_ifvaln([$3], [else
|
||||||
|
$3])dnl
|
||||||
|
fi])
|
||||||
|
|
||||||
|
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
|
||||||
|
dnl ---------------------------------------------
|
||||||
|
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
|
||||||
|
dnl pkg_failed based on the result.
|
||||||
|
m4_define([_PKG_CONFIG],
|
||||||
|
[if test -n "$$1"; then
|
||||||
|
pkg_cv_[]$1="$$1"
|
||||||
|
elif test -n "$PKG_CONFIG"; then
|
||||||
|
PKG_CHECK_EXISTS([$3],
|
||||||
|
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
|
||||||
|
test "x$?" != "x0" && pkg_failed=yes ],
|
||||||
|
[pkg_failed=yes])
|
||||||
|
else
|
||||||
|
pkg_failed=untried
|
||||||
|
fi[]dnl
|
||||||
|
])dnl _PKG_CONFIG
|
||||||
|
|
||||||
|
dnl _PKG_SHORT_ERRORS_SUPPORTED
|
||||||
|
dnl ---------------------------
|
||||||
|
dnl Internal check to see if pkg-config supports short errors.
|
||||||
|
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
|
||||||
|
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
|
||||||
|
_pkg_short_errors_supported=yes
|
||||||
|
else
|
||||||
|
_pkg_short_errors_supported=no
|
||||||
|
fi[]dnl
|
||||||
|
])dnl _PKG_SHORT_ERRORS_SUPPORTED
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||||
|
dnl [ACTION-IF-NOT-FOUND])
|
||||||
|
dnl --------------------------------------------------------------
|
||||||
|
dnl Since: 0.4.0
|
||||||
|
dnl
|
||||||
|
dnl Note that if there is a possibility the first call to
|
||||||
|
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
|
||||||
|
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
|
||||||
|
AC_DEFUN([PKG_CHECK_MODULES],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
|
||||||
|
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
|
||||||
|
|
||||||
|
pkg_failed=no
|
||||||
|
AC_MSG_CHECKING([for $2])
|
||||||
|
|
||||||
|
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
|
||||||
|
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
|
||||||
|
|
||||||
|
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
|
||||||
|
and $1[]_LIBS to avoid the need to call pkg-config.
|
||||||
|
See the pkg-config man page for more details.])
|
||||||
|
|
||||||
|
if test $pkg_failed = yes; then
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
_PKG_SHORT_ERRORS_SUPPORTED
|
||||||
|
if test $_pkg_short_errors_supported = yes; then
|
||||||
|
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
|
||||||
|
else
|
||||||
|
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
|
||||||
|
fi
|
||||||
|
# Put the nasty error message in config.log where it belongs
|
||||||
|
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
|
||||||
|
|
||||||
|
m4_default([$4], [AC_MSG_ERROR(
|
||||||
|
[Package requirements ($2) were not met:
|
||||||
|
|
||||||
|
$$1_PKG_ERRORS
|
||||||
|
|
||||||
|
Consider adjusting the PKG_CONFIG_PATH environment variable if you
|
||||||
|
installed software in a non-standard prefix.
|
||||||
|
|
||||||
|
_PKG_TEXT])[]dnl
|
||||||
|
])
|
||||||
|
elif test $pkg_failed = untried; then
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
m4_default([$4], [AC_MSG_FAILURE(
|
||||||
|
[The pkg-config script could not be found or is too old. Make sure it
|
||||||
|
is in your PATH or set the PKG_CONFIG environment variable to the full
|
||||||
|
path to pkg-config.
|
||||||
|
|
||||||
|
_PKG_TEXT
|
||||||
|
|
||||||
|
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
|
||||||
|
])
|
||||||
|
else
|
||||||
|
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
|
||||||
|
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
$3
|
||||||
|
fi[]dnl
|
||||||
|
])dnl PKG_CHECK_MODULES
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
|
||||||
|
dnl [ACTION-IF-NOT-FOUND])
|
||||||
|
dnl ---------------------------------------------------------------------
|
||||||
|
dnl Since: 0.29
|
||||||
|
dnl
|
||||||
|
dnl Checks for existence of MODULES and gathers its build flags with
|
||||||
|
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
|
||||||
|
dnl and VARIABLE-PREFIX_LIBS from --libs.
|
||||||
|
dnl
|
||||||
|
dnl Note that if there is a possibility the first call to
|
||||||
|
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
|
||||||
|
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
|
||||||
|
dnl configure.ac.
|
||||||
|
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
_save_PKG_CONFIG=$PKG_CONFIG
|
||||||
|
PKG_CONFIG="$PKG_CONFIG --static"
|
||||||
|
PKG_CHECK_MODULES($@)
|
||||||
|
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
|
||||||
|
])dnl PKG_CHECK_MODULES_STATIC
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_INSTALLDIR([DIRECTORY])
|
||||||
|
dnl -------------------------
|
||||||
|
dnl Since: 0.27
|
||||||
|
dnl
|
||||||
|
dnl Substitutes the variable pkgconfigdir as the location where a module
|
||||||
|
dnl should install pkg-config .pc files. By default the directory is
|
||||||
|
dnl $libdir/pkgconfig, but the default can be changed by passing
|
||||||
|
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
|
||||||
|
dnl parameter.
|
||||||
|
AC_DEFUN([PKG_INSTALLDIR],
|
||||||
|
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
|
||||||
|
m4_pushdef([pkg_description],
|
||||||
|
[pkg-config installation directory @<:@]pkg_default[@:>@])
|
||||||
|
AC_ARG_WITH([pkgconfigdir],
|
||||||
|
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
|
||||||
|
[with_pkgconfigdir=]pkg_default)
|
||||||
|
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
|
||||||
|
m4_popdef([pkg_default])
|
||||||
|
m4_popdef([pkg_description])
|
||||||
|
])dnl PKG_INSTALLDIR
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
|
||||||
|
dnl --------------------------------
|
||||||
|
dnl Since: 0.27
|
||||||
|
dnl
|
||||||
|
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
|
||||||
|
dnl module should install arch-independent pkg-config .pc files. By
|
||||||
|
dnl default the directory is $datadir/pkgconfig, but the default can be
|
||||||
|
dnl changed by passing DIRECTORY. The user can override through the
|
||||||
|
dnl --with-noarch-pkgconfigdir parameter.
|
||||||
|
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
|
||||||
|
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
|
||||||
|
m4_pushdef([pkg_description],
|
||||||
|
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
|
||||||
|
AC_ARG_WITH([noarch-pkgconfigdir],
|
||||||
|
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
|
||||||
|
[with_noarch_pkgconfigdir=]pkg_default)
|
||||||
|
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
|
||||||
|
m4_popdef([pkg_default])
|
||||||
|
m4_popdef([pkg_description])
|
||||||
|
])dnl PKG_NOARCH_INSTALLDIR
|
||||||
|
|
||||||
|
|
||||||
|
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
|
||||||
|
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
|
||||||
|
dnl -------------------------------------------
|
||||||
|
dnl Since: 0.28
|
||||||
|
dnl
|
||||||
|
dnl Retrieves the value of the pkg-config variable for the given module.
|
||||||
|
AC_DEFUN([PKG_CHECK_VAR],
|
||||||
|
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
|
||||||
|
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
|
||||||
|
|
||||||
|
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
|
||||||
|
AS_VAR_COPY([$1], [pkg_cv_][$1])
|
||||||
|
|
||||||
|
AS_VAR_IF([$1], [""], [$5], [$4])dnl
|
||||||
|
])dnl PKG_CHECK_VAR
|
||||||
|
|
||||||
|
dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
|
||||||
|
dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
|
||||||
|
dnl [DESCRIPTION], [DEFAULT])
|
||||||
|
dnl ------------------------------------------
|
||||||
|
dnl
|
||||||
|
dnl Prepare a "--with-" configure option using the lowercase
|
||||||
|
dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
|
||||||
|
dnl PKG_CHECK_MODULES in a single macro.
|
||||||
|
AC_DEFUN([PKG_WITH_MODULES],
|
||||||
|
[
|
||||||
|
m4_pushdef([with_arg], m4_tolower([$1]))
|
||||||
|
|
||||||
|
m4_pushdef([description],
|
||||||
|
[m4_default([$5], [build with ]with_arg[ support])])
|
||||||
|
|
||||||
|
m4_pushdef([def_arg], [m4_default([$6], [auto])])
|
||||||
|
m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
|
||||||
|
m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
|
||||||
|
|
||||||
|
m4_case(def_arg,
|
||||||
|
[yes],[m4_pushdef([with_without], [--without-]with_arg)],
|
||||||
|
[m4_pushdef([with_without],[--with-]with_arg)])
|
||||||
|
|
||||||
|
AC_ARG_WITH(with_arg,
|
||||||
|
AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
|
||||||
|
[AS_TR_SH([with_]with_arg)=def_arg])
|
||||||
|
|
||||||
|
AS_CASE([$AS_TR_SH([with_]with_arg)],
|
||||||
|
[yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
|
||||||
|
[auto],[PKG_CHECK_MODULES([$1],[$2],
|
||||||
|
[m4_n([def_action_if_found]) $3],
|
||||||
|
[m4_n([def_action_if_not_found]) $4])])
|
||||||
|
|
||||||
|
m4_popdef([with_arg])
|
||||||
|
m4_popdef([description])
|
||||||
|
m4_popdef([def_arg])
|
||||||
|
|
||||||
|
])dnl PKG_WITH_MODULES
|
||||||
|
|
||||||
|
dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
|
||||||
|
dnl [DESCRIPTION], [DEFAULT])
|
||||||
|
dnl -----------------------------------------------
|
||||||
|
dnl
|
||||||
|
dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
|
||||||
|
dnl check._[VARIABLE-PREFIX] is exported as make variable.
|
||||||
|
AC_DEFUN([PKG_HAVE_WITH_MODULES],
|
||||||
|
[
|
||||||
|
PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([HAVE_][$1],
|
||||||
|
[test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
|
||||||
|
])dnl PKG_HAVE_WITH_MODULES
|
||||||
|
|
||||||
|
dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
|
||||||
|
dnl [DESCRIPTION], [DEFAULT])
|
||||||
|
dnl ------------------------------------------------------
|
||||||
|
dnl
|
||||||
|
dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
|
||||||
|
dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
|
||||||
|
dnl and preprocessor variable.
|
||||||
|
AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
|
||||||
|
[
|
||||||
|
PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
|
||||||
|
|
||||||
|
AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
|
||||||
|
[AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
|
||||||
|
])dnl PKG_HAVE_DEFINE_WITH_MODULES
|
||||||
|
|
||||||
|
# Copyright (C) 2002-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_AUTOMAKE_VERSION(VERSION)
|
||||||
|
# ----------------------------
|
||||||
|
# Automake X.Y traces this macro to ensure aclocal.m4 has been
|
||||||
|
# generated from the m4 files accompanying Automake X.Y.
|
||||||
|
# (This private macro should not be called outside this file.)
|
||||||
|
AC_DEFUN([AM_AUTOMAKE_VERSION],
|
||||||
|
[am__api_version='1.16'
|
||||||
|
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
|
||||||
|
dnl require some minimum version. Point them to the right macro.
|
||||||
|
m4_if([$1], [1.16.5], [],
|
||||||
|
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# _AM_AUTOCONF_VERSION(VERSION)
|
||||||
|
# -----------------------------
|
||||||
|
# aclocal traces this macro to find the Autoconf version.
|
||||||
|
# This is a private macro too. Using m4_define simplifies
|
||||||
|
# the logic in aclocal, which can simply ignore this definition.
|
||||||
|
m4_define([_AM_AUTOCONF_VERSION], [])
|
||||||
|
|
||||||
|
# AM_SET_CURRENT_AUTOMAKE_VERSION
|
||||||
|
# -------------------------------
|
||||||
|
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
|
||||||
|
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
|
||||||
|
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
|
||||||
|
[AM_AUTOMAKE_VERSION([1.16.5])dnl
|
||||||
|
m4_ifndef([AC_AUTOCONF_VERSION],
|
||||||
|
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
|
||||||
|
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
|
||||||
|
|
||||||
|
# Copyright (C) 2011-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_PROG_AR([ACT-IF-FAIL])
|
||||||
|
# -------------------------
|
||||||
|
# Try to determine the archiver interface, and trigger the ar-lib wrapper
|
||||||
|
# if it is needed. If the detection of archiver interface fails, run
|
||||||
|
# ACT-IF-FAIL (default is to abort configure with a proper error message).
|
||||||
|
AC_DEFUN([AM_PROG_AR],
|
||||||
|
[AC_BEFORE([$0], [LT_INIT])dnl
|
||||||
|
AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl
|
||||||
|
AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
AC_REQUIRE_AUX_FILE([ar-lib])dnl
|
||||||
|
AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false])
|
||||||
|
: ${AR=ar}
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface],
|
||||||
|
[AC_LANG_PUSH([C])
|
||||||
|
am_cv_ar_interface=ar
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])],
|
||||||
|
[am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
|
||||||
|
AC_TRY_EVAL([am_ar_try])
|
||||||
|
if test "$ac_status" -eq 0; then
|
||||||
|
am_cv_ar_interface=ar
|
||||||
|
else
|
||||||
|
am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD'
|
||||||
|
AC_TRY_EVAL([am_ar_try])
|
||||||
|
if test "$ac_status" -eq 0; then
|
||||||
|
am_cv_ar_interface=lib
|
||||||
|
else
|
||||||
|
am_cv_ar_interface=unknown
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
rm -f conftest.lib libconftest.a
|
||||||
|
])
|
||||||
|
AC_LANG_POP([C])])
|
||||||
|
|
||||||
|
case $am_cv_ar_interface in
|
||||||
|
ar)
|
||||||
|
;;
|
||||||
|
lib)
|
||||||
|
# Microsoft lib, so override with the ar-lib wrapper script.
|
||||||
|
# FIXME: It is wrong to rewrite AR.
|
||||||
|
# But if we don't then we get into trouble of one sort or another.
|
||||||
|
# A longer-term fix would be to have automake use am__AR in this case,
|
||||||
|
# and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something
|
||||||
|
# similar.
|
||||||
|
AR="$am_aux_dir/ar-lib $AR"
|
||||||
|
;;
|
||||||
|
unknown)
|
||||||
|
m4_default([$1],
|
||||||
|
[AC_MSG_ERROR([could not determine $AR interface])])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
AC_SUBST([AR])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
|
||||||
|
# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
|
||||||
|
# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
|
||||||
|
#
|
||||||
|
# Of course, Automake must honor this variable whenever it calls a
|
||||||
|
# tool from the auxiliary directory. The problem is that $srcdir (and
|
||||||
|
# therefore $ac_aux_dir as well) can be either absolute or relative,
|
||||||
|
# depending on how configure is run. This is pretty annoying, since
|
||||||
|
# it makes $ac_aux_dir quite unusable in subdirectories: in the top
|
||||||
|
# source directory, any form will work fine, but in subdirectories a
|
||||||
|
# relative path needs to be adjusted first.
|
||||||
|
#
|
||||||
|
# $ac_aux_dir/missing
|
||||||
|
# fails when called from a subdirectory if $ac_aux_dir is relative
|
||||||
|
# $top_srcdir/$ac_aux_dir/missing
|
||||||
|
# fails if $ac_aux_dir is absolute,
|
||||||
|
# fails when called from a subdirectory in a VPATH build with
|
||||||
|
# a relative $ac_aux_dir
|
||||||
|
#
|
||||||
|
# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
|
||||||
|
# are both prefixed by $srcdir. In an in-source build this is usually
|
||||||
|
# harmless because $srcdir is '.', but things will broke when you
|
||||||
|
# start a VPATH build or use an absolute $srcdir.
|
||||||
|
#
|
||||||
|
# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
|
||||||
|
# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
|
||||||
|
# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
|
||||||
|
# and then we would define $MISSING as
|
||||||
|
# MISSING="\${SHELL} $am_aux_dir/missing"
|
||||||
|
# This will work as long as MISSING is not called from configure, because
|
||||||
|
# unfortunately $(top_srcdir) has no meaning in configure.
|
||||||
|
# However there are other variables, like CC, which are often used in
|
||||||
|
# configure, and could therefore not use this "fixed" $ac_aux_dir.
|
||||||
|
#
|
||||||
|
# Another solution, used here, is to always expand $ac_aux_dir to an
|
||||||
|
# absolute PATH. The drawback is that using absolute paths prevent a
|
||||||
|
# configured tree to be moved without reconfiguration.
|
||||||
|
|
||||||
|
AC_DEFUN([AM_AUX_DIR_EXPAND],
|
||||||
|
[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
|
||||||
|
# Expand $ac_aux_dir to an absolute path.
|
||||||
|
am_aux_dir=`cd "$ac_aux_dir" && pwd`
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_CONDITIONAL -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1997-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_CONDITIONAL(NAME, SHELL-CONDITION)
|
||||||
|
# -------------------------------------
|
||||||
|
# Define a conditional.
|
||||||
|
AC_DEFUN([AM_CONDITIONAL],
|
||||||
|
[AC_PREREQ([2.52])dnl
|
||||||
|
m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
|
||||||
|
[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
|
||||||
|
AC_SUBST([$1_TRUE])dnl
|
||||||
|
AC_SUBST([$1_FALSE])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([$1_TRUE])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([$1_FALSE])dnl
|
||||||
|
m4_define([_AM_COND_VALUE_$1], [$2])dnl
|
||||||
|
if $2; then
|
||||||
|
$1_TRUE=
|
||||||
|
$1_FALSE='#'
|
||||||
|
else
|
||||||
|
$1_TRUE='#'
|
||||||
|
$1_FALSE=
|
||||||
|
fi
|
||||||
|
AC_CONFIG_COMMANDS_PRE(
|
||||||
|
[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
|
||||||
|
AC_MSG_ERROR([[conditional "$1" was never defined.
|
||||||
|
Usually this means the macro was only invoked conditionally.]])
|
||||||
|
fi])])
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
|
||||||
|
# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
|
||||||
|
# written in clear, in which case automake, when reading aclocal.m4,
|
||||||
|
# will think it sees a *use*, and therefore will trigger all it's
|
||||||
|
# C support machinery. Also note that it means that autoscan, seeing
|
||||||
|
# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
|
||||||
|
|
||||||
|
|
||||||
|
# _AM_DEPENDENCIES(NAME)
|
||||||
|
# ----------------------
|
||||||
|
# See how the compiler implements dependency checking.
|
||||||
|
# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
|
||||||
|
# We try a few techniques and use that to set a single cache variable.
|
||||||
|
#
|
||||||
|
# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
|
||||||
|
# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
|
||||||
|
# dependency, and given that the user is not expected to run this macro,
|
||||||
|
# just rely on AC_PROG_CC.
|
||||||
|
AC_DEFUN([_AM_DEPENDENCIES],
|
||||||
|
[AC_REQUIRE([AM_SET_DEPDIR])dnl
|
||||||
|
AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
|
||||||
|
AC_REQUIRE([AM_MAKE_INCLUDE])dnl
|
||||||
|
AC_REQUIRE([AM_DEP_TRACK])dnl
|
||||||
|
|
||||||
|
m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
|
||||||
|
[$1], [CXX], [depcc="$CXX" am_compiler_list=],
|
||||||
|
[$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
|
||||||
|
[$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
|
||||||
|
[$1], [UPC], [depcc="$UPC" am_compiler_list=],
|
||||||
|
[$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
|
||||||
|
[depcc="$$1" am_compiler_list=])
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([dependency style of $depcc],
|
||||||
|
[am_cv_$1_dependencies_compiler_type],
|
||||||
|
[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
|
||||||
|
# We make a subdir and do the tests there. Otherwise we can end up
|
||||||
|
# making bogus files that we don't know about and never remove. For
|
||||||
|
# instance it was reported that on HP-UX the gcc test will end up
|
||||||
|
# making a dummy file named 'D' -- because '-MD' means "put the output
|
||||||
|
# in D".
|
||||||
|
rm -rf conftest.dir
|
||||||
|
mkdir conftest.dir
|
||||||
|
# Copy depcomp to subdir because otherwise we won't find it if we're
|
||||||
|
# using a relative directory.
|
||||||
|
cp "$am_depcomp" conftest.dir
|
||||||
|
cd conftest.dir
|
||||||
|
# We will build objects and dependencies in a subdirectory because
|
||||||
|
# it helps to detect inapplicable dependency modes. For instance
|
||||||
|
# both Tru64's cc and ICC support -MD to output dependencies as a
|
||||||
|
# side effect of compilation, but ICC will put the dependencies in
|
||||||
|
# the current directory while Tru64 will put them in the object
|
||||||
|
# directory.
|
||||||
|
mkdir sub
|
||||||
|
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
if test "$am_compiler_list" = ""; then
|
||||||
|
am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
|
||||||
|
fi
|
||||||
|
am__universal=false
|
||||||
|
m4_case([$1], [CC],
|
||||||
|
[case " $depcc " in #(
|
||||||
|
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||||
|
esac],
|
||||||
|
[CXX],
|
||||||
|
[case " $depcc " in #(
|
||||||
|
*\ -arch\ *\ -arch\ *) am__universal=true ;;
|
||||||
|
esac])
|
||||||
|
|
||||||
|
for depmode in $am_compiler_list; do
|
||||||
|
# Setup a source with many dependencies, because some compilers
|
||||||
|
# like to wrap large dependency lists on column 80 (with \), and
|
||||||
|
# we should not choose a depcomp mode which is confused by this.
|
||||||
|
#
|
||||||
|
# We need to recreate these files for each test, as the compiler may
|
||||||
|
# overwrite some of them when testing with obscure command lines.
|
||||||
|
# This happens at least with the AIX C compiler.
|
||||||
|
: > sub/conftest.c
|
||||||
|
for i in 1 2 3 4 5 6; do
|
||||||
|
echo '#include "conftst'$i'.h"' >> sub/conftest.c
|
||||||
|
# Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
|
||||||
|
# Solaris 10 /bin/sh.
|
||||||
|
echo '/* dummy */' > sub/conftst$i.h
|
||||||
|
done
|
||||||
|
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
|
||||||
|
|
||||||
|
# We check with '-c' and '-o' for the sake of the "dashmstdout"
|
||||||
|
# mode. It turns out that the SunPro C++ compiler does not properly
|
||||||
|
# handle '-M -o', and we need to detect this. Also, some Intel
|
||||||
|
# versions had trouble with output in subdirs.
|
||||||
|
am__obj=sub/conftest.${OBJEXT-o}
|
||||||
|
am__minus_obj="-o $am__obj"
|
||||||
|
case $depmode in
|
||||||
|
gcc)
|
||||||
|
# This depmode causes a compiler race in universal mode.
|
||||||
|
test "$am__universal" = false || continue
|
||||||
|
;;
|
||||||
|
nosideeffect)
|
||||||
|
# After this tag, mechanisms are not by side-effect, so they'll
|
||||||
|
# only be used when explicitly requested.
|
||||||
|
if test "x$enable_dependency_tracking" = xyes; then
|
||||||
|
continue
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
msvc7 | msvc7msys | msvisualcpp | msvcmsys)
|
||||||
|
# This compiler won't grok '-c -o', but also, the minuso test has
|
||||||
|
# not run yet. These depmodes are late enough in the game, and
|
||||||
|
# so weak that their functioning should not be impacted.
|
||||||
|
am__obj=conftest.${OBJEXT-o}
|
||||||
|
am__minus_obj=
|
||||||
|
;;
|
||||||
|
none) break ;;
|
||||||
|
esac
|
||||||
|
if depmode=$depmode \
|
||||||
|
source=sub/conftest.c object=$am__obj \
|
||||||
|
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
|
||||||
|
$SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
|
||||||
|
>/dev/null 2>conftest.err &&
|
||||||
|
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
|
||||||
|
${MAKE-make} -s -f confmf > /dev/null 2>&1; then
|
||||||
|
# icc doesn't choke on unknown options, it will just issue warnings
|
||||||
|
# or remarks (even with -Werror). So we grep stderr for any message
|
||||||
|
# that says an option was ignored or not supported.
|
||||||
|
# When given -MP, icc 7.0 and 7.1 complain thusly:
|
||||||
|
# icc: Command line warning: ignoring option '-M'; no argument required
|
||||||
|
# The diagnosis changed in icc 8.0:
|
||||||
|
# icc: Command line remark: option '-MP' not supported
|
||||||
|
if (grep 'ignoring option' conftest.err ||
|
||||||
|
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
|
||||||
|
am_cv_$1_dependencies_compiler_type=$depmode
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
rm -rf conftest.dir
|
||||||
|
else
|
||||||
|
am_cv_$1_dependencies_compiler_type=none
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
|
||||||
|
AM_CONDITIONAL([am__fastdep$1], [
|
||||||
|
test "x$enable_dependency_tracking" != xno \
|
||||||
|
&& test "$am_cv_$1_dependencies_compiler_type" = gcc3])
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_SET_DEPDIR
|
||||||
|
# -------------
|
||||||
|
# Choose a directory name for dependency files.
|
||||||
|
# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
|
||||||
|
AC_DEFUN([AM_SET_DEPDIR],
|
||||||
|
[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||||
|
AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
# AM_DEP_TRACK
|
||||||
|
# ------------
|
||||||
|
AC_DEFUN([AM_DEP_TRACK],
|
||||||
|
[AC_ARG_ENABLE([dependency-tracking], [dnl
|
||||||
|
AS_HELP_STRING(
|
||||||
|
[--enable-dependency-tracking],
|
||||||
|
[do not reject slow dependency extractors])
|
||||||
|
AS_HELP_STRING(
|
||||||
|
[--disable-dependency-tracking],
|
||||||
|
[speeds up one-time build])])
|
||||||
|
if test "x$enable_dependency_tracking" != xno; then
|
||||||
|
am_depcomp="$ac_aux_dir/depcomp"
|
||||||
|
AMDEPBACKSLASH='\'
|
||||||
|
am__nodep='_no'
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
|
||||||
|
AC_SUBST([AMDEPBACKSLASH])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
|
||||||
|
AC_SUBST([am__nodep])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([am__nodep])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# Generate code to set up dependency tracking. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[{
|
||||||
|
# Older Autoconf quotes --file arguments for eval, but not when files
|
||||||
|
# are listed without --file. Let's play safe and only enable the eval
|
||||||
|
# if we detect the quoting.
|
||||||
|
# TODO: see whether this extra hack can be removed once we start
|
||||||
|
# requiring Autoconf 2.70 or later.
|
||||||
|
AS_CASE([$CONFIG_FILES],
|
||||||
|
[*\'*], [eval set x "$CONFIG_FILES"],
|
||||||
|
[*], [set x $CONFIG_FILES])
|
||||||
|
shift
|
||||||
|
# Used to flag and report bootstrapping failures.
|
||||||
|
am_rc=0
|
||||||
|
for am_mf
|
||||||
|
do
|
||||||
|
# Strip MF so we end up with the name of the file.
|
||||||
|
am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
|
||||||
|
# Check whether this is an Automake generated Makefile which includes
|
||||||
|
# dependency-tracking related rules and includes.
|
||||||
|
# Grep'ing the whole file directly is not great: AIX grep has a line
|
||||||
|
# limit of 2048, but all sed's we know have understand at least 4000.
|
||||||
|
sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
|
||||||
|
|| continue
|
||||||
|
am_dirpart=`AS_DIRNAME(["$am_mf"])`
|
||||||
|
am_filepart=`AS_BASENAME(["$am_mf"])`
|
||||||
|
AM_RUN_LOG([cd "$am_dirpart" \
|
||||||
|
&& sed -e '/# am--include-marker/d' "$am_filepart" \
|
||||||
|
| $MAKE -f - am--depfiles]) || am_rc=$?
|
||||||
|
done
|
||||||
|
if test $am_rc -ne 0; then
|
||||||
|
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
|
||||||
|
for automatic dependency tracking. If GNU make was not used, consider
|
||||||
|
re-running the configure script with MAKE="gmake" (or whatever is
|
||||||
|
necessary). You can also try re-running configure with the
|
||||||
|
'--disable-dependency-tracking' option to at least be able to build
|
||||||
|
the package (albeit without support for automatic dependency tracking).])
|
||||||
|
fi
|
||||||
|
AS_UNSET([am_dirpart])
|
||||||
|
AS_UNSET([am_filepart])
|
||||||
|
AS_UNSET([am_mf])
|
||||||
|
AS_UNSET([am_rc])
|
||||||
|
rm -f conftest-deps.mk
|
||||||
|
}
|
||||||
|
])# _AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
|
||||||
|
|
||||||
|
# AM_OUTPUT_DEPENDENCY_COMMANDS
|
||||||
|
# -----------------------------
|
||||||
|
# This macro should only be invoked once -- use via AC_REQUIRE.
|
||||||
|
#
|
||||||
|
# This code is only required when automatic dependency tracking is enabled.
|
||||||
|
# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
|
||||||
|
# order to bootstrap the dependency handling code.
|
||||||
|
AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[AC_CONFIG_COMMANDS([depfiles],
|
||||||
|
[test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
|
||||||
|
[AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
|
||||||
|
|
||||||
|
# Do all the work for Automake. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# This macro actually does too much. Some checks are only needed if
|
||||||
|
# your package does certain things. But this isn't really a big deal.
|
||||||
|
|
||||||
|
dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
|
||||||
|
m4_define([AC_PROG_CC],
|
||||||
|
m4_defn([AC_PROG_CC])
|
||||||
|
[_AM_PROG_CC_C_O
|
||||||
|
])
|
||||||
|
|
||||||
|
# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
|
||||||
|
# AM_INIT_AUTOMAKE([OPTIONS])
|
||||||
|
# -----------------------------------------------
|
||||||
|
# The call with PACKAGE and VERSION arguments is the old style
|
||||||
|
# call (pre autoconf-2.50), which is being phased out. PACKAGE
|
||||||
|
# and VERSION should now be passed to AC_INIT and removed from
|
||||||
|
# the call to AM_INIT_AUTOMAKE.
|
||||||
|
# We support both call styles for the transition. After
|
||||||
|
# the next Automake release, Autoconf can make the AC_INIT
|
||||||
|
# arguments mandatory, and then we can depend on a new Autoconf
|
||||||
|
# release and drop the old call support.
|
||||||
|
AC_DEFUN([AM_INIT_AUTOMAKE],
|
||||||
|
[AC_PREREQ([2.65])dnl
|
||||||
|
m4_ifdef([_$0_ALREADY_INIT],
|
||||||
|
[m4_fatal([$0 expanded multiple times
|
||||||
|
]m4_defn([_$0_ALREADY_INIT]))],
|
||||||
|
[m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
|
||||||
|
dnl Autoconf wants to disallow AM_ names. We explicitly allow
|
||||||
|
dnl the ones we care about.
|
||||||
|
m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
|
||||||
|
AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_INSTALL])dnl
|
||||||
|
if test "`cd $srcdir && pwd`" != "`pwd`"; then
|
||||||
|
# Use -I$(srcdir) only when $(srcdir) != ., so that make's output
|
||||||
|
# is not polluted with repeated "-I."
|
||||||
|
AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
|
||||||
|
# test to see if srcdir already configured
|
||||||
|
if test -f $srcdir/config.status; then
|
||||||
|
AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# test whether we have cygpath
|
||||||
|
if test -z "$CYGPATH_W"; then
|
||||||
|
if (cygpath --version) >/dev/null 2>/dev/null; then
|
||||||
|
CYGPATH_W='cygpath -w'
|
||||||
|
else
|
||||||
|
CYGPATH_W=echo
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_SUBST([CYGPATH_W])
|
||||||
|
|
||||||
|
# Define the identity of the package.
|
||||||
|
dnl Distinguish between old-style and new-style calls.
|
||||||
|
m4_ifval([$2],
|
||||||
|
[AC_DIAGNOSE([obsolete],
|
||||||
|
[$0: two- and three-arguments forms are deprecated.])
|
||||||
|
m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
|
||||||
|
AC_SUBST([PACKAGE], [$1])dnl
|
||||||
|
AC_SUBST([VERSION], [$2])],
|
||||||
|
[_AM_SET_OPTIONS([$1])dnl
|
||||||
|
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
|
||||||
|
m4_if(
|
||||||
|
m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
|
||||||
|
[ok:ok],,
|
||||||
|
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
|
||||||
|
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
|
||||||
|
AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
|
||||||
|
|
||||||
|
_AM_IF_OPTION([no-define],,
|
||||||
|
[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
|
||||||
|
AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
|
||||||
|
|
||||||
|
# Some tools Automake needs.
|
||||||
|
AC_REQUIRE([AM_SANITY_CHECK])dnl
|
||||||
|
AC_REQUIRE([AC_ARG_PROGRAM])dnl
|
||||||
|
AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
|
||||||
|
AM_MISSING_PROG([AUTOCONF], [autoconf])
|
||||||
|
AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
|
||||||
|
AM_MISSING_PROG([AUTOHEADER], [autoheader])
|
||||||
|
AM_MISSING_PROG([MAKEINFO], [makeinfo])
|
||||||
|
AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||||
|
AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_MKDIR_P])dnl
|
||||||
|
# For better backward compatibility. To be removed once Automake 1.9.x
|
||||||
|
# dies out for good. For more background, see:
|
||||||
|
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
|
||||||
|
# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
|
||||||
|
AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
|
||||||
|
# We need awk for the "check" target (and possibly the TAP driver). The
|
||||||
|
# system "awk" is bad on some platforms.
|
||||||
|
AC_REQUIRE([AC_PROG_AWK])dnl
|
||||||
|
AC_REQUIRE([AC_PROG_MAKE_SET])dnl
|
||||||
|
AC_REQUIRE([AM_SET_LEADING_DOT])dnl
|
||||||
|
_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
|
||||||
|
[_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
|
||||||
|
[_AM_PROG_TAR([v7])])])
|
||||||
|
_AM_IF_OPTION([no-dependencies],,
|
||||||
|
[AC_PROVIDE_IFELSE([AC_PROG_CC],
|
||||||
|
[_AM_DEPENDENCIES([CC])],
|
||||||
|
[m4_define([AC_PROG_CC],
|
||||||
|
m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_CXX],
|
||||||
|
[_AM_DEPENDENCIES([CXX])],
|
||||||
|
[m4_define([AC_PROG_CXX],
|
||||||
|
m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_OBJC],
|
||||||
|
[_AM_DEPENDENCIES([OBJC])],
|
||||||
|
[m4_define([AC_PROG_OBJC],
|
||||||
|
m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
|
||||||
|
AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
|
||||||
|
[_AM_DEPENDENCIES([OBJCXX])],
|
||||||
|
[m4_define([AC_PROG_OBJCXX],
|
||||||
|
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
|
||||||
|
])
|
||||||
|
# Variables for tags utilities; see am/tags.am
|
||||||
|
if test -z "$CTAGS"; then
|
||||||
|
CTAGS=ctags
|
||||||
|
fi
|
||||||
|
AC_SUBST([CTAGS])
|
||||||
|
if test -z "$ETAGS"; then
|
||||||
|
ETAGS=etags
|
||||||
|
fi
|
||||||
|
AC_SUBST([ETAGS])
|
||||||
|
if test -z "$CSCOPE"; then
|
||||||
|
CSCOPE=cscope
|
||||||
|
fi
|
||||||
|
AC_SUBST([CSCOPE])
|
||||||
|
|
||||||
|
AC_REQUIRE([AM_SILENT_RULES])dnl
|
||||||
|
dnl The testsuite driver may need to know about EXEEXT, so add the
|
||||||
|
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
|
||||||
|
dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
|
||||||
|
AC_CONFIG_COMMANDS_PRE(dnl
|
||||||
|
[m4_provide_if([_AM_COMPILER_EXEEXT],
|
||||||
|
[AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
|
||||||
|
|
||||||
|
# POSIX will say in a future version that running "rm -f" with no argument
|
||||||
|
# is OK; and we want to be able to make that assumption in our Makefile
|
||||||
|
# recipes. So use an aggressive probe to check that the usage we want is
|
||||||
|
# actually supported "in the wild" to an acceptable degree.
|
||||||
|
# See automake bug#10828.
|
||||||
|
# To make any issue more visible, cause the running configure to be aborted
|
||||||
|
# by default if the 'rm' program in use doesn't match our expectations; the
|
||||||
|
# user can still override this though.
|
||||||
|
if rm -f && rm -fr && rm -rf; then : OK; else
|
||||||
|
cat >&2 <<'END'
|
||||||
|
Oops!
|
||||||
|
|
||||||
|
Your 'rm' program seems unable to run without file operands specified
|
||||||
|
on the command line, even when the '-f' option is present. This is contrary
|
||||||
|
to the behaviour of most rm programs out there, and not conforming with
|
||||||
|
the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
|
||||||
|
|
||||||
|
Please tell bug-automake@gnu.org about your system, including the value
|
||||||
|
of your $PATH and any error possibly output before this message. This
|
||||||
|
can help us improve future automake versions.
|
||||||
|
|
||||||
|
END
|
||||||
|
if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
|
||||||
|
echo 'Configuration will proceed anyway, since you have set the' >&2
|
||||||
|
echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
|
||||||
|
echo >&2
|
||||||
|
else
|
||||||
|
cat >&2 <<'END'
|
||||||
|
Aborting the configuration process, to ensure you take notice of the issue.
|
||||||
|
|
||||||
|
You can download and install GNU coreutils to get an 'rm' implementation
|
||||||
|
that behaves properly: <https://www.gnu.org/software/coreutils/>.
|
||||||
|
|
||||||
|
If you want to complete the configuration process using your problematic
|
||||||
|
'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
|
||||||
|
to "yes", and re-run configure.
|
||||||
|
|
||||||
|
END
|
||||||
|
AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
dnl The trailing newline in this macro's definition is deliberate, for
|
||||||
|
dnl backward compatibility and to allow trailing 'dnl'-style comments
|
||||||
|
dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
|
||||||
|
])
|
||||||
|
|
||||||
|
dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
|
||||||
|
dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
|
||||||
|
dnl mangled by Autoconf and run in a shell conditional statement.
|
||||||
|
m4_define([_AC_COMPILER_EXEEXT],
|
||||||
|
m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
|
||||||
|
|
||||||
|
# When config.status generates a header, we must update the stamp-h file.
|
||||||
|
# This file resides in the same directory as the config header
|
||||||
|
# that is generated. The stamp files are numbered to have different names.
|
||||||
|
|
||||||
|
# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
|
||||||
|
# loop where config.status creates the headers, so we can generate
|
||||||
|
# our stamp files there.
|
||||||
|
AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
|
||||||
|
[# Compute $1's index in $config_headers.
|
||||||
|
_am_arg=$1
|
||||||
|
_am_stamp_count=1
|
||||||
|
for _am_header in $config_headers :; do
|
||||||
|
case $_am_header in
|
||||||
|
$_am_arg | $_am_arg:* )
|
||||||
|
break ;;
|
||||||
|
* )
|
||||||
|
_am_stamp_count=`expr $_am_stamp_count + 1` ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_SH
|
||||||
|
# ------------------
|
||||||
|
# Define $install_sh.
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_SH],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
if test x"${install_sh+set}" != xset; then
|
||||||
|
case $am_aux_dir in
|
||||||
|
*\ * | *\ *)
|
||||||
|
install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
|
||||||
|
*)
|
||||||
|
install_sh="\${SHELL} $am_aux_dir/install-sh"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
AC_SUBST([install_sh])])
|
||||||
|
|
||||||
|
# Copyright (C) 2003-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# Check whether the underlying file-system supports filenames
|
||||||
|
# with a leading dot. For instance MS-DOS doesn't.
|
||||||
|
AC_DEFUN([AM_SET_LEADING_DOT],
|
||||||
|
[rm -rf .tst 2>/dev/null
|
||||||
|
mkdir .tst 2>/dev/null
|
||||||
|
if test -d .tst; then
|
||||||
|
am__leading_dot=.
|
||||||
|
else
|
||||||
|
am__leading_dot=_
|
||||||
|
fi
|
||||||
|
rmdir .tst 2>/dev/null
|
||||||
|
AC_SUBST([am__leading_dot])])
|
||||||
|
|
||||||
|
# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-
|
||||||
|
# From Jim Meyering
|
||||||
|
|
||||||
|
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_MAINTAINER_MODE([DEFAULT-MODE])
|
||||||
|
# ----------------------------------
|
||||||
|
# Control maintainer-specific portions of Makefiles.
|
||||||
|
# Default is to disable them, unless 'enable' is passed literally.
|
||||||
|
# For symmetry, 'disable' may be passed as well. Anyway, the user
|
||||||
|
# can override the default with the --enable/--disable switch.
|
||||||
|
AC_DEFUN([AM_MAINTAINER_MODE],
|
||||||
|
[m4_case(m4_default([$1], [disable]),
|
||||||
|
[enable], [m4_define([am_maintainer_other], [disable])],
|
||||||
|
[disable], [m4_define([am_maintainer_other], [enable])],
|
||||||
|
[m4_define([am_maintainer_other], [enable])
|
||||||
|
m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])
|
||||||
|
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
||||||
|
dnl maintainer-mode's default is 'disable' unless 'enable' is passed
|
||||||
|
AC_ARG_ENABLE([maintainer-mode],
|
||||||
|
[AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],
|
||||||
|
am_maintainer_other[ make rules and dependencies not useful
|
||||||
|
(and sometimes confusing) to the casual installer])],
|
||||||
|
[USE_MAINTAINER_MODE=$enableval],
|
||||||
|
[USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
|
||||||
|
AC_MSG_RESULT([$USE_MAINTAINER_MODE])
|
||||||
|
AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
|
||||||
|
MAINT=$MAINTAINER_MODE_TRUE
|
||||||
|
AC_SUBST([MAINT])dnl
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check to see how 'make' treats includes. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_MAKE_INCLUDE()
|
||||||
|
# -----------------
|
||||||
|
# Check whether make has an 'include' directive that can support all
|
||||||
|
# the idioms we need for our automatic dependency tracking code.
|
||||||
|
AC_DEFUN([AM_MAKE_INCLUDE],
|
||||||
|
[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
|
||||||
|
cat > confinc.mk << 'END'
|
||||||
|
am__doit:
|
||||||
|
@echo this is the am__doit target >confinc.out
|
||||||
|
.PHONY: am__doit
|
||||||
|
END
|
||||||
|
am__include="#"
|
||||||
|
am__quote=
|
||||||
|
# BSD make does it like this.
|
||||||
|
echo '.include "confinc.mk" # ignored' > confmf.BSD
|
||||||
|
# Other make implementations (GNU, Solaris 10, AIX) do it like this.
|
||||||
|
echo 'include confinc.mk # ignored' > confmf.GNU
|
||||||
|
_am_result=no
|
||||||
|
for s in GNU BSD; do
|
||||||
|
AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
|
||||||
|
AS_CASE([$?:`cat confinc.out 2>/dev/null`],
|
||||||
|
['0:this is the am__doit target'],
|
||||||
|
[AS_CASE([$s],
|
||||||
|
[BSD], [am__include='.include' am__quote='"'],
|
||||||
|
[am__include='include' am__quote=''])])
|
||||||
|
if test "$am__include" != "#"; then
|
||||||
|
_am_result="yes ($s style)"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f confinc.* confmf.*
|
||||||
|
AC_MSG_RESULT([${_am_result}])
|
||||||
|
AC_SUBST([am__include])])
|
||||||
|
AC_SUBST([am__quote])])
|
||||||
|
|
||||||
|
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1997-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_MISSING_PROG(NAME, PROGRAM)
|
||||||
|
# ------------------------------
|
||||||
|
AC_DEFUN([AM_MISSING_PROG],
|
||||||
|
[AC_REQUIRE([AM_MISSING_HAS_RUN])
|
||||||
|
$1=${$1-"${am_missing_run}$2"}
|
||||||
|
AC_SUBST($1)])
|
||||||
|
|
||||||
|
# AM_MISSING_HAS_RUN
|
||||||
|
# ------------------
|
||||||
|
# Define MISSING if not defined so far and test if it is modern enough.
|
||||||
|
# If it is, set am_missing_run to use it, otherwise, to nothing.
|
||||||
|
AC_DEFUN([AM_MISSING_HAS_RUN],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
AC_REQUIRE_AUX_FILE([missing])dnl
|
||||||
|
if test x"${MISSING+set}" != xset; then
|
||||||
|
MISSING="\${SHELL} '$am_aux_dir/missing'"
|
||||||
|
fi
|
||||||
|
# Use eval to expand $SHELL
|
||||||
|
if eval "$MISSING --is-lightweight"; then
|
||||||
|
am_missing_run="$MISSING "
|
||||||
|
else
|
||||||
|
am_missing_run=
|
||||||
|
AC_MSG_WARN(['missing' script is too old or missing])
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
# Helper functions for option handling. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_MANGLE_OPTION(NAME)
|
||||||
|
# -----------------------
|
||||||
|
AC_DEFUN([_AM_MANGLE_OPTION],
|
||||||
|
[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
|
||||||
|
|
||||||
|
# _AM_SET_OPTION(NAME)
|
||||||
|
# --------------------
|
||||||
|
# Set option NAME. Presently that only means defining a flag for this option.
|
||||||
|
AC_DEFUN([_AM_SET_OPTION],
|
||||||
|
[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
|
||||||
|
|
||||||
|
# _AM_SET_OPTIONS(OPTIONS)
|
||||||
|
# ------------------------
|
||||||
|
# OPTIONS is a space-separated list of Automake options.
|
||||||
|
AC_DEFUN([_AM_SET_OPTIONS],
|
||||||
|
[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
|
||||||
|
|
||||||
|
# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
|
||||||
|
# -------------------------------------------
|
||||||
|
# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
|
||||||
|
AC_DEFUN([_AM_IF_OPTION],
|
||||||
|
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_PROG_CC_C_O
|
||||||
|
# ---------------
|
||||||
|
# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
|
||||||
|
# to automatically call this.
|
||||||
|
AC_DEFUN([_AM_PROG_CC_C_O],
|
||||||
|
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
|
||||||
|
AC_REQUIRE_AUX_FILE([compile])dnl
|
||||||
|
AC_LANG_PUSH([C])dnl
|
||||||
|
AC_CACHE_CHECK(
|
||||||
|
[whether $CC understands -c and -o together],
|
||||||
|
[am_cv_prog_cc_c_o],
|
||||||
|
[AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
|
||||||
|
# Make sure it works both with $CC and with simple cc.
|
||||||
|
# Following AC_PROG_CC_C_O, we do the test twice because some
|
||||||
|
# compilers refuse to overwrite an existing .o file with -o,
|
||||||
|
# though they will create one.
|
||||||
|
am_cv_prog_cc_c_o=yes
|
||||||
|
for am_i in 1 2; do
|
||||||
|
if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
|
||||||
|
&& test -f conftest2.$ac_objext; then
|
||||||
|
: OK
|
||||||
|
else
|
||||||
|
am_cv_prog_cc_c_o=no
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f core conftest*
|
||||||
|
unset am_i])
|
||||||
|
if test "$am_cv_prog_cc_c_o" != yes; then
|
||||||
|
# Losing compiler, so override with the script.
|
||||||
|
# FIXME: It is wrong to rewrite CC.
|
||||||
|
# But if we don't then we get into trouble of one sort or another.
|
||||||
|
# A longer-term fix would be to have automake use am__CC in this case,
|
||||||
|
# and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
|
||||||
|
CC="$am_aux_dir/compile $CC"
|
||||||
|
fi
|
||||||
|
AC_LANG_POP([C])])
|
||||||
|
|
||||||
|
# For backward compatibility.
|
||||||
|
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_RUN_LOG(COMMAND)
|
||||||
|
# -------------------
|
||||||
|
# Run COMMAND, save the exit status in ac_status, and log it.
|
||||||
|
# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
|
||||||
|
AC_DEFUN([AM_RUN_LOG],
|
||||||
|
[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
|
||||||
|
($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
|
||||||
|
ac_status=$?
|
||||||
|
echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
|
||||||
|
(exit $ac_status); }])
|
||||||
|
|
||||||
|
# Check to make sure that the build environment is sane. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 1996-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_SANITY_CHECK
|
||||||
|
# ---------------
|
||||||
|
AC_DEFUN([AM_SANITY_CHECK],
|
||||||
|
[AC_MSG_CHECKING([whether build environment is sane])
|
||||||
|
# Reject unsafe characters in $srcdir or the absolute working directory
|
||||||
|
# name. Accept space and tab only in the latter.
|
||||||
|
am_lf='
|
||||||
|
'
|
||||||
|
case `pwd` in
|
||||||
|
*[[\\\"\#\$\&\'\`$am_lf]]*)
|
||||||
|
AC_MSG_ERROR([unsafe absolute working directory name]);;
|
||||||
|
esac
|
||||||
|
case $srcdir in
|
||||||
|
*[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
|
||||||
|
AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Do 'set' in a subshell so we don't clobber the current shell's
|
||||||
|
# arguments. Must try -L first in case configure is actually a
|
||||||
|
# symlink; some systems play weird games with the mod time of symlinks
|
||||||
|
# (eg FreeBSD returns the mod time of the symlink's containing
|
||||||
|
# directory).
|
||||||
|
if (
|
||||||
|
am_has_slept=no
|
||||||
|
for am_try in 1 2; do
|
||||||
|
echo "timestamp, slept: $am_has_slept" > conftest.file
|
||||||
|
set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
|
||||||
|
if test "$[*]" = "X"; then
|
||||||
|
# -L didn't work.
|
||||||
|
set X `ls -t "$srcdir/configure" conftest.file`
|
||||||
|
fi
|
||||||
|
if test "$[*]" != "X $srcdir/configure conftest.file" \
|
||||||
|
&& test "$[*]" != "X conftest.file $srcdir/configure"; then
|
||||||
|
|
||||||
|
# If neither matched, then we have a broken ls. This can happen
|
||||||
|
# if, for instance, CONFIG_SHELL is bash and it inherits a
|
||||||
|
# broken ls alias from the environment. This has actually
|
||||||
|
# happened. Such a system could not be considered "sane".
|
||||||
|
AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
|
||||||
|
alias in your environment])
|
||||||
|
fi
|
||||||
|
if test "$[2]" = conftest.file || test $am_try -eq 2; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
# Just in case.
|
||||||
|
sleep 1
|
||||||
|
am_has_slept=yes
|
||||||
|
done
|
||||||
|
test "$[2]" = conftest.file
|
||||||
|
)
|
||||||
|
then
|
||||||
|
# Ok.
|
||||||
|
:
|
||||||
|
else
|
||||||
|
AC_MSG_ERROR([newly created file is older than distributed files!
|
||||||
|
Check your system clock])
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
# If we didn't sleep, we still need to ensure time stamps of config.status and
|
||||||
|
# generated files are strictly newer.
|
||||||
|
am_sleep_pid=
|
||||||
|
if grep 'slept: no' conftest.file >/dev/null 2>&1; then
|
||||||
|
( sleep 1 ) &
|
||||||
|
am_sleep_pid=$!
|
||||||
|
fi
|
||||||
|
AC_CONFIG_COMMANDS_PRE(
|
||||||
|
[AC_MSG_CHECKING([that generated files are newer than configure])
|
||||||
|
if test -n "$am_sleep_pid"; then
|
||||||
|
# Hide warnings about reused PIDs.
|
||||||
|
wait $am_sleep_pid 2>/dev/null
|
||||||
|
fi
|
||||||
|
AC_MSG_RESULT([done])])
|
||||||
|
rm -f conftest.file
|
||||||
|
])
|
||||||
|
|
||||||
|
# Copyright (C) 2009-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_SILENT_RULES([DEFAULT])
|
||||||
|
# --------------------------
|
||||||
|
# Enable less verbose build rules; with the default set to DEFAULT
|
||||||
|
# ("yes" being less verbose, "no" or empty being verbose).
|
||||||
|
AC_DEFUN([AM_SILENT_RULES],
|
||||||
|
[AC_ARG_ENABLE([silent-rules], [dnl
|
||||||
|
AS_HELP_STRING(
|
||||||
|
[--enable-silent-rules],
|
||||||
|
[less verbose build output (undo: "make V=1")])
|
||||||
|
AS_HELP_STRING(
|
||||||
|
[--disable-silent-rules],
|
||||||
|
[verbose build output (undo: "make V=0")])dnl
|
||||||
|
])
|
||||||
|
case $enable_silent_rules in @%:@ (((
|
||||||
|
yes) AM_DEFAULT_VERBOSITY=0;;
|
||||||
|
no) AM_DEFAULT_VERBOSITY=1;;
|
||||||
|
*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
|
||||||
|
esac
|
||||||
|
dnl
|
||||||
|
dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
|
||||||
|
dnl do not support nested variable expansions.
|
||||||
|
dnl See automake bug#9928 and bug#10237.
|
||||||
|
am_make=${MAKE-make}
|
||||||
|
AC_CACHE_CHECK([whether $am_make supports nested variables],
|
||||||
|
[am_cv_make_support_nested_variables],
|
||||||
|
[if AS_ECHO([['TRUE=$(BAR$(V))
|
||||||
|
BAR0=false
|
||||||
|
BAR1=true
|
||||||
|
V=1
|
||||||
|
am__doit:
|
||||||
|
@$(TRUE)
|
||||||
|
.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
|
||||||
|
am_cv_make_support_nested_variables=yes
|
||||||
|
else
|
||||||
|
am_cv_make_support_nested_variables=no
|
||||||
|
fi])
|
||||||
|
if test $am_cv_make_support_nested_variables = yes; then
|
||||||
|
dnl Using '$V' instead of '$(V)' breaks IRIX make.
|
||||||
|
AM_V='$(V)'
|
||||||
|
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
|
||||||
|
else
|
||||||
|
AM_V=$AM_DEFAULT_VERBOSITY
|
||||||
|
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
|
||||||
|
fi
|
||||||
|
AC_SUBST([AM_V])dnl
|
||||||
|
AM_SUBST_NOTMAKE([AM_V])dnl
|
||||||
|
AC_SUBST([AM_DEFAULT_V])dnl
|
||||||
|
AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
|
||||||
|
AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
|
||||||
|
AM_BACKSLASH='\'
|
||||||
|
AC_SUBST([AM_BACKSLASH])dnl
|
||||||
|
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
|
||||||
|
])
|
||||||
|
|
||||||
|
# Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# AM_PROG_INSTALL_STRIP
|
||||||
|
# ---------------------
|
||||||
|
# One issue with vendor 'install' (even GNU) is that you can't
|
||||||
|
# specify the program used to strip binaries. This is especially
|
||||||
|
# annoying in cross-compiling environments, where the build's strip
|
||||||
|
# is unlikely to handle the host's binaries.
|
||||||
|
# Fortunately install-sh will honor a STRIPPROG variable, so we
|
||||||
|
# always use install-sh in "make install-strip", and initialize
|
||||||
|
# STRIPPROG with the value of the STRIP variable (set by the user).
|
||||||
|
AC_DEFUN([AM_PROG_INSTALL_STRIP],
|
||||||
|
[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
|
||||||
|
# Installed binaries are usually stripped using 'strip' when the user
|
||||||
|
# run "make install-strip". However 'strip' might not be the right
|
||||||
|
# tool to use in cross-compilation environments, therefore Automake
|
||||||
|
# will honor the 'STRIP' environment variable to overrule this program.
|
||||||
|
dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
|
||||||
|
if test "$cross_compiling" != no; then
|
||||||
|
AC_CHECK_TOOL([STRIP], [strip], :)
|
||||||
|
fi
|
||||||
|
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
|
||||||
|
AC_SUBST([INSTALL_STRIP_PROGRAM])])
|
||||||
|
|
||||||
|
# Copyright (C) 2006-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_SUBST_NOTMAKE(VARIABLE)
|
||||||
|
# ---------------------------
|
||||||
|
# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
|
||||||
|
# This macro is traced by Automake.
|
||||||
|
AC_DEFUN([_AM_SUBST_NOTMAKE])
|
||||||
|
|
||||||
|
# AM_SUBST_NOTMAKE(VARIABLE)
|
||||||
|
# --------------------------
|
||||||
|
# Public sister of _AM_SUBST_NOTMAKE.
|
||||||
|
AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
|
||||||
|
|
||||||
|
# Check how to create a tarball. -*- Autoconf -*-
|
||||||
|
|
||||||
|
# Copyright (C) 2004-2021 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This file is free software; the Free Software Foundation
|
||||||
|
# gives unlimited permission to copy and/or distribute it,
|
||||||
|
# with or without modifications, as long as this notice is preserved.
|
||||||
|
|
||||||
|
# _AM_PROG_TAR(FORMAT)
|
||||||
|
# --------------------
|
||||||
|
# Check how to create a tarball in format FORMAT.
|
||||||
|
# FORMAT should be one of 'v7', 'ustar', or 'pax'.
|
||||||
|
#
|
||||||
|
# Substitute a variable $(am__tar) that is a command
|
||||||
|
# writing to stdout a FORMAT-tarball containing the directory
|
||||||
|
# $tardir.
|
||||||
|
# tardir=directory && $(am__tar) > result.tar
|
||||||
|
#
|
||||||
|
# Substitute a variable $(am__untar) that extract such
|
||||||
|
# a tarball read from stdin.
|
||||||
|
# $(am__untar) < result.tar
|
||||||
|
#
|
||||||
|
AC_DEFUN([_AM_PROG_TAR],
|
||||||
|
[# Always define AMTAR for backward compatibility. Yes, it's still used
|
||||||
|
# in the wild :-( We should find a proper way to deprecate it ...
|
||||||
|
AC_SUBST([AMTAR], ['$${TAR-tar}'])
|
||||||
|
|
||||||
|
# We'll loop over all known methods to create a tar archive until one works.
|
||||||
|
_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
|
||||||
|
|
||||||
|
m4_if([$1], [v7],
|
||||||
|
[am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
|
||||||
|
|
||||||
|
[m4_case([$1],
|
||||||
|
[ustar],
|
||||||
|
[# The POSIX 1988 'ustar' format is defined with fixed-size fields.
|
||||||
|
# There is notably a 21 bits limit for the UID and the GID. In fact,
|
||||||
|
# the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
|
||||||
|
# and bug#13588).
|
||||||
|
am_max_uid=2097151 # 2^21 - 1
|
||||||
|
am_max_gid=$am_max_uid
|
||||||
|
# The $UID and $GID variables are not portable, so we need to resort
|
||||||
|
# to the POSIX-mandated id(1) utility. Errors in the 'id' calls
|
||||||
|
# below are definitely unexpected, so allow the users to see them
|
||||||
|
# (that is, avoid stderr redirection).
|
||||||
|
am_uid=`id -u || echo unknown`
|
||||||
|
am_gid=`id -g || echo unknown`
|
||||||
|
AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
|
||||||
|
if test $am_uid -le $am_max_uid; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
_am_tools=none
|
||||||
|
fi
|
||||||
|
AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
|
||||||
|
if test $am_gid -le $am_max_gid; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
_am_tools=none
|
||||||
|
fi],
|
||||||
|
|
||||||
|
[pax],
|
||||||
|
[],
|
||||||
|
|
||||||
|
[m4_fatal([Unknown tar format])])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([how to create a $1 tar archive])
|
||||||
|
|
||||||
|
# Go ahead even if we have the value already cached. We do so because we
|
||||||
|
# need to set the values for the 'am__tar' and 'am__untar' variables.
|
||||||
|
_am_tools=${am_cv_prog_tar_$1-$_am_tools}
|
||||||
|
|
||||||
|
for _am_tool in $_am_tools; do
|
||||||
|
case $_am_tool in
|
||||||
|
gnutar)
|
||||||
|
for _am_tar in tar gnutar gtar; do
|
||||||
|
AM_RUN_LOG([$_am_tar --version]) && break
|
||||||
|
done
|
||||||
|
am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
|
||||||
|
am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
|
||||||
|
am__untar="$_am_tar -xf -"
|
||||||
|
;;
|
||||||
|
plaintar)
|
||||||
|
# Must skip GNU tar: if it does not support --format= it doesn't create
|
||||||
|
# ustar tarball either.
|
||||||
|
(tar --version) >/dev/null 2>&1 && continue
|
||||||
|
am__tar='tar chf - "$$tardir"'
|
||||||
|
am__tar_='tar chf - "$tardir"'
|
||||||
|
am__untar='tar xf -'
|
||||||
|
;;
|
||||||
|
pax)
|
||||||
|
am__tar='pax -L -x $1 -w "$$tardir"'
|
||||||
|
am__tar_='pax -L -x $1 -w "$tardir"'
|
||||||
|
am__untar='pax -r'
|
||||||
|
;;
|
||||||
|
cpio)
|
||||||
|
am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
|
||||||
|
am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
|
||||||
|
am__untar='cpio -i -H $1 -d'
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
am__tar=false
|
||||||
|
am__tar_=false
|
||||||
|
am__untar=false
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# If the value was cached, stop now. We just wanted to have am__tar
|
||||||
|
# and am__untar set.
|
||||||
|
test -n "${am_cv_prog_tar_$1}" && break
|
||||||
|
|
||||||
|
# tar/untar a dummy directory, and stop if the command works.
|
||||||
|
rm -rf conftest.dir
|
||||||
|
mkdir conftest.dir
|
||||||
|
echo GrepMe > conftest.dir/file
|
||||||
|
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
|
||||||
|
rm -rf conftest.dir
|
||||||
|
if test -s conftest.tar; then
|
||||||
|
AM_RUN_LOG([$am__untar <conftest.tar])
|
||||||
|
AM_RUN_LOG([cat conftest.dir/file])
|
||||||
|
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -rf conftest.dir
|
||||||
|
|
||||||
|
AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
|
||||||
|
AC_MSG_RESULT([$am_cv_prog_tar_$1])])
|
||||||
|
|
||||||
|
AC_SUBST([am__tar])
|
||||||
|
AC_SUBST([am__untar])
|
||||||
|
]) # _AM_PROG_TAR
|
||||||
|
|
||||||
|
m4_include([m4/ax_pthread.m4])
|
||||||
|
m4_include([m4/libtool.m4])
|
||||||
|
m4_include([m4/ltoptions.m4])
|
||||||
|
m4_include([m4/ltsugar.m4])
|
||||||
|
m4_include([m4/ltversion.m4])
|
||||||
|
m4_include([m4/lt~obsolete.m4])
|
||||||
|
m4_include([m4/pcre2_visibility.m4])
|
||||||
271
3rd/pcre2/ar-lib
Normal file
271
3rd/pcre2/ar-lib
Normal file
@@ -0,0 +1,271 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for Microsoft lib.exe
|
||||||
|
|
||||||
|
me=ar-lib
|
||||||
|
scriptversion=2019-07-04.01; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 2010-2021 Free Software Foundation, Inc.
|
||||||
|
# Written by Peter Rosin <peda@lysator.liu.se>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# 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. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
|
||||||
|
# func_error message
|
||||||
|
func_error ()
|
||||||
|
{
|
||||||
|
echo "$me: $1" 1>&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
file_conv=
|
||||||
|
|
||||||
|
# func_file_conv build_file
|
||||||
|
# Convert a $build file to $host form and store it in $file
|
||||||
|
# Currently only supports Windows hosts.
|
||||||
|
func_file_conv ()
|
||||||
|
{
|
||||||
|
file=$1
|
||||||
|
case $file in
|
||||||
|
/ | /[!/]*) # absolute file, and not a UNC file
|
||||||
|
if test -z "$file_conv"; then
|
||||||
|
# lazily determine how to convert abs files
|
||||||
|
case `uname -s` in
|
||||||
|
MINGW*)
|
||||||
|
file_conv=mingw
|
||||||
|
;;
|
||||||
|
CYGWIN* | MSYS*)
|
||||||
|
file_conv=cygwin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
file_conv=wine
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
case $file_conv in
|
||||||
|
mingw)
|
||||||
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
|
;;
|
||||||
|
cygwin | msys)
|
||||||
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
wine)
|
||||||
|
file=`winepath -w "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_at_file at_file operation archive
|
||||||
|
# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
|
||||||
|
# for each of them.
|
||||||
|
# When interpreting the content of the @FILE, do NOT use func_file_conv,
|
||||||
|
# since the user would need to supply preconverted file names to
|
||||||
|
# binutils ar, at least for MinGW.
|
||||||
|
func_at_file ()
|
||||||
|
{
|
||||||
|
operation=$2
|
||||||
|
archive=$3
|
||||||
|
at_file_contents=`cat "$1"`
|
||||||
|
eval set x "$at_file_contents"
|
||||||
|
shift
|
||||||
|
|
||||||
|
for member
|
||||||
|
do
|
||||||
|
$AR -NOLOGO $operation:"$member" "$archive" || exit $?
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
func_error "no command. Try '$0 --help' for more information."
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<EOF
|
||||||
|
Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
|
||||||
|
|
||||||
|
Members may be specified in a file named with @FILE.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "$me, version $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test $# -lt 3; then
|
||||||
|
func_error "you must specify a program, an action and an archive"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AR=$1
|
||||||
|
shift
|
||||||
|
while :
|
||||||
|
do
|
||||||
|
if test $# -lt 2; then
|
||||||
|
func_error "you must specify a program, an action and an archive"
|
||||||
|
fi
|
||||||
|
case $1 in
|
||||||
|
-lib | -LIB \
|
||||||
|
| -ltcg | -LTCG \
|
||||||
|
| -machine* | -MACHINE* \
|
||||||
|
| -subsystem* | -SUBSYSTEM* \
|
||||||
|
| -verbose | -VERBOSE \
|
||||||
|
| -wx* | -WX* )
|
||||||
|
AR="$AR $1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
action=$1
|
||||||
|
shift
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
orig_archive=$1
|
||||||
|
shift
|
||||||
|
func_file_conv "$orig_archive"
|
||||||
|
archive=$file
|
||||||
|
|
||||||
|
# strip leading dash in $action
|
||||||
|
action=${action#-}
|
||||||
|
|
||||||
|
delete=
|
||||||
|
extract=
|
||||||
|
list=
|
||||||
|
quick=
|
||||||
|
replace=
|
||||||
|
index=
|
||||||
|
create=
|
||||||
|
|
||||||
|
while test -n "$action"
|
||||||
|
do
|
||||||
|
case $action in
|
||||||
|
d*) delete=yes ;;
|
||||||
|
x*) extract=yes ;;
|
||||||
|
t*) list=yes ;;
|
||||||
|
q*) quick=yes ;;
|
||||||
|
r*) replace=yes ;;
|
||||||
|
s*) index=yes ;;
|
||||||
|
S*) ;; # the index is always updated implicitly
|
||||||
|
c*) create=yes ;;
|
||||||
|
u*) ;; # TODO: don't ignore the update modifier
|
||||||
|
v*) ;; # TODO: don't ignore the verbose modifier
|
||||||
|
*)
|
||||||
|
func_error "unknown action specified"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
action=${action#?}
|
||||||
|
done
|
||||||
|
|
||||||
|
case $delete$extract$list$quick$replace,$index in
|
||||||
|
yes,* | ,yes)
|
||||||
|
;;
|
||||||
|
yesyes*)
|
||||||
|
func_error "more than one action specified"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_error "no action specified"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test -n "$delete"; then
|
||||||
|
if test ! -f "$orig_archive"; then
|
||||||
|
func_error "archive not found"
|
||||||
|
fi
|
||||||
|
for member
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
@*)
|
||||||
|
func_at_file "${1#@}" -REMOVE "$archive"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$1"
|
||||||
|
$AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
elif test -n "$extract"; then
|
||||||
|
if test ! -f "$orig_archive"; then
|
||||||
|
func_error "archive not found"
|
||||||
|
fi
|
||||||
|
if test $# -gt 0; then
|
||||||
|
for member
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
@*)
|
||||||
|
func_at_file "${1#@}" -EXTRACT "$archive"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$1"
|
||||||
|
$AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
else
|
||||||
|
$AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
|
||||||
|
| while read member
|
||||||
|
do
|
||||||
|
$AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif test -n "$quick$replace"; then
|
||||||
|
if test ! -f "$orig_archive"; then
|
||||||
|
if test -z "$create"; then
|
||||||
|
echo "$me: creating $orig_archive"
|
||||||
|
fi
|
||||||
|
orig_archive=
|
||||||
|
else
|
||||||
|
orig_archive=$archive
|
||||||
|
fi
|
||||||
|
|
||||||
|
for member
|
||||||
|
do
|
||||||
|
case $1 in
|
||||||
|
@*)
|
||||||
|
func_file_conv "${1#@}"
|
||||||
|
set x "$@" "@$file"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$1"
|
||||||
|
set x "$@" "$file"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -n "$orig_archive"; then
|
||||||
|
$AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
|
||||||
|
else
|
||||||
|
$AR -NOLOGO -OUT:"$archive" "$@" || exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif test -n "$list"; then
|
||||||
|
if test ! -f "$orig_archive"; then
|
||||||
|
func_error "archive not found"
|
||||||
|
fi
|
||||||
|
$AR -NOLOGO -LIST "$archive" || exit $?
|
||||||
|
fi
|
||||||
45
3rd/pcre2/autogen.sh
Normal file
45
3rd/pcre2/autogen.sh
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Running aclocal here first (as happened for a while) caused the macros that
|
||||||
|
# libtoolize puts in the m4 directory to be newer than the aclocal.m4 file that
|
||||||
|
# aclocal creates. This meant that the next "make" cause aclocal to be run
|
||||||
|
# again. Moving aclocal to after libtoolize does not seem to cause any
|
||||||
|
# problems, and it fixes this issue.
|
||||||
|
|
||||||
|
# GNU libtool is named differently on some systems. This code tries several
|
||||||
|
# variants like glibtoolize (MacOSX) and libtoolize1x (FreeBSD)
|
||||||
|
|
||||||
|
set +ex
|
||||||
|
echo "Looking for a version of libtoolize (which can have different names)..."
|
||||||
|
libtoolize=""
|
||||||
|
for l in glibtoolize libtoolize15 libtoolize14 libtoolize ; do
|
||||||
|
$l --version > /dev/null 2>&1
|
||||||
|
if [ $? = 0 ]; then
|
||||||
|
libtoolize=$l
|
||||||
|
echo "Found $l"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
echo "Did not find $l"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "x$libtoolize" = "x" ]; then
|
||||||
|
echo "Can't find libtoolize on your system"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
$libtoolize -c -f
|
||||||
|
rm -rf autom4te.cache Makefile.in aclocal.m4
|
||||||
|
aclocal --force -I m4
|
||||||
|
autoconf -f -W all,no-obsolete
|
||||||
|
autoheader -f -W all
|
||||||
|
|
||||||
|
# Added no-portability to suppress automake 1.12's warning about the use
|
||||||
|
# of recursive variables.
|
||||||
|
|
||||||
|
automake -a -c -f -W all,no-portability
|
||||||
|
|
||||||
|
rm -rf autom4te.cache
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# end autogen.sh
|
||||||
173
3rd/pcre2/build.zig
Normal file
173
3rd/pcre2/build.zig
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub const CodeUnitWidth = enum {
|
||||||
|
@"8",
|
||||||
|
@"16",
|
||||||
|
@"32",
|
||||||
|
};
|
||||||
|
|
||||||
|
pub fn build(b: *std.Build) !void {
|
||||||
|
const target = b.standardTargetOptions(.{});
|
||||||
|
const optimize = b.standardOptimizeOption(.{});
|
||||||
|
const linkage = b.option(std.builtin.LinkMode, "linkage", "whether to statically or dynamically link the library") orelse @as(std.builtin.LinkMode, if (target.result.isGnuLibC()) .dynamic else .static);
|
||||||
|
const codeUnitWidth = b.option(CodeUnitWidth, "code-unit-width", "Sets the code unit width") orelse .@"8";
|
||||||
|
|
||||||
|
const pcre2_header_dir = b.addWriteFiles();
|
||||||
|
const pcre2_header = pcre2_header_dir.addCopyFile(b.path("src/pcre2.h.generic"), "pcre2.h");
|
||||||
|
|
||||||
|
const config_header = b.addConfigHeader(
|
||||||
|
.{
|
||||||
|
.style = .{ .cmake = b.path("config-cmake.h.in") },
|
||||||
|
.include_path = "config.h",
|
||||||
|
},
|
||||||
|
.{
|
||||||
|
.HAVE_ASSERT_H = true,
|
||||||
|
.HAVE_UNISTD_H = (target.result.os.tag != .windows),
|
||||||
|
.HAVE_WINDOWS_H = (target.result.os.tag == .windows),
|
||||||
|
|
||||||
|
.HAVE_MEMMOVE = true,
|
||||||
|
.HAVE_STRERROR = true,
|
||||||
|
|
||||||
|
.SUPPORT_PCRE2_8 = codeUnitWidth == CodeUnitWidth.@"8",
|
||||||
|
.SUPPORT_PCRE2_16 = codeUnitWidth == CodeUnitWidth.@"16",
|
||||||
|
.SUPPORT_PCRE2_32 = codeUnitWidth == CodeUnitWidth.@"32",
|
||||||
|
.SUPPORT_UNICODE = true,
|
||||||
|
|
||||||
|
.PCRE2_EXPORT = null,
|
||||||
|
.PCRE2_LINK_SIZE = 2,
|
||||||
|
.PCRE2_HEAP_LIMIT = 20000000,
|
||||||
|
.PCRE2_MATCH_LIMIT = 10000000,
|
||||||
|
.PCRE2_MATCH_LIMIT_DEPTH = "MATCH_LIMIT",
|
||||||
|
.PCRE2_MAX_VARLOOKBEHIND = 255,
|
||||||
|
.NEWLINE_DEFAULT = 2,
|
||||||
|
.PCRE2_PARENS_NEST_LIMIT = 250,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
// pcre2-8/16/32.so
|
||||||
|
|
||||||
|
const lib = std.Build.Step.Compile.create(b, .{
|
||||||
|
.name = b.fmt("pcre2-{s}", .{@tagName(codeUnitWidth)}),
|
||||||
|
.root_module = .{
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
.link_libc = true,
|
||||||
|
},
|
||||||
|
.kind = .lib,
|
||||||
|
.linkage = linkage,
|
||||||
|
});
|
||||||
|
|
||||||
|
lib.defineCMacro("HAVE_CONFIG_H", null);
|
||||||
|
lib.defineCMacro("PCRE2_CODE_UNIT_WIDTH", @tagName(codeUnitWidth));
|
||||||
|
if (linkage == .static) {
|
||||||
|
lib.defineCMacro("PCRE2_STATIC", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
lib.addConfigHeader(config_header);
|
||||||
|
lib.addIncludePath(pcre2_header_dir.getDirectory());
|
||||||
|
lib.addIncludePath(b.path("src"));
|
||||||
|
|
||||||
|
lib.addCSourceFile(.{
|
||||||
|
.file = b.addWriteFiles().addCopyFile(b.path("src/pcre2_chartables.c.dist"), "pcre2_chartables.c"),
|
||||||
|
});
|
||||||
|
|
||||||
|
lib.addCSourceFiles(.{
|
||||||
|
.files = &.{
|
||||||
|
"src/pcre2_auto_possess.c",
|
||||||
|
"src/pcre2_chkdint.c",
|
||||||
|
"src/pcre2_compile.c",
|
||||||
|
"src/pcre2_compile_class.c",
|
||||||
|
"src/pcre2_config.c",
|
||||||
|
"src/pcre2_context.c",
|
||||||
|
"src/pcre2_convert.c",
|
||||||
|
"src/pcre2_dfa_match.c",
|
||||||
|
"src/pcre2_error.c",
|
||||||
|
"src/pcre2_extuni.c",
|
||||||
|
"src/pcre2_find_bracket.c",
|
||||||
|
"src/pcre2_jit_compile.c",
|
||||||
|
"src/pcre2_maketables.c",
|
||||||
|
"src/pcre2_match.c",
|
||||||
|
"src/pcre2_match_data.c",
|
||||||
|
"src/pcre2_newline.c",
|
||||||
|
"src/pcre2_ord2utf.c",
|
||||||
|
"src/pcre2_pattern_info.c",
|
||||||
|
"src/pcre2_script_run.c",
|
||||||
|
"src/pcre2_serialize.c",
|
||||||
|
"src/pcre2_string_utils.c",
|
||||||
|
"src/pcre2_study.c",
|
||||||
|
"src/pcre2_substitute.c",
|
||||||
|
"src/pcre2_substring.c",
|
||||||
|
"src/pcre2_tables.c",
|
||||||
|
"src/pcre2_ucd.c",
|
||||||
|
"src/pcre2_valid_utf.c",
|
||||||
|
"src/pcre2_xclass.c",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
lib.installHeader(pcre2_header, "pcre2.h");
|
||||||
|
b.installArtifact(lib);
|
||||||
|
|
||||||
|
|
||||||
|
// pcre2test
|
||||||
|
|
||||||
|
const pcre2test = b.addExecutable(.{
|
||||||
|
.name = "pcre2test",
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// pcre2-posix.so
|
||||||
|
|
||||||
|
if (codeUnitWidth == CodeUnitWidth.@"8") {
|
||||||
|
const posixLib = std.Build.Step.Compile.create(b, .{
|
||||||
|
.name = "pcre2-posix",
|
||||||
|
.root_module = .{
|
||||||
|
.target = target,
|
||||||
|
.optimize = optimize,
|
||||||
|
.link_libc = true,
|
||||||
|
},
|
||||||
|
.kind = .lib,
|
||||||
|
.linkage = linkage,
|
||||||
|
});
|
||||||
|
|
||||||
|
posixLib.defineCMacro("HAVE_CONFIG_H", null);
|
||||||
|
posixLib.defineCMacro("PCRE2_CODE_UNIT_WIDTH", @tagName(codeUnitWidth));
|
||||||
|
if (linkage == .static) {
|
||||||
|
posixLib.defineCMacro("PCRE2_STATIC", null);
|
||||||
|
}
|
||||||
|
|
||||||
|
posixLib.addConfigHeader(config_header);
|
||||||
|
posixLib.addIncludePath(pcre2_header_dir.getDirectory());
|
||||||
|
posixLib.addIncludePath(b.path("src"));
|
||||||
|
|
||||||
|
posixLib.addCSourceFiles(.{
|
||||||
|
.files = &.{
|
||||||
|
"src/pcre2posix.c",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
posixLib.installHeader(b.path("src/pcre2posix.h"), "pcre2posix.h");
|
||||||
|
b.installArtifact(posixLib);
|
||||||
|
|
||||||
|
pcre2test.linkLibrary(posixLib);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// pcre2test (again)
|
||||||
|
|
||||||
|
pcre2test.defineCMacro("HAVE_CONFIG_H", null);
|
||||||
|
|
||||||
|
pcre2test.addConfigHeader(config_header);
|
||||||
|
pcre2test.addIncludePath(pcre2_header_dir.getDirectory());
|
||||||
|
pcre2test.addIncludePath(b.path("src"));
|
||||||
|
|
||||||
|
pcre2test.addCSourceFile(.{
|
||||||
|
.file = b.path("src/pcre2test.c"),
|
||||||
|
});
|
||||||
|
|
||||||
|
pcre2test.linkLibC();
|
||||||
|
pcre2test.linkLibrary(lib);
|
||||||
|
|
||||||
|
b.installArtifact(pcre2test);
|
||||||
|
}
|
||||||
22
3rd/pcre2/cmake/COPYING-CMAKE-SCRIPTS
Normal file
22
3rd/pcre2/cmake/COPYING-CMAKE-SCRIPTS
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions
|
||||||
|
are met:
|
||||||
|
|
||||||
|
1. Redistributions of source code must retain the copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
2. Redistributions in binary form must reproduce the copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
3. The name of the author may not be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
|
||||||
|
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
|
||||||
|
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
|
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
13
3rd/pcre2/cmake/FindEditline.cmake
Normal file
13
3rd/pcre2/cmake/FindEditline.cmake
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Modified from FindReadline.cmake (PH Feb 2012)
|
||||||
|
|
||||||
|
if(EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY)
|
||||||
|
set(EDITLINE_FOUND TRUE)
|
||||||
|
else()
|
||||||
|
find_path(EDITLINE_INCLUDE_DIR readline.h PATH_SUFFIXES editline edit/readline)
|
||||||
|
|
||||||
|
find_library(EDITLINE_LIBRARY NAMES edit)
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Editline DEFAULT_MSG EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY)
|
||||||
|
|
||||||
|
mark_as_advanced(EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY)
|
||||||
|
endif()
|
||||||
27
3rd/pcre2/cmake/FindReadline.cmake
Normal file
27
3rd/pcre2/cmake/FindReadline.cmake
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# from http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/FindReadline.cmake
|
||||||
|
# http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/COPYING-CMAKE-SCRIPTS
|
||||||
|
# --> BSD licensed
|
||||||
|
#
|
||||||
|
# GNU Readline library finder
|
||||||
|
if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY)
|
||||||
|
set(READLINE_FOUND TRUE)
|
||||||
|
else()
|
||||||
|
find_path(READLINE_INCLUDE_DIR readline/readline.h /usr/include/readline)
|
||||||
|
|
||||||
|
# 2008-04-22 The next clause used to read like this:
|
||||||
|
#
|
||||||
|
# FIND_LIBRARY(READLINE_LIBRARY NAMES readline)
|
||||||
|
# FIND_LIBRARY(NCURSES_LIBRARY NAMES ncurses )
|
||||||
|
# include(FindPackageHandleStandardArgs)
|
||||||
|
# FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG NCURSES_LIBRARY READLINE_INCLUDE_DIR READLINE_LIBRARY )
|
||||||
|
#
|
||||||
|
# I was advised to modify it such that it will find an ncurses library if
|
||||||
|
# required, but not if one was explicitly given, that is, it allows the
|
||||||
|
# default to be overridden. PH
|
||||||
|
|
||||||
|
find_library(READLINE_LIBRARY NAMES readline)
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Readline DEFAULT_MSG READLINE_INCLUDE_DIR READLINE_LIBRARY)
|
||||||
|
|
||||||
|
mark_as_advanced(READLINE_INCLUDE_DIR READLINE_LIBRARY)
|
||||||
|
endif()
|
||||||
14
3rd/pcre2/cmake/pcre2-config-version.cmake.in
Normal file
14
3rd/pcre2/cmake/pcre2-config-version.cmake.in
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
set(PACKAGE_VERSION_MAJOR @PCRE2_MAJOR@)
|
||||||
|
set(PACKAGE_VERSION_MINOR @PCRE2_MINOR@)
|
||||||
|
set(PACKAGE_VERSION_PATCH 0)
|
||||||
|
set(PACKAGE_VERSION @PCRE2_MAJOR@.@PCRE2_MINOR@.0)
|
||||||
|
|
||||||
|
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||||
|
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION OR PACKAGE_VERSION_MAJOR GREATER PACKAGE_FIND_VERSION_MAJOR)
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||||
|
else()
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||||
|
if(PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION)
|
||||||
|
set(PACKAGE_VERSION_EXACT TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
168
3rd/pcre2/cmake/pcre2-config.cmake.in
Normal file
168
3rd/pcre2/cmake/pcre2-config.cmake.in
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
# pcre2-config.cmake
|
||||||
|
# ----------------
|
||||||
|
#
|
||||||
|
# Finds the PCRE2 library, specify the starting search path in PCRE2_ROOT.
|
||||||
|
#
|
||||||
|
# Static vs. shared
|
||||||
|
# -----------------
|
||||||
|
# To make use of the static library instead of the shared one, one needs
|
||||||
|
# to set the variable PCRE2_USE_STATIC_LIBS to ON before calling find_package.
|
||||||
|
# Example:
|
||||||
|
# set(PCRE2_USE_STATIC_LIBS ON)
|
||||||
|
# find_package(PCRE2 CONFIG COMPONENTS 8BIT)
|
||||||
|
#
|
||||||
|
# This will define the following variables:
|
||||||
|
#
|
||||||
|
# PCRE2_FOUND - True if the system has the PCRE2 library.
|
||||||
|
# PCRE2_VERSION - The version of the PCRE2 library which was found.
|
||||||
|
#
|
||||||
|
# and the following imported targets:
|
||||||
|
#
|
||||||
|
# PCRE2::8BIT - The 8 bit PCRE2 library.
|
||||||
|
# PCRE2::16BIT - The 16 bit PCRE2 library.
|
||||||
|
# PCRE2::32BIT - The 32 bit PCRE2 library.
|
||||||
|
# PCRE2::POSIX - The POSIX PCRE2 library.
|
||||||
|
|
||||||
|
set(PCRE2_NON_STANDARD_LIB_PREFIX @NON_STANDARD_LIB_PREFIX@)
|
||||||
|
set(PCRE2_NON_STANDARD_LIB_SUFFIX @NON_STANDARD_LIB_SUFFIX@)
|
||||||
|
set(PCRE2_8BIT_NAME pcre2-8)
|
||||||
|
set(PCRE2_16BIT_NAME pcre2-16)
|
||||||
|
set(PCRE2_32BIT_NAME pcre2-32)
|
||||||
|
set(PCRE2_POSIX_NAME pcre2-posix)
|
||||||
|
find_path(PCRE2_INCLUDE_DIR NAMES pcre2.h DOC "PCRE2 include directory")
|
||||||
|
if(PCRE2_USE_STATIC_LIBS)
|
||||||
|
if(MSVC)
|
||||||
|
set(PCRE2_8BIT_NAME pcre2-8-static)
|
||||||
|
set(PCRE2_16BIT_NAME pcre2-16-static)
|
||||||
|
set(PCRE2_32BIT_NAME pcre2-32-static)
|
||||||
|
set(PCRE2_POSIX_NAME pcre2-posix-static)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PCRE2_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
|
||||||
|
set(PCRE2_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||||
|
else()
|
||||||
|
set(PCRE2_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX})
|
||||||
|
if(MINGW AND PCRE2_NON_STANDARD_LIB_PREFIX)
|
||||||
|
set(PCRE2_PREFIX "")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PCRE2_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||||
|
if(MINGW AND PCRE2_NON_STANDARD_LIB_SUFFIX)
|
||||||
|
set(PCRE2_SUFFIX "-0.dll")
|
||||||
|
elseif(MSVC)
|
||||||
|
set(PCRE2_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
find_library(
|
||||||
|
PCRE2_8BIT_LIBRARY
|
||||||
|
NAMES ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}d${PCRE2_SUFFIX}
|
||||||
|
DOC "8 bit PCRE2 library"
|
||||||
|
)
|
||||||
|
find_library(
|
||||||
|
PCRE2_16BIT_LIBRARY
|
||||||
|
NAMES ${PCRE2_PREFIX}${PCRE2_16BIT_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_16BIT_NAME}d${PCRE2_SUFFIX}
|
||||||
|
DOC "16 bit PCRE2 library"
|
||||||
|
)
|
||||||
|
find_library(
|
||||||
|
PCRE2_32BIT_LIBRARY
|
||||||
|
NAMES ${PCRE2_PREFIX}${PCRE2_32BIT_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_32BIT_NAME}d${PCRE2_SUFFIX}
|
||||||
|
DOC "32 bit PCRE2 library"
|
||||||
|
)
|
||||||
|
find_library(
|
||||||
|
PCRE2_POSIX_LIBRARY
|
||||||
|
NAMES ${PCRE2_PREFIX}${PCRE2_POSIX_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_POSIX_NAME}d${PCRE2_SUFFIX}
|
||||||
|
DOC "8 bit POSIX PCRE2 library"
|
||||||
|
)
|
||||||
|
unset(PCRE2_NON_STANDARD_LIB_PREFIX)
|
||||||
|
unset(PCRE2_NON_STANDARD_LIB_SUFFIX)
|
||||||
|
unset(PCRE2_8BIT_NAME)
|
||||||
|
unset(PCRE2_16BIT_NAME)
|
||||||
|
unset(PCRE2_32BIT_NAME)
|
||||||
|
unset(PCRE2_POSIX_NAME)
|
||||||
|
|
||||||
|
# Set version
|
||||||
|
if(PCRE2_INCLUDE_DIR)
|
||||||
|
set(PCRE2_VERSION "@PCRE2_MAJOR@.@PCRE2_MINOR@.0")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Which components have been found.
|
||||||
|
if(PCRE2_8BIT_LIBRARY)
|
||||||
|
set(PCRE2_8BIT_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_16BIT_LIBRARY)
|
||||||
|
set(PCRE2_16BIT_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_32BIT_LIBRARY)
|
||||||
|
set(PCRE2_32BIT_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
if(PCRE2_POSIX_LIBRARY)
|
||||||
|
set(PCRE2_POSIX_FOUND TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Check if at least one component has been specified.
|
||||||
|
list(LENGTH PCRE2_FIND_COMPONENTS PCRE2_NCOMPONENTS)
|
||||||
|
if(PCRE2_NCOMPONENTS LESS 1)
|
||||||
|
message(FATAL_ERROR "No components have been specified. This is not allowed. Please, specify at least one component.")
|
||||||
|
endif()
|
||||||
|
unset(PCRE2_NCOMPONENTS)
|
||||||
|
|
||||||
|
# When POSIX component has been specified make sure that also 8BIT component is specified.
|
||||||
|
set(PCRE2_8BIT_COMPONENT FALSE)
|
||||||
|
set(PCRE2_POSIX_COMPONENT FALSE)
|
||||||
|
foreach(component ${PCRE2_FIND_COMPONENTS})
|
||||||
|
if(component STREQUAL "8BIT")
|
||||||
|
set(PCRE2_8BIT_COMPONENT TRUE)
|
||||||
|
elseif(component STREQUAL "POSIX")
|
||||||
|
set(PCRE2_POSIX_COMPONENT TRUE)
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(PCRE2_POSIX_COMPONENT AND NOT PCRE2_8BIT_COMPONENT)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR
|
||||||
|
"The component POSIX is specified while the 8BIT one is not. This is not allowed. Please, also specify the 8BIT component."
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
unset(PCRE2_8BIT_COMPONENT)
|
||||||
|
unset(PCRE2_POSIX_COMPONENT)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG "${CMAKE_CURRENT_LIST_FILE}")
|
||||||
|
find_package_handle_standard_args(
|
||||||
|
PCRE2
|
||||||
|
FOUND_VAR PCRE2_FOUND
|
||||||
|
REQUIRED_VARS PCRE2_INCLUDE_DIR
|
||||||
|
HANDLE_COMPONENTS
|
||||||
|
VERSION_VAR PCRE2_VERSION
|
||||||
|
CONFIG_MODE
|
||||||
|
)
|
||||||
|
|
||||||
|
set(PCRE2_LIBRARIES)
|
||||||
|
if(PCRE2_FOUND)
|
||||||
|
foreach(component ${PCRE2_FIND_COMPONENTS})
|
||||||
|
if(PCRE2_USE_STATIC_LIBS)
|
||||||
|
add_library(PCRE2::${component} STATIC IMPORTED)
|
||||||
|
target_compile_definitions(PCRE2::${component} INTERFACE PCRE2_STATIC)
|
||||||
|
else()
|
||||||
|
add_library(PCRE2::${component} SHARED IMPORTED)
|
||||||
|
endif()
|
||||||
|
set_target_properties(
|
||||||
|
PCRE2::${component}
|
||||||
|
PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${PCRE2_${component}_LIBRARY}"
|
||||||
|
IMPORTED_IMPLIB "${PCRE2_${component}_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${PCRE2_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
|
if(component STREQUAL "POSIX")
|
||||||
|
set_target_properties(
|
||||||
|
PCRE2::${component}
|
||||||
|
PROPERTIES INTERFACE_LINK_LIBRARIES "PCRE2::8BIT" LINK_LIBRARIES "PCRE2::8BIT"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(PCRE2_LIBRARIES ${PCRE2_LIBRARIES} ${PCRE2_${component}_LIBRARY})
|
||||||
|
mark_as_advanced(PCRE2_${component}_LIBRARY)
|
||||||
|
endforeach()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(PCRE2_INCLUDE_DIR)
|
||||||
348
3rd/pcre2/compile
Normal file
348
3rd/pcre2/compile
Normal file
@@ -0,0 +1,348 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2018-03-07.03; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# 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. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
|
||||||
|
# We need space, tab and new line, in precisely that order. Quoting is
|
||||||
|
# there to prevent tools from complaining about whitespace usage.
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
file_conv=
|
||||||
|
|
||||||
|
# func_file_conv build_file lazy
|
||||||
|
# Convert a $build file to $host form and store it in $file
|
||||||
|
# Currently only supports Windows hosts. If the determined conversion
|
||||||
|
# type is listed in (the comma separated) LAZY, no conversion will
|
||||||
|
# take place.
|
||||||
|
func_file_conv ()
|
||||||
|
{
|
||||||
|
file=$1
|
||||||
|
case $file in
|
||||||
|
/ | /[!/]*) # absolute file, and not a UNC file
|
||||||
|
if test -z "$file_conv"; then
|
||||||
|
# lazily determine how to convert abs files
|
||||||
|
case `uname -s` in
|
||||||
|
MINGW*)
|
||||||
|
file_conv=mingw
|
||||||
|
;;
|
||||||
|
CYGWIN* | MSYS*)
|
||||||
|
file_conv=cygwin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
file_conv=wine
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
case $file_conv/,$2, in
|
||||||
|
*,$file_conv,*)
|
||||||
|
;;
|
||||||
|
mingw/*)
|
||||||
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
|
;;
|
||||||
|
cygwin/* | msys/*)
|
||||||
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
wine/*)
|
||||||
|
file=`winepath -w "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashL linkdir
|
||||||
|
# Make cl look for libraries in LINKDIR
|
||||||
|
func_cl_dashL ()
|
||||||
|
{
|
||||||
|
func_file_conv "$1"
|
||||||
|
if test -z "$lib_path"; then
|
||||||
|
lib_path=$file
|
||||||
|
else
|
||||||
|
lib_path="$lib_path;$file"
|
||||||
|
fi
|
||||||
|
linker_opts="$linker_opts -LIBPATH:$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashl library
|
||||||
|
# Do a library search-path lookup for cl
|
||||||
|
func_cl_dashl ()
|
||||||
|
{
|
||||||
|
lib=$1
|
||||||
|
found=no
|
||||||
|
save_IFS=$IFS
|
||||||
|
IFS=';'
|
||||||
|
for dir in $lib_path $LIB
|
||||||
|
do
|
||||||
|
IFS=$save_IFS
|
||||||
|
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.dll.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$lib.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/lib$lib.a"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/lib$lib.a
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$save_IFS
|
||||||
|
|
||||||
|
if test "$found" != yes; then
|
||||||
|
lib=$lib.lib
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_wrapper cl arg...
|
||||||
|
# Adjust compile command to suit cl
|
||||||
|
func_cl_wrapper ()
|
||||||
|
{
|
||||||
|
# Assume a capable shell
|
||||||
|
lib_path=
|
||||||
|
shared=:
|
||||||
|
linker_opts=
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.[oO][bB][jJ])
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fo"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fe"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
-I)
|
||||||
|
eat=1
|
||||||
|
func_file_conv "$2" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-I*)
|
||||||
|
func_file_conv "${1#-I}" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashl "$2"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l*)
|
||||||
|
func_cl_dashl "${1#-l}"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-L)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashL "$2"
|
||||||
|
;;
|
||||||
|
-L*)
|
||||||
|
func_cl_dashL "${1#-L}"
|
||||||
|
;;
|
||||||
|
-static)
|
||||||
|
shared=false
|
||||||
|
;;
|
||||||
|
-Wl,*)
|
||||||
|
arg=${1#-Wl,}
|
||||||
|
save_ifs="$IFS"; IFS=','
|
||||||
|
for flag in $arg; do
|
||||||
|
IFS="$save_ifs"
|
||||||
|
linker_opts="$linker_opts $flag"
|
||||||
|
done
|
||||||
|
IFS="$save_ifs"
|
||||||
|
;;
|
||||||
|
-Xlinker)
|
||||||
|
eat=1
|
||||||
|
linker_opts="$linker_opts $2"
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||||
|
func_file_conv "$1"
|
||||||
|
set x "$@" -Tp"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||||
|
func_file_conv "$1" mingw
|
||||||
|
set x "$@" "$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if test -n "$linker_opts"; then
|
||||||
|
linker_opts="-link$linker_opts"
|
||||||
|
fi
|
||||||
|
exec "$@" $linker_opts
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eat=
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file 'INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
|
||||||
|
icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
|
||||||
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
# So we strip '-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no '-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# '.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC0"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
||||||
58
3rd/pcre2/config-cmake.h.in
Normal file
58
3rd/pcre2/config-cmake.h.in
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
/* config.h for CMake builds */
|
||||||
|
|
||||||
|
#cmakedefine HAVE_ASSERT_H 1
|
||||||
|
#cmakedefine HAVE_BUILTIN_ASSUME 1
|
||||||
|
#cmakedefine HAVE_BUILTIN_MUL_OVERFLOW 1
|
||||||
|
#cmakedefine HAVE_BUILTIN_UNREACHABLE 1
|
||||||
|
#cmakedefine HAVE_ATTRIBUTE_UNINITIALIZED 1
|
||||||
|
#cmakedefine HAVE_DIRENT_H 1
|
||||||
|
#cmakedefine HAVE_SYS_STAT_H 1
|
||||||
|
#cmakedefine HAVE_SYS_TYPES_H 1
|
||||||
|
#cmakedefine HAVE_UNISTD_H 1
|
||||||
|
#cmakedefine HAVE_WINDOWS_H 1
|
||||||
|
|
||||||
|
#cmakedefine HAVE_BCOPY 1
|
||||||
|
#cmakedefine HAVE_MEMFD_CREATE 1
|
||||||
|
#cmakedefine HAVE_MEMMOVE 1
|
||||||
|
#cmakedefine HAVE_SECURE_GETENV 1
|
||||||
|
#cmakedefine HAVE_STRERROR 1
|
||||||
|
|
||||||
|
#cmakedefine SUPPORT_PCRE2_8 1
|
||||||
|
#cmakedefine SUPPORT_PCRE2_16 1
|
||||||
|
#cmakedefine SUPPORT_PCRE2_32 1
|
||||||
|
#cmakedefine DISABLE_PERCENT_ZT 1
|
||||||
|
|
||||||
|
#cmakedefine SUPPORT_LIBBZ2 1
|
||||||
|
#cmakedefine SUPPORT_LIBEDIT 1
|
||||||
|
#cmakedefine SUPPORT_LIBREADLINE 1
|
||||||
|
#cmakedefine SUPPORT_LIBZ 1
|
||||||
|
|
||||||
|
#cmakedefine SUPPORT_JIT 1
|
||||||
|
#cmakedefine SLJIT_PROT_EXECUTABLE_ALLOCATOR 1
|
||||||
|
#cmakedefine SUPPORT_PCRE2GREP_JIT 1
|
||||||
|
#cmakedefine SUPPORT_PCRE2GREP_CALLOUT 1
|
||||||
|
#cmakedefine SUPPORT_PCRE2GREP_CALLOUT_FORK 1
|
||||||
|
#cmakedefine SUPPORT_UNICODE 1
|
||||||
|
#cmakedefine SUPPORT_VALGRIND 1
|
||||||
|
|
||||||
|
#cmakedefine BSR_ANYCRLF 1
|
||||||
|
#cmakedefine EBCDIC 1
|
||||||
|
#cmakedefine EBCDIC_NL25 1
|
||||||
|
#cmakedefine HEAP_MATCH_RECURSE 1
|
||||||
|
#cmakedefine NEVER_BACKSLASH_C 1
|
||||||
|
|
||||||
|
#define PCRE2_EXPORT @PCRE2_EXPORT@
|
||||||
|
#define LINK_SIZE @PCRE2_LINK_SIZE@
|
||||||
|
#define HEAP_LIMIT @PCRE2_HEAP_LIMIT@
|
||||||
|
#define MATCH_LIMIT @PCRE2_MATCH_LIMIT@
|
||||||
|
#define MATCH_LIMIT_DEPTH @PCRE2_MATCH_LIMIT_DEPTH@
|
||||||
|
#define MAX_VARLOOKBEHIND @PCRE2_MAX_VARLOOKBEHIND@
|
||||||
|
#define NEWLINE_DEFAULT @NEWLINE_DEFAULT@
|
||||||
|
#define PARENS_NEST_LIMIT @PCRE2_PARENS_NEST_LIMIT@
|
||||||
|
#define PCRE2GREP_BUFSIZE @PCRE2GREP_BUFSIZE@
|
||||||
|
#define PCRE2GREP_MAX_BUFSIZE @PCRE2GREP_MAX_BUFSIZE@
|
||||||
|
|
||||||
|
#define MAX_NAME_SIZE 128
|
||||||
|
#define MAX_NAME_COUNT 10000
|
||||||
|
|
||||||
|
/* end config.h for CMake builds */
|
||||||
1754
3rd/pcre2/config.guess
vendored
Normal file
1754
3rd/pcre2/config.guess
vendored
Normal file
@@ -0,0 +1,1754 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Attempt to guess a canonical system name.
|
||||||
|
# Copyright 1992-2022 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||||
|
|
||||||
|
timestamp='2022-01-09'
|
||||||
|
|
||||||
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that
|
||||||
|
# program. This Exception is an additional permission under section 7
|
||||||
|
# of the GNU General Public License, version 3 ("GPLv3").
|
||||||
|
#
|
||||||
|
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
|
||||||
|
#
|
||||||
|
# You can get the latest version of this script from:
|
||||||
|
# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
|
||||||
|
#
|
||||||
|
# Please send patches to <config-patches@gnu.org>.
|
||||||
|
|
||||||
|
|
||||||
|
# The "shellcheck disable" line above the timestamp inhibits complaints
|
||||||
|
# about features and limitations of the classic Bourne shell that were
|
||||||
|
# superseded or lifted in POSIX. However, this script identifies a wide
|
||||||
|
# variety of pre-POSIX systems that do not have POSIX shells at all, and
|
||||||
|
# even some reasonably current systems (Solaris 10 as case-in-point) still
|
||||||
|
# have a pre-POSIX /bin/sh.
|
||||||
|
|
||||||
|
|
||||||
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: $0 [OPTION]
|
||||||
|
|
||||||
|
Output the configuration name of the system \`$me' is run on.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help print this help, then exit
|
||||||
|
-t, --time-stamp print date of last modification, then exit
|
||||||
|
-v, --version print version number, then exit
|
||||||
|
|
||||||
|
Report bugs and patches to <config-patches@gnu.org>."
|
||||||
|
|
||||||
|
version="\
|
||||||
|
GNU config.guess ($timestamp)
|
||||||
|
|
||||||
|
Originally written by Per Bothner.
|
||||||
|
Copyright 1992-2022 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
||||||
|
help="
|
||||||
|
Try \`$me --help' for more information."
|
||||||
|
|
||||||
|
# Parse command line
|
||||||
|
while test $# -gt 0 ; do
|
||||||
|
case $1 in
|
||||||
|
--time-stamp | --time* | -t )
|
||||||
|
echo "$timestamp" ; exit ;;
|
||||||
|
--version | -v )
|
||||||
|
echo "$version" ; exit ;;
|
||||||
|
--help | --h* | -h )
|
||||||
|
echo "$usage"; exit ;;
|
||||||
|
-- ) # Stop option processing
|
||||||
|
shift; break ;;
|
||||||
|
- ) # Use stdin as input.
|
||||||
|
break ;;
|
||||||
|
-* )
|
||||||
|
echo "$me: invalid option $1$help" >&2
|
||||||
|
exit 1 ;;
|
||||||
|
* )
|
||||||
|
break ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $# != 0; then
|
||||||
|
echo "$me: too many arguments$help" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Just in case it came from the environment.
|
||||||
|
GUESS=
|
||||||
|
|
||||||
|
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
|
||||||
|
# compiler to aid in system detection is discouraged as it requires
|
||||||
|
# temporary files to be created and, as you can see below, it is a
|
||||||
|
# headache to deal with in a portable fashion.
|
||||||
|
|
||||||
|
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
|
||||||
|
# use `HOST_CC' if defined, but it is deprecated.
|
||||||
|
|
||||||
|
# Portable tmp directory creation inspired by the Autoconf team.
|
||||||
|
|
||||||
|
tmp=
|
||||||
|
# shellcheck disable=SC2172
|
||||||
|
trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
|
||||||
|
|
||||||
|
set_cc_for_build() {
|
||||||
|
# prevent multiple calls if $tmp is already set
|
||||||
|
test "$tmp" && return 0
|
||||||
|
: "${TMPDIR=/tmp}"
|
||||||
|
# shellcheck disable=SC2039,SC3028
|
||||||
|
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
|
||||||
|
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
|
||||||
|
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
|
||||||
|
{ echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
|
||||||
|
dummy=$tmp/dummy
|
||||||
|
case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
|
||||||
|
,,) echo "int x;" > "$dummy.c"
|
||||||
|
for driver in cc gcc c89 c99 ; do
|
||||||
|
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
|
||||||
|
CC_FOR_BUILD=$driver
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if test x"$CC_FOR_BUILD" = x ; then
|
||||||
|
CC_FOR_BUILD=no_compiler_found
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
,,*) CC_FOR_BUILD=$CC ;;
|
||||||
|
,*,*) CC_FOR_BUILD=$HOST_CC ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
|
||||||
|
# (ghazi@noc.rutgers.edu 1994-08-24)
|
||||||
|
if test -f /.attbin/uname ; then
|
||||||
|
PATH=$PATH:/.attbin ; export PATH
|
||||||
|
fi
|
||||||
|
|
||||||
|
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
|
||||||
|
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
|
||||||
|
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
|
||||||
|
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
||||||
|
|
||||||
|
case $UNAME_SYSTEM in
|
||||||
|
Linux|GNU|GNU/*)
|
||||||
|
LIBC=unknown
|
||||||
|
|
||||||
|
set_cc_for_build
|
||||||
|
cat <<-EOF > "$dummy.c"
|
||||||
|
#include <features.h>
|
||||||
|
#if defined(__UCLIBC__)
|
||||||
|
LIBC=uclibc
|
||||||
|
#elif defined(__dietlibc__)
|
||||||
|
LIBC=dietlibc
|
||||||
|
#elif defined(__GLIBC__)
|
||||||
|
LIBC=gnu
|
||||||
|
#else
|
||||||
|
#include <stdarg.h>
|
||||||
|
/* First heuristic to detect musl libc. */
|
||||||
|
#ifdef __DEFINED_va_list
|
||||||
|
LIBC=musl
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
|
||||||
|
eval "$cc_set_libc"
|
||||||
|
|
||||||
|
# Second heuristic to detect musl libc.
|
||||||
|
if [ "$LIBC" = unknown ] &&
|
||||||
|
command -v ldd >/dev/null &&
|
||||||
|
ldd --version 2>&1 | grep -q ^musl; then
|
||||||
|
LIBC=musl
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If the system lacks a compiler, then just pick glibc.
|
||||||
|
# We could probably try harder.
|
||||||
|
if [ "$LIBC" = unknown ]; then
|
||||||
|
LIBC=gnu
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Note: order is significant - the case branches are not exclusive.
|
||||||
|
|
||||||
|
case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
|
||||||
|
*:NetBSD:*:*)
|
||||||
|
# NetBSD (nbsd) targets should (where applicable) match one or
|
||||||
|
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
|
||||||
|
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
||||||
|
# switched to ELF, *-*-netbsd* would select the old
|
||||||
|
# object file format. This provides both forward
|
||||||
|
# compatibility and a consistent mechanism for selecting the
|
||||||
|
# object file format.
|
||||||
|
#
|
||||||
|
# Note: NetBSD doesn't particularly care about the vendor
|
||||||
|
# portion of the name. We always set it to "unknown".
|
||||||
|
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
|
||||||
|
/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
|
||||||
|
/usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
|
||||||
|
echo unknown)`
|
||||||
|
case $UNAME_MACHINE_ARCH in
|
||||||
|
aarch64eb) machine=aarch64_be-unknown ;;
|
||||||
|
armeb) machine=armeb-unknown ;;
|
||||||
|
arm*) machine=arm-unknown ;;
|
||||||
|
sh3el) machine=shl-unknown ;;
|
||||||
|
sh3eb) machine=sh-unknown ;;
|
||||||
|
sh5el) machine=sh5le-unknown ;;
|
||||||
|
earmv*)
|
||||||
|
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
|
||||||
|
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
|
||||||
|
machine=${arch}${endian}-unknown
|
||||||
|
;;
|
||||||
|
*) machine=$UNAME_MACHINE_ARCH-unknown ;;
|
||||||
|
esac
|
||||||
|
# The Operating System including object format, if it has switched
|
||||||
|
# to ELF recently (or will in the future) and ABI.
|
||||||
|
case $UNAME_MACHINE_ARCH in
|
||||||
|
earm*)
|
||||||
|
os=netbsdelf
|
||||||
|
;;
|
||||||
|
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
|
||||||
|
set_cc_for_build
|
||||||
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
| grep -q __ELF__
|
||||||
|
then
|
||||||
|
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||||
|
# Return netbsd for either. FIX?
|
||||||
|
os=netbsd
|
||||||
|
else
|
||||||
|
os=netbsdelf
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os=netbsd
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Determine ABI tags.
|
||||||
|
case $UNAME_MACHINE_ARCH in
|
||||||
|
earm*)
|
||||||
|
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
|
||||||
|
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# The OS release
|
||||||
|
# Debian GNU/NetBSD machines have a different userland, and
|
||||||
|
# thus, need a distinct triplet. However, they do not need
|
||||||
|
# kernel version information, so it can be replaced with a
|
||||||
|
# suitable tag, in the style of linux-gnu.
|
||||||
|
case $UNAME_VERSION in
|
||||||
|
Debian*)
|
||||||
|
release='-gnu'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
|
||||||
|
# contains redundant information, the shorter form:
|
||||||
|
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
|
||||||
|
GUESS=$machine-${os}${release}${abi-}
|
||||||
|
;;
|
||||||
|
*:Bitrig:*:*)
|
||||||
|
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
|
||||||
|
GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:OpenBSD:*:*)
|
||||||
|
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
|
||||||
|
GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:SecBSD:*:*)
|
||||||
|
UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
|
||||||
|
GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:LibertyBSD:*:*)
|
||||||
|
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
|
||||||
|
GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:MidnightBSD:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:ekkoBSD:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:SolidBSD:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:OS108:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
macppc:MirBSD:*:*)
|
||||||
|
GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:MirBSD:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:Sortix:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-sortix
|
||||||
|
;;
|
||||||
|
*:Twizzler:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-twizzler
|
||||||
|
;;
|
||||||
|
*:Redox:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-redox
|
||||||
|
;;
|
||||||
|
mips:OSF1:*.*)
|
||||||
|
GUESS=mips-dec-osf1
|
||||||
|
;;
|
||||||
|
alpha:OSF1:*:*)
|
||||||
|
# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
|
||||||
|
trap '' 0
|
||||||
|
case $UNAME_RELEASE in
|
||||||
|
*4.0)
|
||||||
|
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
|
||||||
|
;;
|
||||||
|
*5.*)
|
||||||
|
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# According to Compaq, /usr/sbin/psrinfo has been available on
|
||||||
|
# OSF/1 and Tru64 systems produced since 1995. I hope that
|
||||||
|
# covers most systems running today. This code pipes the CPU
|
||||||
|
# types through head -n 1, so we only detect the type of CPU 0.
|
||||||
|
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
|
||||||
|
case $ALPHA_CPU_TYPE in
|
||||||
|
"EV4 (21064)")
|
||||||
|
UNAME_MACHINE=alpha ;;
|
||||||
|
"EV4.5 (21064)")
|
||||||
|
UNAME_MACHINE=alpha ;;
|
||||||
|
"LCA4 (21066/21068)")
|
||||||
|
UNAME_MACHINE=alpha ;;
|
||||||
|
"EV5 (21164)")
|
||||||
|
UNAME_MACHINE=alphaev5 ;;
|
||||||
|
"EV5.6 (21164A)")
|
||||||
|
UNAME_MACHINE=alphaev56 ;;
|
||||||
|
"EV5.6 (21164PC)")
|
||||||
|
UNAME_MACHINE=alphapca56 ;;
|
||||||
|
"EV5.7 (21164PC)")
|
||||||
|
UNAME_MACHINE=alphapca57 ;;
|
||||||
|
"EV6 (21264)")
|
||||||
|
UNAME_MACHINE=alphaev6 ;;
|
||||||
|
"EV6.7 (21264A)")
|
||||||
|
UNAME_MACHINE=alphaev67 ;;
|
||||||
|
"EV6.8CB (21264C)")
|
||||||
|
UNAME_MACHINE=alphaev68 ;;
|
||||||
|
"EV6.8AL (21264B)")
|
||||||
|
UNAME_MACHINE=alphaev68 ;;
|
||||||
|
"EV6.8CX (21264D)")
|
||||||
|
UNAME_MACHINE=alphaev68 ;;
|
||||||
|
"EV6.9A (21264/EV69A)")
|
||||||
|
UNAME_MACHINE=alphaev69 ;;
|
||||||
|
"EV7 (21364)")
|
||||||
|
UNAME_MACHINE=alphaev7 ;;
|
||||||
|
"EV7.9 (21364A)")
|
||||||
|
UNAME_MACHINE=alphaev79 ;;
|
||||||
|
esac
|
||||||
|
# A Pn.n version is a patched version.
|
||||||
|
# A Vn.n version is a released version.
|
||||||
|
# A Tn.n version is a released field test version.
|
||||||
|
# A Xn.n version is an unreleased experimental baselevel.
|
||||||
|
# 1.2 uses "1.2" for uname -r.
|
||||||
|
OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
|
||||||
|
GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
|
||||||
|
;;
|
||||||
|
Amiga*:UNIX_System_V:4.0:*)
|
||||||
|
GUESS=m68k-unknown-sysv4
|
||||||
|
;;
|
||||||
|
*:[Aa]miga[Oo][Ss]:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-amigaos
|
||||||
|
;;
|
||||||
|
*:[Mm]orph[Oo][Ss]:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-morphos
|
||||||
|
;;
|
||||||
|
*:OS/390:*:*)
|
||||||
|
GUESS=i370-ibm-openedition
|
||||||
|
;;
|
||||||
|
*:z/VM:*:*)
|
||||||
|
GUESS=s390-ibm-zvmoe
|
||||||
|
;;
|
||||||
|
*:OS400:*:*)
|
||||||
|
GUESS=powerpc-ibm-os400
|
||||||
|
;;
|
||||||
|
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
||||||
|
GUESS=arm-acorn-riscix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
arm*:riscos:*:*|arm*:RISCOS:*:*)
|
||||||
|
GUESS=arm-unknown-riscos
|
||||||
|
;;
|
||||||
|
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
|
||||||
|
GUESS=hppa1.1-hitachi-hiuxmpp
|
||||||
|
;;
|
||||||
|
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
|
||||||
|
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
|
||||||
|
case `(/bin/universe) 2>/dev/null` in
|
||||||
|
att) GUESS=pyramid-pyramid-sysv3 ;;
|
||||||
|
*) GUESS=pyramid-pyramid-bsd ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
NILE*:*:*:dcosx)
|
||||||
|
GUESS=pyramid-pyramid-svr4
|
||||||
|
;;
|
||||||
|
DRS?6000:unix:4.0:6*)
|
||||||
|
GUESS=sparc-icl-nx6
|
||||||
|
;;
|
||||||
|
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
|
||||||
|
case `/usr/bin/uname -p` in
|
||||||
|
sparc) GUESS=sparc-icl-nx7 ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
s390x:SunOS:*:*)
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
|
||||||
|
GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
|
||||||
|
;;
|
||||||
|
sun4H:SunOS:5.*:*)
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
|
||||||
|
GUESS=sparc-hal-solaris2$SUN_REL
|
||||||
|
;;
|
||||||
|
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
|
||||||
|
GUESS=sparc-sun-solaris2$SUN_REL
|
||||||
|
;;
|
||||||
|
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
|
||||||
|
GUESS=i386-pc-auroraux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
|
||||||
|
set_cc_for_build
|
||||||
|
SUN_ARCH=i386
|
||||||
|
# If there is a compiler, see if it is configured for 64-bit objects.
|
||||||
|
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
|
||||||
|
# This test works for both compilers.
|
||||||
|
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||||
|
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||||
|
(CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
|
||||||
|
grep IS_64BIT_ARCH >/dev/null
|
||||||
|
then
|
||||||
|
SUN_ARCH=x86_64
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
|
||||||
|
GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
|
||||||
|
;;
|
||||||
|
sun4*:SunOS:6*:*)
|
||||||
|
# According to config.sub, this is the proper way to canonicalize
|
||||||
|
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
|
||||||
|
# it's likely to be more like Solaris than SunOS4.
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
|
||||||
|
GUESS=sparc-sun-solaris3$SUN_REL
|
||||||
|
;;
|
||||||
|
sun4*:SunOS:*:*)
|
||||||
|
case `/usr/bin/arch -k` in
|
||||||
|
Series*|S4*)
|
||||||
|
UNAME_RELEASE=`uname -v`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
# Japanese Language versions have a version number like `4.1.3-JL'.
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
|
||||||
|
GUESS=sparc-sun-sunos$SUN_REL
|
||||||
|
;;
|
||||||
|
sun3*:SunOS:*:*)
|
||||||
|
GUESS=m68k-sun-sunos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
sun*:*:4.2BSD:*)
|
||||||
|
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
|
||||||
|
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
|
||||||
|
case `/bin/arch` in
|
||||||
|
sun3)
|
||||||
|
GUESS=m68k-sun-sunos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
sun4)
|
||||||
|
GUESS=sparc-sun-sunos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
aushp:SunOS:*:*)
|
||||||
|
GUESS=sparc-auspex-sunos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
# The situation for MiNT is a little confusing. The machine name
|
||||||
|
# can be virtually everything (everything which is not
|
||||||
|
# "atarist" or "atariste" at least should have a processor
|
||||||
|
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
|
||||||
|
# to the lowercase version "mint" (or "freemint"). Finally
|
||||||
|
# the system name "TOS" denotes a system which is actually not
|
||||||
|
# MiNT. But MiNT is downward compatible to TOS, so this should
|
||||||
|
# be no problem.
|
||||||
|
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||||
|
GUESS=m68k-atari-mint$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
|
||||||
|
GUESS=m68k-atari-mint$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
|
||||||
|
GUESS=m68k-atari-mint$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
|
||||||
|
GUESS=m68k-milan-mint$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
|
||||||
|
GUESS=m68k-hades-mint$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
|
||||||
|
GUESS=m68k-unknown-mint$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
m68k:machten:*:*)
|
||||||
|
GUESS=m68k-apple-machten$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
powerpc:machten:*:*)
|
||||||
|
GUESS=powerpc-apple-machten$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
RISC*:Mach:*:*)
|
||||||
|
GUESS=mips-dec-mach_bsd4.3
|
||||||
|
;;
|
||||||
|
RISC*:ULTRIX:*:*)
|
||||||
|
GUESS=mips-dec-ultrix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
VAX*:ULTRIX*:*:*)
|
||||||
|
GUESS=vax-dec-ultrix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
2020:CLIX:*:* | 2430:CLIX:*:*)
|
||||||
|
GUESS=clipper-intergraph-clix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
mips:*:*:UMIPS | mips:*:*:RISCos)
|
||||||
|
set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF > "$dummy.c"
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <stdio.h> /* for printf() prototype */
|
||||||
|
int main (int argc, char *argv[]) {
|
||||||
|
#else
|
||||||
|
int main (argc, argv) int argc; char *argv[]; {
|
||||||
|
#endif
|
||||||
|
#if defined (host_mips) && defined (MIPSEB)
|
||||||
|
#if defined (SYSTYPE_SYSV)
|
||||||
|
printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
|
||||||
|
#endif
|
||||||
|
#if defined (SYSTYPE_SVR4)
|
||||||
|
printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
|
||||||
|
#endif
|
||||||
|
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
|
||||||
|
printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
exit (-1);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
$CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
|
||||||
|
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
|
||||||
|
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
|
||||||
|
{ echo "$SYSTEM_NAME"; exit; }
|
||||||
|
GUESS=mips-mips-riscos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
Motorola:PowerMAX_OS:*:*)
|
||||||
|
GUESS=powerpc-motorola-powermax
|
||||||
|
;;
|
||||||
|
Motorola:*:4.3:PL8-*)
|
||||||
|
GUESS=powerpc-harris-powermax
|
||||||
|
;;
|
||||||
|
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
|
||||||
|
GUESS=powerpc-harris-powermax
|
||||||
|
;;
|
||||||
|
Night_Hawk:Power_UNIX:*:*)
|
||||||
|
GUESS=powerpc-harris-powerunix
|
||||||
|
;;
|
||||||
|
m88k:CX/UX:7*:*)
|
||||||
|
GUESS=m88k-harris-cxux7
|
||||||
|
;;
|
||||||
|
m88k:*:4*:R4*)
|
||||||
|
GUESS=m88k-motorola-sysv4
|
||||||
|
;;
|
||||||
|
m88k:*:3*:R3*)
|
||||||
|
GUESS=m88k-motorola-sysv3
|
||||||
|
;;
|
||||||
|
AViiON:dgux:*:*)
|
||||||
|
# DG/UX returns AViiON for all architectures
|
||||||
|
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||||
|
if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
|
||||||
|
then
|
||||||
|
if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
|
||||||
|
test "$TARGET_BINARY_INTERFACE"x = x
|
||||||
|
then
|
||||||
|
GUESS=m88k-dg-dgux$UNAME_RELEASE
|
||||||
|
else
|
||||||
|
GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
GUESS=i586-dg-dgux$UNAME_RELEASE
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
|
||||||
|
GUESS=m88k-dolphin-sysv3
|
||||||
|
;;
|
||||||
|
M88*:*:R3*:*)
|
||||||
|
# Delta 88k system running SVR3
|
||||||
|
GUESS=m88k-motorola-sysv3
|
||||||
|
;;
|
||||||
|
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
|
||||||
|
GUESS=m88k-tektronix-sysv3
|
||||||
|
;;
|
||||||
|
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
|
||||||
|
GUESS=m68k-tektronix-bsd
|
||||||
|
;;
|
||||||
|
*:IRIX*:*:*)
|
||||||
|
IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
|
||||||
|
GUESS=mips-sgi-irix$IRIX_REL
|
||||||
|
;;
|
||||||
|
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
|
||||||
|
GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
|
||||||
|
;; # Note that: echo "'`uname -s`'" gives 'AIX '
|
||||||
|
i*86:AIX:*:*)
|
||||||
|
GUESS=i386-ibm-aix
|
||||||
|
;;
|
||||||
|
ia64:AIX:*:*)
|
||||||
|
if test -x /usr/bin/oslevel ; then
|
||||||
|
IBM_REV=`/usr/bin/oslevel`
|
||||||
|
else
|
||||||
|
IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
|
||||||
|
fi
|
||||||
|
GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
|
||||||
|
;;
|
||||||
|
*:AIX:2:3)
|
||||||
|
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||||
|
set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF > "$dummy.c"
|
||||||
|
#include <sys/systemcfg.h>
|
||||||
|
|
||||||
|
main()
|
||||||
|
{
|
||||||
|
if (!__power_pc())
|
||||||
|
exit(1);
|
||||||
|
puts("powerpc-ibm-aix3.2.5");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
|
||||||
|
then
|
||||||
|
GUESS=$SYSTEM_NAME
|
||||||
|
else
|
||||||
|
GUESS=rs6000-ibm-aix3.2.5
|
||||||
|
fi
|
||||||
|
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||||
|
GUESS=rs6000-ibm-aix3.2.4
|
||||||
|
else
|
||||||
|
GUESS=rs6000-ibm-aix3.2
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*:AIX:*:[4567])
|
||||||
|
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
|
||||||
|
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
|
||||||
|
IBM_ARCH=rs6000
|
||||||
|
else
|
||||||
|
IBM_ARCH=powerpc
|
||||||
|
fi
|
||||||
|
if test -x /usr/bin/lslpp ; then
|
||||||
|
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
|
||||||
|
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
|
||||||
|
else
|
||||||
|
IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
|
||||||
|
fi
|
||||||
|
GUESS=$IBM_ARCH-ibm-aix$IBM_REV
|
||||||
|
;;
|
||||||
|
*:AIX:*:*)
|
||||||
|
GUESS=rs6000-ibm-aix
|
||||||
|
;;
|
||||||
|
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
|
||||||
|
GUESS=romp-ibm-bsd4.4
|
||||||
|
;;
|
||||||
|
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
|
||||||
|
GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
|
||||||
|
;; # report: romp-ibm BSD 4.3
|
||||||
|
*:BOSX:*:*)
|
||||||
|
GUESS=rs6000-bull-bosx
|
||||||
|
;;
|
||||||
|
DPX/2?00:B.O.S.:*:*)
|
||||||
|
GUESS=m68k-bull-sysv3
|
||||||
|
;;
|
||||||
|
9000/[34]??:4.3bsd:1.*:*)
|
||||||
|
GUESS=m68k-hp-bsd
|
||||||
|
;;
|
||||||
|
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
|
||||||
|
GUESS=m68k-hp-bsd4.4
|
||||||
|
;;
|
||||||
|
9000/[34678]??:HP-UX:*:*)
|
||||||
|
HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
|
||||||
|
case $UNAME_MACHINE in
|
||||||
|
9000/31?) HP_ARCH=m68000 ;;
|
||||||
|
9000/[34]??) HP_ARCH=m68k ;;
|
||||||
|
9000/[678][0-9][0-9])
|
||||||
|
if test -x /usr/bin/getconf; then
|
||||||
|
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||||
|
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||||
|
case $sc_cpu_version in
|
||||||
|
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
|
||||||
|
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
|
||||||
|
532) # CPU_PA_RISC2_0
|
||||||
|
case $sc_kernel_bits in
|
||||||
|
32) HP_ARCH=hppa2.0n ;;
|
||||||
|
64) HP_ARCH=hppa2.0w ;;
|
||||||
|
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
|
||||||
|
esac ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
if test "$HP_ARCH" = ""; then
|
||||||
|
set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF > "$dummy.c"
|
||||||
|
|
||||||
|
#define _HPUX_SOURCE
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
int main ()
|
||||||
|
{
|
||||||
|
#if defined(_SC_KERNEL_BITS)
|
||||||
|
long bits = sysconf(_SC_KERNEL_BITS);
|
||||||
|
#endif
|
||||||
|
long cpu = sysconf (_SC_CPU_VERSION);
|
||||||
|
|
||||||
|
switch (cpu)
|
||||||
|
{
|
||||||
|
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
|
||||||
|
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
|
||||||
|
case CPU_PA_RISC2_0:
|
||||||
|
#if defined(_SC_KERNEL_BITS)
|
||||||
|
switch (bits)
|
||||||
|
{
|
||||||
|
case 64: puts ("hppa2.0w"); break;
|
||||||
|
case 32: puts ("hppa2.0n"); break;
|
||||||
|
default: puts ("hppa2.0"); break;
|
||||||
|
} break;
|
||||||
|
#else /* !defined(_SC_KERNEL_BITS) */
|
||||||
|
puts ("hppa2.0"); break;
|
||||||
|
#endif
|
||||||
|
default: puts ("hppa1.0"); break;
|
||||||
|
}
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
(CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
|
||||||
|
test -z "$HP_ARCH" && HP_ARCH=hppa
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
if test "$HP_ARCH" = hppa2.0w
|
||||||
|
then
|
||||||
|
set_cc_for_build
|
||||||
|
|
||||||
|
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
|
||||||
|
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
|
||||||
|
# generating 64-bit code. GNU and HP use different nomenclature:
|
||||||
|
#
|
||||||
|
# $ CC_FOR_BUILD=cc ./config.guess
|
||||||
|
# => hppa2.0w-hp-hpux11.23
|
||||||
|
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
|
||||||
|
# => hppa64-hp-hpux11.23
|
||||||
|
|
||||||
|
if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
|
||||||
|
grep -q __LP64__
|
||||||
|
then
|
||||||
|
HP_ARCH=hppa2.0w
|
||||||
|
else
|
||||||
|
HP_ARCH=hppa64
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
GUESS=$HP_ARCH-hp-hpux$HPUX_REV
|
||||||
|
;;
|
||||||
|
ia64:HP-UX:*:*)
|
||||||
|
HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
|
||||||
|
GUESS=ia64-hp-hpux$HPUX_REV
|
||||||
|
;;
|
||||||
|
3050*:HI-UX:*:*)
|
||||||
|
set_cc_for_build
|
||||||
|
sed 's/^ //' << EOF > "$dummy.c"
|
||||||
|
#include <unistd.h>
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
long cpu = sysconf (_SC_CPU_VERSION);
|
||||||
|
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
|
||||||
|
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
|
||||||
|
results, however. */
|
||||||
|
if (CPU_IS_PA_RISC (cpu))
|
||||||
|
{
|
||||||
|
switch (cpu)
|
||||||
|
{
|
||||||
|
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
|
||||||
|
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
|
||||||
|
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
|
||||||
|
default: puts ("hppa-hitachi-hiuxwe2"); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (CPU_IS_HP_MC68K (cpu))
|
||||||
|
puts ("m68k-hitachi-hiuxwe2");
|
||||||
|
else puts ("unknown-hitachi-hiuxwe2");
|
||||||
|
exit (0);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
|
||||||
|
{ echo "$SYSTEM_NAME"; exit; }
|
||||||
|
GUESS=unknown-hitachi-hiuxwe2
|
||||||
|
;;
|
||||||
|
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
|
||||||
|
GUESS=hppa1.1-hp-bsd
|
||||||
|
;;
|
||||||
|
9000/8??:4.3bsd:*:*)
|
||||||
|
GUESS=hppa1.0-hp-bsd
|
||||||
|
;;
|
||||||
|
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
|
||||||
|
GUESS=hppa1.0-hp-mpeix
|
||||||
|
;;
|
||||||
|
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
|
||||||
|
GUESS=hppa1.1-hp-osf
|
||||||
|
;;
|
||||||
|
hp8??:OSF1:*:*)
|
||||||
|
GUESS=hppa1.0-hp-osf
|
||||||
|
;;
|
||||||
|
i*86:OSF1:*:*)
|
||||||
|
if test -x /usr/sbin/sysversion ; then
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-osf1mk
|
||||||
|
else
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-osf1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
parisc*:Lites*:*:*)
|
||||||
|
GUESS=hppa1.1-hp-lites
|
||||||
|
;;
|
||||||
|
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
|
||||||
|
GUESS=c1-convex-bsd
|
||||||
|
;;
|
||||||
|
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
|
||||||
|
if getsysinfo -f scalar_acc
|
||||||
|
then echo c32-convex-bsd
|
||||||
|
else echo c2-convex-bsd
|
||||||
|
fi
|
||||||
|
exit ;;
|
||||||
|
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
|
||||||
|
GUESS=c34-convex-bsd
|
||||||
|
;;
|
||||||
|
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
|
||||||
|
GUESS=c38-convex-bsd
|
||||||
|
;;
|
||||||
|
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
|
||||||
|
GUESS=c4-convex-bsd
|
||||||
|
;;
|
||||||
|
CRAY*Y-MP:*:*:*)
|
||||||
|
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
|
||||||
|
GUESS=ymp-cray-unicos$CRAY_REL
|
||||||
|
;;
|
||||||
|
CRAY*[A-Z]90:*:*:*)
|
||||||
|
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
|
||||||
|
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
|
||||||
|
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
|
||||||
|
-e 's/\.[^.]*$/.X/'
|
||||||
|
exit ;;
|
||||||
|
CRAY*TS:*:*:*)
|
||||||
|
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
|
||||||
|
GUESS=t90-cray-unicos$CRAY_REL
|
||||||
|
;;
|
||||||
|
CRAY*T3E:*:*:*)
|
||||||
|
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
|
||||||
|
GUESS=alphaev5-cray-unicosmk$CRAY_REL
|
||||||
|
;;
|
||||||
|
CRAY*SV1:*:*:*)
|
||||||
|
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
|
||||||
|
GUESS=sv1-cray-unicos$CRAY_REL
|
||||||
|
;;
|
||||||
|
*:UNICOS/mp:*:*)
|
||||||
|
CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
|
||||||
|
GUESS=craynv-cray-unicosmp$CRAY_REL
|
||||||
|
;;
|
||||||
|
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||||
|
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
|
||||||
|
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
|
||||||
|
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
|
||||||
|
GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
|
||||||
|
;;
|
||||||
|
5000:UNIX_System_V:4.*:*)
|
||||||
|
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
|
||||||
|
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
|
||||||
|
GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
|
||||||
|
;;
|
||||||
|
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
sparc*:BSD/OS:*:*)
|
||||||
|
GUESS=sparc-unknown-bsdi$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:BSD/OS:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
arm:FreeBSD:*:*)
|
||||||
|
UNAME_PROCESSOR=`uname -p`
|
||||||
|
set_cc_for_build
|
||||||
|
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
| grep -q __ARM_PCS_VFP
|
||||||
|
then
|
||||||
|
FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||||
|
GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
|
||||||
|
else
|
||||||
|
FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||||
|
GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*:FreeBSD:*:*)
|
||||||
|
UNAME_PROCESSOR=`/usr/bin/uname -p`
|
||||||
|
case $UNAME_PROCESSOR in
|
||||||
|
amd64)
|
||||||
|
UNAME_PROCESSOR=x86_64 ;;
|
||||||
|
i386)
|
||||||
|
UNAME_PROCESSOR=i586 ;;
|
||||||
|
esac
|
||||||
|
FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||||
|
GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
|
||||||
|
;;
|
||||||
|
i*:CYGWIN*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-cygwin
|
||||||
|
;;
|
||||||
|
*:MINGW64*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-mingw64
|
||||||
|
;;
|
||||||
|
*:MINGW*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-mingw32
|
||||||
|
;;
|
||||||
|
*:MSYS*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-msys
|
||||||
|
;;
|
||||||
|
i*:PW*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-pw32
|
||||||
|
;;
|
||||||
|
*:SerenityOS:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-serenity
|
||||||
|
;;
|
||||||
|
*:Interix*:*)
|
||||||
|
case $UNAME_MACHINE in
|
||||||
|
x86)
|
||||||
|
GUESS=i586-pc-interix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
authenticamd | genuineintel | EM64T)
|
||||||
|
GUESS=x86_64-unknown-interix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
IA64)
|
||||||
|
GUESS=ia64-unknown-interix$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
esac ;;
|
||||||
|
i*:UWIN*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-uwin
|
||||||
|
;;
|
||||||
|
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
|
||||||
|
GUESS=x86_64-pc-cygwin
|
||||||
|
;;
|
||||||
|
prep*:SunOS:5.*:*)
|
||||||
|
SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
|
||||||
|
GUESS=powerpcle-unknown-solaris2$SUN_REL
|
||||||
|
;;
|
||||||
|
*:GNU:*:*)
|
||||||
|
# the GNU system
|
||||||
|
GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
|
||||||
|
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
|
||||||
|
GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
|
||||||
|
;;
|
||||||
|
*:GNU/*:*:*)
|
||||||
|
# other systems with GNU libc and userland
|
||||||
|
GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
|
||||||
|
GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
|
||||||
|
;;
|
||||||
|
*:Minix:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-minix
|
||||||
|
;;
|
||||||
|
aarch64:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
aarch64_be:Linux:*:*)
|
||||||
|
UNAME_MACHINE=aarch64_be
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
alpha:Linux:*:*)
|
||||||
|
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
|
||||||
|
EV5) UNAME_MACHINE=alphaev5 ;;
|
||||||
|
EV56) UNAME_MACHINE=alphaev56 ;;
|
||||||
|
PCA56) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
PCA57) UNAME_MACHINE=alphapca56 ;;
|
||||||
|
EV6) UNAME_MACHINE=alphaev6 ;;
|
||||||
|
EV67) UNAME_MACHINE=alphaev67 ;;
|
||||||
|
EV68*) UNAME_MACHINE=alphaev68 ;;
|
||||||
|
esac
|
||||||
|
objdump --private-headers /bin/sh | grep -q ld.so.1
|
||||||
|
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
arm*:Linux:*:*)
|
||||||
|
set_cc_for_build
|
||||||
|
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
| grep -q __ARM_EABI__
|
||||||
|
then
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
else
|
||||||
|
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
|
| grep -q __ARM_PCS_VFP
|
||||||
|
then
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
|
||||||
|
else
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
avr32*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
cris:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-axis-linux-$LIBC
|
||||||
|
;;
|
||||||
|
crisv32:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-axis-linux-$LIBC
|
||||||
|
;;
|
||||||
|
e2k:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
frv:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
hexagon:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
i*86:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-linux-$LIBC
|
||||||
|
;;
|
||||||
|
ia64:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
k1om:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
m32r*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
m68*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
mips:Linux:*:* | mips64:Linux:*:*)
|
||||||
|
set_cc_for_build
|
||||||
|
IS_GLIBC=0
|
||||||
|
test x"${LIBC}" = xgnu && IS_GLIBC=1
|
||||||
|
sed 's/^ //' << EOF > "$dummy.c"
|
||||||
|
#undef CPU
|
||||||
|
#undef mips
|
||||||
|
#undef mipsel
|
||||||
|
#undef mips64
|
||||||
|
#undef mips64el
|
||||||
|
#if ${IS_GLIBC} && defined(_ABI64)
|
||||||
|
LIBCABI=gnuabi64
|
||||||
|
#else
|
||||||
|
#if ${IS_GLIBC} && defined(_ABIN32)
|
||||||
|
LIBCABI=gnuabin32
|
||||||
|
#else
|
||||||
|
LIBCABI=${LIBC}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
|
||||||
|
CPU=mipsisa64r6
|
||||||
|
#else
|
||||||
|
#if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
|
||||||
|
CPU=mipsisa32r6
|
||||||
|
#else
|
||||||
|
#if defined(__mips64)
|
||||||
|
CPU=mips64
|
||||||
|
#else
|
||||||
|
CPU=mips
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
|
||||||
|
MIPS_ENDIAN=el
|
||||||
|
#else
|
||||||
|
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
|
||||||
|
MIPS_ENDIAN=
|
||||||
|
#else
|
||||||
|
MIPS_ENDIAN=
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
EOF
|
||||||
|
cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
|
||||||
|
eval "$cc_set_vars"
|
||||||
|
test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
|
||||||
|
;;
|
||||||
|
mips64el:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
openrisc*:Linux:*:*)
|
||||||
|
GUESS=or1k-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
or32:Linux:*:* | or1k*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
padre:Linux:*:*)
|
||||||
|
GUESS=sparc-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
||||||
|
GUESS=hppa64-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||||
|
# Look for CPU level
|
||||||
|
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
||||||
|
PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
|
||||||
|
PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
|
||||||
|
*) GUESS=hppa-unknown-linux-$LIBC ;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
ppc64:Linux:*:*)
|
||||||
|
GUESS=powerpc64-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
ppc:Linux:*:*)
|
||||||
|
GUESS=powerpc-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
ppc64le:Linux:*:*)
|
||||||
|
GUESS=powerpc64le-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
ppcle:Linux:*:*)
|
||||||
|
GUESS=powerpcle-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
s390:Linux:*:* | s390x:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
|
||||||
|
;;
|
||||||
|
sh64*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
sh*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
sparc:Linux:*:* | sparc64:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
tile*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
vax:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-dec-linux-$LIBC
|
||||||
|
;;
|
||||||
|
x86_64:Linux:*:*)
|
||||||
|
set_cc_for_build
|
||||||
|
LIBCABI=$LIBC
|
||||||
|
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||||
|
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
|
||||||
|
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||||
|
grep IS_X32 >/dev/null
|
||||||
|
then
|
||||||
|
LIBCABI=${LIBC}x32
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
|
||||||
|
;;
|
||||||
|
xtensa*:Linux:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
|
||||||
|
;;
|
||||||
|
i*86:DYNIX/ptx:4*:*)
|
||||||
|
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
|
||||||
|
# earlier versions are messed up and put the nodename in both
|
||||||
|
# sysname and nodename.
|
||||||
|
GUESS=i386-sequent-sysv4
|
||||||
|
;;
|
||||||
|
i*86:UNIX_SV:4.2MP:2.*)
|
||||||
|
# Unixware is an offshoot of SVR4, but it has its own version
|
||||||
|
# number series starting with 2...
|
||||||
|
# I am not positive that other SVR4 systems won't match this,
|
||||||
|
# I just have to hope. -- rms.
|
||||||
|
# Use sysv4.2uw... so that sysv4* matches it.
|
||||||
|
GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
|
||||||
|
;;
|
||||||
|
i*86:OS/2:*:*)
|
||||||
|
# If we were able to find `uname', then EMX Unix compatibility
|
||||||
|
# is probably installed.
|
||||||
|
GUESS=$UNAME_MACHINE-pc-os2-emx
|
||||||
|
;;
|
||||||
|
i*86:XTS-300:*:STOP)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-stop
|
||||||
|
;;
|
||||||
|
i*86:atheos:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-atheos
|
||||||
|
;;
|
||||||
|
i*86:syllable:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-syllable
|
||||||
|
;;
|
||||||
|
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
|
||||||
|
GUESS=i386-unknown-lynxos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
i*86:*DOS:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-msdosdjgpp
|
||||||
|
;;
|
||||||
|
i*86:*:4.*:*)
|
||||||
|
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
|
||||||
|
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
|
||||||
|
GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
|
||||||
|
else
|
||||||
|
GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
i*86:*:5:[678]*)
|
||||||
|
# UnixWare 7.x, OpenUNIX and OpenServer 6.
|
||||||
|
case `/bin/uname -X | grep "^Machine"` in
|
||||||
|
*486*) UNAME_MACHINE=i486 ;;
|
||||||
|
*Pentium) UNAME_MACHINE=i586 ;;
|
||||||
|
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
|
||||||
|
esac
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
|
||||||
|
;;
|
||||||
|
i*86:*:3.2:*)
|
||||||
|
if test -f /usr/options/cb.name; then
|
||||||
|
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
|
||||||
|
GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
|
||||||
|
elif /bin/uname -X 2>/dev/null >/dev/null ; then
|
||||||
|
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
|
||||||
|
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
|
||||||
|
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
|
||||||
|
&& UNAME_MACHINE=i586
|
||||||
|
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
|
||||||
|
&& UNAME_MACHINE=i686
|
||||||
|
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
|
||||||
|
&& UNAME_MACHINE=i686
|
||||||
|
GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
|
||||||
|
else
|
||||||
|
GUESS=$UNAME_MACHINE-pc-sysv32
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
pc:*:*:*)
|
||||||
|
# Left here for compatibility:
|
||||||
|
# uname -m prints for DJGPP always 'pc', but it prints nothing about
|
||||||
|
# the processor, so we play safe by assuming i586.
|
||||||
|
# Note: whatever this is, it MUST be the same as what config.sub
|
||||||
|
# prints for the "djgpp" host, or else GDB configure will decide that
|
||||||
|
# this is a cross-build.
|
||||||
|
GUESS=i586-pc-msdosdjgpp
|
||||||
|
;;
|
||||||
|
Intel:Mach:3*:*)
|
||||||
|
GUESS=i386-pc-mach3
|
||||||
|
;;
|
||||||
|
paragon:*:*:*)
|
||||||
|
GUESS=i860-intel-osf1
|
||||||
|
;;
|
||||||
|
i860:*:4.*:*) # i860-SVR4
|
||||||
|
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
|
||||||
|
GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
|
||||||
|
else # Add other i860-SVR4 vendors below as they are discovered.
|
||||||
|
GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
mini*:CTIX:SYS*5:*)
|
||||||
|
# "miniframe"
|
||||||
|
GUESS=m68010-convergent-sysv
|
||||||
|
;;
|
||||||
|
mc68k:UNIX:SYSTEM5:3.51m)
|
||||||
|
GUESS=m68k-convergent-sysv
|
||||||
|
;;
|
||||||
|
M680?0:D-NIX:5.3:*)
|
||||||
|
GUESS=m68k-diab-dnix
|
||||||
|
;;
|
||||||
|
M68*:*:R3V[5678]*:*)
|
||||||
|
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
|
||||||
|
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
|
||||||
|
OS_REL=''
|
||||||
|
test -r /etc/.relid \
|
||||||
|
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||||
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||||
|
&& { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
|
||||||
|
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||||
|
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
|
||||||
|
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
|
||||||
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||||
|
&& { echo i486-ncr-sysv4; exit; } ;;
|
||||||
|
NCR*:*:4.2:* | MPRAS*:*:4.2:*)
|
||||||
|
OS_REL='.3'
|
||||||
|
test -r /etc/.relid \
|
||||||
|
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||||
|
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
|
||||||
|
&& { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
|
||||||
|
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
|
||||||
|
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
|
||||||
|
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
|
||||||
|
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
|
||||||
|
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
|
||||||
|
GUESS=m68k-unknown-lynxos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
mc68030:UNIX_System_V:4.*:*)
|
||||||
|
GUESS=m68k-atari-sysv4
|
||||||
|
;;
|
||||||
|
TSUNAMI:LynxOS:2.*:*)
|
||||||
|
GUESS=sparc-unknown-lynxos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
rs6000:LynxOS:2.*:*)
|
||||||
|
GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
|
||||||
|
GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SM[BE]S:UNIX_SV:*:*)
|
||||||
|
GUESS=mips-dde-sysv$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
RM*:ReliantUNIX-*:*:*)
|
||||||
|
GUESS=mips-sni-sysv4
|
||||||
|
;;
|
||||||
|
RM*:SINIX-*:*:*)
|
||||||
|
GUESS=mips-sni-sysv4
|
||||||
|
;;
|
||||||
|
*:SINIX-*:*:*)
|
||||||
|
if uname -p 2>/dev/null >/dev/null ; then
|
||||||
|
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||||
|
GUESS=$UNAME_MACHINE-sni-sysv4
|
||||||
|
else
|
||||||
|
GUESS=ns32k-sni-sysv
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
|
||||||
|
# says <Richard.M.Bartel@ccMail.Census.GOV>
|
||||||
|
GUESS=i586-unisys-sysv4
|
||||||
|
;;
|
||||||
|
*:UNIX_System_V:4*:FTX*)
|
||||||
|
# From Gerald Hewes <hewes@openmarket.com>.
|
||||||
|
# How about differentiating between stratus architectures? -djm
|
||||||
|
GUESS=hppa1.1-stratus-sysv4
|
||||||
|
;;
|
||||||
|
*:*:*:FTX*)
|
||||||
|
# From seanf@swdc.stratus.com.
|
||||||
|
GUESS=i860-stratus-sysv4
|
||||||
|
;;
|
||||||
|
i*86:VOS:*:*)
|
||||||
|
# From Paul.Green@stratus.com.
|
||||||
|
GUESS=$UNAME_MACHINE-stratus-vos
|
||||||
|
;;
|
||||||
|
*:VOS:*:*)
|
||||||
|
# From Paul.Green@stratus.com.
|
||||||
|
GUESS=hppa1.1-stratus-vos
|
||||||
|
;;
|
||||||
|
mc68*:A/UX:*:*)
|
||||||
|
GUESS=m68k-apple-aux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
news*:NEWS-OS:6*:*)
|
||||||
|
GUESS=mips-sony-newsos6
|
||||||
|
;;
|
||||||
|
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
||||||
|
if test -d /usr/nec; then
|
||||||
|
GUESS=mips-nec-sysv$UNAME_RELEASE
|
||||||
|
else
|
||||||
|
GUESS=mips-unknown-sysv$UNAME_RELEASE
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
|
||||||
|
GUESS=powerpc-be-beos
|
||||||
|
;;
|
||||||
|
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
|
||||||
|
GUESS=powerpc-apple-beos
|
||||||
|
;;
|
||||||
|
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
|
||||||
|
GUESS=i586-pc-beos
|
||||||
|
;;
|
||||||
|
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
|
||||||
|
GUESS=i586-pc-haiku
|
||||||
|
;;
|
||||||
|
x86_64:Haiku:*:*)
|
||||||
|
GUESS=x86_64-unknown-haiku
|
||||||
|
;;
|
||||||
|
SX-4:SUPER-UX:*:*)
|
||||||
|
GUESS=sx4-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SX-5:SUPER-UX:*:*)
|
||||||
|
GUESS=sx5-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SX-6:SUPER-UX:*:*)
|
||||||
|
GUESS=sx6-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SX-7:SUPER-UX:*:*)
|
||||||
|
GUESS=sx7-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SX-8:SUPER-UX:*:*)
|
||||||
|
GUESS=sx8-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SX-8R:SUPER-UX:*:*)
|
||||||
|
GUESS=sx8r-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
SX-ACE:SUPER-UX:*:*)
|
||||||
|
GUESS=sxace-nec-superux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
Power*:Rhapsody:*:*)
|
||||||
|
GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:Rhapsody:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
arm64:Darwin:*:*)
|
||||||
|
GUESS=aarch64-apple-darwin$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:Darwin:*:*)
|
||||||
|
UNAME_PROCESSOR=`uname -p`
|
||||||
|
case $UNAME_PROCESSOR in
|
||||||
|
unknown) UNAME_PROCESSOR=powerpc ;;
|
||||||
|
esac
|
||||||
|
if command -v xcode-select > /dev/null 2> /dev/null && \
|
||||||
|
! xcode-select --print-path > /dev/null 2> /dev/null ; then
|
||||||
|
# Avoid executing cc if there is no toolchain installed as
|
||||||
|
# cc will be a stub that puts up a graphical alert
|
||||||
|
# prompting the user to install developer tools.
|
||||||
|
CC_FOR_BUILD=no_compiler_found
|
||||||
|
else
|
||||||
|
set_cc_for_build
|
||||||
|
fi
|
||||||
|
if test "$CC_FOR_BUILD" != no_compiler_found; then
|
||||||
|
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
|
||||||
|
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||||
|
grep IS_64BIT_ARCH >/dev/null
|
||||||
|
then
|
||||||
|
case $UNAME_PROCESSOR in
|
||||||
|
i386) UNAME_PROCESSOR=x86_64 ;;
|
||||||
|
powerpc) UNAME_PROCESSOR=powerpc64 ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
# On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
|
||||||
|
if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
|
||||||
|
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
|
||||||
|
grep IS_PPC >/dev/null
|
||||||
|
then
|
||||||
|
UNAME_PROCESSOR=powerpc
|
||||||
|
fi
|
||||||
|
elif test "$UNAME_PROCESSOR" = i386 ; then
|
||||||
|
# uname -m returns i386 or x86_64
|
||||||
|
UNAME_PROCESSOR=$UNAME_MACHINE
|
||||||
|
fi
|
||||||
|
GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:procnto*:*:* | *:QNX:[0123456789]*:*)
|
||||||
|
UNAME_PROCESSOR=`uname -p`
|
||||||
|
if test "$UNAME_PROCESSOR" = x86; then
|
||||||
|
UNAME_PROCESSOR=i386
|
||||||
|
UNAME_MACHINE=pc
|
||||||
|
fi
|
||||||
|
GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:QNX:*:4*)
|
||||||
|
GUESS=i386-pc-qnx
|
||||||
|
;;
|
||||||
|
NEO-*:NONSTOP_KERNEL:*:*)
|
||||||
|
GUESS=neo-tandem-nsk$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
NSE-*:NONSTOP_KERNEL:*:*)
|
||||||
|
GUESS=nse-tandem-nsk$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
NSR-*:NONSTOP_KERNEL:*:*)
|
||||||
|
GUESS=nsr-tandem-nsk$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
NSV-*:NONSTOP_KERNEL:*:*)
|
||||||
|
GUESS=nsv-tandem-nsk$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
NSX-*:NONSTOP_KERNEL:*:*)
|
||||||
|
GUESS=nsx-tandem-nsk$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:NonStop-UX:*:*)
|
||||||
|
GUESS=mips-compaq-nonstopux
|
||||||
|
;;
|
||||||
|
BS2000:POSIX*:*:*)
|
||||||
|
GUESS=bs2000-siemens-sysv
|
||||||
|
;;
|
||||||
|
DS/*:UNIX_System_V:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:Plan9:*:*)
|
||||||
|
# "uname -m" is not consistent, so use $cputype instead. 386
|
||||||
|
# is converted to i386 for consistency with other x86
|
||||||
|
# operating systems.
|
||||||
|
if test "${cputype-}" = 386; then
|
||||||
|
UNAME_MACHINE=i386
|
||||||
|
elif test "x${cputype-}" != x; then
|
||||||
|
UNAME_MACHINE=$cputype
|
||||||
|
fi
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-plan9
|
||||||
|
;;
|
||||||
|
*:TOPS-10:*:*)
|
||||||
|
GUESS=pdp10-unknown-tops10
|
||||||
|
;;
|
||||||
|
*:TENEX:*:*)
|
||||||
|
GUESS=pdp10-unknown-tenex
|
||||||
|
;;
|
||||||
|
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
|
||||||
|
GUESS=pdp10-dec-tops20
|
||||||
|
;;
|
||||||
|
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
|
||||||
|
GUESS=pdp10-xkl-tops20
|
||||||
|
;;
|
||||||
|
*:TOPS-20:*:*)
|
||||||
|
GUESS=pdp10-unknown-tops20
|
||||||
|
;;
|
||||||
|
*:ITS:*:*)
|
||||||
|
GUESS=pdp10-unknown-its
|
||||||
|
;;
|
||||||
|
SEI:*:*:SEIUX)
|
||||||
|
GUESS=mips-sei-seiux$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
*:DragonFly:*:*)
|
||||||
|
DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
|
||||||
|
;;
|
||||||
|
*:*VMS:*:*)
|
||||||
|
UNAME_MACHINE=`(uname -p) 2>/dev/null`
|
||||||
|
case $UNAME_MACHINE in
|
||||||
|
A*) GUESS=alpha-dec-vms ;;
|
||||||
|
I*) GUESS=ia64-dec-vms ;;
|
||||||
|
V*) GUESS=vax-dec-vms ;;
|
||||||
|
esac ;;
|
||||||
|
*:XENIX:*:SysV)
|
||||||
|
GUESS=i386-pc-xenix
|
||||||
|
;;
|
||||||
|
i*86:skyos:*:*)
|
||||||
|
SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
|
||||||
|
GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
|
||||||
|
;;
|
||||||
|
i*86:rdos:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-rdos
|
||||||
|
;;
|
||||||
|
i*86:Fiwix:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-pc-fiwix
|
||||||
|
;;
|
||||||
|
*:AROS:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-aros
|
||||||
|
;;
|
||||||
|
x86_64:VMkernel:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-esx
|
||||||
|
;;
|
||||||
|
amd64:Isilon\ OneFS:*:*)
|
||||||
|
GUESS=x86_64-unknown-onefs
|
||||||
|
;;
|
||||||
|
*:Unleashed:*:*)
|
||||||
|
GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Do we have a guess based on uname results?
|
||||||
|
if test "x$GUESS" != x; then
|
||||||
|
echo "$GUESS"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# No uname command or uname output not recognized.
|
||||||
|
set_cc_for_build
|
||||||
|
cat > "$dummy.c" <<EOF
|
||||||
|
#ifdef _SEQUENT_
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
#endif
|
||||||
|
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
|
||||||
|
#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
|
||||||
|
#include <signal.h>
|
||||||
|
#if defined(_SIZE_T_) || defined(SIGLOST)
|
||||||
|
#include <sys/utsname.h>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
#if defined (sony)
|
||||||
|
#if defined (MIPSEB)
|
||||||
|
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
|
||||||
|
I don't know.... */
|
||||||
|
printf ("mips-sony-bsd\n"); exit (0);
|
||||||
|
#else
|
||||||
|
#include <sys/param.h>
|
||||||
|
printf ("m68k-sony-newsos%s\n",
|
||||||
|
#ifdef NEWSOS4
|
||||||
|
"4"
|
||||||
|
#else
|
||||||
|
""
|
||||||
|
#endif
|
||||||
|
); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (NeXT)
|
||||||
|
#if !defined (__ARCHITECTURE__)
|
||||||
|
#define __ARCHITECTURE__ "m68k"
|
||||||
|
#endif
|
||||||
|
int version;
|
||||||
|
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
|
||||||
|
if (version < 4)
|
||||||
|
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
|
||||||
|
else
|
||||||
|
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
|
||||||
|
exit (0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (MULTIMAX) || defined (n16)
|
||||||
|
#if defined (UMAXV)
|
||||||
|
printf ("ns32k-encore-sysv\n"); exit (0);
|
||||||
|
#else
|
||||||
|
#if defined (CMU)
|
||||||
|
printf ("ns32k-encore-mach\n"); exit (0);
|
||||||
|
#else
|
||||||
|
printf ("ns32k-encore-bsd\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (__386BSD__)
|
||||||
|
printf ("i386-pc-bsd\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (sequent)
|
||||||
|
#if defined (i386)
|
||||||
|
printf ("i386-sequent-dynix\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#if defined (ns32000)
|
||||||
|
printf ("ns32k-sequent-dynix\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (_SEQUENT_)
|
||||||
|
struct utsname un;
|
||||||
|
|
||||||
|
uname(&un);
|
||||||
|
if (strncmp(un.version, "V2", 2) == 0) {
|
||||||
|
printf ("i386-sequent-ptx2\n"); exit (0);
|
||||||
|
}
|
||||||
|
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
|
||||||
|
printf ("i386-sequent-ptx1\n"); exit (0);
|
||||||
|
}
|
||||||
|
printf ("i386-sequent-ptx\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (vax)
|
||||||
|
#if !defined (ultrix)
|
||||||
|
#include <sys/param.h>
|
||||||
|
#if defined (BSD)
|
||||||
|
#if BSD == 43
|
||||||
|
printf ("vax-dec-bsd4.3\n"); exit (0);
|
||||||
|
#else
|
||||||
|
#if BSD == 199006
|
||||||
|
printf ("vax-dec-bsd4.3reno\n"); exit (0);
|
||||||
|
#else
|
||||||
|
printf ("vax-dec-bsd\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
printf ("vax-dec-bsd\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#if defined(_SIZE_T_) || defined(SIGLOST)
|
||||||
|
struct utsname un;
|
||||||
|
uname (&un);
|
||||||
|
printf ("vax-dec-ultrix%s\n", un.release); exit (0);
|
||||||
|
#else
|
||||||
|
printf ("vax-dec-ultrix\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
|
||||||
|
#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
|
||||||
|
#if defined(_SIZE_T_) || defined(SIGLOST)
|
||||||
|
struct utsname *un;
|
||||||
|
uname (&un);
|
||||||
|
printf ("mips-dec-ultrix%s\n", un.release); exit (0);
|
||||||
|
#else
|
||||||
|
printf ("mips-dec-ultrix\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined (alliant) && defined (i860)
|
||||||
|
printf ("i860-alliant-bsd\n"); exit (0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
|
||||||
|
{ echo "$SYSTEM_NAME"; exit; }
|
||||||
|
|
||||||
|
# Apollos put the system type in the environment.
|
||||||
|
test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
|
||||||
|
|
||||||
|
echo "$0: unable to guess system type" >&2
|
||||||
|
|
||||||
|
case $UNAME_MACHINE:$UNAME_SYSTEM in
|
||||||
|
mips:Linux | mips64:Linux)
|
||||||
|
# If we got here on MIPS GNU/Linux, output extra information.
|
||||||
|
cat >&2 <<EOF
|
||||||
|
|
||||||
|
NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
|
||||||
|
the system type. Please install a C compiler and try again.
|
||||||
|
EOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
cat >&2 <<EOF
|
||||||
|
|
||||||
|
This script (version $timestamp), has failed to recognize the
|
||||||
|
operating system you are using. If your script is old, overwrite *all*
|
||||||
|
copies of config.guess and config.sub with the latest versions from:
|
||||||
|
|
||||||
|
https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
|
||||||
|
and
|
||||||
|
https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
|
||||||
|
EOF
|
||||||
|
|
||||||
|
our_year=`echo $timestamp | sed 's,-.*,,'`
|
||||||
|
thisyear=`date +%Y`
|
||||||
|
# shellcheck disable=SC2003
|
||||||
|
script_age=`expr "$thisyear" - "$our_year"`
|
||||||
|
if test "$script_age" -lt 3 ; then
|
||||||
|
cat >&2 <<EOF
|
||||||
|
|
||||||
|
If $0 has already been updated, send the following data and any
|
||||||
|
information you think might be pertinent to config-patches@gnu.org to
|
||||||
|
provide the necessary information to handle your system.
|
||||||
|
|
||||||
|
config.guess timestamp = $timestamp
|
||||||
|
|
||||||
|
uname -m = `(uname -m) 2>/dev/null || echo unknown`
|
||||||
|
uname -r = `(uname -r) 2>/dev/null || echo unknown`
|
||||||
|
uname -s = `(uname -s) 2>/dev/null || echo unknown`
|
||||||
|
uname -v = `(uname -v) 2>/dev/null || echo unknown`
|
||||||
|
|
||||||
|
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
|
||||||
|
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
|
||||||
|
|
||||||
|
hostinfo = `(hostinfo) 2>/dev/null`
|
||||||
|
/bin/universe = `(/bin/universe) 2>/dev/null`
|
||||||
|
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
|
||||||
|
/bin/arch = `(/bin/arch) 2>/dev/null`
|
||||||
|
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
|
||||||
|
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
|
||||||
|
|
||||||
|
UNAME_MACHINE = "$UNAME_MACHINE"
|
||||||
|
UNAME_RELEASE = "$UNAME_RELEASE"
|
||||||
|
UNAME_SYSTEM = "$UNAME_SYSTEM"
|
||||||
|
UNAME_VERSION = "$UNAME_VERSION"
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
# time-stamp-start: "timestamp='"
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d"
|
||||||
|
# time-stamp-end: "'"
|
||||||
|
# End:
|
||||||
1890
3rd/pcre2/config.sub
vendored
Normal file
1890
3rd/pcre2/config.sub
vendored
Normal file
@@ -0,0 +1,1890 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Configuration validation subroutine script.
|
||||||
|
# Copyright 1992-2022 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||||
|
|
||||||
|
timestamp='2022-01-03'
|
||||||
|
|
||||||
|
# This file is free software; you can redistribute it and/or modify it
|
||||||
|
# under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# 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. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, see <https://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that
|
||||||
|
# program. This Exception is an additional permission under section 7
|
||||||
|
# of the GNU General Public License, version 3 ("GPLv3").
|
||||||
|
|
||||||
|
|
||||||
|
# Please send patches to <config-patches@gnu.org>.
|
||||||
|
#
|
||||||
|
# Configuration subroutine to validate and canonicalize a configuration type.
|
||||||
|
# Supply the specified configuration type as an argument.
|
||||||
|
# If it is invalid, we print an error message on stderr and exit with code 1.
|
||||||
|
# Otherwise, we print the canonical config type on stdout and succeed.
|
||||||
|
|
||||||
|
# You can get the latest version of this script from:
|
||||||
|
# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
|
||||||
|
|
||||||
|
# This file is supposed to be the same for all GNU packages
|
||||||
|
# and recognize all the CPU types, system types and aliases
|
||||||
|
# that are meaningful with *any* GNU software.
|
||||||
|
# Each package is responsible for reporting which valid configurations
|
||||||
|
# it does not support. The user should be able to distinguish
|
||||||
|
# a failure to support a valid configuration from a meaningless
|
||||||
|
# configuration.
|
||||||
|
|
||||||
|
# The goal of this file is to map all the various variations of a given
|
||||||
|
# machine specification into a single specification in the form:
|
||||||
|
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
|
||||||
|
# or in some cases, the newer four-part form:
|
||||||
|
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
|
||||||
|
# It is wrong to echo any other type of specification.
|
||||||
|
|
||||||
|
# The "shellcheck disable" line above the timestamp inhibits complaints
|
||||||
|
# about features and limitations of the classic Bourne shell that were
|
||||||
|
# superseded or lifted in POSIX. However, this script identifies a wide
|
||||||
|
# variety of pre-POSIX systems that do not have POSIX shells at all, and
|
||||||
|
# even some reasonably current systems (Solaris 10 as case-in-point) still
|
||||||
|
# have a pre-POSIX /bin/sh.
|
||||||
|
|
||||||
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
|
usage="\
|
||||||
|
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
|
||||||
|
|
||||||
|
Canonicalize a configuration name.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --help print this help, then exit
|
||||||
|
-t, --time-stamp print date of last modification, then exit
|
||||||
|
-v, --version print version number, then exit
|
||||||
|
|
||||||
|
Report bugs and patches to <config-patches@gnu.org>."
|
||||||
|
|
||||||
|
version="\
|
||||||
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
|
Copyright 1992-2022 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
||||||
|
help="
|
||||||
|
Try \`$me --help' for more information."
|
||||||
|
|
||||||
|
# Parse command line
|
||||||
|
while test $# -gt 0 ; do
|
||||||
|
case $1 in
|
||||||
|
--time-stamp | --time* | -t )
|
||||||
|
echo "$timestamp" ; exit ;;
|
||||||
|
--version | -v )
|
||||||
|
echo "$version" ; exit ;;
|
||||||
|
--help | --h* | -h )
|
||||||
|
echo "$usage"; exit ;;
|
||||||
|
-- ) # Stop option processing
|
||||||
|
shift; break ;;
|
||||||
|
- ) # Use stdin as input.
|
||||||
|
break ;;
|
||||||
|
-* )
|
||||||
|
echo "$me: invalid option $1$help" >&2
|
||||||
|
exit 1 ;;
|
||||||
|
|
||||||
|
*local*)
|
||||||
|
# First pass through any local machine types.
|
||||||
|
echo "$1"
|
||||||
|
exit ;;
|
||||||
|
|
||||||
|
* )
|
||||||
|
break ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
case $# in
|
||||||
|
0) echo "$me: missing argument$help" >&2
|
||||||
|
exit 1;;
|
||||||
|
1) ;;
|
||||||
|
*) echo "$me: too many arguments$help" >&2
|
||||||
|
exit 1;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Split fields of configuration type
|
||||||
|
# shellcheck disable=SC2162
|
||||||
|
saved_IFS=$IFS
|
||||||
|
IFS="-" read field1 field2 field3 field4 <<EOF
|
||||||
|
$1
|
||||||
|
EOF
|
||||||
|
IFS=$saved_IFS
|
||||||
|
|
||||||
|
# Separate into logical components for further validation
|
||||||
|
case $1 in
|
||||||
|
*-*-*-*-*)
|
||||||
|
echo Invalid configuration \`"$1"\': more than four components >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
*-*-*-*)
|
||||||
|
basic_machine=$field1-$field2
|
||||||
|
basic_os=$field3-$field4
|
||||||
|
;;
|
||||||
|
*-*-*)
|
||||||
|
# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
|
||||||
|
# parts
|
||||||
|
maybe_os=$field2-$field3
|
||||||
|
case $maybe_os in
|
||||||
|
nto-qnx* | linux-* | uclinux-uclibc* \
|
||||||
|
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
|
||||||
|
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
|
||||||
|
| storm-chaos* | os2-emx* | rtmk-nova*)
|
||||||
|
basic_machine=$field1
|
||||||
|
basic_os=$maybe_os
|
||||||
|
;;
|
||||||
|
android-linux)
|
||||||
|
basic_machine=$field1-unknown
|
||||||
|
basic_os=linux-android
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
basic_machine=$field1-$field2
|
||||||
|
basic_os=$field3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*-*)
|
||||||
|
# A lone config we happen to match not fitting any pattern
|
||||||
|
case $field1-$field2 in
|
||||||
|
decstation-3100)
|
||||||
|
basic_machine=mips-dec
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
*-*)
|
||||||
|
# Second component is usually, but not always the OS
|
||||||
|
case $field2 in
|
||||||
|
# Prevent following clause from handling this valid os
|
||||||
|
sun*os*)
|
||||||
|
basic_machine=$field1
|
||||||
|
basic_os=$field2
|
||||||
|
;;
|
||||||
|
zephyr*)
|
||||||
|
basic_machine=$field1-unknown
|
||||||
|
basic_os=$field2
|
||||||
|
;;
|
||||||
|
# Manufacturers
|
||||||
|
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
|
||||||
|
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
|
||||||
|
| unicom* | ibm* | next | hp | isi* | apollo | altos* \
|
||||||
|
| convergent* | ncr* | news | 32* | 3600* | 3100* \
|
||||||
|
| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
|
||||||
|
| ultra | tti* | harris | dolphin | highlevel | gould \
|
||||||
|
| cbm | ns | masscomp | apple | axis | knuth | cray \
|
||||||
|
| microblaze* | sim | cisco \
|
||||||
|
| oki | wec | wrs | winbond)
|
||||||
|
basic_machine=$field1-$field2
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
basic_machine=$field1
|
||||||
|
basic_os=$field2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# Convert single-component short-hands not valid as part of
|
||||||
|
# multi-component configurations.
|
||||||
|
case $field1 in
|
||||||
|
386bsd)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
a29khif)
|
||||||
|
basic_machine=a29k-amd
|
||||||
|
basic_os=udi
|
||||||
|
;;
|
||||||
|
adobe68k)
|
||||||
|
basic_machine=m68010-adobe
|
||||||
|
basic_os=scout
|
||||||
|
;;
|
||||||
|
alliant)
|
||||||
|
basic_machine=fx80-alliant
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
altos | altos3068)
|
||||||
|
basic_machine=m68k-altos
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
am29k)
|
||||||
|
basic_machine=a29k-none
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
amdahl)
|
||||||
|
basic_machine=580-amdahl
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
amiga)
|
||||||
|
basic_machine=m68k-unknown
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
amigaos | amigados)
|
||||||
|
basic_machine=m68k-unknown
|
||||||
|
basic_os=amigaos
|
||||||
|
;;
|
||||||
|
amigaunix | amix)
|
||||||
|
basic_machine=m68k-unknown
|
||||||
|
basic_os=sysv4
|
||||||
|
;;
|
||||||
|
apollo68)
|
||||||
|
basic_machine=m68k-apollo
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
apollo68bsd)
|
||||||
|
basic_machine=m68k-apollo
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
aros)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=aros
|
||||||
|
;;
|
||||||
|
aux)
|
||||||
|
basic_machine=m68k-apple
|
||||||
|
basic_os=aux
|
||||||
|
;;
|
||||||
|
balance)
|
||||||
|
basic_machine=ns32k-sequent
|
||||||
|
basic_os=dynix
|
||||||
|
;;
|
||||||
|
blackfin)
|
||||||
|
basic_machine=bfin-unknown
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
cegcc)
|
||||||
|
basic_machine=arm-unknown
|
||||||
|
basic_os=cegcc
|
||||||
|
;;
|
||||||
|
convex-c1)
|
||||||
|
basic_machine=c1-convex
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
convex-c2)
|
||||||
|
basic_machine=c2-convex
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
convex-c32)
|
||||||
|
basic_machine=c32-convex
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
convex-c34)
|
||||||
|
basic_machine=c34-convex
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
convex-c38)
|
||||||
|
basic_machine=c38-convex
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
cray)
|
||||||
|
basic_machine=j90-cray
|
||||||
|
basic_os=unicos
|
||||||
|
;;
|
||||||
|
crds | unos)
|
||||||
|
basic_machine=m68k-crds
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
da30)
|
||||||
|
basic_machine=m68k-da30
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
decstation | pmax | pmin | dec3100 | decstatn)
|
||||||
|
basic_machine=mips-dec
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
delta88)
|
||||||
|
basic_machine=m88k-motorola
|
||||||
|
basic_os=sysv3
|
||||||
|
;;
|
||||||
|
dicos)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
basic_os=dicos
|
||||||
|
;;
|
||||||
|
djgpp)
|
||||||
|
basic_machine=i586-pc
|
||||||
|
basic_os=msdosdjgpp
|
||||||
|
;;
|
||||||
|
ebmon29k)
|
||||||
|
basic_machine=a29k-amd
|
||||||
|
basic_os=ebmon
|
||||||
|
;;
|
||||||
|
es1800 | OSE68k | ose68k | ose | OSE)
|
||||||
|
basic_machine=m68k-ericsson
|
||||||
|
basic_os=ose
|
||||||
|
;;
|
||||||
|
gmicro)
|
||||||
|
basic_machine=tron-gmicro
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
go32)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=go32
|
||||||
|
;;
|
||||||
|
h8300hms)
|
||||||
|
basic_machine=h8300-hitachi
|
||||||
|
basic_os=hms
|
||||||
|
;;
|
||||||
|
h8300xray)
|
||||||
|
basic_machine=h8300-hitachi
|
||||||
|
basic_os=xray
|
||||||
|
;;
|
||||||
|
h8500hms)
|
||||||
|
basic_machine=h8500-hitachi
|
||||||
|
basic_os=hms
|
||||||
|
;;
|
||||||
|
harris)
|
||||||
|
basic_machine=m88k-harris
|
||||||
|
basic_os=sysv3
|
||||||
|
;;
|
||||||
|
hp300 | hp300hpux)
|
||||||
|
basic_machine=m68k-hp
|
||||||
|
basic_os=hpux
|
||||||
|
;;
|
||||||
|
hp300bsd)
|
||||||
|
basic_machine=m68k-hp
|
||||||
|
basic_os=bsd
|
||||||
|
;;
|
||||||
|
hppaosf)
|
||||||
|
basic_machine=hppa1.1-hp
|
||||||
|
basic_os=osf
|
||||||
|
;;
|
||||||
|
hppro)
|
||||||
|
basic_machine=hppa1.1-hp
|
||||||
|
basic_os=proelf
|
||||||
|
;;
|
||||||
|
i386mach)
|
||||||
|
basic_machine=i386-mach
|
||||||
|
basic_os=mach
|
||||||
|
;;
|
||||||
|
isi68 | isi)
|
||||||
|
basic_machine=m68k-isi
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
m68knommu)
|
||||||
|
basic_machine=m68k-unknown
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
magnum | m3230)
|
||||||
|
basic_machine=mips-mips
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
merlin)
|
||||||
|
basic_machine=ns32k-utek
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
mingw64)
|
||||||
|
basic_machine=x86_64-pc
|
||||||
|
basic_os=mingw64
|
||||||
|
;;
|
||||||
|
mingw32)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
basic_os=mingw32
|
||||||
|
;;
|
||||||
|
mingw32ce)
|
||||||
|
basic_machine=arm-unknown
|
||||||
|
basic_os=mingw32ce
|
||||||
|
;;
|
||||||
|
monitor)
|
||||||
|
basic_machine=m68k-rom68k
|
||||||
|
basic_os=coff
|
||||||
|
;;
|
||||||
|
morphos)
|
||||||
|
basic_machine=powerpc-unknown
|
||||||
|
basic_os=morphos
|
||||||
|
;;
|
||||||
|
moxiebox)
|
||||||
|
basic_machine=moxie-unknown
|
||||||
|
basic_os=moxiebox
|
||||||
|
;;
|
||||||
|
msdos)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=msdos
|
||||||
|
;;
|
||||||
|
msys)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
basic_os=msys
|
||||||
|
;;
|
||||||
|
mvs)
|
||||||
|
basic_machine=i370-ibm
|
||||||
|
basic_os=mvs
|
||||||
|
;;
|
||||||
|
nacl)
|
||||||
|
basic_machine=le32-unknown
|
||||||
|
basic_os=nacl
|
||||||
|
;;
|
||||||
|
ncr3000)
|
||||||
|
basic_machine=i486-ncr
|
||||||
|
basic_os=sysv4
|
||||||
|
;;
|
||||||
|
netbsd386)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=netbsd
|
||||||
|
;;
|
||||||
|
netwinder)
|
||||||
|
basic_machine=armv4l-rebel
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
news | news700 | news800 | news900)
|
||||||
|
basic_machine=m68k-sony
|
||||||
|
basic_os=newsos
|
||||||
|
;;
|
||||||
|
news1000)
|
||||||
|
basic_machine=m68030-sony
|
||||||
|
basic_os=newsos
|
||||||
|
;;
|
||||||
|
necv70)
|
||||||
|
basic_machine=v70-nec
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
nh3000)
|
||||||
|
basic_machine=m68k-harris
|
||||||
|
basic_os=cxux
|
||||||
|
;;
|
||||||
|
nh[45]000)
|
||||||
|
basic_machine=m88k-harris
|
||||||
|
basic_os=cxux
|
||||||
|
;;
|
||||||
|
nindy960)
|
||||||
|
basic_machine=i960-intel
|
||||||
|
basic_os=nindy
|
||||||
|
;;
|
||||||
|
mon960)
|
||||||
|
basic_machine=i960-intel
|
||||||
|
basic_os=mon960
|
||||||
|
;;
|
||||||
|
nonstopux)
|
||||||
|
basic_machine=mips-compaq
|
||||||
|
basic_os=nonstopux
|
||||||
|
;;
|
||||||
|
os400)
|
||||||
|
basic_machine=powerpc-ibm
|
||||||
|
basic_os=os400
|
||||||
|
;;
|
||||||
|
OSE68000 | ose68000)
|
||||||
|
basic_machine=m68000-ericsson
|
||||||
|
basic_os=ose
|
||||||
|
;;
|
||||||
|
os68k)
|
||||||
|
basic_machine=m68k-none
|
||||||
|
basic_os=os68k
|
||||||
|
;;
|
||||||
|
paragon)
|
||||||
|
basic_machine=i860-intel
|
||||||
|
basic_os=osf
|
||||||
|
;;
|
||||||
|
parisc)
|
||||||
|
basic_machine=hppa-unknown
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
psp)
|
||||||
|
basic_machine=mipsallegrexel-sony
|
||||||
|
basic_os=psp
|
||||||
|
;;
|
||||||
|
pw32)
|
||||||
|
basic_machine=i586-unknown
|
||||||
|
basic_os=pw32
|
||||||
|
;;
|
||||||
|
rdos | rdos64)
|
||||||
|
basic_machine=x86_64-pc
|
||||||
|
basic_os=rdos
|
||||||
|
;;
|
||||||
|
rdos32)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=rdos
|
||||||
|
;;
|
||||||
|
rom68k)
|
||||||
|
basic_machine=m68k-rom68k
|
||||||
|
basic_os=coff
|
||||||
|
;;
|
||||||
|
sa29200)
|
||||||
|
basic_machine=a29k-amd
|
||||||
|
basic_os=udi
|
||||||
|
;;
|
||||||
|
sei)
|
||||||
|
basic_machine=mips-sei
|
||||||
|
basic_os=seiux
|
||||||
|
;;
|
||||||
|
sequent)
|
||||||
|
basic_machine=i386-sequent
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
sps7)
|
||||||
|
basic_machine=m68k-bull
|
||||||
|
basic_os=sysv2
|
||||||
|
;;
|
||||||
|
st2000)
|
||||||
|
basic_machine=m68k-tandem
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
stratus)
|
||||||
|
basic_machine=i860-stratus
|
||||||
|
basic_os=sysv4
|
||||||
|
;;
|
||||||
|
sun2)
|
||||||
|
basic_machine=m68000-sun
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
sun2os3)
|
||||||
|
basic_machine=m68000-sun
|
||||||
|
basic_os=sunos3
|
||||||
|
;;
|
||||||
|
sun2os4)
|
||||||
|
basic_machine=m68000-sun
|
||||||
|
basic_os=sunos4
|
||||||
|
;;
|
||||||
|
sun3)
|
||||||
|
basic_machine=m68k-sun
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
sun3os3)
|
||||||
|
basic_machine=m68k-sun
|
||||||
|
basic_os=sunos3
|
||||||
|
;;
|
||||||
|
sun3os4)
|
||||||
|
basic_machine=m68k-sun
|
||||||
|
basic_os=sunos4
|
||||||
|
;;
|
||||||
|
sun4)
|
||||||
|
basic_machine=sparc-sun
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
sun4os3)
|
||||||
|
basic_machine=sparc-sun
|
||||||
|
basic_os=sunos3
|
||||||
|
;;
|
||||||
|
sun4os4)
|
||||||
|
basic_machine=sparc-sun
|
||||||
|
basic_os=sunos4
|
||||||
|
;;
|
||||||
|
sun4sol2)
|
||||||
|
basic_machine=sparc-sun
|
||||||
|
basic_os=solaris2
|
||||||
|
;;
|
||||||
|
sun386 | sun386i | roadrunner)
|
||||||
|
basic_machine=i386-sun
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
sv1)
|
||||||
|
basic_machine=sv1-cray
|
||||||
|
basic_os=unicos
|
||||||
|
;;
|
||||||
|
symmetry)
|
||||||
|
basic_machine=i386-sequent
|
||||||
|
basic_os=dynix
|
||||||
|
;;
|
||||||
|
t3e)
|
||||||
|
basic_machine=alphaev5-cray
|
||||||
|
basic_os=unicos
|
||||||
|
;;
|
||||||
|
t90)
|
||||||
|
basic_machine=t90-cray
|
||||||
|
basic_os=unicos
|
||||||
|
;;
|
||||||
|
toad1)
|
||||||
|
basic_machine=pdp10-xkl
|
||||||
|
basic_os=tops20
|
||||||
|
;;
|
||||||
|
tpf)
|
||||||
|
basic_machine=s390x-ibm
|
||||||
|
basic_os=tpf
|
||||||
|
;;
|
||||||
|
udi29k)
|
||||||
|
basic_machine=a29k-amd
|
||||||
|
basic_os=udi
|
||||||
|
;;
|
||||||
|
ultra3)
|
||||||
|
basic_machine=a29k-nyu
|
||||||
|
basic_os=sym1
|
||||||
|
;;
|
||||||
|
v810 | necv810)
|
||||||
|
basic_machine=v810-nec
|
||||||
|
basic_os=none
|
||||||
|
;;
|
||||||
|
vaxv)
|
||||||
|
basic_machine=vax-dec
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
vms)
|
||||||
|
basic_machine=vax-dec
|
||||||
|
basic_os=vms
|
||||||
|
;;
|
||||||
|
vsta)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
basic_os=vsta
|
||||||
|
;;
|
||||||
|
vxworks960)
|
||||||
|
basic_machine=i960-wrs
|
||||||
|
basic_os=vxworks
|
||||||
|
;;
|
||||||
|
vxworks68)
|
||||||
|
basic_machine=m68k-wrs
|
||||||
|
basic_os=vxworks
|
||||||
|
;;
|
||||||
|
vxworks29k)
|
||||||
|
basic_machine=a29k-wrs
|
||||||
|
basic_os=vxworks
|
||||||
|
;;
|
||||||
|
xbox)
|
||||||
|
basic_machine=i686-pc
|
||||||
|
basic_os=mingw32
|
||||||
|
;;
|
||||||
|
ymp)
|
||||||
|
basic_machine=ymp-cray
|
||||||
|
basic_os=unicos
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
basic_machine=$1
|
||||||
|
basic_os=
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Decode 1-component or ad-hoc basic machines
|
||||||
|
case $basic_machine in
|
||||||
|
# Here we handle the default manufacturer of certain CPU types. It is in
|
||||||
|
# some cases the only manufacturer, in others, it is the most popular.
|
||||||
|
w89k)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=winbond
|
||||||
|
;;
|
||||||
|
op50n)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=oki
|
||||||
|
;;
|
||||||
|
op60c)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=oki
|
||||||
|
;;
|
||||||
|
ibm*)
|
||||||
|
cpu=i370
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
orion105)
|
||||||
|
cpu=clipper
|
||||||
|
vendor=highlevel
|
||||||
|
;;
|
||||||
|
mac | mpw | mac-mpw)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=apple
|
||||||
|
;;
|
||||||
|
pmac | pmac-mpw)
|
||||||
|
cpu=powerpc
|
||||||
|
vendor=apple
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Recognize the various machine names and aliases which stand
|
||||||
|
# for a CPU type and a company and sometimes even an OS.
|
||||||
|
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
|
||||||
|
cpu=m68000
|
||||||
|
vendor=att
|
||||||
|
;;
|
||||||
|
3b*)
|
||||||
|
cpu=we32k
|
||||||
|
vendor=att
|
||||||
|
;;
|
||||||
|
bluegene*)
|
||||||
|
cpu=powerpc
|
||||||
|
vendor=ibm
|
||||||
|
basic_os=cnk
|
||||||
|
;;
|
||||||
|
decsystem10* | dec10*)
|
||||||
|
cpu=pdp10
|
||||||
|
vendor=dec
|
||||||
|
basic_os=tops10
|
||||||
|
;;
|
||||||
|
decsystem20* | dec20*)
|
||||||
|
cpu=pdp10
|
||||||
|
vendor=dec
|
||||||
|
basic_os=tops20
|
||||||
|
;;
|
||||||
|
delta | 3300 | motorola-3300 | motorola-delta \
|
||||||
|
| 3300-motorola | delta-motorola)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=motorola
|
||||||
|
;;
|
||||||
|
dpx2*)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=bull
|
||||||
|
basic_os=sysv3
|
||||||
|
;;
|
||||||
|
encore | umax | mmax)
|
||||||
|
cpu=ns32k
|
||||||
|
vendor=encore
|
||||||
|
;;
|
||||||
|
elxsi)
|
||||||
|
cpu=elxsi
|
||||||
|
vendor=elxsi
|
||||||
|
basic_os=${basic_os:-bsd}
|
||||||
|
;;
|
||||||
|
fx2800)
|
||||||
|
cpu=i860
|
||||||
|
vendor=alliant
|
||||||
|
;;
|
||||||
|
genix)
|
||||||
|
cpu=ns32k
|
||||||
|
vendor=ns
|
||||||
|
;;
|
||||||
|
h3050r* | hiux*)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=hitachi
|
||||||
|
basic_os=hiuxwe2
|
||||||
|
;;
|
||||||
|
hp3k9[0-9][0-9] | hp9[0-9][0-9])
|
||||||
|
cpu=hppa1.0
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k2[0-9][0-9] | hp9k31[0-9])
|
||||||
|
cpu=m68000
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k3[2-9][0-9])
|
||||||
|
cpu=m68k
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k6[0-9][0-9] | hp6[0-9][0-9])
|
||||||
|
cpu=hppa1.0
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k7[0-79][0-9] | hp7[0-79][0-9])
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k78[0-9] | hp78[0-9])
|
||||||
|
# FIXME: really hppa2.0-hp
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
|
||||||
|
# FIXME: really hppa2.0-hp
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k8[0-9][13679] | hp8[0-9][13679])
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
hp9k8[0-9][0-9] | hp8[0-9][0-9])
|
||||||
|
cpu=hppa1.0
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
i*86v32)
|
||||||
|
cpu=`echo "$1" | sed -e 's/86.*/86/'`
|
||||||
|
vendor=pc
|
||||||
|
basic_os=sysv32
|
||||||
|
;;
|
||||||
|
i*86v4*)
|
||||||
|
cpu=`echo "$1" | sed -e 's/86.*/86/'`
|
||||||
|
vendor=pc
|
||||||
|
basic_os=sysv4
|
||||||
|
;;
|
||||||
|
i*86v)
|
||||||
|
cpu=`echo "$1" | sed -e 's/86.*/86/'`
|
||||||
|
vendor=pc
|
||||||
|
basic_os=sysv
|
||||||
|
;;
|
||||||
|
i*86sol2)
|
||||||
|
cpu=`echo "$1" | sed -e 's/86.*/86/'`
|
||||||
|
vendor=pc
|
||||||
|
basic_os=solaris2
|
||||||
|
;;
|
||||||
|
j90 | j90-cray)
|
||||||
|
cpu=j90
|
||||||
|
vendor=cray
|
||||||
|
basic_os=${basic_os:-unicos}
|
||||||
|
;;
|
||||||
|
iris | iris4d)
|
||||||
|
cpu=mips
|
||||||
|
vendor=sgi
|
||||||
|
case $basic_os in
|
||||||
|
irix*)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
basic_os=irix4
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
miniframe)
|
||||||
|
cpu=m68000
|
||||||
|
vendor=convergent
|
||||||
|
;;
|
||||||
|
*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=atari
|
||||||
|
basic_os=mint
|
||||||
|
;;
|
||||||
|
news-3600 | risc-news)
|
||||||
|
cpu=mips
|
||||||
|
vendor=sony
|
||||||
|
basic_os=newsos
|
||||||
|
;;
|
||||||
|
next | m*-next)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=next
|
||||||
|
case $basic_os in
|
||||||
|
openstep*)
|
||||||
|
;;
|
||||||
|
nextstep*)
|
||||||
|
;;
|
||||||
|
ns2*)
|
||||||
|
basic_os=nextstep2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
basic_os=nextstep3
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
np1)
|
||||||
|
cpu=np1
|
||||||
|
vendor=gould
|
||||||
|
;;
|
||||||
|
op50n-* | op60c-*)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=oki
|
||||||
|
basic_os=proelf
|
||||||
|
;;
|
||||||
|
pa-hitachi)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=hitachi
|
||||||
|
basic_os=hiuxwe2
|
||||||
|
;;
|
||||||
|
pbd)
|
||||||
|
cpu=sparc
|
||||||
|
vendor=tti
|
||||||
|
;;
|
||||||
|
pbb)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=tti
|
||||||
|
;;
|
||||||
|
pc532)
|
||||||
|
cpu=ns32k
|
||||||
|
vendor=pc532
|
||||||
|
;;
|
||||||
|
pn)
|
||||||
|
cpu=pn
|
||||||
|
vendor=gould
|
||||||
|
;;
|
||||||
|
power)
|
||||||
|
cpu=power
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
ps2)
|
||||||
|
cpu=i386
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
rm[46]00)
|
||||||
|
cpu=mips
|
||||||
|
vendor=siemens
|
||||||
|
;;
|
||||||
|
rtpc | rtpc-*)
|
||||||
|
cpu=romp
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
sde)
|
||||||
|
cpu=mipsisa32
|
||||||
|
vendor=sde
|
||||||
|
basic_os=${basic_os:-elf}
|
||||||
|
;;
|
||||||
|
simso-wrs)
|
||||||
|
cpu=sparclite
|
||||||
|
vendor=wrs
|
||||||
|
basic_os=vxworks
|
||||||
|
;;
|
||||||
|
tower | tower-32)
|
||||||
|
cpu=m68k
|
||||||
|
vendor=ncr
|
||||||
|
;;
|
||||||
|
vpp*|vx|vx-*)
|
||||||
|
cpu=f301
|
||||||
|
vendor=fujitsu
|
||||||
|
;;
|
||||||
|
w65)
|
||||||
|
cpu=w65
|
||||||
|
vendor=wdc
|
||||||
|
;;
|
||||||
|
w89k-*)
|
||||||
|
cpu=hppa1.1
|
||||||
|
vendor=winbond
|
||||||
|
basic_os=proelf
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
cpu=none
|
||||||
|
vendor=none
|
||||||
|
;;
|
||||||
|
leon|leon[3-9])
|
||||||
|
cpu=sparc
|
||||||
|
vendor=$basic_machine
|
||||||
|
;;
|
||||||
|
leon-*|leon[3-9]-*)
|
||||||
|
cpu=sparc
|
||||||
|
vendor=`echo "$basic_machine" | sed 's/-.*//'`
|
||||||
|
;;
|
||||||
|
|
||||||
|
*-*)
|
||||||
|
# shellcheck disable=SC2162
|
||||||
|
saved_IFS=$IFS
|
||||||
|
IFS="-" read cpu vendor <<EOF
|
||||||
|
$basic_machine
|
||||||
|
EOF
|
||||||
|
IFS=$saved_IFS
|
||||||
|
;;
|
||||||
|
# We use `pc' rather than `unknown'
|
||||||
|
# because (1) that's what they normally are, and
|
||||||
|
# (2) the word "unknown" tends to confuse beginning users.
|
||||||
|
i*86 | x86_64)
|
||||||
|
cpu=$basic_machine
|
||||||
|
vendor=pc
|
||||||
|
;;
|
||||||
|
# These rules are duplicated from below for sake of the special case above;
|
||||||
|
# i.e. things that normalized to x86 arches should also default to "pc"
|
||||||
|
pc98)
|
||||||
|
cpu=i386
|
||||||
|
vendor=pc
|
||||||
|
;;
|
||||||
|
x64 | amd64)
|
||||||
|
cpu=x86_64
|
||||||
|
vendor=pc
|
||||||
|
;;
|
||||||
|
# Recognize the basic CPU types without company name.
|
||||||
|
*)
|
||||||
|
cpu=$basic_machine
|
||||||
|
vendor=unknown
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
unset -v basic_machine
|
||||||
|
|
||||||
|
# Decode basic machines in the full and proper CPU-Company form.
|
||||||
|
case $cpu-$vendor in
|
||||||
|
# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
|
||||||
|
# some cases the only manufacturer, in others, it is the most popular.
|
||||||
|
craynv-unknown)
|
||||||
|
vendor=cray
|
||||||
|
basic_os=${basic_os:-unicosmp}
|
||||||
|
;;
|
||||||
|
c90-unknown | c90-cray)
|
||||||
|
vendor=cray
|
||||||
|
basic_os=${Basic_os:-unicos}
|
||||||
|
;;
|
||||||
|
fx80-unknown)
|
||||||
|
vendor=alliant
|
||||||
|
;;
|
||||||
|
romp-unknown)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
mmix-unknown)
|
||||||
|
vendor=knuth
|
||||||
|
;;
|
||||||
|
microblaze-unknown | microblazeel-unknown)
|
||||||
|
vendor=xilinx
|
||||||
|
;;
|
||||||
|
rs6000-unknown)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
vax-unknown)
|
||||||
|
vendor=dec
|
||||||
|
;;
|
||||||
|
pdp11-unknown)
|
||||||
|
vendor=dec
|
||||||
|
;;
|
||||||
|
we32k-unknown)
|
||||||
|
vendor=att
|
||||||
|
;;
|
||||||
|
cydra-unknown)
|
||||||
|
vendor=cydrome
|
||||||
|
;;
|
||||||
|
i370-ibm*)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
orion-unknown)
|
||||||
|
vendor=highlevel
|
||||||
|
;;
|
||||||
|
xps-unknown | xps100-unknown)
|
||||||
|
cpu=xps100
|
||||||
|
vendor=honeywell
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Here we normalize CPU types with a missing or matching vendor
|
||||||
|
armh-unknown | armh-alt)
|
||||||
|
cpu=armv7l
|
||||||
|
vendor=alt
|
||||||
|
basic_os=${basic_os:-linux-gnueabihf}
|
||||||
|
;;
|
||||||
|
dpx20-unknown | dpx20-bull)
|
||||||
|
cpu=rs6000
|
||||||
|
vendor=bull
|
||||||
|
basic_os=${basic_os:-bosx}
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Here we normalize CPU types irrespective of the vendor
|
||||||
|
amd64-*)
|
||||||
|
cpu=x86_64
|
||||||
|
;;
|
||||||
|
blackfin-*)
|
||||||
|
cpu=bfin
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
c54x-*)
|
||||||
|
cpu=tic54x
|
||||||
|
;;
|
||||||
|
c55x-*)
|
||||||
|
cpu=tic55x
|
||||||
|
;;
|
||||||
|
c6x-*)
|
||||||
|
cpu=tic6x
|
||||||
|
;;
|
||||||
|
e500v[12]-*)
|
||||||
|
cpu=powerpc
|
||||||
|
basic_os=${basic_os}"spe"
|
||||||
|
;;
|
||||||
|
mips3*-*)
|
||||||
|
cpu=mips64
|
||||||
|
;;
|
||||||
|
ms1-*)
|
||||||
|
cpu=mt
|
||||||
|
;;
|
||||||
|
m68knommu-*)
|
||||||
|
cpu=m68k
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
|
||||||
|
cpu=s12z
|
||||||
|
;;
|
||||||
|
openrisc-*)
|
||||||
|
cpu=or32
|
||||||
|
;;
|
||||||
|
parisc-*)
|
||||||
|
cpu=hppa
|
||||||
|
basic_os=linux
|
||||||
|
;;
|
||||||
|
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
|
||||||
|
cpu=i586
|
||||||
|
;;
|
||||||
|
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
|
||||||
|
cpu=i686
|
||||||
|
;;
|
||||||
|
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
|
||||||
|
cpu=i686
|
||||||
|
;;
|
||||||
|
pentium4-*)
|
||||||
|
cpu=i786
|
||||||
|
;;
|
||||||
|
pc98-*)
|
||||||
|
cpu=i386
|
||||||
|
;;
|
||||||
|
ppc-* | ppcbe-*)
|
||||||
|
cpu=powerpc
|
||||||
|
;;
|
||||||
|
ppcle-* | powerpclittle-*)
|
||||||
|
cpu=powerpcle
|
||||||
|
;;
|
||||||
|
ppc64-*)
|
||||||
|
cpu=powerpc64
|
||||||
|
;;
|
||||||
|
ppc64le-* | powerpc64little-*)
|
||||||
|
cpu=powerpc64le
|
||||||
|
;;
|
||||||
|
sb1-*)
|
||||||
|
cpu=mipsisa64sb1
|
||||||
|
;;
|
||||||
|
sb1el-*)
|
||||||
|
cpu=mipsisa64sb1el
|
||||||
|
;;
|
||||||
|
sh5e[lb]-*)
|
||||||
|
cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
|
||||||
|
;;
|
||||||
|
spur-*)
|
||||||
|
cpu=spur
|
||||||
|
;;
|
||||||
|
strongarm-* | thumb-*)
|
||||||
|
cpu=arm
|
||||||
|
;;
|
||||||
|
tx39-*)
|
||||||
|
cpu=mipstx39
|
||||||
|
;;
|
||||||
|
tx39el-*)
|
||||||
|
cpu=mipstx39el
|
||||||
|
;;
|
||||||
|
x64-*)
|
||||||
|
cpu=x86_64
|
||||||
|
;;
|
||||||
|
xscale-* | xscalee[bl]-*)
|
||||||
|
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
|
||||||
|
;;
|
||||||
|
arm64-* | aarch64le-*)
|
||||||
|
cpu=aarch64
|
||||||
|
;;
|
||||||
|
|
||||||
|
# Recognize the canonical CPU Types that limit and/or modify the
|
||||||
|
# company names they are paired with.
|
||||||
|
cr16-*)
|
||||||
|
basic_os=${basic_os:-elf}
|
||||||
|
;;
|
||||||
|
crisv32-* | etraxfs*-*)
|
||||||
|
cpu=crisv32
|
||||||
|
vendor=axis
|
||||||
|
;;
|
||||||
|
cris-* | etrax*-*)
|
||||||
|
cpu=cris
|
||||||
|
vendor=axis
|
||||||
|
;;
|
||||||
|
crx-*)
|
||||||
|
basic_os=${basic_os:-elf}
|
||||||
|
;;
|
||||||
|
neo-tandem)
|
||||||
|
cpu=neo
|
||||||
|
vendor=tandem
|
||||||
|
;;
|
||||||
|
nse-tandem)
|
||||||
|
cpu=nse
|
||||||
|
vendor=tandem
|
||||||
|
;;
|
||||||
|
nsr-tandem)
|
||||||
|
cpu=nsr
|
||||||
|
vendor=tandem
|
||||||
|
;;
|
||||||
|
nsv-tandem)
|
||||||
|
cpu=nsv
|
||||||
|
vendor=tandem
|
||||||
|
;;
|
||||||
|
nsx-tandem)
|
||||||
|
cpu=nsx
|
||||||
|
vendor=tandem
|
||||||
|
;;
|
||||||
|
mipsallegrexel-sony)
|
||||||
|
cpu=mipsallegrexel
|
||||||
|
vendor=sony
|
||||||
|
;;
|
||||||
|
tile*-*)
|
||||||
|
basic_os=${basic_os:-linux-gnu}
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
# Recognize the canonical CPU types that are allowed with any
|
||||||
|
# company name.
|
||||||
|
case $cpu in
|
||||||
|
1750a | 580 \
|
||||||
|
| a29k \
|
||||||
|
| aarch64 | aarch64_be \
|
||||||
|
| abacus \
|
||||||
|
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
|
||||||
|
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
|
||||||
|
| alphapca5[67] | alpha64pca5[67] \
|
||||||
|
| am33_2.0 \
|
||||||
|
| amdgcn \
|
||||||
|
| arc | arceb | arc32 | arc64 \
|
||||||
|
| arm | arm[lb]e | arme[lb] | armv* \
|
||||||
|
| avr | avr32 \
|
||||||
|
| asmjs \
|
||||||
|
| ba \
|
||||||
|
| be32 | be64 \
|
||||||
|
| bfin | bpf | bs2000 \
|
||||||
|
| c[123]* | c30 | [cjt]90 | c4x \
|
||||||
|
| c8051 | clipper | craynv | csky | cydra \
|
||||||
|
| d10v | d30v | dlx | dsp16xx \
|
||||||
|
| e2k | elxsi | epiphany \
|
||||||
|
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
|
||||||
|
| h8300 | h8500 \
|
||||||
|
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
|
||||||
|
| hexagon \
|
||||||
|
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
|
||||||
|
| ip2k | iq2000 \
|
||||||
|
| k1om \
|
||||||
|
| le32 | le64 \
|
||||||
|
| lm32 \
|
||||||
|
| loongarch32 | loongarch64 | loongarchx32 \
|
||||||
|
| m32c | m32r | m32rle \
|
||||||
|
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
|
||||||
|
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
|
||||||
|
| m88110 | m88k | maxq | mb | mcore | mep | metag \
|
||||||
|
| microblaze | microblazeel \
|
||||||
|
| mips | mipsbe | mipseb | mipsel | mipsle \
|
||||||
|
| mips16 \
|
||||||
|
| mips64 | mips64eb | mips64el \
|
||||||
|
| mips64octeon | mips64octeonel \
|
||||||
|
| mips64orion | mips64orionel \
|
||||||
|
| mips64r5900 | mips64r5900el \
|
||||||
|
| mips64vr | mips64vrel \
|
||||||
|
| mips64vr4100 | mips64vr4100el \
|
||||||
|
| mips64vr4300 | mips64vr4300el \
|
||||||
|
| mips64vr5000 | mips64vr5000el \
|
||||||
|
| mips64vr5900 | mips64vr5900el \
|
||||||
|
| mipsisa32 | mipsisa32el \
|
||||||
|
| mipsisa32r2 | mipsisa32r2el \
|
||||||
|
| mipsisa32r3 | mipsisa32r3el \
|
||||||
|
| mipsisa32r5 | mipsisa32r5el \
|
||||||
|
| mipsisa32r6 | mipsisa32r6el \
|
||||||
|
| mipsisa64 | mipsisa64el \
|
||||||
|
| mipsisa64r2 | mipsisa64r2el \
|
||||||
|
| mipsisa64r3 | mipsisa64r3el \
|
||||||
|
| mipsisa64r5 | mipsisa64r5el \
|
||||||
|
| mipsisa64r6 | mipsisa64r6el \
|
||||||
|
| mipsisa64sb1 | mipsisa64sb1el \
|
||||||
|
| mipsisa64sr71k | mipsisa64sr71kel \
|
||||||
|
| mipsr5900 | mipsr5900el \
|
||||||
|
| mipstx39 | mipstx39el \
|
||||||
|
| mmix \
|
||||||
|
| mn10200 | mn10300 \
|
||||||
|
| moxie \
|
||||||
|
| mt \
|
||||||
|
| msp430 \
|
||||||
|
| nds32 | nds32le | nds32be \
|
||||||
|
| nfp \
|
||||||
|
| nios | nios2 | nios2eb | nios2el \
|
||||||
|
| none | np1 | ns16k | ns32k | nvptx \
|
||||||
|
| open8 \
|
||||||
|
| or1k* \
|
||||||
|
| or32 \
|
||||||
|
| orion \
|
||||||
|
| picochip \
|
||||||
|
| pdp10 | pdp11 | pj | pjl | pn | power \
|
||||||
|
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
|
||||||
|
| pru \
|
||||||
|
| pyramid \
|
||||||
|
| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
|
||||||
|
| rl78 | romp | rs6000 | rx \
|
||||||
|
| s390 | s390x \
|
||||||
|
| score \
|
||||||
|
| sh | shl \
|
||||||
|
| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
|
||||||
|
| sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
|
||||||
|
| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
|
||||||
|
| sparclite \
|
||||||
|
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
|
||||||
|
| spu \
|
||||||
|
| tahoe \
|
||||||
|
| thumbv7* \
|
||||||
|
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
|
||||||
|
| tron \
|
||||||
|
| ubicom32 \
|
||||||
|
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
|
||||||
|
| vax \
|
||||||
|
| visium \
|
||||||
|
| w65 \
|
||||||
|
| wasm32 | wasm64 \
|
||||||
|
| we32k \
|
||||||
|
| x86 | x86_64 | xc16x | xgate | xps100 \
|
||||||
|
| xstormy16 | xtensa* \
|
||||||
|
| ymp \
|
||||||
|
| z8k | z80)
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Here we canonicalize certain aliases for manufacturers.
|
||||||
|
case $vendor in
|
||||||
|
digital*)
|
||||||
|
vendor=dec
|
||||||
|
;;
|
||||||
|
commodore*)
|
||||||
|
vendor=cbm
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Decode manufacturer-specific aliases for certain operating systems.
|
||||||
|
|
||||||
|
if test x$basic_os != x
|
||||||
|
then
|
||||||
|
|
||||||
|
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
|
||||||
|
# set os.
|
||||||
|
case $basic_os in
|
||||||
|
gnu/linux*)
|
||||||
|
kernel=linux
|
||||||
|
os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
|
||||||
|
;;
|
||||||
|
os2-emx)
|
||||||
|
kernel=os2
|
||||||
|
os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
|
||||||
|
;;
|
||||||
|
nto-qnx*)
|
||||||
|
kernel=nto
|
||||||
|
os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
|
||||||
|
;;
|
||||||
|
*-*)
|
||||||
|
# shellcheck disable=SC2162
|
||||||
|
saved_IFS=$IFS
|
||||||
|
IFS="-" read kernel os <<EOF
|
||||||
|
$basic_os
|
||||||
|
EOF
|
||||||
|
IFS=$saved_IFS
|
||||||
|
;;
|
||||||
|
# Default OS when just kernel was specified
|
||||||
|
nto*)
|
||||||
|
kernel=nto
|
||||||
|
os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
|
||||||
|
;;
|
||||||
|
linux*)
|
||||||
|
kernel=linux
|
||||||
|
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
kernel=
|
||||||
|
os=$basic_os
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Now, normalize the OS (knowing we just have one component, it's not a kernel,
|
||||||
|
# etc.)
|
||||||
|
case $os in
|
||||||
|
# First match some system type aliases that might get confused
|
||||||
|
# with valid system types.
|
||||||
|
# solaris* is a basic system type, with this one exception.
|
||||||
|
auroraux)
|
||||||
|
os=auroraux
|
||||||
|
;;
|
||||||
|
bluegene*)
|
||||||
|
os=cnk
|
||||||
|
;;
|
||||||
|
solaris1 | solaris1.*)
|
||||||
|
os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
|
||||||
|
;;
|
||||||
|
solaris)
|
||||||
|
os=solaris2
|
||||||
|
;;
|
||||||
|
unixware*)
|
||||||
|
os=sysv4.2uw
|
||||||
|
;;
|
||||||
|
# es1800 is here to avoid being matched by es* (a different OS)
|
||||||
|
es1800*)
|
||||||
|
os=ose
|
||||||
|
;;
|
||||||
|
# Some version numbers need modification
|
||||||
|
chorusos*)
|
||||||
|
os=chorusos
|
||||||
|
;;
|
||||||
|
isc)
|
||||||
|
os=isc2.2
|
||||||
|
;;
|
||||||
|
sco6)
|
||||||
|
os=sco5v6
|
||||||
|
;;
|
||||||
|
sco5)
|
||||||
|
os=sco3.2v5
|
||||||
|
;;
|
||||||
|
sco4)
|
||||||
|
os=sco3.2v4
|
||||||
|
;;
|
||||||
|
sco3.2.[4-9]*)
|
||||||
|
os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
|
||||||
|
;;
|
||||||
|
sco*v* | scout)
|
||||||
|
# Don't match below
|
||||||
|
;;
|
||||||
|
sco*)
|
||||||
|
os=sco3.2v2
|
||||||
|
;;
|
||||||
|
psos*)
|
||||||
|
os=psos
|
||||||
|
;;
|
||||||
|
qnx*)
|
||||||
|
os=qnx
|
||||||
|
;;
|
||||||
|
hiux*)
|
||||||
|
os=hiuxwe2
|
||||||
|
;;
|
||||||
|
lynx*178)
|
||||||
|
os=lynxos178
|
||||||
|
;;
|
||||||
|
lynx*5)
|
||||||
|
os=lynxos5
|
||||||
|
;;
|
||||||
|
lynxos*)
|
||||||
|
# don't get caught up in next wildcard
|
||||||
|
;;
|
||||||
|
lynx*)
|
||||||
|
os=lynxos
|
||||||
|
;;
|
||||||
|
mac[0-9]*)
|
||||||
|
os=`echo "$os" | sed -e 's|mac|macos|'`
|
||||||
|
;;
|
||||||
|
opened*)
|
||||||
|
os=openedition
|
||||||
|
;;
|
||||||
|
os400*)
|
||||||
|
os=os400
|
||||||
|
;;
|
||||||
|
sunos5*)
|
||||||
|
os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
|
||||||
|
;;
|
||||||
|
sunos6*)
|
||||||
|
os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
|
||||||
|
;;
|
||||||
|
wince*)
|
||||||
|
os=wince
|
||||||
|
;;
|
||||||
|
utek*)
|
||||||
|
os=bsd
|
||||||
|
;;
|
||||||
|
dynix*)
|
||||||
|
os=bsd
|
||||||
|
;;
|
||||||
|
acis*)
|
||||||
|
os=aos
|
||||||
|
;;
|
||||||
|
atheos*)
|
||||||
|
os=atheos
|
||||||
|
;;
|
||||||
|
syllable*)
|
||||||
|
os=syllable
|
||||||
|
;;
|
||||||
|
386bsd)
|
||||||
|
os=bsd
|
||||||
|
;;
|
||||||
|
ctix* | uts*)
|
||||||
|
os=sysv
|
||||||
|
;;
|
||||||
|
nova*)
|
||||||
|
os=rtmk-nova
|
||||||
|
;;
|
||||||
|
ns2)
|
||||||
|
os=nextstep2
|
||||||
|
;;
|
||||||
|
# Preserve the version number of sinix5.
|
||||||
|
sinix5.*)
|
||||||
|
os=`echo "$os" | sed -e 's|sinix|sysv|'`
|
||||||
|
;;
|
||||||
|
sinix*)
|
||||||
|
os=sysv4
|
||||||
|
;;
|
||||||
|
tpf*)
|
||||||
|
os=tpf
|
||||||
|
;;
|
||||||
|
triton*)
|
||||||
|
os=sysv3
|
||||||
|
;;
|
||||||
|
oss*)
|
||||||
|
os=sysv3
|
||||||
|
;;
|
||||||
|
svr4*)
|
||||||
|
os=sysv4
|
||||||
|
;;
|
||||||
|
svr3)
|
||||||
|
os=sysv3
|
||||||
|
;;
|
||||||
|
sysvr4)
|
||||||
|
os=sysv4
|
||||||
|
;;
|
||||||
|
ose*)
|
||||||
|
os=ose
|
||||||
|
;;
|
||||||
|
*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
|
||||||
|
os=mint
|
||||||
|
;;
|
||||||
|
dicos*)
|
||||||
|
os=dicos
|
||||||
|
;;
|
||||||
|
pikeos*)
|
||||||
|
# Until real need of OS specific support for
|
||||||
|
# particular features comes up, bare metal
|
||||||
|
# configurations are quite functional.
|
||||||
|
case $cpu in
|
||||||
|
arm*)
|
||||||
|
os=eabi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# No normalization, but not necessarily accepted, that comes below.
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
# Here we handle the default operating systems that come with various machines.
|
||||||
|
# The value should be what the vendor currently ships out the door with their
|
||||||
|
# machine or put another way, the most popular os provided with the machine.
|
||||||
|
|
||||||
|
# Note that if you're going to try to match "-MANUFACTURER" here (say,
|
||||||
|
# "-sun"), then you have to tell the case statement up towards the top
|
||||||
|
# that MANUFACTURER isn't an operating system. Otherwise, code above
|
||||||
|
# will signal an error saying that MANUFACTURER isn't an operating
|
||||||
|
# system, and we'll never get to this point.
|
||||||
|
|
||||||
|
kernel=
|
||||||
|
case $cpu-$vendor in
|
||||||
|
score-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
spu-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
*-acorn)
|
||||||
|
os=riscix1.2
|
||||||
|
;;
|
||||||
|
arm*-rebel)
|
||||||
|
kernel=linux
|
||||||
|
os=gnu
|
||||||
|
;;
|
||||||
|
arm*-semi)
|
||||||
|
os=aout
|
||||||
|
;;
|
||||||
|
c4x-* | tic4x-*)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
c8051-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
clipper-intergraph)
|
||||||
|
os=clix
|
||||||
|
;;
|
||||||
|
hexagon-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
tic54x-*)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
tic55x-*)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
tic6x-*)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
# This must come before the *-dec entry.
|
||||||
|
pdp10-*)
|
||||||
|
os=tops20
|
||||||
|
;;
|
||||||
|
pdp11-*)
|
||||||
|
os=none
|
||||||
|
;;
|
||||||
|
*-dec | vax-*)
|
||||||
|
os=ultrix4.2
|
||||||
|
;;
|
||||||
|
m68*-apollo)
|
||||||
|
os=domain
|
||||||
|
;;
|
||||||
|
i386-sun)
|
||||||
|
os=sunos4.0.2
|
||||||
|
;;
|
||||||
|
m68000-sun)
|
||||||
|
os=sunos3
|
||||||
|
;;
|
||||||
|
m68*-cisco)
|
||||||
|
os=aout
|
||||||
|
;;
|
||||||
|
mep-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
mips*-cisco)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
mips*-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
or32-*)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
*-tti) # must be before sparc entry or we get the wrong os.
|
||||||
|
os=sysv3
|
||||||
|
;;
|
||||||
|
sparc-* | *-sun)
|
||||||
|
os=sunos4.1.1
|
||||||
|
;;
|
||||||
|
pru-*)
|
||||||
|
os=elf
|
||||||
|
;;
|
||||||
|
*-be)
|
||||||
|
os=beos
|
||||||
|
;;
|
||||||
|
*-ibm)
|
||||||
|
os=aix
|
||||||
|
;;
|
||||||
|
*-knuth)
|
||||||
|
os=mmixware
|
||||||
|
;;
|
||||||
|
*-wec)
|
||||||
|
os=proelf
|
||||||
|
;;
|
||||||
|
*-winbond)
|
||||||
|
os=proelf
|
||||||
|
;;
|
||||||
|
*-oki)
|
||||||
|
os=proelf
|
||||||
|
;;
|
||||||
|
*-hp)
|
||||||
|
os=hpux
|
||||||
|
;;
|
||||||
|
*-hitachi)
|
||||||
|
os=hiux
|
||||||
|
;;
|
||||||
|
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
|
||||||
|
os=sysv
|
||||||
|
;;
|
||||||
|
*-cbm)
|
||||||
|
os=amigaos
|
||||||
|
;;
|
||||||
|
*-dg)
|
||||||
|
os=dgux
|
||||||
|
;;
|
||||||
|
*-dolphin)
|
||||||
|
os=sysv3
|
||||||
|
;;
|
||||||
|
m68k-ccur)
|
||||||
|
os=rtu
|
||||||
|
;;
|
||||||
|
m88k-omron*)
|
||||||
|
os=luna
|
||||||
|
;;
|
||||||
|
*-next)
|
||||||
|
os=nextstep
|
||||||
|
;;
|
||||||
|
*-sequent)
|
||||||
|
os=ptx
|
||||||
|
;;
|
||||||
|
*-crds)
|
||||||
|
os=unos
|
||||||
|
;;
|
||||||
|
*-ns)
|
||||||
|
os=genix
|
||||||
|
;;
|
||||||
|
i370-*)
|
||||||
|
os=mvs
|
||||||
|
;;
|
||||||
|
*-gould)
|
||||||
|
os=sysv
|
||||||
|
;;
|
||||||
|
*-highlevel)
|
||||||
|
os=bsd
|
||||||
|
;;
|
||||||
|
*-encore)
|
||||||
|
os=bsd
|
||||||
|
;;
|
||||||
|
*-sgi)
|
||||||
|
os=irix
|
||||||
|
;;
|
||||||
|
*-siemens)
|
||||||
|
os=sysv4
|
||||||
|
;;
|
||||||
|
*-masscomp)
|
||||||
|
os=rtu
|
||||||
|
;;
|
||||||
|
f30[01]-fujitsu | f700-fujitsu)
|
||||||
|
os=uxpv
|
||||||
|
;;
|
||||||
|
*-rom68k)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
*-*bug)
|
||||||
|
os=coff
|
||||||
|
;;
|
||||||
|
*-apple)
|
||||||
|
os=macos
|
||||||
|
;;
|
||||||
|
*-atari*)
|
||||||
|
os=mint
|
||||||
|
;;
|
||||||
|
*-wrs)
|
||||||
|
os=vxworks
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os=none
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Now, validate our (potentially fixed-up) OS.
|
||||||
|
case $os in
|
||||||
|
# Sometimes we do "kernel-libc", so those need to count as OSes.
|
||||||
|
musl* | newlib* | relibc* | uclibc*)
|
||||||
|
;;
|
||||||
|
# Likewise for "kernel-abi"
|
||||||
|
eabi* | gnueabi*)
|
||||||
|
;;
|
||||||
|
# VxWorks passes extra cpu info in the 4th filed.
|
||||||
|
simlinux | simwindows | spe)
|
||||||
|
;;
|
||||||
|
# Now accept the basic system types.
|
||||||
|
# The portable systems comes first.
|
||||||
|
# Each alternative MUST end in a * to match a version number.
|
||||||
|
gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
|
||||||
|
| *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
|
||||||
|
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
|
||||||
|
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
|
||||||
|
| hiux* | abug | nacl* | netware* | windows* \
|
||||||
|
| os9* | macos* | osx* | ios* \
|
||||||
|
| mpw* | magic* | mmixware* | mon960* | lnews* \
|
||||||
|
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
|
||||||
|
| aos* | aros* | cloudabi* | sortix* | twizzler* \
|
||||||
|
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
|
||||||
|
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
|
||||||
|
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
|
||||||
|
| bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
|
||||||
|
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
|
||||||
|
| bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
|
||||||
|
| ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
|
||||||
|
| udi* | lites* | ieee* | go32* | aux* | hcos* \
|
||||||
|
| chorusrdb* | cegcc* | glidix* | serenity* \
|
||||||
|
| cygwin* | msys* | pe* | moss* | proelf* | rtems* \
|
||||||
|
| midipix* | mingw32* | mingw64* | mint* \
|
||||||
|
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
|
||||||
|
| interix* | uwin* | mks* | rhapsody* | darwin* \
|
||||||
|
| openstep* | oskit* | conix* | pw32* | nonstopux* \
|
||||||
|
| storm-chaos* | tops10* | tenex* | tops20* | its* \
|
||||||
|
| os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
|
||||||
|
| scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
|
||||||
|
| powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
|
||||||
|
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
|
||||||
|
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
|
||||||
|
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
|
||||||
|
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
|
||||||
|
| fiwix* )
|
||||||
|
;;
|
||||||
|
# This one is extra strict with allowed versions
|
||||||
|
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||||
|
# Don't forget version if it is 3.2v4 or newer.
|
||||||
|
;;
|
||||||
|
none)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# As a final step for OS-related things, validate the OS-kernel combination
|
||||||
|
# (given a valid OS), if there is a kernel.
|
||||||
|
case $kernel-$os in
|
||||||
|
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
|
||||||
|
| linux-musl* | linux-relibc* | linux-uclibc* )
|
||||||
|
;;
|
||||||
|
uclinux-uclibc* )
|
||||||
|
;;
|
||||||
|
-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
|
||||||
|
# These are just libc implementations, not actual OSes, and thus
|
||||||
|
# require a kernel.
|
||||||
|
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
kfreebsd*-gnu* | kopensolaris*-gnu*)
|
||||||
|
;;
|
||||||
|
vxworks-simlinux | vxworks-simwindows | vxworks-spe)
|
||||||
|
;;
|
||||||
|
nto-qnx*)
|
||||||
|
;;
|
||||||
|
os2-emx)
|
||||||
|
;;
|
||||||
|
*-eabi* | *-gnueabi*)
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
# Blank kernel with real OS is always fine.
|
||||||
|
;;
|
||||||
|
*-*)
|
||||||
|
echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Here we handle the case where we know the os, and the CPU type, but not the
|
||||||
|
# manufacturer. We pick the logical manufacturer.
|
||||||
|
case $vendor in
|
||||||
|
unknown)
|
||||||
|
case $cpu-$os in
|
||||||
|
*-riscix*)
|
||||||
|
vendor=acorn
|
||||||
|
;;
|
||||||
|
*-sunos*)
|
||||||
|
vendor=sun
|
||||||
|
;;
|
||||||
|
*-cnk* | *-aix*)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
*-beos*)
|
||||||
|
vendor=be
|
||||||
|
;;
|
||||||
|
*-hpux*)
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
*-mpeix*)
|
||||||
|
vendor=hp
|
||||||
|
;;
|
||||||
|
*-hiux*)
|
||||||
|
vendor=hitachi
|
||||||
|
;;
|
||||||
|
*-unos*)
|
||||||
|
vendor=crds
|
||||||
|
;;
|
||||||
|
*-dgux*)
|
||||||
|
vendor=dg
|
||||||
|
;;
|
||||||
|
*-luna*)
|
||||||
|
vendor=omron
|
||||||
|
;;
|
||||||
|
*-genix*)
|
||||||
|
vendor=ns
|
||||||
|
;;
|
||||||
|
*-clix*)
|
||||||
|
vendor=intergraph
|
||||||
|
;;
|
||||||
|
*-mvs* | *-opened*)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
*-os400*)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
s390-* | s390x-*)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
*-ptx*)
|
||||||
|
vendor=sequent
|
||||||
|
;;
|
||||||
|
*-tpf*)
|
||||||
|
vendor=ibm
|
||||||
|
;;
|
||||||
|
*-vxsim* | *-vxworks* | *-windiss*)
|
||||||
|
vendor=wrs
|
||||||
|
;;
|
||||||
|
*-aux*)
|
||||||
|
vendor=apple
|
||||||
|
;;
|
||||||
|
*-hms*)
|
||||||
|
vendor=hitachi
|
||||||
|
;;
|
||||||
|
*-mpw* | *-macos*)
|
||||||
|
vendor=apple
|
||||||
|
;;
|
||||||
|
*-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
|
||||||
|
vendor=atari
|
||||||
|
;;
|
||||||
|
*-vos*)
|
||||||
|
vendor=stratus
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$cpu-$vendor-${kernel:+$kernel-}$os"
|
||||||
|
exit
|
||||||
|
|
||||||
|
# Local variables:
|
||||||
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
# time-stamp-start: "timestamp='"
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d"
|
||||||
|
# time-stamp-end: "'"
|
||||||
|
# End:
|
||||||
19139
3rd/pcre2/configure
vendored
Normal file
19139
3rd/pcre2/configure
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1228
3rd/pcre2/configure.ac
Normal file
1228
3rd/pcre2/configure.ac
Normal file
@@ -0,0 +1,1228 @@
|
|||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
dnl NOTE FOR MAINTAINERS: Do not use minor version numbers 08 or 09 because
|
||||||
|
dnl the leading zeros may cause them to be treated as invalid octal constants
|
||||||
|
dnl if a PCRE2 user writes code that uses PCRE2_MINOR as a number. There is now
|
||||||
|
dnl a check further down that throws an error if 08 or 09 are used.
|
||||||
|
|
||||||
|
dnl The PCRE2_PRERELEASE feature is for identifying release candidates. It might
|
||||||
|
dnl be defined as -RC2, for example. For real releases, it should be empty.
|
||||||
|
|
||||||
|
m4_define(pcre2_major, [10])
|
||||||
|
m4_define(pcre2_minor, [45])
|
||||||
|
m4_define(pcre2_prerelease, [])
|
||||||
|
m4_define(pcre2_date, [2025-02-05])
|
||||||
|
|
||||||
|
# Libtool shared library interface versions (current:revision:age)
|
||||||
|
m4_define(libpcre2_8_version, [14:0:14])
|
||||||
|
m4_define(libpcre2_16_version, [14:0:14])
|
||||||
|
m4_define(libpcre2_32_version, [14:0:14])
|
||||||
|
m4_define(libpcre2_posix_version, [3:6:0])
|
||||||
|
|
||||||
|
# NOTE: The CMakeLists.txt file searches for the above variables in the first
|
||||||
|
# 50 lines of this file. Please update that if the variables above are moved.
|
||||||
|
|
||||||
|
AC_PREREQ([2.60])
|
||||||
|
AC_INIT([PCRE2],pcre2_major.pcre2_minor[]pcre2_prerelease,[],[pcre2])
|
||||||
|
AC_CONFIG_SRCDIR([src/pcre2.h.in])
|
||||||
|
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip foreign])
|
||||||
|
ifelse(pcre2_prerelease, [-DEV],
|
||||||
|
[dnl For development builds, ./configure is not checked in to Git, so we are
|
||||||
|
dnl happy to have it regenerated as needed.
|
||||||
|
AM_MAINTAINER_MODE([enable])],
|
||||||
|
[dnl For a release build (or RC), the ./configure script we ship in the
|
||||||
|
dnl tarball (and check in to the Git tag) should not be regenerated
|
||||||
|
dnl implicitly. This is important if users want to check out a release tag
|
||||||
|
dnl using Git.
|
||||||
|
AM_MAINTAINER_MODE])
|
||||||
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
AC_CONFIG_HEADERS(src/config.h)
|
||||||
|
|
||||||
|
# This was added at the suggestion of libtoolize (03-Jan-10)
|
||||||
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
|
|
||||||
|
# The default CFLAGS in Autoconf are "-g -O2" for gcc and just "-g" for any
|
||||||
|
# other compiler. There doesn't seem to be a standard way of getting rid of the
|
||||||
|
# -g (which I don't think is needed for a production library). This fudge seems
|
||||||
|
# to achieve the necessary. First, we remember the externally set values of
|
||||||
|
# CFLAGS. Then call the AC_PROG_CC macro to find the compiler - if CFLAGS is
|
||||||
|
# not set, it will be set to Autoconf's defaults. Afterwards, if the original
|
||||||
|
# values were not set, remove the -g from the Autoconf defaults.
|
||||||
|
|
||||||
|
remember_set_CFLAGS="$CFLAGS"
|
||||||
|
|
||||||
|
m4_version_prereq(2.70, [AC_PROG_CC], [AC_PROG_CC_C99])
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
|
||||||
|
if test "x$remember_set_CFLAGS" = "x"
|
||||||
|
then
|
||||||
|
if test "$CFLAGS" = "-g -O2"
|
||||||
|
then
|
||||||
|
CFLAGS="-O2"
|
||||||
|
elif test "$CFLAGS" = "-g"
|
||||||
|
then
|
||||||
|
CFLAGS=""
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# This is a new thing required to stop a warning from automake 1.12
|
||||||
|
m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
|
||||||
|
|
||||||
|
# Check for a 64-bit integer type
|
||||||
|
AC_TYPE_INT64_T
|
||||||
|
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
LT_INIT([win32-dll])
|
||||||
|
AC_PROG_LN_S
|
||||||
|
|
||||||
|
AC_SYS_LARGEFILE
|
||||||
|
|
||||||
|
# Check for GCC visibility feature
|
||||||
|
|
||||||
|
PCRE2_VISIBILITY
|
||||||
|
|
||||||
|
# Check for Clang __attribute__((uninitialized)) feature
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for __attribute__((uninitialized))])
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
tmp_CFLAGS=$CFLAGS
|
||||||
|
if test $WORKING_WERROR -eq 1; then
|
||||||
|
CFLAGS="$CFLAGS -Werror"
|
||||||
|
fi
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,
|
||||||
|
[[char buf[128] __attribute__((uninitialized));(void)buf]])],
|
||||||
|
[pcre2_cc_cv_attribute_uninitialized=yes],
|
||||||
|
[pcre2_cc_cv_attribute_uninitialized=no])
|
||||||
|
AC_MSG_RESULT([$pcre2_cc_cv_attribute_uninitialized])
|
||||||
|
if test "$pcre2_cc_cv_attribute_uninitialized" = yes; then
|
||||||
|
AC_DEFINE([HAVE_ATTRIBUTE_UNINITIALIZED], 1, [Define this if your compiler
|
||||||
|
supports __attribute__((uninitialized))])
|
||||||
|
fi
|
||||||
|
CFLAGS=$tmp_CFLAGS
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
# Check for the assume() builtin
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for __assume()])
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[__assume(1)]])],
|
||||||
|
[pcre2_cc_cv_builtin_assume=yes],
|
||||||
|
[pcre2_cc_cv_builtin_assume=no])
|
||||||
|
AC_MSG_RESULT([$pcre2_cc_cv_builtin_assume])
|
||||||
|
if test "$pcre2_cc_cv_builtin_assume" = yes; then
|
||||||
|
AC_DEFINE([HAVE_BUILTIN_ASSUME], 1,
|
||||||
|
[Define this if your compiler provides __assume()])
|
||||||
|
fi
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
# Check for the mul_overflow() builtin
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for __builtin_mul_overflow()])
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
int a, b;
|
||||||
|
size_t m;
|
||||||
|
]], [[__builtin_mul_overflow(a, b, &m)]])],
|
||||||
|
[pcre2_cc_cv_builtin_mul_overflow=yes],
|
||||||
|
[pcre2_cc_cv_builtin_mul_overflow=no])
|
||||||
|
AC_MSG_RESULT([$pcre2_cc_cv_builtin_mul_overflow])
|
||||||
|
if test "$pcre2_cc_cv_builtin_mul_overflow" = yes; then
|
||||||
|
AC_DEFINE([HAVE_BUILTIN_MUL_OVERFLOW], 1,
|
||||||
|
[Define this if your compiler provides __builtin_mul_overflow()])
|
||||||
|
fi
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
# Check for the unreachable() builtin
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for __builtin_unreachable()])
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[int r;]], [[if (r) __builtin_unreachable()]])],
|
||||||
|
[pcre2_cc_cv_builtin_unreachable=yes],
|
||||||
|
[pcre2_cc_cv_builtin_unreachable=no])
|
||||||
|
AC_MSG_RESULT([$pcre2_cc_cv_builtin_unreachable])
|
||||||
|
if test "$pcre2_cc_cv_builtin_unreachable" = yes; then
|
||||||
|
AC_DEFINE([HAVE_BUILTIN_UNREACHABLE], 1,
|
||||||
|
[Define this if your compiler provides __builtin_unreachable()])
|
||||||
|
fi
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
# Versioning
|
||||||
|
|
||||||
|
PCRE2_MAJOR="pcre2_major"
|
||||||
|
PCRE2_MINOR="pcre2_minor"
|
||||||
|
PCRE2_PRERELEASE="pcre2_prerelease"
|
||||||
|
PCRE2_DATE="pcre2_date"
|
||||||
|
|
||||||
|
if test "$PCRE2_MINOR" = "08" -o "$PCRE2_MINOR" = "09"
|
||||||
|
then
|
||||||
|
echo "***"
|
||||||
|
echo "*** Minor version number $PCRE2_MINOR must not be used. ***"
|
||||||
|
echo "*** Use only 00 to 07 or 10 onwards, to avoid octal issues. ***"
|
||||||
|
echo "***"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_SUBST(PCRE2_MAJOR)
|
||||||
|
AC_SUBST(PCRE2_MINOR)
|
||||||
|
AC_SUBST(PCRE2_PRERELEASE)
|
||||||
|
AC_SUBST(PCRE2_DATE)
|
||||||
|
|
||||||
|
# Set a more sensible default value for $(htmldir).
|
||||||
|
if test "x$htmldir" = 'x${docdir}'
|
||||||
|
then
|
||||||
|
htmldir='${docdir}/html'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Force an error for PCRE1 size options
|
||||||
|
AC_ARG_ENABLE(pcre8,,,enable_pcre8=no)
|
||||||
|
AC_ARG_ENABLE(pcre16,,,enable_pcre16=no)
|
||||||
|
AC_ARG_ENABLE(pcre32,,,enable_pcre32=no)
|
||||||
|
|
||||||
|
if test "$enable_pcre8$enable_pcre16$enable_pcre32" != "nonono"
|
||||||
|
then
|
||||||
|
echo "** ERROR: Use --[[en|dis]]able-pcre2-[[8|16|32]], not --[[en|dis]]able-pcre[[8|16|32]]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle --disable-pcre2-8 (enabled by default)
|
||||||
|
AC_ARG_ENABLE(pcre2-8,
|
||||||
|
AS_HELP_STRING([--disable-pcre2-8],
|
||||||
|
[disable 8 bit character support]),
|
||||||
|
, enable_pcre2_8=unset)
|
||||||
|
AC_SUBST(enable_pcre2_8)
|
||||||
|
|
||||||
|
# Handle --enable-pcre2-16 (disabled by default)
|
||||||
|
AC_ARG_ENABLE(pcre2-16,
|
||||||
|
AS_HELP_STRING([--enable-pcre2-16],
|
||||||
|
[enable 16 bit character support]),
|
||||||
|
, enable_pcre2_16=unset)
|
||||||
|
AC_SUBST(enable_pcre2_16)
|
||||||
|
|
||||||
|
# Handle --enable-pcre2-32 (disabled by default)
|
||||||
|
AC_ARG_ENABLE(pcre2-32,
|
||||||
|
AS_HELP_STRING([--enable-pcre2-32],
|
||||||
|
[enable 32 bit character support]),
|
||||||
|
, enable_pcre2_32=unset)
|
||||||
|
AC_SUBST(enable_pcre2_32)
|
||||||
|
|
||||||
|
# Handle --enable-debug (disabled by default)
|
||||||
|
AC_ARG_ENABLE(debug,
|
||||||
|
AS_HELP_STRING([--enable-debug],
|
||||||
|
[enable debugging code]),
|
||||||
|
, enable_debug=no)
|
||||||
|
|
||||||
|
# Handle --enable-jit (disabled by default)
|
||||||
|
AC_ARG_ENABLE(jit,
|
||||||
|
AS_HELP_STRING([--enable-jit],
|
||||||
|
[enable Just-In-Time compiling support]),
|
||||||
|
, enable_jit=no)
|
||||||
|
|
||||||
|
# This code enables JIT if the hardware supports it.
|
||||||
|
if test "$enable_jit" = "auto"; then
|
||||||
|
AC_LANG(C)
|
||||||
|
SAVE_CPPFLAGS=$CPPFLAGS
|
||||||
|
CPPFLAGS=-I$srcdir
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
#define SLJIT_CONFIG_AUTO 1
|
||||||
|
#include "deps/sljit/sljit_src/sljitConfigCPU.h"
|
||||||
|
#if (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED)
|
||||||
|
#error unsupported
|
||||||
|
#endif]])], enable_jit=yes, enable_jit=no)
|
||||||
|
CPPFLAGS=$SAVE_CPPFLAGS
|
||||||
|
echo checking for JIT support on this hardware... $enable_jit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle --enable-jit-sealloc (disabled by default and only experimental)
|
||||||
|
case $host_os in
|
||||||
|
linux* | netbsd*)
|
||||||
|
AC_ARG_ENABLE(jit-sealloc,
|
||||||
|
AS_HELP_STRING([--enable-jit-sealloc],
|
||||||
|
[enable SELinux compatible execmem allocator in JIT (experimental)]),
|
||||||
|
,enable_jit_sealloc=no)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
enable_jit_sealloc=unsupported
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Handle --disable-pcre2grep-jit (enabled by default)
|
||||||
|
AC_ARG_ENABLE(pcre2grep-jit,
|
||||||
|
AS_HELP_STRING([--disable-pcre2grep-jit],
|
||||||
|
[disable JIT support in pcre2grep]),
|
||||||
|
, enable_pcre2grep_jit=yes)
|
||||||
|
|
||||||
|
# Handle --disable-pcre2grep-callout (enabled by default)
|
||||||
|
AC_ARG_ENABLE(pcre2grep-callout,
|
||||||
|
AS_HELP_STRING([--disable-pcre2grep-callout],
|
||||||
|
[disable callout script support in pcre2grep]),
|
||||||
|
, enable_pcre2grep_callout=yes)
|
||||||
|
|
||||||
|
# Handle --disable-pcre2grep-callout-fork (enabled by default)
|
||||||
|
AC_ARG_ENABLE(pcre2grep-callout-fork,
|
||||||
|
AS_HELP_STRING([--disable-pcre2grep-callout-fork],
|
||||||
|
[disable callout script fork support in pcre2grep]),
|
||||||
|
, enable_pcre2grep_callout_fork=yes)
|
||||||
|
|
||||||
|
# Handle --enable-rebuild-chartables
|
||||||
|
AC_ARG_ENABLE(rebuild-chartables,
|
||||||
|
AS_HELP_STRING([--enable-rebuild-chartables],
|
||||||
|
[rebuild character tables in current locale]),
|
||||||
|
, enable_rebuild_chartables=no)
|
||||||
|
|
||||||
|
# Handle --disable-unicode (enabled by default)
|
||||||
|
AC_ARG_ENABLE(unicode,
|
||||||
|
AS_HELP_STRING([--disable-unicode],
|
||||||
|
[disable Unicode support]),
|
||||||
|
, enable_unicode=unset)
|
||||||
|
|
||||||
|
# Handle newline options
|
||||||
|
ac_pcre2_newline=lf
|
||||||
|
AC_ARG_ENABLE(newline-is-cr,
|
||||||
|
AS_HELP_STRING([--enable-newline-is-cr],
|
||||||
|
[use CR as newline character]),
|
||||||
|
ac_pcre2_newline=cr)
|
||||||
|
AC_ARG_ENABLE(newline-is-lf,
|
||||||
|
AS_HELP_STRING([--enable-newline-is-lf],
|
||||||
|
[use LF as newline character (default)]),
|
||||||
|
ac_pcre2_newline=lf)
|
||||||
|
AC_ARG_ENABLE(newline-is-crlf,
|
||||||
|
AS_HELP_STRING([--enable-newline-is-crlf],
|
||||||
|
[use CRLF as newline sequence]),
|
||||||
|
ac_pcre2_newline=crlf)
|
||||||
|
AC_ARG_ENABLE(newline-is-anycrlf,
|
||||||
|
AS_HELP_STRING([--enable-newline-is-anycrlf],
|
||||||
|
[use CR, LF, or CRLF as newline sequence]),
|
||||||
|
ac_pcre2_newline=anycrlf)
|
||||||
|
AC_ARG_ENABLE(newline-is-any,
|
||||||
|
AS_HELP_STRING([--enable-newline-is-any],
|
||||||
|
[use any valid Unicode newline sequence]),
|
||||||
|
ac_pcre2_newline=any)
|
||||||
|
AC_ARG_ENABLE(newline-is-nul,
|
||||||
|
AS_HELP_STRING([--enable-newline-is-nul],
|
||||||
|
[use NUL (binary zero) as newline character]),
|
||||||
|
ac_pcre2_newline=nul)
|
||||||
|
enable_newline="$ac_pcre2_newline"
|
||||||
|
|
||||||
|
# Handle --enable-bsr-anycrlf
|
||||||
|
AC_ARG_ENABLE(bsr-anycrlf,
|
||||||
|
AS_HELP_STRING([--enable-bsr-anycrlf],
|
||||||
|
[\R matches only CR, LF, CRLF by default]),
|
||||||
|
, enable_bsr_anycrlf=no)
|
||||||
|
|
||||||
|
# Handle --enable-never-backslash-C
|
||||||
|
AC_ARG_ENABLE(never-backslash-C,
|
||||||
|
AS_HELP_STRING([--enable-never-backslash-C],
|
||||||
|
[use of \C causes an error]),
|
||||||
|
, enable_never_backslash_C=no)
|
||||||
|
|
||||||
|
# Handle --enable-ebcdic
|
||||||
|
AC_ARG_ENABLE(ebcdic,
|
||||||
|
AS_HELP_STRING([--enable-ebcdic],
|
||||||
|
[assume EBCDIC coding rather than ASCII; incompatible with --enable-unicode; use only in (uncommon) EBCDIC environments; it implies --enable-rebuild-chartables]),
|
||||||
|
, enable_ebcdic=no)
|
||||||
|
|
||||||
|
# Handle --enable-ebcdic-nl25
|
||||||
|
AC_ARG_ENABLE(ebcdic-nl25,
|
||||||
|
AS_HELP_STRING([--enable-ebcdic-nl25],
|
||||||
|
[set EBCDIC code for NL to 0x25 instead of 0x15; it implies --enable-ebcdic]),
|
||||||
|
, enable_ebcdic_nl25=no)
|
||||||
|
|
||||||
|
# Handle --enable-pcre2grep-libz
|
||||||
|
AC_ARG_ENABLE(pcre2grep-libz,
|
||||||
|
AS_HELP_STRING([--enable-pcre2grep-libz],
|
||||||
|
[link pcre2grep with libz to handle .gz files]),
|
||||||
|
, enable_pcre2grep_libz=no)
|
||||||
|
|
||||||
|
# Handle --enable-pcre2grep-libbz2
|
||||||
|
AC_ARG_ENABLE(pcre2grep-libbz2,
|
||||||
|
AS_HELP_STRING([--enable-pcre2grep-libbz2],
|
||||||
|
[link pcre2grep with libbz2 to handle .bz2 files]),
|
||||||
|
, enable_pcre2grep_libbz2=no)
|
||||||
|
|
||||||
|
# Handle --with-pcre2grep-bufsize=N
|
||||||
|
AC_ARG_WITH(pcre2grep-bufsize,
|
||||||
|
AS_HELP_STRING([--with-pcre2grep-bufsize=N],
|
||||||
|
[pcre2grep initial buffer size (default=20480, minimum=8192)]),
|
||||||
|
, with_pcre2grep_bufsize=20480)
|
||||||
|
|
||||||
|
# Handle --with-pcre2grep-max-bufsize=N
|
||||||
|
AC_ARG_WITH(pcre2grep-max-bufsize,
|
||||||
|
AS_HELP_STRING([--with-pcre2grep-max-bufsize=N],
|
||||||
|
[pcre2grep maximum buffer size (default=1048576, minimum=8192)]),
|
||||||
|
, with_pcre2grep_max_bufsize=1048576)
|
||||||
|
|
||||||
|
# Handle --enable-pcre2test-libedit
|
||||||
|
AC_ARG_ENABLE(pcre2test-libedit,
|
||||||
|
AS_HELP_STRING([--enable-pcre2test-libedit],
|
||||||
|
[link pcre2test with libedit]),
|
||||||
|
, enable_pcre2test_libedit=no)
|
||||||
|
|
||||||
|
# Handle --enable-pcre2test-libreadline
|
||||||
|
AC_ARG_ENABLE(pcre2test-libreadline,
|
||||||
|
AS_HELP_STRING([--enable-pcre2test-libreadline],
|
||||||
|
[link pcre2test with libreadline]),
|
||||||
|
, enable_pcre2test_libreadline=no)
|
||||||
|
|
||||||
|
# Handle --with-link-size=N
|
||||||
|
AC_ARG_WITH(link-size,
|
||||||
|
AS_HELP_STRING([--with-link-size=N],
|
||||||
|
[internal link size (2, 3, or 4 allowed; default=2)]),
|
||||||
|
, with_link_size=2)
|
||||||
|
|
||||||
|
# Handle --with-max-varlookbehind=N
|
||||||
|
AC_ARG_WITH(max-varlookbehind,
|
||||||
|
AS_HELP_STRING([--with-max-varlookbehind=N],
|
||||||
|
[maximum length of variable lookbehind (default=255)]),
|
||||||
|
, with_max_varlookbehind=255)
|
||||||
|
|
||||||
|
# Handle --with-parens-nest-limit=N
|
||||||
|
AC_ARG_WITH(parens-nest-limit,
|
||||||
|
AS_HELP_STRING([--with-parens-nest-limit=N],
|
||||||
|
[nested parentheses limit (default=250)]),
|
||||||
|
, with_parens_nest_limit=250)
|
||||||
|
|
||||||
|
# Handle --with-heap-limit
|
||||||
|
AC_ARG_WITH(heap-limit,
|
||||||
|
AS_HELP_STRING([--with-heap-limit=N],
|
||||||
|
[default limit on heap memory (kibibytes, default=20000000)]),
|
||||||
|
, with_heap_limit=20000000)
|
||||||
|
|
||||||
|
# Handle --with-match-limit=N
|
||||||
|
AC_ARG_WITH(match-limit,
|
||||||
|
AS_HELP_STRING([--with-match-limit=N],
|
||||||
|
[default limit on internal looping (default=10000000)]),
|
||||||
|
, with_match_limit=10000000)
|
||||||
|
|
||||||
|
# Handle --with-match-limit-depth=N
|
||||||
|
# Recognize old synonym --with-match-limit-recursion
|
||||||
|
#
|
||||||
|
# Note: In config.h, the default is to define MATCH_LIMIT_DEPTH symbolically as
|
||||||
|
# MATCH_LIMIT, which in turn is defined to be some numeric value (e.g.
|
||||||
|
# 10000000). MATCH_LIMIT_DEPTH can otherwise be set to some different numeric
|
||||||
|
# value (or even the same numeric value as MATCH_LIMIT, though no longer
|
||||||
|
# defined in terms of the latter).
|
||||||
|
#
|
||||||
|
AC_ARG_WITH(match-limit-depth,
|
||||||
|
AS_HELP_STRING([--with-match-limit-depth=N],
|
||||||
|
[default limit on match tree depth (default=MATCH_LIMIT)]),
|
||||||
|
, with_match_limit_depth=MATCH_LIMIT)
|
||||||
|
|
||||||
|
AC_ARG_WITH(match-limit-recursion,,
|
||||||
|
, with_match_limit_recursion=UNSET)
|
||||||
|
|
||||||
|
# Handle --enable-valgrind
|
||||||
|
AC_ARG_ENABLE(valgrind,
|
||||||
|
AS_HELP_STRING([--enable-valgrind],
|
||||||
|
[enable valgrind support]),
|
||||||
|
, enable_valgrind=no)
|
||||||
|
|
||||||
|
# Enable code coverage reports using gcov
|
||||||
|
AC_ARG_ENABLE(coverage,
|
||||||
|
AS_HELP_STRING([--enable-coverage],
|
||||||
|
[enable code coverage reports using gcov]),
|
||||||
|
, enable_coverage=no)
|
||||||
|
|
||||||
|
# Handle --enable-fuzz-support
|
||||||
|
AC_ARG_ENABLE(fuzz_support,
|
||||||
|
AS_HELP_STRING([--enable-fuzz-support],
|
||||||
|
[enable fuzzer support]),
|
||||||
|
, enable_fuzz_support=no)
|
||||||
|
|
||||||
|
# Handle --enable-diff-fuzz-support
|
||||||
|
AC_ARG_ENABLE(diff_fuzz_support,
|
||||||
|
AS_HELP_STRING([--enable-diff-fuzz-support],
|
||||||
|
[enable differential fuzzer support]),
|
||||||
|
, enable_diff_fuzz_support=no)
|
||||||
|
|
||||||
|
# Handle --disable-stack-for-recursion
|
||||||
|
# This option became obsolete at release 10.30.
|
||||||
|
AC_ARG_ENABLE(stack-for-recursion,,
|
||||||
|
, enable_stack_for_recursion=yes)
|
||||||
|
|
||||||
|
# Original code
|
||||||
|
# AC_ARG_ENABLE(stack-for-recursion,
|
||||||
|
# AS_HELP_STRING([--disable-stack-for-recursion],
|
||||||
|
# [don't use stack recursion when matching]),
|
||||||
|
# , enable_stack_for_recursion=yes)
|
||||||
|
|
||||||
|
# Handle --disable-percent_zt (set as "auto" by default)
|
||||||
|
AC_ARG_ENABLE(percent-zt,
|
||||||
|
AS_HELP_STRING([--disable-percent-zt],
|
||||||
|
[disable the use of z and t formatting modifiers]),
|
||||||
|
, enable_percent_zt=auto)
|
||||||
|
|
||||||
|
# Set the default value for pcre2-8
|
||||||
|
if test "x$enable_pcre2_8" = "xunset"
|
||||||
|
then
|
||||||
|
enable_pcre2_8=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the default value for pcre2-16
|
||||||
|
if test "x$enable_pcre2_16" = "xunset"
|
||||||
|
then
|
||||||
|
enable_pcre2_16=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the default value for pcre2-32
|
||||||
|
if test "x$enable_pcre2_32" = "xunset"
|
||||||
|
then
|
||||||
|
enable_pcre2_32=no
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure at least one library is selected
|
||||||
|
if test "x$enable_pcre2_8$enable_pcre2_16$enable_pcre2_32" = "xnonono"
|
||||||
|
then
|
||||||
|
AC_MSG_ERROR([At least one of the 8, 16 or 32 bit libraries must be enabled])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unicode is enabled by default.
|
||||||
|
if test "x$enable_unicode" = "xunset"
|
||||||
|
then
|
||||||
|
enable_unicode=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Convert the newline identifier into the appropriate integer value. These must
|
||||||
|
# agree with the PCRE2_NEWLINE_xxx values in pcre2.h.
|
||||||
|
|
||||||
|
case "$enable_newline" in
|
||||||
|
cr) ac_pcre2_newline_value=1 ;;
|
||||||
|
lf) ac_pcre2_newline_value=2 ;;
|
||||||
|
crlf) ac_pcre2_newline_value=3 ;;
|
||||||
|
any) ac_pcre2_newline_value=4 ;;
|
||||||
|
anycrlf) ac_pcre2_newline_value=5 ;;
|
||||||
|
nul) ac_pcre2_newline_value=6 ;;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR([invalid argument "$enable_newline" to --enable-newline option])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# --enable-ebcdic-nl25 implies --enable-ebcdic
|
||||||
|
if test "x$enable_ebcdic_nl25" = "xyes"; then
|
||||||
|
enable_ebcdic=yes
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make sure that if enable_ebcdic is set, rebuild_chartables is also enabled.
|
||||||
|
# Also check that UTF support is not requested, because PCRE2 cannot handle
|
||||||
|
# EBCDIC and UTF in the same build. To do so it would need to use different
|
||||||
|
# character constants depending on the mode. Also, EBCDIC cannot be used with
|
||||||
|
# 16-bit and 32-bit libraries.
|
||||||
|
#
|
||||||
|
if test "x$enable_ebcdic" = "xyes"; then
|
||||||
|
enable_rebuild_chartables=yes
|
||||||
|
if test "x$enable_unicode" = "xyes"; then
|
||||||
|
AC_MSG_ERROR([support for EBCDIC and Unicode cannot be enabled at the same time])
|
||||||
|
fi
|
||||||
|
if test "x$enable_pcre2_16" = "xyes" -o "x$enable_pcre2_32" = "xyes"; then
|
||||||
|
AC_MSG_ERROR([EBCDIC support is available only for the 8-bit library])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check argument to --with-link-size
|
||||||
|
case "$with_link_size" in
|
||||||
|
2|3|4) ;;
|
||||||
|
*)
|
||||||
|
AC_MSG_ERROR([invalid argument "$with_link_size" to --with-link-size option])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AH_TOP([
|
||||||
|
/* PCRE2 is written in Standard C, but there are a few non-standard things it
|
||||||
|
can cope with, allowing it to run on SunOS4 and other "close to standard"
|
||||||
|
systems.
|
||||||
|
|
||||||
|
In environments that support the GNU autotools, config.h.in is converted into
|
||||||
|
config.h by the "configure" script. In environments that use CMake,
|
||||||
|
config-cmake.in is converted into config.h. If you are going to build PCRE2 "by
|
||||||
|
hand" without using "configure" or CMake, you should copy the distributed
|
||||||
|
config.h.generic to config.h, and edit the macro definitions to be the way you
|
||||||
|
need them. You must then add -DHAVE_CONFIG_H to all of your compile commands,
|
||||||
|
so that config.h is included at the start of every source.
|
||||||
|
|
||||||
|
Alternatively, you can avoid editing by using -D on the compiler command line
|
||||||
|
to set the macro values. In this case, you do not have to set -DHAVE_CONFIG_H,
|
||||||
|
but if you do, default values will be taken from config.h for non-boolean
|
||||||
|
macros that are not defined on the command line.
|
||||||
|
|
||||||
|
Boolean macros such as HAVE_STDLIB_H and SUPPORT_PCRE2_8 should either be
|
||||||
|
defined (conventionally to 1) for TRUE, and not defined at all for FALSE. All
|
||||||
|
such macros are listed as a commented #undef in config.h.generic. Macros such
|
||||||
|
as MATCH_LIMIT, whose actual value is relevant, have defaults defined, but are
|
||||||
|
surrounded by #ifndef/#endif lines so that the value can be overridden by -D.
|
||||||
|
|
||||||
|
PCRE2 uses memmove() if HAVE_MEMMOVE is defined; otherwise it uses bcopy() if
|
||||||
|
HAVE_BCOPY is defined. If your system has neither bcopy() nor memmove(), make
|
||||||
|
sure both macros are undefined; an emulation function will then be used. */])
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
AC_CHECK_HEADERS(assert.h limits.h sys/types.h sys/stat.h dirent.h)
|
||||||
|
AC_CHECK_HEADERS([windows.h], [HAVE_WINDOWS_H=1])
|
||||||
|
AC_CHECK_HEADERS([sys/wait.h], [HAVE_SYS_WAIT_H=1])
|
||||||
|
|
||||||
|
# Conditional compilation
|
||||||
|
AM_CONDITIONAL(WITH_PCRE2_8, test "x$enable_pcre2_8" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_PCRE2_16, test "x$enable_pcre2_16" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_PCRE2_32, test "x$enable_pcre2_32" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_REBUILD_CHARTABLES, test "x$enable_rebuild_chartables" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_JIT, test "x$enable_jit" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_UNICODE, test "x$enable_unicode" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_VALGRIND, test "x$enable_valgrind" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_FUZZ_SUPPORT, test "x$enable_fuzz_support" = "xyes")
|
||||||
|
AM_CONDITIONAL(WITH_DIFF_FUZZ_SUPPORT, test "x$enable_diff_fuzz_support" = "xyes")
|
||||||
|
|
||||||
|
if test "$enable_fuzz_support" = "yes" -a "$enable_pcre2_8" = "no"; then
|
||||||
|
echo "** ERROR: Fuzzer support requires the 8-bit library"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_diff_fuzz_support" = "yes"; then
|
||||||
|
if test "$enable_fuzz_support" = "no"; then
|
||||||
|
echo "** ERROR: Differential fuzzing support requires fuzzing support"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$enable_jit" = "no"; then
|
||||||
|
echo "** ERROR: Differential fuzzing support requires Just-in-Time compilation support"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
AC_DEFINE([SUPPORT_DIFF_FUZZ], [], [
|
||||||
|
Define to any value to enable differential fuzzing support.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
|
||||||
|
AC_C_CONST
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
|
||||||
|
AC_CHECK_FUNCS(bcopy memfd_create memmove mkostemp secure_getenv strerror)
|
||||||
|
AC_MSG_CHECKING([for realpath])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <limits.h>
|
||||||
|
]],[[
|
||||||
|
char buffer[PATH_MAX];
|
||||||
|
realpath(".", buffer);
|
||||||
|
]])],
|
||||||
|
[AC_MSG_RESULT([yes])
|
||||||
|
AC_DEFINE([HAVE_REALPATH], 1,
|
||||||
|
[Define to 1 if you have the `realpath' function.])
|
||||||
|
],
|
||||||
|
AC_MSG_RESULT([no]))
|
||||||
|
|
||||||
|
# Check for the availability of libz (aka zlib)
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([zlib.h], [HAVE_ZLIB_H=1])
|
||||||
|
AC_CHECK_LIB([z], [gzopen], [HAVE_LIBZ=1])
|
||||||
|
|
||||||
|
# Check for the availability of libbz2. Originally we just used AC_CHECK_LIB,
|
||||||
|
# as for libz. However, this had the following problem, diagnosed and fixed by
|
||||||
|
# a user:
|
||||||
|
#
|
||||||
|
# - libbz2 uses the Pascal calling convention (WINAPI) for the functions
|
||||||
|
# under Win32.
|
||||||
|
# - The standard autoconf AC_CHECK_LIB fails to include "bzlib.h",
|
||||||
|
# therefore missing the function definition.
|
||||||
|
# - The compiler thus generates a "C" signature for the test function.
|
||||||
|
# - The linker fails to find the "C" function.
|
||||||
|
# - PCRE2 fails to configure if asked to do so against libbz2.
|
||||||
|
#
|
||||||
|
# Solution:
|
||||||
|
#
|
||||||
|
# - Replace the AC_CHECK_LIB test with a custom test.
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS([bzlib.h], [HAVE_BZLIB_H=1])
|
||||||
|
# Original test
|
||||||
|
# AC_CHECK_LIB([bz2], [BZ2_bzopen], [HAVE_LIBBZ2=1])
|
||||||
|
#
|
||||||
|
# Custom test follows
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([for libbz2])
|
||||||
|
OLD_LIBS="$LIBS"
|
||||||
|
LIBS="$LIBS -lbz2"
|
||||||
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||||
|
#ifdef HAVE_BZLIB_H
|
||||||
|
#include <bzlib.h>
|
||||||
|
#endif]],
|
||||||
|
[[return (int)BZ2_bzopen("conftest", "rb");]])],
|
||||||
|
[AC_MSG_RESULT([yes]);HAVE_LIBBZ2=1; break;],
|
||||||
|
AC_MSG_RESULT([no]))
|
||||||
|
LIBS="$OLD_LIBS"
|
||||||
|
|
||||||
|
# Check for the availabiity of libreadline
|
||||||
|
|
||||||
|
if test "$enable_pcre2test_libreadline" = "yes"; then
|
||||||
|
AC_CHECK_HEADERS([readline/readline.h], [HAVE_READLINE_H=1])
|
||||||
|
AC_CHECK_HEADERS([readline/history.h], [HAVE_HISTORY_H=1])
|
||||||
|
AC_CHECK_LIB([readline], [readline], [LIBREADLINE="-lreadline"],
|
||||||
|
[unset ac_cv_lib_readline_readline;
|
||||||
|
AC_CHECK_LIB([readline], [readline], [LIBREADLINE="-ltinfo"],
|
||||||
|
[unset ac_cv_lib_readline_readline;
|
||||||
|
AC_CHECK_LIB([readline], [readline], [LIBREADLINE="-lcurses"],
|
||||||
|
[unset ac_cv_lib_readline_readline;
|
||||||
|
AC_CHECK_LIB([readline], [readline], [LIBREADLINE="-lncurses"],
|
||||||
|
[unset ac_cv_lib_readline_readline;
|
||||||
|
AC_CHECK_LIB([readline], [readline], [LIBREADLINE="-lncursesw"],
|
||||||
|
[unset ac_cv_lib_readline_readline;
|
||||||
|
AC_CHECK_LIB([readline], [readline], [LIBREADLINE="-ltermcap"],
|
||||||
|
[LIBREADLINE=""],
|
||||||
|
[-ltermcap])],
|
||||||
|
[-lncursesw])],
|
||||||
|
[-lncurses])],
|
||||||
|
[-lcurses])],
|
||||||
|
[-ltinfo])])
|
||||||
|
AC_SUBST(LIBREADLINE)
|
||||||
|
if test -n "$LIBREADLINE"; then
|
||||||
|
if test "$LIBREADLINE" != "-lreadline"; then
|
||||||
|
echo "-lreadline needs $LIBREADLINE"
|
||||||
|
LIBREADLINE="-lreadline $LIBREADLINE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check for the availability of libedit. Different distributions put its
|
||||||
|
# headers in different places. Try to cover the most common ones.
|
||||||
|
|
||||||
|
if test "$enable_pcre2test_libedit" = "yes"; then
|
||||||
|
AC_CHECK_HEADERS([editline/readline.h edit/readline/readline.h readline.h], [
|
||||||
|
HAVE_LIBEDIT_HEADER=1
|
||||||
|
break
|
||||||
|
])
|
||||||
|
AC_CHECK_LIB([edit], [readline], [LIBEDIT="-ledit"])
|
||||||
|
fi
|
||||||
|
|
||||||
|
PCRE2_STATIC_CFLAG=""
|
||||||
|
if test "x$enable_shared" = "xno" ; then
|
||||||
|
AC_DEFINE([PCRE2_STATIC], [1], [
|
||||||
|
Define to any value if linking statically (TODO: make nice with Libtool)])
|
||||||
|
PCRE2_STATIC_CFLAG="-DPCRE2_STATIC"
|
||||||
|
fi
|
||||||
|
AC_SUBST(PCRE2_STATIC_CFLAG)
|
||||||
|
|
||||||
|
PCRE2POSIX_CFLAG=""
|
||||||
|
if test "x$enable_shared" = "xyes" ; then
|
||||||
|
PCRE2POSIX_CFLAG="-DPCRE2POSIX_SHARED"
|
||||||
|
fi
|
||||||
|
AC_SUBST(PCRE2POSIX_CFLAG)
|
||||||
|
|
||||||
|
# Here is where PCRE2-specific defines are handled
|
||||||
|
|
||||||
|
if test "$enable_pcre2_8" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_PCRE2_8], [], [
|
||||||
|
Define to any value to enable the 8 bit PCRE2 library.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2_16" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_PCRE2_16], [], [
|
||||||
|
Define to any value to enable the 16 bit PCRE2 library.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2_32" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_PCRE2_32], [], [
|
||||||
|
Define to any value to enable the 32 bit PCRE2 library.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_debug" = "yes"; then
|
||||||
|
AC_DEFINE([PCRE2_DEBUG], [], [
|
||||||
|
Define to any value to include debugging code.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_percent_zt" = "no"; then
|
||||||
|
AC_DEFINE([DISABLE_PERCENT_ZT], [], [
|
||||||
|
Define to any value to disable the use of the z and t modifiers in
|
||||||
|
formatting settings such as %zu or %td (this is rarely needed).])
|
||||||
|
else
|
||||||
|
enable_percent_zt=auto
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Unless running under Windows, JIT support requires pthreads.
|
||||||
|
|
||||||
|
if test "$enable_jit" = "yes"; then
|
||||||
|
if test "$HAVE_WINDOWS_H" != "1"; then
|
||||||
|
AX_PTHREAD([], [AC_MSG_ERROR([JIT support requires pthreads])])
|
||||||
|
CC="$PTHREAD_CC"
|
||||||
|
CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
|
||||||
|
LIBS="$PTHREAD_LIBS $LIBS"
|
||||||
|
fi
|
||||||
|
AC_DEFINE([SUPPORT_JIT], [], [
|
||||||
|
Define to any value to enable support for Just-In-Time compiling.])
|
||||||
|
else
|
||||||
|
enable_pcre2grep_jit="no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_jit_sealloc" = "yes"; then
|
||||||
|
AC_DEFINE([SLJIT_PROT_EXECUTABLE_ALLOCATOR], [1], [
|
||||||
|
Define to any non-zero number to enable support for SELinux
|
||||||
|
compatible executable memory allocator in JIT. Note that this
|
||||||
|
will have no effect unless SUPPORT_JIT is also defined.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2grep_jit" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_PCRE2GREP_JIT], [], [
|
||||||
|
Define to any value to enable JIT support in pcre2grep. Note that this will
|
||||||
|
have no effect unless SUPPORT_JIT is also defined.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2grep_callout" = "yes"; then
|
||||||
|
if test "$enable_pcre2grep_callout_fork" = "yes"; then
|
||||||
|
if test "$HAVE_WINDOWS_H" != "1"; then
|
||||||
|
if test "$HAVE_SYS_WAIT_H" != "1"; then
|
||||||
|
AC_MSG_ERROR([Callout script support needs sys/wait.h.])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
AC_DEFINE([SUPPORT_PCRE2GREP_CALLOUT_FORK], [], [
|
||||||
|
Define to any value to enable fork support in pcre2grep callout scripts.
|
||||||
|
This will have no effect unless SUPPORT_PCRE2GREP_CALLOUT is also
|
||||||
|
defined.])
|
||||||
|
fi
|
||||||
|
AC_DEFINE([SUPPORT_PCRE2GREP_CALLOUT], [], [
|
||||||
|
Define to any value to enable callout script support in pcre2grep.])
|
||||||
|
else
|
||||||
|
enable_pcre2grep_callout_fork="no"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_unicode" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_UNICODE], [], [
|
||||||
|
Define to any value to enable support for Unicode and UTF encoding.
|
||||||
|
This will work even in an EBCDIC environment, but it is incompatible
|
||||||
|
with the EBCDIC macro. That is, PCRE2 can support *either* EBCDIC
|
||||||
|
code *or* ASCII/Unicode, but not both at once.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2grep_libz" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_LIBZ], [], [
|
||||||
|
Define to any value to allow pcre2grep to be linked with libz, so that it is
|
||||||
|
able to handle .gz files.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2grep_libbz2" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_LIBBZ2], [], [
|
||||||
|
Define to any value to allow pcre2grep to be linked with libbz2, so that it
|
||||||
|
is able to handle .bz2 files.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $with_pcre2grep_bufsize -lt 8192 ; then
|
||||||
|
AC_MSG_WARN([$with_pcre2grep_bufsize is too small for --with-pcre2grep-bufsize; using 8192])
|
||||||
|
with_pcre2grep_bufsize="8192"
|
||||||
|
else
|
||||||
|
if test $? -gt 1 ; then
|
||||||
|
AC_MSG_ERROR([Bad value for --with-pcre2grep-bufsize])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $with_pcre2grep_max_bufsize -lt $with_pcre2grep_bufsize ; then
|
||||||
|
with_pcre2grep_max_bufsize="$with_pcre2grep_bufsize"
|
||||||
|
else
|
||||||
|
if test $? -gt 1 ; then
|
||||||
|
AC_MSG_ERROR([Bad value for --with-pcre2grep-max-bufsize])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([PCRE2GREP_BUFSIZE], [$with_pcre2grep_bufsize], [
|
||||||
|
The value of PCRE2GREP_BUFSIZE is the starting size of the buffer used by
|
||||||
|
pcre2grep to hold parts of the file it is searching. The buffer will be
|
||||||
|
expanded up to PCRE2GREP_MAX_BUFSIZE if necessary, for files containing very
|
||||||
|
long lines. The actual amount of memory used by pcre2grep is three times this
|
||||||
|
number, because it allows for the buffering of "before" and "after" lines.])
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([PCRE2GREP_MAX_BUFSIZE], [$with_pcre2grep_max_bufsize], [
|
||||||
|
The value of PCRE2GREP_MAX_BUFSIZE specifies the maximum size of the buffer
|
||||||
|
used by pcre2grep to hold parts of the file it is searching. The actual
|
||||||
|
amount of memory used by pcre2grep is three times this number, because it
|
||||||
|
allows for the buffering of "before" and "after" lines.])
|
||||||
|
|
||||||
|
if test "$enable_pcre2test_libedit" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_LIBEDIT], [], [
|
||||||
|
Define to any value to allow pcre2test to be linked with libedit.])
|
||||||
|
LIBREADLINE="$LIBEDIT"
|
||||||
|
elif test "$enable_pcre2test_libreadline" = "yes"; then
|
||||||
|
AC_DEFINE([SUPPORT_LIBREADLINE], [], [
|
||||||
|
Define to any value to allow pcre2test to be linked with libreadline.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([NEWLINE_DEFAULT], [$ac_pcre2_newline_value], [
|
||||||
|
The value of NEWLINE_DEFAULT determines the default newline character
|
||||||
|
sequence. PCRE2 client programs can override this by selecting other values
|
||||||
|
at run time. The valid values are 1 (CR), 2 (LF), 3 (CRLF), 4 (ANY),
|
||||||
|
5 (ANYCRLF), and 6 (NUL).])
|
||||||
|
|
||||||
|
if test "$enable_bsr_anycrlf" = "yes"; then
|
||||||
|
AC_DEFINE([BSR_ANYCRLF], [], [
|
||||||
|
By default, the \R escape sequence matches any Unicode line ending
|
||||||
|
character or sequence of characters. If BSR_ANYCRLF is defined (to any
|
||||||
|
value), this is changed so that backslash-R matches only CR, LF, or CRLF.
|
||||||
|
The build-time default can be overridden by the user of PCRE2 at runtime.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_never_backslash_C" = "yes"; then
|
||||||
|
AC_DEFINE([NEVER_BACKSLASH_C], [], [
|
||||||
|
Defining NEVER_BACKSLASH_C locks out the use of \C in all patterns.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([LINK_SIZE], [$with_link_size], [
|
||||||
|
The value of LINK_SIZE determines the number of bytes used to store
|
||||||
|
links as offsets within the compiled regex. The default is 2, which
|
||||||
|
allows for compiled patterns up to 65535 code units long. This covers the
|
||||||
|
vast majority of cases. However, PCRE2 can also be compiled to use 3 or 4
|
||||||
|
bytes instead. This allows for longer patterns in extreme cases.])
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([MAX_VARLOOKBEHIND], [$with_max_varlookbehind], [
|
||||||
|
The value of MAX_VARLOOKBEHIND specifies the default maximum length, in
|
||||||
|
characters, for a variable-length lookbehind assertion.])
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([PARENS_NEST_LIMIT], [$with_parens_nest_limit], [
|
||||||
|
The value of PARENS_NEST_LIMIT specifies the maximum depth of nested
|
||||||
|
parentheses (of any kind) in a pattern. This limits the amount of system
|
||||||
|
stack that is used while compiling a pattern.])
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([MATCH_LIMIT], [$with_match_limit], [
|
||||||
|
The value of MATCH_LIMIT determines the default number of times the
|
||||||
|
pcre2_match() function can record a backtrack position during a single
|
||||||
|
matching attempt. The value is also used to limit a loop counter in
|
||||||
|
pcre2_dfa_match(). There is a runtime interface for setting a different
|
||||||
|
limit. The limit exists in order to catch runaway regular expressions that
|
||||||
|
take forever to determine that they do not match. The default is set very
|
||||||
|
large so that it does not accidentally catch legitimate cases.])
|
||||||
|
|
||||||
|
# --with-match-limit-recursion is an obsolete synonym for --with-match-limit-depth
|
||||||
|
|
||||||
|
if test "$with_match_limit_recursion" != "UNSET"; then
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
WARNING: --with-match-limit-recursion is an obsolete option. Please use
|
||||||
|
--with-match-limit-depth in future. If both are set, --with-match-limit-depth
|
||||||
|
will be used. See also --with-heap-limit.
|
||||||
|
|
||||||
|
EOF
|
||||||
|
if test "$with_match_limit_depth" = "MATCH_LIMIT"; then
|
||||||
|
with_match_limit_depth=$with_match_limit_recursion
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([MATCH_LIMIT_DEPTH], [$with_match_limit_depth], [
|
||||||
|
The above limit applies to all backtracks, whether or not they are nested. In
|
||||||
|
some environments it is desirable to limit the nesting of backtracking (that
|
||||||
|
is, the depth of tree that is searched) more strictly, in order to restrict
|
||||||
|
the maximum amount of heap memory that is used. The value of
|
||||||
|
MATCH_LIMIT_DEPTH provides this facility. To have any useful effect, it must
|
||||||
|
be less than the value of MATCH_LIMIT. The default is to use the same value
|
||||||
|
as MATCH_LIMIT. There is a runtime method for setting a different limit. In
|
||||||
|
the case of pcre2_dfa_match(), this limit controls the depth of the internal
|
||||||
|
nested function calls that are used for pattern recursions, lookarounds, and
|
||||||
|
atomic groups.])
|
||||||
|
|
||||||
|
AC_DEFINE_UNQUOTED([HEAP_LIMIT], [$with_heap_limit], [
|
||||||
|
This limits the amount of memory that may be used while matching
|
||||||
|
a pattern. It applies to both pcre2_match() and pcre2_dfa_match(). It does
|
||||||
|
not apply to JIT matching. The value is in kibibytes (units of 1024 bytes).])
|
||||||
|
|
||||||
|
AC_DEFINE([MAX_NAME_SIZE], [128], [
|
||||||
|
This limit is parameterized just in case anybody ever wants to
|
||||||
|
change it. Care must be taken if it is increased, because it guards
|
||||||
|
against integer overflow caused by enormously large patterns.])
|
||||||
|
|
||||||
|
AC_DEFINE([MAX_NAME_COUNT], [10000], [
|
||||||
|
This limit is parameterized just in case anybody ever wants to
|
||||||
|
change it. Care must be taken if it is increased, because it guards
|
||||||
|
against integer overflow caused by enormously large patterns.])
|
||||||
|
|
||||||
|
AH_VERBATIM([PCRE2_EXP_DEFN], [
|
||||||
|
/* If you are compiling for a system other than a Unix-like system or
|
||||||
|
Win32, and it needs some magic to be inserted before the definition
|
||||||
|
of a function that is exported by the library, define this macro to
|
||||||
|
contain the relevant magic. If you do not define this macro, a suitable
|
||||||
|
__declspec value is used for Windows systems; in other environments
|
||||||
|
a compiler relevant "extern" is used with any "visibility" related
|
||||||
|
attributes from PCRE2_EXPORT included.
|
||||||
|
This macro apears at the start of every exported function that is part
|
||||||
|
of the external API. It does not appear on functions that are "external"
|
||||||
|
in the C sense, but which are internal to the library. */
|
||||||
|
#undef PCRE2_EXP_DEFN])
|
||||||
|
|
||||||
|
if test "$enable_ebcdic" = "yes"; then
|
||||||
|
AC_DEFINE_UNQUOTED([EBCDIC], [], [
|
||||||
|
If you are compiling for a system that uses EBCDIC instead of ASCII
|
||||||
|
character codes, define this macro to any value. When EBCDIC is set, PCRE2
|
||||||
|
assumes that all input strings are in EBCDIC. If you do not define this
|
||||||
|
macro, PCRE2 will assume input strings are ASCII or UTF-8/16/32 Unicode. It
|
||||||
|
is not possible to build a version of PCRE2 that supports both EBCDIC and
|
||||||
|
UTF-8/16/32.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_ebcdic_nl25" = "yes"; then
|
||||||
|
AC_DEFINE_UNQUOTED([EBCDIC_NL25], [], [
|
||||||
|
In an EBCDIC environment, define this macro to any value to arrange for
|
||||||
|
the NL character to be 0x25 instead of the default 0x15. NL plays the role
|
||||||
|
that LF does in an ASCII/Unicode environment.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_valgrind" = "yes"; then
|
||||||
|
AC_DEFINE_UNQUOTED([SUPPORT_VALGRIND], [], [
|
||||||
|
Define to any value for valgrind support to find invalid memory reads.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Platform specific issues
|
||||||
|
NO_UNDEFINED=
|
||||||
|
EXPORT_ALL_SYMBOLS=
|
||||||
|
case $host_os in
|
||||||
|
cygwin* | mingw* )
|
||||||
|
if test X"$enable_shared" = Xyes; then
|
||||||
|
NO_UNDEFINED="-no-undefined"
|
||||||
|
EXPORT_ALL_SYMBOLS="-Wl,--export-all-symbols"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# The extra LDFLAGS for each particular library. The libpcre2*_version values
|
||||||
|
# are m4 variables, assigned above.
|
||||||
|
|
||||||
|
EXTRA_LIBPCRE2_8_LDFLAGS="$EXTRA_LIBPCRE2_8_LDFLAGS \
|
||||||
|
$NO_UNDEFINED -version-info libpcre2_8_version"
|
||||||
|
|
||||||
|
EXTRA_LIBPCRE2_16_LDFLAGS="$EXTRA_LIBPCRE2_16_LDFLAGS \
|
||||||
|
$NO_UNDEFINED -version-info libpcre2_16_version"
|
||||||
|
|
||||||
|
EXTRA_LIBPCRE2_32_LDFLAGS="$EXTRA_LIBPCRE2_32_LDFLAGS \
|
||||||
|
$NO_UNDEFINED -version-info libpcre2_32_version"
|
||||||
|
|
||||||
|
EXTRA_LIBPCRE2_POSIX_LDFLAGS="$EXTRA_LIBPCRE2_POSIX_LDFLAGS \
|
||||||
|
$NO_UNDEFINED -version-info libpcre2_posix_version"
|
||||||
|
|
||||||
|
AC_SUBST(EXTRA_LIBPCRE2_8_LDFLAGS)
|
||||||
|
AC_SUBST(EXTRA_LIBPCRE2_16_LDFLAGS)
|
||||||
|
AC_SUBST(EXTRA_LIBPCRE2_32_LDFLAGS)
|
||||||
|
AC_SUBST(EXTRA_LIBPCRE2_POSIX_LDFLAGS)
|
||||||
|
|
||||||
|
# When we run 'make distcheck', use these arguments. Turning off compiler
|
||||||
|
# optimization makes it run faster.
|
||||||
|
DISTCHECK_CONFIGURE_FLAGS="CFLAGS='' CXXFLAGS='' --enable-pcre2-16 --enable-pcre2-32 --enable-jit"
|
||||||
|
AC_SUBST(DISTCHECK_CONFIGURE_FLAGS)
|
||||||
|
|
||||||
|
# Check that, if --enable-pcre2grep-libz or --enable-pcre2grep-libbz2 is
|
||||||
|
# specified, the relevant library is available.
|
||||||
|
|
||||||
|
if test "$enable_pcre2grep_libz" = "yes"; then
|
||||||
|
if test "$HAVE_ZLIB_H" != "1"; then
|
||||||
|
echo "** Cannot --enable-pcre2grep-libz because zlib.h was not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$HAVE_LIBZ" != "1"; then
|
||||||
|
echo "** Cannot --enable-pcre2grep-libz because libz was not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
LIBZ="-lz"
|
||||||
|
fi
|
||||||
|
AC_SUBST(LIBZ)
|
||||||
|
|
||||||
|
if test "$enable_pcre2grep_libbz2" = "yes"; then
|
||||||
|
if test "$HAVE_BZLIB_H" != "1"; then
|
||||||
|
echo "** Cannot --enable-pcre2grep-libbz2 because bzlib.h was not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$HAVE_LIBBZ2" != "1"; then
|
||||||
|
echo "** Cannot --enable-pcre2grep-libbz2 because libbz2 was not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
LIBBZ2="-lbz2"
|
||||||
|
fi
|
||||||
|
AC_SUBST(LIBBZ2)
|
||||||
|
|
||||||
|
# Similarly for --enable-pcre2test-readline
|
||||||
|
|
||||||
|
if test "$enable_pcre2test_libedit" = "yes"; then
|
||||||
|
if test "$enable_pcre2test_libreadline" = "yes"; then
|
||||||
|
echo "** Cannot use both --enable-pcre2test-libedit and --enable-pcre2test-readline"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test -z "$HAVE_LIBEDIT_HEADER"; then
|
||||||
|
echo "** Cannot --enable-pcre2test-libedit because neither editline/readline.h,"
|
||||||
|
echo "** edit/readline/readline.h nor a compatible header was found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test -z "$LIBEDIT"; then
|
||||||
|
echo "** Cannot --enable-pcre2test-libedit because libedit library was not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$enable_pcre2test_libreadline" = "yes"; then
|
||||||
|
if test "$HAVE_READLINE_H" != "1"; then
|
||||||
|
echo "** Cannot --enable-pcre2test-readline because readline/readline.h was not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$HAVE_HISTORY_H" != "1"; then
|
||||||
|
echo "** Cannot --enable-pcre2test-readline because readline/history.h was not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test -z "$LIBREADLINE"; then
|
||||||
|
echo "** Cannot --enable-pcre2test-readline because readline library was not found."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle valgrind support
|
||||||
|
|
||||||
|
if test "$enable_valgrind" = "yes"; then
|
||||||
|
m4_ifdef([PKG_CHECK_MODULES],
|
||||||
|
[PKG_CHECK_MODULES([VALGRIND],[valgrind])],
|
||||||
|
[AC_MSG_ERROR([pkg-config not supported])])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Handle code coverage reporting support
|
||||||
|
if test "$enable_coverage" = "yes"; then
|
||||||
|
if test "x$GCC" != "xyes"; then
|
||||||
|
AC_MSG_ERROR([Code coverage reports can only be generated when using GCC])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ccache is incompatible with gcov
|
||||||
|
AC_PATH_PROG([SHTOOL],[shtool],[false])
|
||||||
|
case `$SHTOOL path $CC` in
|
||||||
|
*ccache*) cc_ccache=yes;;
|
||||||
|
*) cc_ccache=no;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if test "$cc_ccache" = "yes"; then
|
||||||
|
if test -z "$CCACHE_DISABLE" -o "$CCACHE_DISABLE" != "1"; then
|
||||||
|
AC_MSG_ERROR([must export CCACHE_DISABLE=1 to disable ccache for code coverage])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_VAR([LCOV],[the ltp lcov program])
|
||||||
|
AC_PATH_PROG([LCOV],[lcov],[false])
|
||||||
|
if test "x$LCOV" = "xfalse"; then
|
||||||
|
AC_MSG_ERROR([lcov not found])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_ARG_VAR([GENHTML],[the ltp genhtml program])
|
||||||
|
AC_PATH_PROG([GENHTML],[genhtml],[false])
|
||||||
|
if test "x$GENHTML" = "xfalse"; then
|
||||||
|
AC_MSG_ERROR([genhtml not found])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set flags needed for gcov
|
||||||
|
GCOV_CFLAGS="-O0 -ggdb3 -fprofile-arcs -ftest-coverage"
|
||||||
|
GCOV_CXXFLAGS="-O0 -ggdb3 -fprofile-arcs -ftest-coverage"
|
||||||
|
GCOV_LIBS="-lgcov"
|
||||||
|
AC_SUBST([GCOV_CFLAGS])
|
||||||
|
AC_SUBST([GCOV_CXXFLAGS])
|
||||||
|
AC_SUBST([GCOV_LIBS])
|
||||||
|
fi # enable_coverage
|
||||||
|
|
||||||
|
AM_CONDITIONAL([WITH_GCOV],[test "x$enable_coverage" = "xyes"])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([whether Intel CET is enabled])
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,
|
||||||
|
[[#ifndef __CET__
|
||||||
|
# error CET is not enabled
|
||||||
|
#endif]])],
|
||||||
|
[pcre2_cc_cv_intel_cet_enabled=yes],
|
||||||
|
[pcre2_cc_cv_intel_cet_enabled=no])
|
||||||
|
AC_MSG_RESULT([$pcre2_cc_cv_intel_cet_enabled])
|
||||||
|
if test "$pcre2_cc_cv_intel_cet_enabled" = yes; then
|
||||||
|
CET_CFLAGS="-mshstk"
|
||||||
|
AC_SUBST([CET_CFLAGS])
|
||||||
|
fi
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
# LIB_POSTFIX is used by CMakeLists.txt for Windows debug builds.
|
||||||
|
# Pass empty LIB_POSTFIX to *.pc files and pcre2-config here.
|
||||||
|
AC_SUBST(LIB_POSTFIX)
|
||||||
|
|
||||||
|
# Produce these files, in addition to config.h.
|
||||||
|
|
||||||
|
AC_CONFIG_FILES(
|
||||||
|
Makefile
|
||||||
|
libpcre2-8.pc
|
||||||
|
libpcre2-16.pc
|
||||||
|
libpcre2-32.pc
|
||||||
|
libpcre2-posix.pc
|
||||||
|
pcre2-config
|
||||||
|
src/pcre2.h
|
||||||
|
)
|
||||||
|
|
||||||
|
# Make the generated script files executable.
|
||||||
|
AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre2-config])
|
||||||
|
|
||||||
|
# Make sure that pcre2_chartables.c is removed in case the method for
|
||||||
|
# creating it was changed by reconfiguration.
|
||||||
|
AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre2_chartables.c])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
|
# --disable-stack-for-recursion is obsolete and has no effect.
|
||||||
|
|
||||||
|
if test "$enable_stack_for_recursion" = "no"; then
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
WARNING: --disable-stack-for-recursion is obsolete and has no effect.
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Print out a nice little message after configure is run displaying the
|
||||||
|
# chosen options.
|
||||||
|
|
||||||
|
ebcdic_nl_code=n/a
|
||||||
|
if test "$enable_ebcdic_nl25" = "yes"; then
|
||||||
|
ebcdic_nl_code=0x25
|
||||||
|
elif test "$enable_ebcdic" = "yes"; then
|
||||||
|
ebcdic_nl_code=0x15
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
$PACKAGE-$VERSION configuration summary:
|
||||||
|
|
||||||
|
Install prefix ..................... : ${prefix}
|
||||||
|
C preprocessor ..................... : ${CPP}
|
||||||
|
C compiler ......................... : ${CC}
|
||||||
|
Linker ............................. : ${LD}
|
||||||
|
C preprocessor flags ............... : ${CPPFLAGS}
|
||||||
|
C compiler flags ................... : ${CFLAGS} ${VISIBILITY_CFLAGS}
|
||||||
|
Linker flags ....................... : ${LDFLAGS}
|
||||||
|
Extra libraries .................... : ${LIBS}
|
||||||
|
|
||||||
|
Build 8-bit pcre2 library .......... : ${enable_pcre2_8}
|
||||||
|
Build 16-bit pcre2 library ......... : ${enable_pcre2_16}
|
||||||
|
Build 32-bit pcre2 library ......... : ${enable_pcre2_32}
|
||||||
|
Include debugging code ............. : ${enable_debug}
|
||||||
|
Enable JIT compiling support ....... : ${enable_jit}
|
||||||
|
Use SELinux allocator in JIT ....... : ${enable_jit_sealloc}
|
||||||
|
Enable Unicode support ............. : ${enable_unicode}
|
||||||
|
Newline char/sequence .............. : ${enable_newline}
|
||||||
|
\R matches only ANYCRLF ............ : ${enable_bsr_anycrlf}
|
||||||
|
\C is disabled ..................... : ${enable_never_backslash_C}
|
||||||
|
EBCDIC coding ...................... : ${enable_ebcdic}
|
||||||
|
EBCDIC code for NL ................. : ${ebcdic_nl_code}
|
||||||
|
Rebuild char tables ................ : ${enable_rebuild_chartables}
|
||||||
|
Internal link size ................. : ${with_link_size}
|
||||||
|
Maximum variable lookbehind ........ : ${with_max_varlookbehind}
|
||||||
|
Nested parentheses limit ........... : ${with_parens_nest_limit}
|
||||||
|
Heap limit ......................... : ${with_heap_limit} kibibytes
|
||||||
|
Match limit ........................ : ${with_match_limit}
|
||||||
|
Match depth limit .................. : ${with_match_limit_depth}
|
||||||
|
Build shared libs .................. : ${enable_shared}
|
||||||
|
Build static libs .................. : ${enable_static}
|
||||||
|
Use JIT in pcre2grep ............... : ${enable_pcre2grep_jit}
|
||||||
|
Enable callouts in pcre2grep ....... : ${enable_pcre2grep_callout}
|
||||||
|
Enable fork in pcre2grep callouts .. : ${enable_pcre2grep_callout_fork}
|
||||||
|
Initial buffer size for pcre2grep .. : ${with_pcre2grep_bufsize}
|
||||||
|
Maximum buffer size for pcre2grep .. : ${with_pcre2grep_max_bufsize}
|
||||||
|
Link pcre2grep with libz ........... : ${enable_pcre2grep_libz}
|
||||||
|
Link pcre2grep with libbz2 ......... : ${enable_pcre2grep_libbz2}
|
||||||
|
Link pcre2test with libedit ........ : ${enable_pcre2test_libedit}
|
||||||
|
Link pcre2test with libreadline .... : ${enable_pcre2test_libreadline}
|
||||||
|
Valgrind support ................... : ${enable_valgrind}
|
||||||
|
Code coverage ...................... : ${enable_coverage}
|
||||||
|
Fuzzer support ..................... : ${enable_fuzz_support}
|
||||||
|
Differential fuzzer support ........ : ${enable_diff_fuzz_support}
|
||||||
|
Use %zu and %td .................... : ${enable_percent_zt}
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
dnl end configure.ac
|
||||||
791
3rd/pcre2/depcomp
Normal file
791
3rd/pcre2/depcomp
Normal file
@@ -0,0 +1,791 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2018-03-07.03; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2021 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# 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. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by 'PROGRAMS ARGS'.
|
||||||
|
object Object file output by 'PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputting dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Get the directory component of the given path, and save it in the
|
||||||
|
# global variables '$dir'. Note that this directory component will
|
||||||
|
# be either empty or ending with a '/' character. This is deliberate.
|
||||||
|
set_dir_from ()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||||
|
*) dir=;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the suffix-stripped basename of the given path, and save it the
|
||||||
|
# global variable '$base'.
|
||||||
|
set_base_from ()
|
||||||
|
{
|
||||||
|
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no dependency file was actually created by the compiler invocation,
|
||||||
|
# we still have to create a dummy depfile, to avoid errors with the
|
||||||
|
# Makefile "include basename.Plo" scheme.
|
||||||
|
make_dummy_depfile ()
|
||||||
|
{
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Factor out some common post-processing of the generated depfile.
|
||||||
|
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||||
|
aix_post_process_depfile ()
|
||||||
|
{
|
||||||
|
# If the compiler actually managed to produce a dependency file,
|
||||||
|
# post-process it.
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
# Each line is of the form 'foo.o: dependency.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# $object: dependency.h
|
||||||
|
# and one to simply output
|
||||||
|
# dependency.h:
|
||||||
|
# which is needed to avoid the deleted-header problem.
|
||||||
|
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||||
|
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||||
|
} > "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# A tabulation character.
|
||||||
|
tab=' '
|
||||||
|
# A newline character.
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
# Character ranges might be problematic outside the C locale.
|
||||||
|
# These definitions help.
|
||||||
|
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
lower=abcdefghijklmnopqrstuvwxyz
|
||||||
|
digits=0123456789
|
||||||
|
alpha=${upper}${lower}
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Avoid interferences from the environment.
|
||||||
|
gccflag= dashmflag=
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
cygpath_u="cygpath -u -f -"
|
||||||
|
if test "$depmode" = msvcmsys; then
|
||||||
|
# This is just like msvisualcpp but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvisualcpp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = msvc7msys; then
|
||||||
|
# This is just like msvc7 but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvc7
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = xlc; then
|
||||||
|
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||||
|
gccflag=-qmakedep=gcc,-MF
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||||
|
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||||
|
## (see the conditional assignment to $gccflag above).
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say). Also, it might not be
|
||||||
|
## supported by the other compilers which use the 'gcc' depmode.
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The second -e expression handles DOS-style file names with drive
|
||||||
|
# letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the "deleted header file" problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
## Some versions of gcc put a space before the ':'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||||
|
## to the object. Take care to not repeat it in the output.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like '#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||||
|
| tr "$nl" ' ' >> "$depfile"
|
||||||
|
echo >> "$depfile"
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
xlc)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts '$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$base.u
|
||||||
|
tmpdepfile3=$dir.libs/$base.u
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$dir$base.u
|
||||||
|
tmpdepfile3=$dir$base.u
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
tcc)
|
||||||
|
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||||
|
# FIXME: That version still under development at the moment of writing.
|
||||||
|
# Make that this statement remains true also for stable, released
|
||||||
|
# versions.
|
||||||
|
# It will wrap lines (doesn't matter whether long or short) with a
|
||||||
|
# trailing '\', as in:
|
||||||
|
#
|
||||||
|
# foo.o : \
|
||||||
|
# foo.c \
|
||||||
|
# foo.h \
|
||||||
|
#
|
||||||
|
# It will put a trailing '\' even on the last line, and will use leading
|
||||||
|
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||||
|
# "Emit spaces for -MD").
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||||
|
# We have to change lines of the first kind to '$object: \'.
|
||||||
|
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||||
|
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||||
|
# dummy dependency, to avoid the deleted-header problem.
|
||||||
|
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
## The order of this option in the case statement is important, since the
|
||||||
|
## shell code in configure will try each of these formats in the order
|
||||||
|
## listed in this file. A plain '-MD' option would be understood by many
|
||||||
|
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||||
|
pgcc)
|
||||||
|
# Portland's C compiler understands '-MD'.
|
||||||
|
# Will always output deps to 'file.d' where file is the root name of the
|
||||||
|
# source file under compilation, even if file resides in a subdirectory.
|
||||||
|
# The object file name does not affect the name of the '.d' file.
|
||||||
|
# pgcc 10.2 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using '\' :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
set_dir_from "$object"
|
||||||
|
# Use the source, not the object, to determine the base name, since
|
||||||
|
# that's sadly what pgcc will do too.
|
||||||
|
set_base_from "$source"
|
||||||
|
tmpdepfile=$base.d
|
||||||
|
|
||||||
|
# For projects that build the same source file twice into different object
|
||||||
|
# files, the pgcc approach of using the *source* file root name can cause
|
||||||
|
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||||
|
# the same $tmpdepfile.
|
||||||
|
lockdir=$base.d-lock
|
||||||
|
trap "
|
||||||
|
echo '$0: caught signal, cleaning up...' >&2
|
||||||
|
rmdir '$lockdir'
|
||||||
|
exit 1
|
||||||
|
" 1 2 13 15
|
||||||
|
numtries=100
|
||||||
|
i=$numtries
|
||||||
|
while test $i -gt 0; do
|
||||||
|
# mkdir is a portable test-and-set.
|
||||||
|
if mkdir "$lockdir" 2>/dev/null; then
|
||||||
|
# This process acquired the lock.
|
||||||
|
"$@" -MD
|
||||||
|
stat=$?
|
||||||
|
# Release the lock.
|
||||||
|
rmdir "$lockdir"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
# If the lock is being held by a different process, wait
|
||||||
|
# until the winning process is done or we timeout.
|
||||||
|
while test -d "$lockdir" && test $i -gt 0; do
|
||||||
|
sleep 1
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
trap - 1 2 13 15
|
||||||
|
if test $i -le 0; then
|
||||||
|
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||||
|
echo "$0: check lockdir '$lockdir'" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add 'dependent.h:' lines.
|
||||||
|
sed -ne '2,${
|
||||||
|
s/^ *//
|
||||||
|
s/ \\*$//
|
||||||
|
s/$/:/
|
||||||
|
p
|
||||||
|
}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in 'foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# Libtool generates 2 separate objects for the 2 libraries. These
|
||||||
|
# two compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||||
|
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
# Same post-processing that is required for AIX mode.
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
showIncludes=-Wc,-showIncludes
|
||||||
|
else
|
||||||
|
showIncludes=-showIncludes
|
||||||
|
fi
|
||||||
|
"$@" $showIncludes > "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The first sed program below extracts the file names and escapes
|
||||||
|
# backslashes for cygpath. The second sed program outputs the file
|
||||||
|
# name when reading, but also accumulates all include files in the
|
||||||
|
# hold buffer in order to output them again at the end. This only
|
||||||
|
# works with sed implementations that can handle large buffers.
|
||||||
|
sed < "$tmpdepfile" -n '
|
||||||
|
/^Note: including file: *\(.*\)/ {
|
||||||
|
s//\1/
|
||||||
|
s/\\/\\\\/g
|
||||||
|
p
|
||||||
|
}' | $cygpath_u | sort -u | sed -n '
|
||||||
|
s/ /\\ /g
|
||||||
|
s/\(.*\)/'"$tab"'\1 \\/p
|
||||||
|
s/.\(.*\) \\/\1:/
|
||||||
|
H
|
||||||
|
$ {
|
||||||
|
s/.*/'"$tab"'/
|
||||||
|
G
|
||||||
|
p
|
||||||
|
}' >> "$depfile"
|
||||||
|
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7msys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for ':'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no eat=no
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
if test $eat = yes; then
|
||||||
|
eat=no
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-arch)
|
||||||
|
eat=yes ;;
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
# makedepend may prepend the VPATH from the source file name to the object.
|
||||||
|
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||||
|
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed '1,2d' "$tmpdepfile" \
|
||||||
|
| tr ' ' "$nl" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E \
|
||||||
|
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
| sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E 2>/dev/null |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
||||||
|
echo "$tab" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvcmsys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC0"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
||||||
442
3rd/pcre2/doc/html/NON-AUTOTOOLS-BUILD.txt
Normal file
442
3rd/pcre2/doc/html/NON-AUTOTOOLS-BUILD.txt
Normal file
@@ -0,0 +1,442 @@
|
|||||||
|
Building PCRE2 without using autotools
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
This document contains the following sections:
|
||||||
|
|
||||||
|
General
|
||||||
|
Generic instructions for the PCRE2 C libraries
|
||||||
|
Stack size in Windows environments
|
||||||
|
Linking programs in Windows environments
|
||||||
|
Calling conventions in Windows environments
|
||||||
|
Comments about Win32 builds
|
||||||
|
Building PCRE2 on Windows with CMake
|
||||||
|
Building PCRE2 on Windows with Visual Studio
|
||||||
|
Testing with RunTest.bat
|
||||||
|
Building PCRE2 on native z/OS and z/VM
|
||||||
|
Building PCRE2 under VMS
|
||||||
|
|
||||||
|
|
||||||
|
GENERAL
|
||||||
|
|
||||||
|
The source of the PCRE2 libraries consists entirely of code written in Standard
|
||||||
|
C, and so should compile successfully on any system that has a Standard C
|
||||||
|
compiler and library.
|
||||||
|
|
||||||
|
The PCRE2 distribution includes a "configure" file for use by the
|
||||||
|
configure/make (autotools) build system, as found in many Unix-like
|
||||||
|
environments. The README file contains information about the options for
|
||||||
|
"configure".
|
||||||
|
|
||||||
|
There is also support for CMake, which some users prefer, especially in Windows
|
||||||
|
environments, though it can also be run in Unix-like environments. See the
|
||||||
|
section entitled "Building PCRE2 on Windows with CMake" below.
|
||||||
|
|
||||||
|
Versions of src/config.h and src/pcre2.h are distributed in the PCRE2 tarballs
|
||||||
|
under the names src/config.h.generic and src/pcre2.h.generic. These are
|
||||||
|
provided for those who build PCRE2 without using "configure" or CMake. If you
|
||||||
|
use "configure" or CMake, the .generic versions are not used.
|
||||||
|
|
||||||
|
|
||||||
|
GENERIC INSTRUCTIONS FOR THE PCRE2 C LIBRARIES
|
||||||
|
|
||||||
|
There are three possible PCRE2 libraries, each handling data with a specific
|
||||||
|
code unit width: 8, 16, or 32 bits. You can build any combination of them. The
|
||||||
|
following are generic instructions for building a PCRE2 C library "by hand". If
|
||||||
|
you are going to use CMake, this section does not apply to you; you can skip
|
||||||
|
ahead to the CMake section. Note that the settings concerned with 8-bit,
|
||||||
|
16-bit, and 32-bit code units relate to the type of data string that PCRE2
|
||||||
|
processes. They are NOT referring to the underlying operating system bit width.
|
||||||
|
You do not have to do anything special to compile in a 64-bit environment, for
|
||||||
|
example.
|
||||||
|
|
||||||
|
(1) Copy or rename the file src/config.h.generic as src/config.h, and edit the
|
||||||
|
macro settings that it contains to whatever is appropriate for your
|
||||||
|
environment. In particular, you can alter the definition of the NEWLINE
|
||||||
|
macro to specify what character(s) you want to be interpreted as line
|
||||||
|
terminators by default. You need to #define at least one of
|
||||||
|
SUPPORT_PCRE2_8, SUPPORT_PCRE2_16, or SUPPORT_PCRE2_32, depending on which
|
||||||
|
libraries you are going to build. You must set all that apply.
|
||||||
|
|
||||||
|
When you subsequently compile any of the PCRE2 modules, you must specify
|
||||||
|
-DHAVE_CONFIG_H to your compiler so that src/config.h is included in the
|
||||||
|
sources.
|
||||||
|
|
||||||
|
An alternative approach is not to edit src/config.h, but to use -D on the
|
||||||
|
compiler command line to make any changes that you need to the
|
||||||
|
configuration options. In this case -DHAVE_CONFIG_H must not be set.
|
||||||
|
|
||||||
|
NOTE: There have been occasions when the way in which certain parameters
|
||||||
|
in src/config.h are used has changed between releases. (In the
|
||||||
|
configure/make world, this is handled automatically.) When upgrading to a
|
||||||
|
new release, you are strongly advised to review src/config.h.generic
|
||||||
|
before re-using what you had previously.
|
||||||
|
|
||||||
|
Note also that the src/config.h.generic file is created from a config.h
|
||||||
|
that was generated by Autotools, which automatically includes settings of
|
||||||
|
a number of macros that are not actually used by PCRE2 (for example,
|
||||||
|
HAVE_DLFCN_H).
|
||||||
|
|
||||||
|
(2) Copy or rename the file src/pcre2.h.generic as src/pcre2.h.
|
||||||
|
|
||||||
|
(3) EITHER:
|
||||||
|
Copy or rename file src/pcre2_chartables.c.dist as
|
||||||
|
src/pcre2_chartables.c.
|
||||||
|
|
||||||
|
OR:
|
||||||
|
Compile src/pcre2_dftables.c as a stand-alone program (using
|
||||||
|
-DHAVE_CONFIG_H if you have set up src/config.h), and then run it with
|
||||||
|
the single argument "src/pcre2_chartables.c". This generates a set of
|
||||||
|
standard character tables and writes them to that file. The tables are
|
||||||
|
generated using the default C locale for your system. If you want to use
|
||||||
|
a locale that is specified by LC_xxx environment variables, add the -L
|
||||||
|
option to the pcre2_dftables command. You must use this method if you
|
||||||
|
are building on a system that uses EBCDIC code.
|
||||||
|
|
||||||
|
The tables in src/pcre2_chartables.c are defaults. The caller of PCRE2 can
|
||||||
|
specify alternative tables at run time.
|
||||||
|
|
||||||
|
(4) For a library that supports 8-bit code units in the character strings that
|
||||||
|
it processes, compile the following source files from the src directory,
|
||||||
|
setting -DPCRE2_CODE_UNIT_WIDTH=8 as a compiler option. Also set
|
||||||
|
-DHAVE_CONFIG_H if you have set up src/config.h with your configuration,
|
||||||
|
or else use other -D settings to change the configuration as required.
|
||||||
|
|
||||||
|
pcre2_auto_possess.c
|
||||||
|
pcre2_chkdint.c
|
||||||
|
pcre2_chartables.c
|
||||||
|
pcre2_compile.c
|
||||||
|
pcre2_compile_class.c
|
||||||
|
pcre2_config.c
|
||||||
|
pcre2_context.c
|
||||||
|
pcre2_convert.c
|
||||||
|
pcre2_dfa_match.c
|
||||||
|
pcre2_error.c
|
||||||
|
pcre2_extuni.c
|
||||||
|
pcre2_find_bracket.c
|
||||||
|
pcre2_jit_compile.c
|
||||||
|
pcre2_maketables.c
|
||||||
|
pcre2_match.c
|
||||||
|
pcre2_match_data.c
|
||||||
|
pcre2_newline.c
|
||||||
|
pcre2_ord2utf.c
|
||||||
|
pcre2_pattern_info.c
|
||||||
|
pcre2_script_run.c
|
||||||
|
pcre2_serialize.c
|
||||||
|
pcre2_string_utils.c
|
||||||
|
pcre2_study.c
|
||||||
|
pcre2_substitute.c
|
||||||
|
pcre2_substring.c
|
||||||
|
pcre2_tables.c
|
||||||
|
pcre2_ucd.c
|
||||||
|
pcre2_valid_utf.c
|
||||||
|
pcre2_xclass.c
|
||||||
|
|
||||||
|
Make sure that you include -I. in the compiler command (or equivalent for
|
||||||
|
an unusual compiler) so that all included PCRE2 header files are first
|
||||||
|
sought in the src directory under the current directory. Otherwise you run
|
||||||
|
the risk of picking up a previously-installed file from somewhere else.
|
||||||
|
|
||||||
|
Note that you must compile pcre2_jit_compile.c, even if you have not
|
||||||
|
defined SUPPORT_JIT in src/config.h, because when JIT support is not
|
||||||
|
configured, dummy functions are compiled. When JIT support IS configured,
|
||||||
|
pcre2_jit_compile.c #includes other files from the sljit dependency,
|
||||||
|
all of whose names begin with "sljit". It also #includes
|
||||||
|
src/pcre2_jit_match.c and src/pcre2_jit_misc.c, so you should not compile
|
||||||
|
those yourself.
|
||||||
|
|
||||||
|
Note also that the pcre2_fuzzsupport.c file contains special code that is
|
||||||
|
useful to those who want to run fuzzing tests on the PCRE2 library. Unless
|
||||||
|
you are doing that, you can ignore it.
|
||||||
|
|
||||||
|
(5) Now link all the compiled code into an object library in whichever form
|
||||||
|
your system keeps such libraries. This is the PCRE2 C 8-bit library,
|
||||||
|
typically called something like libpcre2-8. If your system has static and
|
||||||
|
shared libraries, you may have to do this once for each type.
|
||||||
|
|
||||||
|
(6) If you want to build a library that supports 16-bit or 32-bit code units,
|
||||||
|
set 16 or 32 as the value of -DPCRE2_CODE_UNIT_WIDTH when obeying step 4
|
||||||
|
above. If you want to build more than one PCRE2 library, repeat steps 4
|
||||||
|
and 5 as necessary.
|
||||||
|
|
||||||
|
(7) If you want to build the POSIX wrapper functions (which apply only to the
|
||||||
|
8-bit library), ensure that you have the src/pcre2posix.h file and then
|
||||||
|
compile src/pcre2posix.c. Link the result (on its own) as the pcre2posix
|
||||||
|
library. If targeting a DLL in Windows, make sure to include
|
||||||
|
-DPCRE2POSIX_SHARED with your compiler flags.
|
||||||
|
|
||||||
|
(8) The pcre2test program can be linked with any combination of the 8-bit,
|
||||||
|
16-bit and 32-bit libraries (depending on what you specfied in
|
||||||
|
src/config.h) . Compile src/pcre2test.c; don't forget -DHAVE_CONFIG_H if
|
||||||
|
necessary, but do NOT define PCRE2_CODE_UNIT_WIDTH. Then link with the
|
||||||
|
appropriate library/ies. If you compiled an 8-bit library, pcre2test also
|
||||||
|
needs the pcre2posix wrapper library.
|
||||||
|
|
||||||
|
(9) Run pcre2test on the testinput files in the testdata directory, and check
|
||||||
|
that the output matches the corresponding testoutput files. There are
|
||||||
|
comments about what each test does in the section entitled "Testing PCRE2"
|
||||||
|
in the README file. If you compiled more than one of the 8-bit, 16-bit and
|
||||||
|
32-bit libraries, you need to run pcre2test with the -16 option to do
|
||||||
|
16-bit tests and with the -32 option to do 32-bit tests.
|
||||||
|
|
||||||
|
Some tests are relevant only when certain build-time options are selected.
|
||||||
|
For example, test 4 is for Unicode support, and will not run if you have
|
||||||
|
built PCRE2 without it. See the comments at the start of each testinput
|
||||||
|
file. If you have a suitable Unix-like shell, the RunTest script will run
|
||||||
|
the appropriate tests for you. The command "RunTest list" will output a
|
||||||
|
list of all the tests.
|
||||||
|
|
||||||
|
Note that the supplied files are in Unix format, with just LF characters
|
||||||
|
as line terminators. You may need to edit them to change this if your
|
||||||
|
system uses a different convention.
|
||||||
|
|
||||||
|
(10) If you have built PCRE2 with SUPPORT_JIT, the JIT features can be tested
|
||||||
|
by running pcre2test with the -jit option. This is done automatically by
|
||||||
|
the RunTest script. You might also like to build and run the freestanding
|
||||||
|
JIT test program, src/pcre2_jit_test.c.
|
||||||
|
|
||||||
|
(11) The pcre2test program tests the POSIX wrapper library, but there is also a
|
||||||
|
freestanding test program in src/pcre2posix_test.c. It must be linked with
|
||||||
|
both the pcre2posix library and the 8-bit PCRE2 library.
|
||||||
|
|
||||||
|
(12) If you want to use the pcre2grep command, compile and link
|
||||||
|
src/pcre2grep.c; it uses only the 8-bit PCRE2 library (it does not need
|
||||||
|
the pcre2posix library). If you have built the PCRE2 library with JIT
|
||||||
|
support by defining SUPPORT_JIT in src/config.h, you can also define
|
||||||
|
SUPPORT_PCRE2GREP_JIT, which causes pcre2grep to make use of JIT (unless
|
||||||
|
it is run with --no-jit). If you define SUPPORT_PCRE2GREP_JIT without
|
||||||
|
defining SUPPORT_JIT, pcre2grep does not try to make use of JIT.
|
||||||
|
|
||||||
|
|
||||||
|
STACK SIZE IN WINDOWS ENVIRONMENTS
|
||||||
|
|
||||||
|
Prior to release 10.30 the default system stack size of 1MiB in some Windows
|
||||||
|
environments caused issues with some tests. This should no longer be the case
|
||||||
|
for 10.30 and later releases.
|
||||||
|
|
||||||
|
|
||||||
|
LINKING PROGRAMS IN WINDOWS ENVIRONMENTS
|
||||||
|
|
||||||
|
If you want to statically link a program against a PCRE2 library in the form of
|
||||||
|
a non-dll .a file, you must define PCRE2_STATIC before including src/pcre2.h.
|
||||||
|
|
||||||
|
|
||||||
|
CALLING CONVENTIONS IN WINDOWS ENVIRONMENTS
|
||||||
|
|
||||||
|
It is possible to compile programs to use different calling conventions using
|
||||||
|
MSVC. Search the web for "calling conventions" for more information. To make it
|
||||||
|
easier to change the calling convention for the exported functions in a
|
||||||
|
PCRE2 library, the macro PCRE2_CALL_CONVENTION is present in all the external
|
||||||
|
definitions. It can be set externally when compiling (e.g. in CFLAGS). If it is
|
||||||
|
not set, it defaults to empty; the default calling convention is then used
|
||||||
|
(which is what is wanted most of the time).
|
||||||
|
|
||||||
|
|
||||||
|
COMMENTS ABOUT WIN32 BUILDS (see also "BUILDING PCRE2 ON WINDOWS WITH CMAKE")
|
||||||
|
|
||||||
|
There are two ways of building PCRE2 using the "configure, make, make install"
|
||||||
|
paradigm on Windows systems: using MinGW or using Cygwin. These are not at all
|
||||||
|
the same thing; they are completely different from each other. There is also
|
||||||
|
support for building using CMake, which some users find a more straightforward
|
||||||
|
way of building PCRE2 under Windows.
|
||||||
|
|
||||||
|
The MinGW home page (http://www.mingw.org/) says this:
|
||||||
|
|
||||||
|
MinGW: A collection of freely available and freely distributable Windows
|
||||||
|
specific header files and import libraries combined with GNU toolsets that
|
||||||
|
allow one to produce native Windows programs that do not rely on any
|
||||||
|
3rd-party C runtime DLLs.
|
||||||
|
|
||||||
|
The Cygwin home page (http://www.cygwin.com/) says this:
|
||||||
|
|
||||||
|
Cygwin is a Linux-like environment for Windows. It consists of two parts:
|
||||||
|
|
||||||
|
. A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing
|
||||||
|
substantial Linux API functionality
|
||||||
|
|
||||||
|
. A collection of tools which provide Linux look and feel.
|
||||||
|
|
||||||
|
On both MinGW and Cygwin, PCRE2 should build correctly using:
|
||||||
|
|
||||||
|
./configure && make && make install
|
||||||
|
|
||||||
|
This should create two libraries called libpcre2-8 and libpcre2-posix. These
|
||||||
|
are independent libraries: when you link with libpcre2-posix you must also link
|
||||||
|
with libpcre2-8, which contains the basic functions.
|
||||||
|
|
||||||
|
Using Cygwin's compiler generates libraries and executables that depend on
|
||||||
|
cygwin1.dll. If a library that is generated this way is distributed,
|
||||||
|
cygwin1.dll has to be distributed as well. Since cygwin1.dll is under the GPL
|
||||||
|
licence, this forces not only PCRE2 to be under the GPL, but also the entire
|
||||||
|
application. A distributor who wants to keep their own code proprietary must
|
||||||
|
purchase an appropriate Cygwin licence.
|
||||||
|
|
||||||
|
MinGW has no such restrictions. The MinGW compiler generates a library or
|
||||||
|
executable that can run standalone on Windows without any third party dll or
|
||||||
|
licensing issues.
|
||||||
|
|
||||||
|
But there is more complication:
|
||||||
|
|
||||||
|
If a Cygwin user uses the -mno-cygwin Cygwin gcc flag, what that really does is
|
||||||
|
to tell Cygwin's gcc to use the MinGW gcc. Cygwin's gcc is only acting as a
|
||||||
|
front end to MinGW's gcc (if you install Cygwin's gcc, you get both Cygwin's
|
||||||
|
gcc and MinGW's gcc). So, a user can:
|
||||||
|
|
||||||
|
. Build native binaries by using MinGW or by getting Cygwin and using
|
||||||
|
-mno-cygwin.
|
||||||
|
|
||||||
|
. Build binaries that depend on cygwin1.dll by using Cygwin with the normal
|
||||||
|
compiler flags.
|
||||||
|
|
||||||
|
The test files that are supplied with PCRE2 are in UNIX format, with LF
|
||||||
|
characters as line terminators. Unless your PCRE2 library uses a default
|
||||||
|
newline option that includes LF as a valid newline, it may be necessary to
|
||||||
|
change the line terminators in the test files to get some of the tests to work.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 ON WINDOWS WITH CMAKE
|
||||||
|
|
||||||
|
CMake is an alternative configuration facility that can be used instead of
|
||||||
|
"configure". CMake creates project files (make files, solution files, etc.)
|
||||||
|
tailored to numerous development environments, including Visual Studio,
|
||||||
|
Borland, Msys, MinGW, NMake, and Unix. If possible, use short paths with no
|
||||||
|
spaces in the names for your CMake installation and your PCRE2 source and build
|
||||||
|
directories.
|
||||||
|
|
||||||
|
If you are using CMake and encounter errors, deleting the CMake cache and
|
||||||
|
restarting from a fresh build may fix the error. In the CMake GUI, the cache can
|
||||||
|
be deleted by selecting "File > Delete Cache"; or the folder "CMakeCache" can
|
||||||
|
be deleted.
|
||||||
|
|
||||||
|
1. Install the latest CMake version available from http://www.cmake.org/, and
|
||||||
|
ensure that cmake\bin is on your path.
|
||||||
|
|
||||||
|
2. Unzip (retaining folder structure) the PCRE2 source tree into a source
|
||||||
|
directory such as C:\pcre2. You should ensure your local date and time
|
||||||
|
is not earlier than the file dates in your source dir if the release is
|
||||||
|
very new.
|
||||||
|
|
||||||
|
3. Create a new, empty build directory, preferably a subdirectory of the
|
||||||
|
source dir. For example, C:\pcre2\pcre2-xx\build.
|
||||||
|
|
||||||
|
4. Run CMake.
|
||||||
|
|
||||||
|
- Using the CLI, simply run `cmake ..` inside the `build/` directory. You can
|
||||||
|
use the `ccmake` ncurses GUI to select and configure PCRE2 features.
|
||||||
|
|
||||||
|
- Using the CMake GUI:
|
||||||
|
|
||||||
|
a) Run cmake-gui from the Shell environment of your build tool, for
|
||||||
|
example, Msys for Msys/MinGW or Visual Studio Command Prompt for
|
||||||
|
VC/VC++.
|
||||||
|
|
||||||
|
b) Enter C:\pcre2\pcre2-xx and C:\pcre2\pcre2-xx\build for the source and
|
||||||
|
build directories, respectively.
|
||||||
|
|
||||||
|
c) Press the "Configure" button.
|
||||||
|
|
||||||
|
d) Select the particular IDE / build tool that you are using (Visual
|
||||||
|
Studio, MSYS makefiles, MinGW makefiles, etc.)
|
||||||
|
|
||||||
|
e) The GUI will then list several configuration options. This is where
|
||||||
|
you can disable Unicode support or select other PCRE2 optional features.
|
||||||
|
|
||||||
|
f) Press "Configure" again. The adjacent "Generate" button should now be
|
||||||
|
active.
|
||||||
|
|
||||||
|
g) Press "Generate".
|
||||||
|
|
||||||
|
5. The build directory should now contain a usable build system, be it a
|
||||||
|
solution file for Visual Studio, makefiles for MinGW, etc. Exit from
|
||||||
|
cmake-gui and use the generated build system with your compiler or IDE.
|
||||||
|
E.g., for MinGW you can run "make", or for Visual Studio, open the PCRE2
|
||||||
|
solution, select the desired configuration (Debug, or Release, etc.) and
|
||||||
|
build the ALL_BUILD project.
|
||||||
|
|
||||||
|
Regardless of build system used, `cmake --build .` will build it.
|
||||||
|
|
||||||
|
6. If during configuration with cmake-gui you've elected to build the test
|
||||||
|
programs, you can execute them by building the test project. E.g., for
|
||||||
|
MinGW: "make test"; for Visual Studio build the RUN_TESTS project. The
|
||||||
|
most recent build configuration is targeted by the tests. A summary of
|
||||||
|
test results is presented. Complete test output is subsequently
|
||||||
|
available for review in Testing\Temporary under your build dir.
|
||||||
|
|
||||||
|
Regardless of build system used, `ctest` will run the tests.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 ON WINDOWS WITH VISUAL STUDIO
|
||||||
|
|
||||||
|
The code currently cannot be compiled without an inttypes.h header, which is
|
||||||
|
available only with Visual Studio 2013 or newer. However, this portable and
|
||||||
|
permissively-licensed implementation of the stdint.h header could be used as an
|
||||||
|
alternative:
|
||||||
|
|
||||||
|
http://www.azillionmonkeys.com/qed/pstdint.h
|
||||||
|
|
||||||
|
Just rename it and drop it into the top level of the build tree.
|
||||||
|
|
||||||
|
|
||||||
|
TESTING WITH RUNTEST.BAT
|
||||||
|
|
||||||
|
If configured with CMake, building the test project ("make test" or building
|
||||||
|
ALL_TESTS in Visual Studio) creates (and runs) pcre2_test.bat (and depending
|
||||||
|
on your configuration options, possibly other test programs) in the build
|
||||||
|
directory. The pcre2_test.bat script runs RunTest.bat with correct source and
|
||||||
|
exe paths.
|
||||||
|
|
||||||
|
For manual testing with RunTest.bat, provided the build dir is a subdirectory
|
||||||
|
of the source directory: Open command shell window. Chdir to the location
|
||||||
|
of your pcre2test.exe and pcre2grep.exe programs. Call RunTest.bat with
|
||||||
|
"..\RunTest.Bat" or "..\..\RunTest.bat" as appropriate.
|
||||||
|
|
||||||
|
To run only a particular test with RunTest.Bat provide a test number argument.
|
||||||
|
|
||||||
|
Otherwise:
|
||||||
|
|
||||||
|
1. Copy RunTest.bat into the directory where pcre2test.exe and pcre2grep.exe
|
||||||
|
have been created.
|
||||||
|
|
||||||
|
2. Edit RunTest.bat to identify the full or relative location of
|
||||||
|
the pcre2 source (wherein which the testdata folder resides), e.g.:
|
||||||
|
|
||||||
|
set srcdir=C:\pcre2\pcre2-10.00
|
||||||
|
|
||||||
|
3. In a Windows command environment, chdir to the location of your bat and
|
||||||
|
exe programs.
|
||||||
|
|
||||||
|
4. Run RunTest.bat. Test outputs will automatically be compared to expected
|
||||||
|
results, and discrepancies will be identified in the console output.
|
||||||
|
|
||||||
|
To independently test the just-in-time compiler, run pcre2_jit_test.exe.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 ON NATIVE Z/OS AND Z/VM
|
||||||
|
|
||||||
|
z/OS and z/VM are operating systems for mainframe computers, produced by IBM.
|
||||||
|
The character code used is EBCDIC, not ASCII or Unicode. In z/OS, UNIX APIs and
|
||||||
|
applications can be supported through UNIX System Services, and in such an
|
||||||
|
environment it should be possible to build PCRE2 in the same way as in other
|
||||||
|
systems, with the EBCDIC related configuration settings, but it is not known if
|
||||||
|
anybody has tried this.
|
||||||
|
|
||||||
|
In native z/OS (without UNIX System Services) and in z/VM, special ports are
|
||||||
|
required. For details, please see file 939 on this web site:
|
||||||
|
|
||||||
|
http://www.cbttape.org
|
||||||
|
|
||||||
|
Everything in that location, source and executable, is in EBCDIC and native
|
||||||
|
z/OS file formats. The port provides an API for LE languages such as COBOL and
|
||||||
|
for the z/OS and z/VM versions of the Rexx languages.
|
||||||
|
|
||||||
|
|
||||||
|
BUILDING PCRE2 UNDER VMS
|
||||||
|
|
||||||
|
Alexey Chuphin has contributed some auxiliary files for building PCRE2 under
|
||||||
|
OpenVMS. They are in the "vms" directory in the distribution tarball. Please
|
||||||
|
read the file called vms/openvms_readme.txt. The pcre2test and pcre2grep
|
||||||
|
programs contain some VMS-specific code.
|
||||||
|
|
||||||
|
==============================
|
||||||
|
Last updated: 26 December 2024
|
||||||
|
==============================
|
||||||
|
|
||||||
970
3rd/pcre2/doc/html/README.txt
Normal file
970
3rd/pcre2/doc/html/README.txt
Normal file
@@ -0,0 +1,970 @@
|
|||||||
|
README file for PCRE2 (Perl-compatible regular expression library)
|
||||||
|
------------------------------------------------------------------
|
||||||
|
|
||||||
|
PCRE2 is a re-working of the original PCRE1 library to provide an entirely new
|
||||||
|
API. Since its initial release in 2015, there has been further development of
|
||||||
|
the code and it now differs from PCRE1 in more than just the API. There are new
|
||||||
|
features, and the internals have been improved. The original PCRE1 library is
|
||||||
|
now obsolete and no longer maintained. The latest release of PCRE2 is available
|
||||||
|
in .tar.gz, tar.bz2, or .zip form from this GitHub repository:
|
||||||
|
|
||||||
|
https://github.com/PCRE2Project/pcre2/releases
|
||||||
|
|
||||||
|
There is a mailing list for discussion about the development of PCRE2 at
|
||||||
|
pcre2-dev@googlegroups.com. You can subscribe by sending an email to
|
||||||
|
pcre2-dev+subscribe@googlegroups.com.
|
||||||
|
|
||||||
|
You can access the archives and also subscribe or manage your subscription
|
||||||
|
here:
|
||||||
|
|
||||||
|
https://groups.google.com/g/pcre2-dev
|
||||||
|
|
||||||
|
Please read the NEWS file if you are upgrading from a previous release. The
|
||||||
|
contents of this README file are:
|
||||||
|
|
||||||
|
The PCRE2 APIs
|
||||||
|
Documentation for PCRE2
|
||||||
|
Building PCRE2 on non-Unix-like systems
|
||||||
|
Building PCRE2 without using autotools
|
||||||
|
Building PCRE2 using autotools
|
||||||
|
Retrieving configuration information
|
||||||
|
Shared libraries
|
||||||
|
Cross-compiling using autotools
|
||||||
|
Making new tarballs
|
||||||
|
Testing PCRE2
|
||||||
|
Character tables
|
||||||
|
File manifest
|
||||||
|
|
||||||
|
|
||||||
|
The PCRE2 APIs
|
||||||
|
--------------
|
||||||
|
|
||||||
|
PCRE2 is written in C, and it has its own API. There are three sets of
|
||||||
|
functions, one for the 8-bit library, which processes strings of bytes, one for
|
||||||
|
the 16-bit library, which processes strings of 16-bit values, and one for the
|
||||||
|
32-bit library, which processes strings of 32-bit values. Unlike PCRE1, there
|
||||||
|
are no C++ wrappers.
|
||||||
|
|
||||||
|
The distribution does contain a set of C wrapper functions for the 8-bit
|
||||||
|
library that are based on the POSIX regular expression API (see the pcre2posix
|
||||||
|
man page). These are built into a library called libpcre2-posix. Note that this
|
||||||
|
just provides a POSIX calling interface to PCRE2; the regular expressions
|
||||||
|
themselves still follow Perl syntax and semantics. The POSIX API is restricted,
|
||||||
|
and does not give full access to all of PCRE2's facilities.
|
||||||
|
|
||||||
|
The header file for the POSIX-style functions is called pcre2posix.h. The
|
||||||
|
official POSIX name is regex.h, but I did not want to risk possible problems
|
||||||
|
with existing files of that name by distributing it that way. To use PCRE2 with
|
||||||
|
an existing program that uses the POSIX API, pcre2posix.h will have to be
|
||||||
|
renamed or pointed at by a link (or the program modified, of course). See the
|
||||||
|
pcre2posix documentation for more details.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation for PCRE2
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
If you install PCRE2 in the normal way on a Unix-like system, you will end up
|
||||||
|
with a set of man pages whose names all start with "pcre2". The one that is
|
||||||
|
just called "pcre2" lists all the others. In addition to these man pages, the
|
||||||
|
PCRE2 documentation is supplied in two other forms:
|
||||||
|
|
||||||
|
1. There are files called doc/pcre2.txt, doc/pcre2grep.txt, and
|
||||||
|
doc/pcre2test.txt in the source distribution. The first of these is a
|
||||||
|
concatenation of the text forms of all the section 3 man pages except the
|
||||||
|
listing of pcre2demo.c and those that summarize individual functions. The
|
||||||
|
other two are the text forms of the section 1 man pages for the pcre2grep
|
||||||
|
and pcre2test commands. These text forms are provided for ease of scanning
|
||||||
|
with text editors or similar tools. They are installed in
|
||||||
|
<prefix>/share/doc/pcre2, where <prefix> is the installation prefix
|
||||||
|
(defaulting to /usr/local).
|
||||||
|
|
||||||
|
2. A set of files containing all the documentation in HTML form, hyperlinked
|
||||||
|
in various ways, and rooted in a file called index.html, is distributed in
|
||||||
|
doc/html and installed in <prefix>/share/doc/pcre2/html.
|
||||||
|
|
||||||
|
|
||||||
|
Building PCRE2 on non-Unix-like systems
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
For a non-Unix-like system, please read the file NON-AUTOTOOLS-BUILD, though if
|
||||||
|
your system supports the use of "configure" and "make" you may be able to build
|
||||||
|
PCRE2 using autotools in the same way as for many Unix-like systems.
|
||||||
|
|
||||||
|
PCRE2 can also be configured using CMake, which can be run in various ways
|
||||||
|
(command line, GUI, etc). This creates Makefiles, solution files, etc. The file
|
||||||
|
NON-AUTOTOOLS-BUILD has information about CMake.
|
||||||
|
|
||||||
|
PCRE2 has been compiled on many different operating systems. It should be
|
||||||
|
straightforward to build PCRE2 on any system that has a Standard C compiler and
|
||||||
|
library, because it uses only Standard C functions.
|
||||||
|
|
||||||
|
|
||||||
|
Building PCRE2 without using autotools
|
||||||
|
--------------------------------------
|
||||||
|
|
||||||
|
The use of autotools (in particular, libtool) is problematic in some
|
||||||
|
environments, even some that are Unix or Unix-like. See the NON-AUTOTOOLS-BUILD
|
||||||
|
file for ways of building PCRE2 without using autotools.
|
||||||
|
|
||||||
|
|
||||||
|
Building PCRE2 using autotools
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
The following instructions assume the use of the widely used "configure; make;
|
||||||
|
make install" (autotools) process.
|
||||||
|
|
||||||
|
If you have downloaded and unpacked a PCRE2 release tarball, run the
|
||||||
|
"configure" command from the PCRE2 directory, with your current directory set
|
||||||
|
to the directory where you want the files to be created. This command is a
|
||||||
|
standard GNU "autoconf" configuration script, for which generic instructions
|
||||||
|
are supplied in the file INSTALL.
|
||||||
|
|
||||||
|
The files in the GitHub repository do not contain "configure". If you have
|
||||||
|
downloaded the PCRE2 source files from GitHub, before you can run "configure"
|
||||||
|
you must run the shell script called autogen.sh. This runs a number of
|
||||||
|
autotools to create a "configure" script (you must of course have the autotools
|
||||||
|
commands installed in order to do this).
|
||||||
|
|
||||||
|
Most commonly, people build PCRE2 within its own distribution directory, and in
|
||||||
|
this case, on many systems, just running "./configure" is sufficient. However,
|
||||||
|
the usual methods of changing standard defaults are available. For example:
|
||||||
|
|
||||||
|
CFLAGS='-O2 -Wall' ./configure --prefix=/opt/local
|
||||||
|
|
||||||
|
This command specifies that the C compiler should be run with the flags '-O2
|
||||||
|
-Wall' instead of the default, and that "make install" should install PCRE2
|
||||||
|
under /opt/local instead of the default /usr/local.
|
||||||
|
|
||||||
|
If you want to build in a different directory, just run "configure" with that
|
||||||
|
directory as current. For example, suppose you have unpacked the PCRE2 source
|
||||||
|
into /source/pcre2/pcre2-xxx, but you want to build it in
|
||||||
|
/build/pcre2/pcre2-xxx:
|
||||||
|
|
||||||
|
cd /build/pcre2/pcre2-xxx
|
||||||
|
/source/pcre2/pcre2-xxx/configure
|
||||||
|
|
||||||
|
PCRE2 is written in C and is normally compiled as a C library. However, it is
|
||||||
|
possible to build it as a C++ library, though the provided building apparatus
|
||||||
|
does not have any features to support this.
|
||||||
|
|
||||||
|
There are some optional features that can be included or omitted from the PCRE2
|
||||||
|
library. They are also documented in the pcre2build man page.
|
||||||
|
|
||||||
|
. By default, both shared and static libraries are built. You can change this
|
||||||
|
by adding one of these options to the "configure" command:
|
||||||
|
|
||||||
|
--disable-shared
|
||||||
|
--disable-static
|
||||||
|
|
||||||
|
Setting --disable-shared ensures that PCRE2 libraries are built as static
|
||||||
|
libraries. The binaries that are then created as part of the build process
|
||||||
|
(for example, pcre2test and pcre2grep) are linked statically with one or more
|
||||||
|
PCRE2 libraries, but may also be dynamically linked with other libraries such
|
||||||
|
as libc. If you want these binaries to be fully statically linked, you can
|
||||||
|
set LDFLAGS like this:
|
||||||
|
|
||||||
|
LDFLAGS=--static ./configure --disable-shared
|
||||||
|
|
||||||
|
Note the two hyphens in --static. Of course, this works only if static
|
||||||
|
versions of all the relevant libraries are available for linking. See also
|
||||||
|
"Shared libraries" below.
|
||||||
|
|
||||||
|
. By default, only the 8-bit library is built. If you add --enable-pcre2-16 to
|
||||||
|
the "configure" command, the 16-bit library is also built. If you add
|
||||||
|
--enable-pcre2-32 to the "configure" command, the 32-bit library is also
|
||||||
|
built. If you want only the 16-bit or 32-bit library, use --disable-pcre2-8
|
||||||
|
to disable building the 8-bit library.
|
||||||
|
|
||||||
|
. If you want to include support for just-in-time (JIT) compiling, which can
|
||||||
|
give large performance improvements on certain platforms, add --enable-jit to
|
||||||
|
the "configure" command. This support is available only for certain hardware
|
||||||
|
architectures. If you try to enable it on an unsupported architecture, there
|
||||||
|
will be a compile time error. If in doubt, use --enable-jit=auto, which
|
||||||
|
enables JIT only if the current hardware is supported.
|
||||||
|
|
||||||
|
. If you are enabling JIT under SELinux environment you may also want to add
|
||||||
|
--enable-jit-sealloc, which enables the use of an executable memory allocator
|
||||||
|
that is compatible with SELinux. Warning: this allocator is experimental!
|
||||||
|
It does not support fork() operation and may crash when no disk space is
|
||||||
|
available. This option has no effect if JIT is disabled.
|
||||||
|
|
||||||
|
. If you do not want to make use of the default support for UTF-8 Unicode
|
||||||
|
character strings in the 8-bit library, UTF-16 Unicode character strings in
|
||||||
|
the 16-bit library, or UTF-32 Unicode character strings in the 32-bit
|
||||||
|
library, you can add --disable-unicode to the "configure" command. This
|
||||||
|
reduces the size of the libraries. It is not possible to configure one
|
||||||
|
library with Unicode support, and another without, in the same configuration.
|
||||||
|
It is also not possible to use --enable-ebcdic (see below) with Unicode
|
||||||
|
support, so if this option is set, you must also use --disable-unicode.
|
||||||
|
|
||||||
|
When Unicode support is available, the use of a UTF encoding still has to be
|
||||||
|
enabled by setting the PCRE2_UTF option at run time or starting a pattern
|
||||||
|
with (*UTF). When PCRE2 is compiled with Unicode support, its input can only
|
||||||
|
either be ASCII or UTF-8/16/32, even when running on EBCDIC platforms.
|
||||||
|
|
||||||
|
As well as supporting UTF strings, Unicode support includes support for the
|
||||||
|
\P, \p, and \X sequences that recognize Unicode character properties.
|
||||||
|
However, only a subset of Unicode properties are supported; see the
|
||||||
|
pcre2pattern man page for details. Escape sequences such as \d and \w in
|
||||||
|
patterns do not by default make use of Unicode properties, but can be made to
|
||||||
|
do so by setting the PCRE2_UCP option or starting a pattern with (*UCP).
|
||||||
|
|
||||||
|
. You can build PCRE2 to recognize either CR or LF or the sequence CRLF, or any
|
||||||
|
of the preceding, or any of the Unicode newline sequences, or the NUL (zero)
|
||||||
|
character as indicating the end of a line. Whatever you specify at build time
|
||||||
|
is the default; the caller of PCRE2 can change the selection at run time. The
|
||||||
|
default newline indicator is a single LF character (the Unix standard). You
|
||||||
|
can specify the default newline indicator by adding --enable-newline-is-cr,
|
||||||
|
--enable-newline-is-lf, --enable-newline-is-crlf,
|
||||||
|
--enable-newline-is-anycrlf, --enable-newline-is-any, or
|
||||||
|
--enable-newline-is-nul to the "configure" command, respectively.
|
||||||
|
|
||||||
|
. By default, the sequence \R in a pattern matches any Unicode line ending
|
||||||
|
sequence. This is independent of the option specifying what PCRE2 considers
|
||||||
|
to be the end of a line (see above). However, the caller of PCRE2 can
|
||||||
|
restrict \R to match only CR, LF, or CRLF. You can make this the default by
|
||||||
|
adding --enable-bsr-anycrlf to the "configure" command (bsr = "backslash R").
|
||||||
|
|
||||||
|
. In a pattern, the escape sequence \C matches a single code unit, even in a
|
||||||
|
UTF mode. This can be dangerous because it breaks up multi-code-unit
|
||||||
|
characters. You can build PCRE2 with the use of \C permanently locked out by
|
||||||
|
adding --enable-never-backslash-C (note the upper case C) to the "configure"
|
||||||
|
command. When \C is allowed by the library, individual applications can lock
|
||||||
|
it out by calling pcre2_compile() with the PCRE2_NEVER_BACKSLASH_C option.
|
||||||
|
|
||||||
|
. PCRE2 has a counter that limits the depth of nesting of parentheses in a
|
||||||
|
pattern. This limits the amount of system stack that a pattern uses when it
|
||||||
|
is compiled. The default is 250, but you can change it by setting, for
|
||||||
|
example,
|
||||||
|
|
||||||
|
--with-parens-nest-limit=500
|
||||||
|
|
||||||
|
. PCRE2 has a counter that can be set to limit the amount of computing resource
|
||||||
|
it uses when matching a pattern. If the limit is exceeded during a match, the
|
||||||
|
match fails. The default is ten million. You can change the default by
|
||||||
|
setting, for example,
|
||||||
|
|
||||||
|
--with-match-limit=500000
|
||||||
|
|
||||||
|
on the "configure" command. This is just the default; individual calls to
|
||||||
|
pcre2_match() or pcre2_dfa_match() can supply their own value. There is more
|
||||||
|
discussion in the pcre2api man page (search for pcre2_set_match_limit).
|
||||||
|
|
||||||
|
. There is a separate counter that limits the depth of nested backtracking
|
||||||
|
(pcre2_match()) or nested function calls (pcre2_dfa_match()) during a
|
||||||
|
matching process, which indirectly limits the amount of heap memory that is
|
||||||
|
used, and in the case of pcre2_dfa_match() the amount of stack as well. This
|
||||||
|
counter also has a default of ten million, which is essentially "unlimited".
|
||||||
|
You can change the default by setting, for example,
|
||||||
|
|
||||||
|
--with-match-limit-depth=5000
|
||||||
|
|
||||||
|
There is more discussion in the pcre2api man page (search for
|
||||||
|
pcre2_set_depth_limit).
|
||||||
|
|
||||||
|
. You can also set an explicit limit on the amount of heap memory used by
|
||||||
|
the pcre2_match() and pcre2_dfa_match() interpreters:
|
||||||
|
|
||||||
|
--with-heap-limit=500
|
||||||
|
|
||||||
|
The units are kibibytes (units of 1024 bytes). This limit does not apply when
|
||||||
|
the JIT optimization (which has its own memory control features) is used.
|
||||||
|
There is more discussion on the pcre2api man page (search for
|
||||||
|
pcre2_set_heap_limit).
|
||||||
|
|
||||||
|
. In the 8-bit library, the default maximum compiled pattern size is around
|
||||||
|
64 kibibytes. You can increase this by adding --with-link-size=3 to the
|
||||||
|
"configure" command. PCRE2 then uses three bytes instead of two for offsets
|
||||||
|
to different parts of the compiled pattern. In the 16-bit library,
|
||||||
|
--with-link-size=3 is the same as --with-link-size=4, which (in both
|
||||||
|
libraries) uses four-byte offsets. Increasing the internal link size reduces
|
||||||
|
performance in the 8-bit and 16-bit libraries. In the 32-bit library, the
|
||||||
|
link size setting is ignored, as 4-byte offsets are always used.
|
||||||
|
|
||||||
|
. Lookbehind assertions in which one or more branches can match a variable
|
||||||
|
number of characters are supported only if there is a maximum matching length
|
||||||
|
for each top-level branch. There is a limit to this maximum that defaults to
|
||||||
|
255 characters. You can alter this default by a setting such as
|
||||||
|
|
||||||
|
--with-max-varlookbehind=100
|
||||||
|
|
||||||
|
The limit can be changed at runtime by calling pcre2_set_max_varlookbehind().
|
||||||
|
Lookbehind assertions in which every branch matches a fixed number of
|
||||||
|
characters (not necessarily all the same) are not constrained by this limit.
|
||||||
|
|
||||||
|
. For speed, PCRE2 uses four tables for manipulating and identifying characters
|
||||||
|
whose code point values are less than 256. By default, it uses a set of
|
||||||
|
tables for ASCII encoding that is part of the distribution. If you specify
|
||||||
|
|
||||||
|
--enable-rebuild-chartables
|
||||||
|
|
||||||
|
a program called pcre2_dftables is compiled and run in the default C locale
|
||||||
|
when you obey "make". It builds a source file called pcre2_chartables.c. If
|
||||||
|
you do not specify this option, pcre2_chartables.c is created as a copy of
|
||||||
|
pcre2_chartables.c.dist. See "Character tables" below for further
|
||||||
|
information.
|
||||||
|
|
||||||
|
. It is possible to compile PCRE2 for use on systems that use EBCDIC as their
|
||||||
|
character code (as opposed to ASCII/Unicode) by specifying
|
||||||
|
|
||||||
|
--enable-ebcdic --disable-unicode
|
||||||
|
|
||||||
|
This automatically implies --enable-rebuild-chartables (see above). However,
|
||||||
|
when PCRE2 is built this way, it always operates in EBCDIC. It cannot support
|
||||||
|
both EBCDIC and UTF-8/16/32. There is a second option, --enable-ebcdic-nl25,
|
||||||
|
which specifies that the code value for the EBCDIC NL character is 0x25
|
||||||
|
instead of the default 0x15.
|
||||||
|
|
||||||
|
. If you specify --enable-debug, additional debugging code is included in the
|
||||||
|
build. This option is intended for use by the PCRE2 maintainers.
|
||||||
|
|
||||||
|
. In environments where valgrind is installed, if you specify
|
||||||
|
|
||||||
|
--enable-valgrind
|
||||||
|
|
||||||
|
PCRE2 will use valgrind annotations to mark certain memory regions as
|
||||||
|
unaddressable. This allows it to detect invalid memory accesses, and is
|
||||||
|
mostly useful for debugging PCRE2 itself.
|
||||||
|
|
||||||
|
. In environments where the gcc compiler is used and lcov is installed, if you
|
||||||
|
specify
|
||||||
|
|
||||||
|
--enable-coverage
|
||||||
|
|
||||||
|
the build process implements a code coverage report for the test suite. The
|
||||||
|
report is generated by running "make coverage". If ccache is installed on
|
||||||
|
your system, it must be disabled when building PCRE2 for coverage reporting.
|
||||||
|
You can do this by setting the environment variable CCACHE_DISABLE=1 before
|
||||||
|
running "make" to build PCRE2. There is more information about coverage
|
||||||
|
reporting in the "pcre2build" documentation.
|
||||||
|
|
||||||
|
. When JIT support is enabled, pcre2grep automatically makes use of it, unless
|
||||||
|
you add --disable-pcre2grep-jit to the "configure" command.
|
||||||
|
|
||||||
|
. There is support for calling external programs during matching in the
|
||||||
|
pcre2grep command, using PCRE2's callout facility with string arguments. This
|
||||||
|
support can be disabled by adding --disable-pcre2grep-callout to the
|
||||||
|
"configure" command. There are two kinds of callout: one that generates
|
||||||
|
output from inbuilt code, and another that calls an external program. The
|
||||||
|
latter has special support for Windows and VMS; otherwise it assumes the
|
||||||
|
existence of the fork() function. This facility can be disabled by adding
|
||||||
|
--disable-pcre2grep-callout-fork to the "configure" command.
|
||||||
|
|
||||||
|
. The pcre2grep program currently supports only 8-bit data files, and so
|
||||||
|
requires the 8-bit PCRE2 library. It is possible to compile pcre2grep to use
|
||||||
|
libz and/or libbz2, in order to read .gz and .bz2 files (respectively), by
|
||||||
|
specifying one or both of
|
||||||
|
|
||||||
|
--enable-pcre2grep-libz
|
||||||
|
--enable-pcre2grep-libbz2
|
||||||
|
|
||||||
|
Of course, the relevant libraries must be installed on your system.
|
||||||
|
|
||||||
|
. The default starting size (in bytes) of the internal buffer used by pcre2grep
|
||||||
|
can be set by, for example:
|
||||||
|
|
||||||
|
--with-pcre2grep-bufsize=51200
|
||||||
|
|
||||||
|
The value must be a plain integer. The default is 20480. The amount of memory
|
||||||
|
used by pcre2grep is actually three times this number, to allow for "before"
|
||||||
|
and "after" lines. If very long lines are encountered, the buffer is
|
||||||
|
automatically enlarged, up to a fixed maximum size.
|
||||||
|
|
||||||
|
. The default maximum size of pcre2grep's internal buffer can be set by, for
|
||||||
|
example:
|
||||||
|
|
||||||
|
--with-pcre2grep-max-bufsize=2097152
|
||||||
|
|
||||||
|
The default is either 1048576 or the value of --with-pcre2grep-bufsize,
|
||||||
|
whichever is the larger.
|
||||||
|
|
||||||
|
. It is possible to compile pcre2test so that it links with the libreadline
|
||||||
|
or libedit libraries, by specifying, respectively,
|
||||||
|
|
||||||
|
--enable-pcre2test-libreadline or --enable-pcre2test-libedit
|
||||||
|
|
||||||
|
If this is done, when pcre2test's input is from a terminal, it reads it using
|
||||||
|
the readline() function. This provides line-editing and history facilities.
|
||||||
|
Note that libreadline is GPL-licensed, so if you distribute a binary of
|
||||||
|
pcre2test linked in this way, there may be licensing issues. These can be
|
||||||
|
avoided by linking with libedit (which has a BSD licence) instead.
|
||||||
|
|
||||||
|
Enabling libreadline causes the -lreadline option to be added to the
|
||||||
|
pcre2test build. In many operating environments with a system-installed
|
||||||
|
readline library this is sufficient. However, in some environments (e.g. if
|
||||||
|
an unmodified distribution version of readline is in use), it may be
|
||||||
|
necessary to specify something like LIBS="-lncurses" as well. This is
|
||||||
|
because, to quote the readline INSTALL, "Readline uses the termcap functions,
|
||||||
|
but does not link with the termcap or curses library itself, allowing
|
||||||
|
applications which link with readline the option to choose an appropriate
|
||||||
|
library." If you get error messages about missing functions tgetstr, tgetent,
|
||||||
|
tputs, tgetflag, or tgoto, this is the problem, and linking with the ncurses
|
||||||
|
library should fix it.
|
||||||
|
|
||||||
|
. The C99 standard defines formatting modifiers z and t for size_t and
|
||||||
|
ptrdiff_t values, respectively. By default, PCRE2 uses these modifiers in
|
||||||
|
environments other than Microsoft Visual Studio versions earlier than 2013
|
||||||
|
when __STDC_VERSION__ is defined and has a value greater than or equal to
|
||||||
|
199901L (indicating C99). However, there is at least one environment that
|
||||||
|
claims to be C99 but does not support these modifiers. If
|
||||||
|
--disable-percent-zt is specified, no use is made of the z or t modifiers.
|
||||||
|
Instead of %td or %zu, %lu is used, with a cast for size_t values.
|
||||||
|
|
||||||
|
. There is a special option called --enable-fuzz-support for use by people who
|
||||||
|
want to run fuzzing tests on PCRE2. If set, it causes an extra library
|
||||||
|
called libpcre2-fuzzsupport.a to be built, but not installed. This contains
|
||||||
|
a single function called LLVMFuzzerTestOneInput() whose arguments are a
|
||||||
|
pointer to a string and the length of the string. When called, this function
|
||||||
|
tries to compile the string as a pattern, and if that succeeds, to match
|
||||||
|
it. This is done both with no options and with some random options bits that
|
||||||
|
are generated from the string. Setting --enable-fuzz-support also causes an
|
||||||
|
executable called pcre2fuzzcheck-{8,16,32} to be created. This is normally
|
||||||
|
run under valgrind or used when PCRE2 is compiled with address sanitizing
|
||||||
|
enabled. It calls the fuzzing function and outputs information about what it
|
||||||
|
is doing. The input strings are specified by arguments: if an argument
|
||||||
|
starts with "=" the rest of it is a literal input string. Otherwise, it is
|
||||||
|
assumed to be a file name, and the contents of the file are the test string.
|
||||||
|
|
||||||
|
. Releases before 10.30 could be compiled with --disable-stack-for-recursion,
|
||||||
|
which caused pcre2_match() to use individual blocks on the heap for
|
||||||
|
backtracking instead of recursive function calls (which use the stack). This
|
||||||
|
is now obsolete because pcre2_match() was refactored always to use the heap
|
||||||
|
(in a much more efficient way than before). This option is retained for
|
||||||
|
backwards compatibility, but has no effect other than to output a warning.
|
||||||
|
|
||||||
|
The "configure" script builds the following files for the basic C library:
|
||||||
|
|
||||||
|
. Makefile the makefile that builds the library
|
||||||
|
. src/config.h build-time configuration options for the library
|
||||||
|
. src/pcre2.h the public PCRE2 header file
|
||||||
|
. pcre2-config script that shows the building settings such as CFLAGS
|
||||||
|
that were set for "configure"
|
||||||
|
. libpcre2-8.pc )
|
||||||
|
. libpcre2-16.pc ) data for the pkg-config command
|
||||||
|
. libpcre2-32.pc )
|
||||||
|
. libpcre2-posix.pc )
|
||||||
|
. libtool script that builds shared and/or static libraries
|
||||||
|
|
||||||
|
Versions of config.h and pcre2.h are distributed in the src directory of PCRE2
|
||||||
|
tarballs under the names config.h.generic and pcre2.h.generic. These are
|
||||||
|
provided for those who have to build PCRE2 without using "configure" or CMake.
|
||||||
|
If you use "configure" or CMake, the .generic versions are not used.
|
||||||
|
|
||||||
|
The "configure" script also creates config.status, which is an executable
|
||||||
|
script that can be run to recreate the configuration, and config.log, which
|
||||||
|
contains compiler output from tests that "configure" runs.
|
||||||
|
|
||||||
|
Once "configure" has run, you can run "make". This builds whichever of the
|
||||||
|
libraries libpcre2-8, libpcre2-16 and libpcre2-32 are configured, and a test
|
||||||
|
program called pcre2test. If you enabled JIT support with --enable-jit, another
|
||||||
|
test program called pcre2_jit_test is built as well. If the 8-bit library is
|
||||||
|
built, libpcre2-posix, pcre2posix_test, and the pcre2grep command are also
|
||||||
|
built. Running "make" with the -j option may speed up compilation on
|
||||||
|
multiprocessor systems.
|
||||||
|
|
||||||
|
The command "make check" runs all the appropriate tests. Details of the PCRE2
|
||||||
|
tests are given below in a separate section of this document. The -j option of
|
||||||
|
"make" can also be used when running the tests.
|
||||||
|
|
||||||
|
You can use "make install" to install PCRE2 into live directories on your
|
||||||
|
system. The following are installed (file names are all relative to the
|
||||||
|
<prefix> that is set when "configure" is run):
|
||||||
|
|
||||||
|
Commands (bin):
|
||||||
|
pcre2test
|
||||||
|
pcre2grep (if 8-bit support is enabled)
|
||||||
|
pcre2-config
|
||||||
|
|
||||||
|
Libraries (lib):
|
||||||
|
libpcre2-8 (if 8-bit support is enabled)
|
||||||
|
libpcre2-16 (if 16-bit support is enabled)
|
||||||
|
libpcre2-32 (if 32-bit support is enabled)
|
||||||
|
libpcre2-posix (if 8-bit support is enabled)
|
||||||
|
|
||||||
|
Configuration information (lib/pkgconfig):
|
||||||
|
libpcre2-8.pc
|
||||||
|
libpcre2-16.pc
|
||||||
|
libpcre2-32.pc
|
||||||
|
libpcre2-posix.pc
|
||||||
|
|
||||||
|
Header files (include):
|
||||||
|
pcre2.h
|
||||||
|
pcre2posix.h
|
||||||
|
|
||||||
|
Man pages (share/man/man{1,3}):
|
||||||
|
pcre2grep.1
|
||||||
|
pcre2test.1
|
||||||
|
pcre2-config.1
|
||||||
|
pcre2.3
|
||||||
|
pcre2*.3 (lots more pages, all starting "pcre2")
|
||||||
|
|
||||||
|
HTML documentation (share/doc/pcre2/html):
|
||||||
|
index.html
|
||||||
|
*.html (lots more pages, hyperlinked from index.html)
|
||||||
|
|
||||||
|
Text file documentation (share/doc/pcre2):
|
||||||
|
AUTHORS
|
||||||
|
COPYING
|
||||||
|
ChangeLog
|
||||||
|
LICENCE
|
||||||
|
NEWS
|
||||||
|
README
|
||||||
|
SECURITY
|
||||||
|
pcre2.txt (a concatenation of the man(3) pages)
|
||||||
|
pcre2test.txt the pcre2test man page
|
||||||
|
pcre2grep.txt the pcre2grep man page
|
||||||
|
pcre2-config.txt the pcre2-config man page
|
||||||
|
|
||||||
|
If you want to remove PCRE2 from your system, you can run "make uninstall".
|
||||||
|
This removes all the files that "make install" installed. However, it does not
|
||||||
|
remove any directories, because these are often shared with other programs.
|
||||||
|
|
||||||
|
|
||||||
|
Retrieving configuration information
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Running "make install" installs the command pcre2-config, which can be used to
|
||||||
|
recall information about the PCRE2 configuration and installation. For example:
|
||||||
|
|
||||||
|
pcre2-config --version
|
||||||
|
|
||||||
|
prints the version number, and
|
||||||
|
|
||||||
|
pcre2-config --libs8
|
||||||
|
|
||||||
|
outputs information about where the 8-bit library is installed. This command
|
||||||
|
can be included in makefiles for programs that use PCRE2, saving the programmer
|
||||||
|
from having to remember too many details. Run pcre2-config with no arguments to
|
||||||
|
obtain a list of possible arguments.
|
||||||
|
|
||||||
|
The pkg-config command is another system for saving and retrieving information
|
||||||
|
about installed libraries. Instead of separate commands for each library, a
|
||||||
|
single command is used. For example:
|
||||||
|
|
||||||
|
pkg-config --libs libpcre2-16
|
||||||
|
|
||||||
|
The data is held in *.pc files that are installed in a directory called
|
||||||
|
<prefix>/lib/pkgconfig.
|
||||||
|
|
||||||
|
|
||||||
|
Shared libraries
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The default distribution builds PCRE2 as shared libraries and static libraries,
|
||||||
|
as long as the operating system supports shared libraries. Shared library
|
||||||
|
support relies on the "libtool" script which is built as part of the
|
||||||
|
"configure" process.
|
||||||
|
|
||||||
|
The libtool script is used to compile and link both shared and static
|
||||||
|
libraries. They are placed in a subdirectory called .libs when they are newly
|
||||||
|
built. The programs pcre2test and pcre2grep are built to use these uninstalled
|
||||||
|
libraries (by means of wrapper scripts in the case of shared libraries). When
|
||||||
|
you use "make install" to install shared libraries, pcre2grep and pcre2test are
|
||||||
|
automatically re-built to use the newly installed shared libraries before being
|
||||||
|
installed themselves. However, the versions left in the build directory still
|
||||||
|
use the uninstalled libraries.
|
||||||
|
|
||||||
|
To build PCRE2 using static libraries only you must use --disable-shared when
|
||||||
|
configuring it. For example:
|
||||||
|
|
||||||
|
./configure --prefix=/usr/gnu --disable-shared
|
||||||
|
|
||||||
|
Then run "make" in the usual way. Similarly, you can use --disable-static to
|
||||||
|
build only shared libraries. Note, however, that when you build only static
|
||||||
|
libraries, binary programs such as pcre2test and pcre2grep may still be
|
||||||
|
dynamically linked with other libraries (for example, libc) unless you set
|
||||||
|
LDFLAGS to --static when running "configure".
|
||||||
|
|
||||||
|
|
||||||
|
Cross-compiling using autotools
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
You can specify CC and CFLAGS in the normal way to the "configure" command, in
|
||||||
|
order to cross-compile PCRE2 for some other host. However, you should NOT
|
||||||
|
specify --enable-rebuild-chartables, because if you do, the pcre2_dftables.c
|
||||||
|
source file is compiled and run on the local host, in order to generate the
|
||||||
|
inbuilt character tables (the pcre2_chartables.c file). This will probably not
|
||||||
|
work, because pcre2_dftables.c needs to be compiled with the local compiler,
|
||||||
|
not the cross compiler.
|
||||||
|
|
||||||
|
When --enable-rebuild-chartables is not specified, pcre2_chartables.c is
|
||||||
|
created by making a copy of pcre2_chartables.c.dist, which is a default set of
|
||||||
|
tables that assumes ASCII code. Cross-compiling with the default tables should
|
||||||
|
not be a problem.
|
||||||
|
|
||||||
|
If you need to modify the character tables when cross-compiling, you should
|
||||||
|
move pcre2_chartables.c.dist out of the way, then compile pcre2_dftables.c by
|
||||||
|
hand and run it on the local host to make a new version of
|
||||||
|
pcre2_chartables.c.dist. See the pcre2build section "Creating character tables
|
||||||
|
at build time" for more details.
|
||||||
|
|
||||||
|
|
||||||
|
Making new tarballs
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
The command "make dist" creates three PCRE2 tarballs, in tar.gz, tar.bz2, and
|
||||||
|
zip formats. The command "make distcheck" does the same, but then does a trial
|
||||||
|
build of the new distribution to ensure that it works.
|
||||||
|
|
||||||
|
If you have modified any of the man page sources in the doc directory, you
|
||||||
|
should first run the maint/PrepareRelease script before making a distribution.
|
||||||
|
This script creates the .txt and HTML forms of the documentation from the man
|
||||||
|
pages.
|
||||||
|
|
||||||
|
|
||||||
|
Testing PCRE2
|
||||||
|
-------------
|
||||||
|
|
||||||
|
To test the basic PCRE2 library on a Unix-like system, run the RunTest script.
|
||||||
|
There is another script called RunGrepTest that tests the pcre2grep command.
|
||||||
|
When the 8-bit library is built, a test program for the POSIX wrapper, called
|
||||||
|
pcre2posix_test, is compiled, and when JIT support is enabled, a test program
|
||||||
|
called pcre2_jit_test is built. The scripts and the program tests are all run
|
||||||
|
when you obey "make check". For other environments, see the instructions in
|
||||||
|
NON-AUTOTOOLS-BUILD.
|
||||||
|
|
||||||
|
The RunTest script runs the pcre2test test program (which is documented in its
|
||||||
|
own man page) on each of the relevant testinput files in the testdata
|
||||||
|
directory, and compares the output with the contents of the corresponding
|
||||||
|
testoutput files. RunTest uses a file called testtry to hold the main output
|
||||||
|
from pcre2test. Other files whose names begin with "test" are used as working
|
||||||
|
files in some tests.
|
||||||
|
|
||||||
|
Some tests are relevant only when certain build-time options were selected. For
|
||||||
|
example, the tests for UTF-8/16/32 features are run only when Unicode support
|
||||||
|
is available. RunTest outputs a comment when it skips a test.
|
||||||
|
|
||||||
|
Many (but not all) of the tests that are not skipped are run twice if JIT
|
||||||
|
support is available. On the second run, JIT compilation is forced. This
|
||||||
|
testing can be suppressed by putting "-nojit" on the RunTest command line.
|
||||||
|
|
||||||
|
The entire set of tests is run once for each of the 8-bit, 16-bit and 32-bit
|
||||||
|
libraries that are enabled. If you want to run just one set of tests, call
|
||||||
|
RunTest with either the -8, -16 or -32 option.
|
||||||
|
|
||||||
|
If valgrind is installed, you can run the tests under it by putting "-valgrind"
|
||||||
|
on the RunTest command line. To run pcre2test on just one or more specific test
|
||||||
|
files, give their numbers as arguments to RunTest, for example:
|
||||||
|
|
||||||
|
RunTest 2 7 11
|
||||||
|
|
||||||
|
You can also specify ranges of tests such as 3-6 or 3- (meaning 3 to the
|
||||||
|
end), or a number preceded by ~ to exclude a test. For example:
|
||||||
|
|
||||||
|
Runtest 3-15 ~10
|
||||||
|
|
||||||
|
This runs tests 3 to 15, excluding test 10, and just ~13 runs all the tests
|
||||||
|
except test 13. Whatever order the arguments are in, the tests are always run
|
||||||
|
in numerical order.
|
||||||
|
|
||||||
|
You can also call RunTest with the single argument "list" to cause it to output
|
||||||
|
a list of tests.
|
||||||
|
|
||||||
|
The test sequence starts with "test 0", which is a special test that has no
|
||||||
|
input file, and whose output is not checked. This is because it will be
|
||||||
|
different on different hardware and with different configurations. The test
|
||||||
|
exists in order to exercise some of pcre2test's code that would not otherwise
|
||||||
|
be run.
|
||||||
|
|
||||||
|
Tests 1 and 2 can always be run, as they expect only plain text strings (not
|
||||||
|
UTF) and make no use of Unicode properties. The first test file can be fed
|
||||||
|
directly into the perltest.sh script to check that Perl gives the same results.
|
||||||
|
The only difference you should see is in the first few lines, where the Perl
|
||||||
|
version is given instead of the PCRE2 version. The second set of tests check
|
||||||
|
auxiliary functions, error detection, and run-time flags that are specific to
|
||||||
|
PCRE2. It also uses the debugging flags to check some of the internals of
|
||||||
|
pcre2_compile().
|
||||||
|
|
||||||
|
If you build PCRE2 with a locale setting that is not the standard C locale, the
|
||||||
|
character tables may be different (see next paragraph). In some cases, this may
|
||||||
|
cause failures in the second set of tests. For example, in a locale where the
|
||||||
|
isprint() function yields TRUE for characters in the range 128-255, the use of
|
||||||
|
[:isascii:] inside a character class defines a different set of characters, and
|
||||||
|
this shows up in this test as a difference in the compiled code, which is being
|
||||||
|
listed for checking. For example, where the comparison test output contains
|
||||||
|
[\x00-\x7f] the test might contain [\x00-\xff], and similarly in some other
|
||||||
|
cases. This is not a bug in PCRE2.
|
||||||
|
|
||||||
|
Test 3 checks pcre2_maketables(), the facility for building a set of character
|
||||||
|
tables for a specific locale and using them instead of the default tables. The
|
||||||
|
script uses the "locale" command to check for the availability of the "fr_FR",
|
||||||
|
"french", or "fr" locale, and uses the first one that it finds. If the "locale"
|
||||||
|
command fails, or if its output doesn't include "fr_FR", "french", or "fr" in
|
||||||
|
the list of available locales, the third test cannot be run, and a comment is
|
||||||
|
output to say why. If running this test produces an error like this:
|
||||||
|
|
||||||
|
** Failed to set locale "fr_FR"
|
||||||
|
|
||||||
|
it means that the given locale is not available on your system, despite being
|
||||||
|
listed by "locale". This does not mean that PCRE2 is broken. There are three
|
||||||
|
alternative output files for the third test, because three different versions
|
||||||
|
of the French locale have been encountered. The test passes if its output
|
||||||
|
matches any one of them.
|
||||||
|
|
||||||
|
Tests 4 and 5 check UTF and Unicode property support, test 4 being compatible
|
||||||
|
with the perltest.sh script, and test 5 checking PCRE2-specific things.
|
||||||
|
|
||||||
|
Tests 6 and 7 check the pcre2_dfa_match() alternative matching function, in
|
||||||
|
non-UTF mode and UTF-mode with Unicode property support, respectively.
|
||||||
|
|
||||||
|
Test 8 checks some internal offsets and code size features, but it is run only
|
||||||
|
when Unicode support is enabled. The output is different in 8-bit, 16-bit, and
|
||||||
|
32-bit modes and for different link sizes, so there are different output files
|
||||||
|
for each mode and link size.
|
||||||
|
|
||||||
|
Tests 9 and 10 are run only in 8-bit mode, and tests 11 and 12 are run only in
|
||||||
|
16-bit and 32-bit modes. These are tests that generate different output in
|
||||||
|
8-bit mode. Each pair are for general cases and Unicode support, respectively.
|
||||||
|
|
||||||
|
Test 13 checks the handling of non-UTF characters greater than 255 by
|
||||||
|
pcre2_dfa_match() in 16-bit and 32-bit modes.
|
||||||
|
|
||||||
|
Test 14 contains some special UTF and UCP tests that give different output for
|
||||||
|
different code unit widths.
|
||||||
|
|
||||||
|
Test 15 contains a number of tests that must not be run with JIT. They check,
|
||||||
|
among other non-JIT things, the match-limiting features of the interpretive
|
||||||
|
matcher.
|
||||||
|
|
||||||
|
Test 16 is run only when JIT support is not available. It checks that an
|
||||||
|
attempt to use JIT has the expected behaviour.
|
||||||
|
|
||||||
|
Test 17 is run only when JIT support is available. It checks JIT complete and
|
||||||
|
partial modes, match-limiting under JIT, and other JIT-specific features.
|
||||||
|
|
||||||
|
Tests 18 and 19 are run only in 8-bit mode. They check the POSIX interface to
|
||||||
|
the 8-bit library, without and with Unicode support, respectively.
|
||||||
|
|
||||||
|
Test 20 checks the serialization functions by writing a set of compiled
|
||||||
|
patterns to a file, and then reloading and checking them.
|
||||||
|
|
||||||
|
Tests 21 and 22 test \C support when the use of \C is not locked out, without
|
||||||
|
and with UTF support, respectively. Test 23 tests \C when it is locked out.
|
||||||
|
|
||||||
|
Tests 24 and 25 test the experimental pattern conversion functions, without and
|
||||||
|
with UTF support, respectively.
|
||||||
|
|
||||||
|
Test 26 checks Unicode property support using tests that are generated
|
||||||
|
automatically from the Unicode data tables.
|
||||||
|
|
||||||
|
|
||||||
|
Character tables
|
||||||
|
----------------
|
||||||
|
|
||||||
|
For speed, PCRE2 uses four tables for manipulating and identifying characters
|
||||||
|
whose code point values are less than 256. By default, a set of tables that is
|
||||||
|
built into the library is used. The pcre2_maketables() function can be called
|
||||||
|
by an application to create a new set of tables in the current locale. This are
|
||||||
|
passed to PCRE2 by calling pcre2_set_character_tables() to put a pointer into a
|
||||||
|
compile context.
|
||||||
|
|
||||||
|
The source file called pcre2_chartables.c contains the default set of tables.
|
||||||
|
By default, this is created as a copy of pcre2_chartables.c.dist, which
|
||||||
|
contains tables for ASCII coding. However, if --enable-rebuild-chartables is
|
||||||
|
specified for ./configure, a new version of pcre2_chartables.c is built by the
|
||||||
|
program pcre2_dftables (compiled from pcre2_dftables.c), which uses the ANSI C
|
||||||
|
character handling functions such as isalnum(), isalpha(), isupper(),
|
||||||
|
islower(), etc. to build the table sources. This means that the default C
|
||||||
|
locale that is set for your system will control the contents of these default
|
||||||
|
tables. You can change the default tables by editing pcre2_chartables.c and
|
||||||
|
then re-building PCRE2. If you do this, you should take care to ensure that the
|
||||||
|
file does not get automatically re-generated. The best way to do this is to
|
||||||
|
move pcre2_chartables.c.dist out of the way and replace it with your customized
|
||||||
|
tables.
|
||||||
|
|
||||||
|
When the pcre2_dftables program is run as a result of specifying
|
||||||
|
--enable-rebuild-chartables, it uses the default C locale that is set on your
|
||||||
|
system. It does not pay attention to the LC_xxx environment variables. In other
|
||||||
|
words, it uses the system's default locale rather than whatever the compiling
|
||||||
|
user happens to have set. If you really do want to build a source set of
|
||||||
|
character tables in a locale that is specified by the LC_xxx variables, you can
|
||||||
|
run the pcre2_dftables program by hand with the -L option. For example:
|
||||||
|
|
||||||
|
./pcre2_dftables -L pcre2_chartables.c.special
|
||||||
|
|
||||||
|
The second argument names the file where the source code for the tables is
|
||||||
|
written. The first two 256-byte tables provide lower casing and case flipping
|
||||||
|
functions, respectively. The next table consists of a number of 32-byte bit
|
||||||
|
maps which identify certain character classes such as digits, "word"
|
||||||
|
characters, white space, etc. These are used when building 32-byte bit maps
|
||||||
|
that represent character classes for code points less than 256. The final
|
||||||
|
256-byte table has bits indicating various character types, as follows:
|
||||||
|
|
||||||
|
1 white space character
|
||||||
|
2 letter
|
||||||
|
4 lower case letter
|
||||||
|
8 decimal digit
|
||||||
|
16 alphanumeric or '_'
|
||||||
|
|
||||||
|
You can also specify -b (with or without -L) when running pcre2_dftables. This
|
||||||
|
causes the tables to be written in binary instead of as source code. A set of
|
||||||
|
binary tables can be loaded into memory by an application and passed to
|
||||||
|
pcre2_compile() in the same way as tables created dynamically by calling
|
||||||
|
pcre2_maketables(). The tables are just a string of bytes, independent of
|
||||||
|
hardware characteristics such as endianness. This means they can be bundled
|
||||||
|
with an application that runs in different environments, to ensure consistent
|
||||||
|
behaviour.
|
||||||
|
|
||||||
|
See also the pcre2build section "Creating character tables at build time".
|
||||||
|
|
||||||
|
|
||||||
|
File manifest
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The distribution should contain the files listed below.
|
||||||
|
|
||||||
|
(A) Source files for the PCRE2 library functions and their headers are found in
|
||||||
|
the src directory:
|
||||||
|
|
||||||
|
src/pcre2_dftables.c auxiliary program for building pcre2_chartables.c
|
||||||
|
when --enable-rebuild-chartables is specified
|
||||||
|
|
||||||
|
src/pcre2_chartables.c.dist a default set of character tables that assume
|
||||||
|
ASCII coding; unless --enable-rebuild-chartables is
|
||||||
|
specified, used by copying to pcre2_chartables.c
|
||||||
|
|
||||||
|
src/pcre2posix.c )
|
||||||
|
src/pcre2_auto_possess.c )
|
||||||
|
src/pcre2_chkdint.c )
|
||||||
|
src/pcre2_compile.c )
|
||||||
|
src/pcre2_compile_class.c )
|
||||||
|
src/pcre2_config.c )
|
||||||
|
src/pcre2_context.c )
|
||||||
|
src/pcre2_convert.c )
|
||||||
|
src/pcre2_dfa_match.c )
|
||||||
|
src/pcre2_error.c )
|
||||||
|
src/pcre2_extuni.c )
|
||||||
|
src/pcre2_find_bracket.c )
|
||||||
|
src/pcre2_jit_compile.c )
|
||||||
|
src/pcre2_jit_match.c ) sources for the functions in the library,
|
||||||
|
src/pcre2_jit_misc.c ) and some internal functions that they use
|
||||||
|
src/pcre2_maketables.c )
|
||||||
|
src/pcre2_match.c )
|
||||||
|
src/pcre2_match_data.c )
|
||||||
|
src/pcre2_newline.c )
|
||||||
|
src/pcre2_ord2utf.c )
|
||||||
|
src/pcre2_pattern_info.c )
|
||||||
|
src/pcre2_script_run.c )
|
||||||
|
src/pcre2_serialize.c )
|
||||||
|
src/pcre2_string_utils.c )
|
||||||
|
src/pcre2_study.c )
|
||||||
|
src/pcre2_substitute.c )
|
||||||
|
src/pcre2_substring.c )
|
||||||
|
src/pcre2_tables.c )
|
||||||
|
src/pcre2_ucd.c )
|
||||||
|
src/pcre2_ucptables.c )
|
||||||
|
src/pcre2_valid_utf.c )
|
||||||
|
src/pcre2_xclass.c )
|
||||||
|
|
||||||
|
src/pcre2_printint.c debugging function that is used by pcre2test,
|
||||||
|
src/pcre2_fuzzsupport.c function for (optional) fuzzing support
|
||||||
|
|
||||||
|
src/config.h.in template for config.h, when built by "configure"
|
||||||
|
src/pcre2.h.in template for pcre2.h when built by "configure"
|
||||||
|
src/pcre2posix.h header for the external POSIX wrapper API
|
||||||
|
src/pcre2_compile.h header for internal use
|
||||||
|
src/pcre2_internal.h header for internal use
|
||||||
|
src/pcre2_intmodedep.h a mode-specific internal header
|
||||||
|
src/pcre2_jit_char_inc.h header used by JIT
|
||||||
|
src/pcre2_jit_neon_inc.h header used by JIT
|
||||||
|
src/pcre2_jit_simd_inc.h header used by JIT
|
||||||
|
src/pcre2_ucp.h header for Unicode property handling
|
||||||
|
src/pcre2_util.h header for internal utils
|
||||||
|
|
||||||
|
deps/sljit/sljit_src/* source files for the JIT compiler
|
||||||
|
|
||||||
|
(B) Source files for programs that use PCRE2:
|
||||||
|
|
||||||
|
src/pcre2demo.c simple demonstration of coding calls to PCRE2
|
||||||
|
src/pcre2grep.c source of a grep utility that uses PCRE2
|
||||||
|
src/pcre2test.c comprehensive test program
|
||||||
|
src/pcre2_jit_test.c JIT test program
|
||||||
|
src/pcre2posix_test.c POSIX wrapper API test program
|
||||||
|
|
||||||
|
(C) Auxiliary files:
|
||||||
|
|
||||||
|
AUTHORS.md information about the authors of PCRE2
|
||||||
|
ChangeLog log of changes to the code
|
||||||
|
HACKING some notes about the internals of PCRE2
|
||||||
|
INSTALL generic installation instructions
|
||||||
|
LICENCE.md conditions for the use of PCRE2
|
||||||
|
COPYING the same, using GNU's standard name
|
||||||
|
SECURITY.md information on reporting vulnerabilities
|
||||||
|
Makefile.in ) template for Unix Makefile, which is built by
|
||||||
|
) "configure"
|
||||||
|
Makefile.am ) the automake input that was used to create
|
||||||
|
) Makefile.in
|
||||||
|
NEWS important changes in this release
|
||||||
|
NON-AUTOTOOLS-BUILD notes on building PCRE2 without using autotools
|
||||||
|
README this file
|
||||||
|
RunTest a Unix shell script for running tests
|
||||||
|
RunGrepTest a Unix shell script for pcre2grep tests
|
||||||
|
RunTest.bat a Windows batch file for running tests
|
||||||
|
RunGrepTest.bat a Windows batch file for pcre2grep tests
|
||||||
|
aclocal.m4 m4 macros (generated by "aclocal")
|
||||||
|
m4/* m4 macros (used by autoconf)
|
||||||
|
configure a configuring shell script (built by autoconf)
|
||||||
|
configure.ac ) the autoconf input that was used to build
|
||||||
|
) "configure" and config.h
|
||||||
|
doc/*.3 man page sources for PCRE2
|
||||||
|
doc/*.1 man page sources for pcre2grep and pcre2test
|
||||||
|
doc/html/* HTML documentation
|
||||||
|
doc/pcre2.txt plain text version of the man pages
|
||||||
|
doc/pcre2-config.txt plain text documentation of pcre2-config script
|
||||||
|
doc/pcre2grep.txt plain text documentation of grep utility program
|
||||||
|
doc/pcre2test.txt plain text documentation of test program
|
||||||
|
libpcre2-8.pc.in template for libpcre2-8.pc for pkg-config
|
||||||
|
libpcre2-16.pc.in template for libpcre2-16.pc for pkg-config
|
||||||
|
libpcre2-32.pc.in template for libpcre2-32.pc for pkg-config
|
||||||
|
libpcre2-posix.pc.in template for libpcre2-posix.pc for pkg-config
|
||||||
|
ar-lib )
|
||||||
|
config.guess )
|
||||||
|
config.sub )
|
||||||
|
depcomp ) helper tools generated by libtool and
|
||||||
|
compile ) automake, used internally by ./configure
|
||||||
|
install-sh )
|
||||||
|
ltmain.sh )
|
||||||
|
missing )
|
||||||
|
test-driver )
|
||||||
|
perltest.sh Script for running a Perl test program
|
||||||
|
pcre2-config.in source of script which retains PCRE2 information
|
||||||
|
testdata/testinput* test data for main library tests
|
||||||
|
testdata/testoutput* expected test results
|
||||||
|
testdata/grep* input and output for pcre2grep tests
|
||||||
|
testdata/* other supporting test files
|
||||||
|
|
||||||
|
(D) Auxiliary files for CMake support
|
||||||
|
|
||||||
|
cmake/COPYING-CMAKE-SCRIPTS
|
||||||
|
cmake/FindEditline.cmake
|
||||||
|
cmake/FindReadline.cmake
|
||||||
|
cmake/pcre2-config-version.cmake.in
|
||||||
|
cmake/pcre2-config.cmake.in
|
||||||
|
CMakeLists.txt
|
||||||
|
config-cmake.h.in
|
||||||
|
|
||||||
|
(E) Auxiliary files for building PCRE2 "by hand"
|
||||||
|
|
||||||
|
src/pcre2.h.generic ) a version of the public PCRE2 header file
|
||||||
|
) for use in non-"configure" environments
|
||||||
|
src/config.h.generic ) a version of config.h for use in non-"configure"
|
||||||
|
) environments
|
||||||
|
|
||||||
|
(F) Auxiliary files for building PCRE2 using other build systems
|
||||||
|
|
||||||
|
BUILD.bazel )
|
||||||
|
MODULE.bazel ) files used by the Bazel build system
|
||||||
|
WORKSPACE.bazel )
|
||||||
|
build.zig file used by zig's build system
|
||||||
|
|
||||||
|
(G) Auxiliary files for building PCRE2 under OpenVMS
|
||||||
|
|
||||||
|
vms/configure.com )
|
||||||
|
vms/openvms_readme.txt ) These files were contributed by a PCRE2 user.
|
||||||
|
vms/pcre2.h_patch )
|
||||||
|
vms/stdint.h )
|
||||||
|
|
||||||
|
==============================
|
||||||
|
Last updated: 18 December 2024
|
||||||
|
==============================
|
||||||
|
|
||||||
327
3rd/pcre2/doc/html/index.html
Normal file
327
3rd/pcre2/doc/html/index.html
Normal file
@@ -0,0 +1,327 @@
|
|||||||
|
<html>
|
||||||
|
<!-- This is a manually maintained file that is the root of the HTML version of
|
||||||
|
the PCRE2 documentation. When the HTML documents are built from the man
|
||||||
|
page versions, the entire doc/html directory is emptied, this file is then
|
||||||
|
copied into doc/html/index.html, and the remaining files therein are
|
||||||
|
created by the 132html script.
|
||||||
|
-->
|
||||||
|
<head>
|
||||||
|
<title>PCRE2 specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>Perl-compatible Regular Expressions (revised API: PCRE2)</h1>
|
||||||
|
<p>
|
||||||
|
The HTML documentation for PCRE2 consists of a number of pages that are listed
|
||||||
|
below in alphabetical order. If you are new to PCRE2, please read the first one
|
||||||
|
first.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<tr><td><a href="pcre2.html">pcre2</a></td>
|
||||||
|
<td> Introductory page</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2-config.html">pcre2-config</a></td>
|
||||||
|
<td> Information about the installation configuration</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2api.html">pcre2api</a></td>
|
||||||
|
<td> PCRE2's native API</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2build.html">pcre2build</a></td>
|
||||||
|
<td> Building PCRE2</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2callout.html">pcre2callout</a></td>
|
||||||
|
<td> The <i>callout</i> facility</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2compat.html">pcre2compat</a></td>
|
||||||
|
<td> Compability with Perl</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2convert.html">pcre2convert</a></td>
|
||||||
|
<td> Experimental foreign pattern conversion functions</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2demo.html">pcre2demo</a></td>
|
||||||
|
<td> A demonstration C program that uses the PCRE2 library</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2grep.html">pcre2grep</a></td>
|
||||||
|
<td> The <b>pcre2grep</b> command</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2jit.html">pcre2jit</a></td>
|
||||||
|
<td> Discussion of the just-in-time optimization support</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2limits.html">pcre2limits</a></td>
|
||||||
|
<td> Details of size and other limits</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2matching.html">pcre2matching</a></td>
|
||||||
|
<td> Discussion of the two matching algorithms</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2partial.html">pcre2partial</a></td>
|
||||||
|
<td> Using PCRE2 for partial matching</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2pattern.html">pcre2pattern</a></td>
|
||||||
|
<td> Specification of the regular expressions supported by PCRE2</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2perform.html">pcre2perform</a></td>
|
||||||
|
<td> Some comments on performance</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2posix.html">pcre2posix</a></td>
|
||||||
|
<td> The POSIX API to the PCRE2 8-bit library</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2sample.html">pcre2sample</a></td>
|
||||||
|
<td> Discussion of the pcre2demo program</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2serialize.html">pcre2serialize</a></td>
|
||||||
|
<td> Serializing functions for saving precompiled patterns</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2syntax.html">pcre2syntax</a></td>
|
||||||
|
<td> Syntax quick-reference summary</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2test.html">pcre2test</a></td>
|
||||||
|
<td> The <b>pcre2test</b> command for testing PCRE2</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2unicode.html">pcre2unicode</a></td>
|
||||||
|
<td> Discussion of Unicode and UTF-8/UTF-16/UTF-32 support</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
There are also individual pages that summarize the interface for each function
|
||||||
|
in the library.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_callout_enumerate.html">pcre2_callout_enumerate</a></td>
|
||||||
|
<td> Enumerate callouts in a compiled pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_code_copy.html">pcre2_code_copy</a></td>
|
||||||
|
<td> Copy a compiled pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_code_copy_with_tables.html">pcre2_code_copy_with_tables</a></td>
|
||||||
|
<td> Copy a compiled pattern and its character tables</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_code_free.html">pcre2_code_free</a></td>
|
||||||
|
<td> Free a compiled pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_compile.html">pcre2_compile</a></td>
|
||||||
|
<td> Compile a regular expression pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_compile_context_copy.html">pcre2_compile_context_copy</a></td>
|
||||||
|
<td> Copy a compile context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_compile_context_create.html">pcre2_compile_context_create</a></td>
|
||||||
|
<td> Create a compile context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_compile_context_free.html">pcre2_compile_context_free</a></td>
|
||||||
|
<td> Free a compile context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_config.html">pcre2_config</a></td>
|
||||||
|
<td> Show build-time configuration options</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_convert_context_copy.html">pcre2_convert_context_copy</a></td>
|
||||||
|
<td> Copy a convert context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_convert_context_create.html">pcre2_convert_context_create</a></td>
|
||||||
|
<td> Create a convert context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_convert_context_free.html">pcre2_convert_context_free</a></td>
|
||||||
|
<td> Free a convert context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_converted_pattern_free.html">pcre2_converted_pattern_free</a></td>
|
||||||
|
<td> Free converted foreign pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_dfa_match.html">pcre2_dfa_match</a></td>
|
||||||
|
<td> Match a compiled pattern to a subject string
|
||||||
|
(DFA algorithm; <i>not</i> Perl compatible)</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_general_context_copy.html">pcre2_general_context_copy</a></td>
|
||||||
|
<td> Copy a general context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_general_context_create.html">pcre2_general_context_create</a></td>
|
||||||
|
<td> Create a general context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_general_context_free.html">pcre2_general_context_free</a></td>
|
||||||
|
<td> Free a general context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_error_message.html">pcre2_get_error_message</a></td>
|
||||||
|
<td> Get textual error message for error number</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_mark.html">pcre2_get_mark</a></td>
|
||||||
|
<td> Get a (*MARK) name</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_match_data_size.html">pcre2_get_match_data_size</a></td>
|
||||||
|
<td> Get the size of a match data block</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_ovector_count.html">pcre2_get_ovector_count</a></td>
|
||||||
|
<td> Get the ovector count</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_ovector_pointer.html">pcre2_get_ovector_pointer</a></td>
|
||||||
|
<td> Get a pointer to the ovector</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_get_startchar.html">pcre2_get_startchar</a></td>
|
||||||
|
<td> Get the starting character offset</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_jit_compile.html">pcre2_jit_compile</a></td>
|
||||||
|
<td> Process a compiled pattern with the JIT compiler</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_jit_free_unused_memory.html">pcre2_jit_free_unused_memory</a></td>
|
||||||
|
<td> Free unused JIT memory</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_jit_match.html">pcre2_jit_match</a></td>
|
||||||
|
<td> Fast path interface to JIT matching</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_jit_stack_assign.html">pcre2_jit_stack_assign</a></td>
|
||||||
|
<td> Assign stack for JIT matching</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_jit_stack_create.html">pcre2_jit_stack_create</a></td>
|
||||||
|
<td> Create a stack for JIT matching</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_jit_stack_free.html">pcre2_jit_stack_free</a></td>
|
||||||
|
<td> Free a JIT matching stack</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_maketables.html">pcre2_maketables</a></td>
|
||||||
|
<td> Build character tables in current locale</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_maketables_free.html">pcre2_maketables_free</a></td>
|
||||||
|
<td> Free character tables</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match.html">pcre2_match</a></td>
|
||||||
|
<td> Match a compiled pattern to a subject string
|
||||||
|
(Perl compatible)</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match_context_copy.html">pcre2_match_context_copy</a></td>
|
||||||
|
<td> Copy a match context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match_context_create.html">pcre2_match_context_create</a></td>
|
||||||
|
<td> Create a match context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match_context_free.html">pcre2_match_context_free</a></td>
|
||||||
|
<td> Free a match context</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match_data_create.html">pcre2_match_data_create</a></td>
|
||||||
|
<td> Create a match data block</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match_data_create_from_pattern.html">pcre2_match_data_create_from_pattern</a></td>
|
||||||
|
<td> Create a match data block getting size from pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_match_data_free.html">pcre2_match_data_free</a></td>
|
||||||
|
<td> Free a match data block</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_pattern_convert.html">pcre2_pattern_convert</a></td>
|
||||||
|
<td> Experimental foreign pattern converter</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_pattern_info.html">pcre2_pattern_info</a></td>
|
||||||
|
<td> Extract information about a pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_serialize_decode.html">pcre2_serialize_decode</a></td>
|
||||||
|
<td> Decode serialized compiled patterns</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_serialize_encode.html">pcre2_serialize_encode</a></td>
|
||||||
|
<td> Serialize compiled patterns for save/restore</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_serialize_free.html">pcre2_serialize_free</a></td>
|
||||||
|
<td> Free serialized compiled patterns</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_serialize_get_number_of_codes.html">pcre2_serialize_get_number_of_codes</a></td>
|
||||||
|
<td> Get number of serialized compiled patterns</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_bsr.html">pcre2_set_bsr</a></td>
|
||||||
|
<td> Set \R convention</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_callout.html">pcre2_set_callout</a></td>
|
||||||
|
<td> Set up a callout function</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_character_tables.html">pcre2_set_character_tables</a></td>
|
||||||
|
<td> Set character tables</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_compile_extra_options.html">pcre2_set_compile_extra_options</a></td>
|
||||||
|
<td> Set compile time extra options</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_compile_recursion_guard.html">pcre2_set_compile_recursion_guard</a></td>
|
||||||
|
<td> Set up a compile recursion guard function</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_depth_limit.html">pcre2_set_depth_limit</a></td>
|
||||||
|
<td> Set the match backtracking depth limit</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_glob_escape.html">pcre2_set_glob_escape</a></td>
|
||||||
|
<td> Set glob escape character</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_glob_separator.html">pcre2_set_glob_separator</a></td>
|
||||||
|
<td> Set glob separator character</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_heap_limit.html">pcre2_set_heap_limit</a></td>
|
||||||
|
<td> Set the match backtracking heap limit</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_match_limit.html">pcre2_set_match_limit</a></td>
|
||||||
|
<td> Set the match limit</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_max_pattern_compiled_length.html">pcre2_set_max_pattern_compiled_length</a></td>
|
||||||
|
<td> Set the maximum length of a compiled pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_max_pattern_length.html">pcre2_set_max_pattern_length</a></td>
|
||||||
|
<td> Set the maximum length of a pattern</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_max_varlookbehind.html">pcre2_set_max_varlookbehind</a></td>
|
||||||
|
<td> Set the maximum match length for a variable-length lookbehind</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_newline.html">pcre2_set_newline</a></td>
|
||||||
|
<td> Set the newline convention</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_offset_limit.html">pcre2_set_offset_limit</a></td>
|
||||||
|
<td> Set the offset limit</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_optimize.html">pcre2_set_optimize</a></td>
|
||||||
|
<td> Set an optimization directive</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_parens_nest_limit.html">pcre2_set_parens_nest_limit</a></td>
|
||||||
|
<td> Set the parentheses nesting limit</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_recursion_limit.html">pcre2_set_recursion_limit</a></td>
|
||||||
|
<td> Obsolete: use pcre2_set_depth_limit</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_recursion_memory_management.html">pcre2_set_recursion_memory_management</a></td>
|
||||||
|
<td> Obsolete function that (from 10.30 onwards) does nothing</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_substitute_callout.html">pcre2_set_substitute_callout</a></td>
|
||||||
|
<td> Set a substitution callout function</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_set_substitute_case_callout.html">pcre2_set_substitute_case_callout</a></td>
|
||||||
|
<td> Set a substitution case callout function</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substitute.html">pcre2_substitute</a></td>
|
||||||
|
<td> Match a compiled pattern to a subject string and do
|
||||||
|
substitutions</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_copy_byname.html">pcre2_substring_copy_byname</a></td>
|
||||||
|
<td> Extract named substring into given buffer</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_copy_bynumber.html">pcre2_substring_copy_bynumber</a></td>
|
||||||
|
<td> Extract numbered substring into given buffer</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_free.html">pcre2_substring_free</a></td>
|
||||||
|
<td> Free extracted substring</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_get_byname.html">pcre2_substring_get_byname</a></td>
|
||||||
|
<td> Extract named substring into new memory</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_get_bynumber.html">pcre2_substring_get_bynumber</a></td>
|
||||||
|
<td> Extract numbered substring into new memory</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_length_byname.html">pcre2_substring_length_byname</a></td>
|
||||||
|
<td> Find length of named substring</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_length_bynumber.html">pcre2_substring_length_bynumber</a></td>
|
||||||
|
<td> Find length of numbered substring</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_list_free.html">pcre2_substring_list_free</a></td>
|
||||||
|
<td> Free list of extracted substrings</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_list_get.html">pcre2_substring_list_get</a></td>
|
||||||
|
<td> Extract all substrings into new memory</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_nametable_scan.html">pcre2_substring_nametable_scan</a></td>
|
||||||
|
<td> Find table entries for given string name</td></tr>
|
||||||
|
|
||||||
|
<tr><td><a href="pcre2_substring_number_from_name.html">pcre2_substring_number_from_name</a></td>
|
||||||
|
<td> Convert captured string name to number</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</html>
|
||||||
|
|
||||||
102
3rd/pcre2/doc/html/pcre2-config.html
Normal file
102
3rd/pcre2/doc/html/pcre2-config.html
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2-config specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2-config man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li><a name="TOC1" href="#SEC1">SYNOPSIS</a>
|
||||||
|
<li><a name="TOC2" href="#SEC2">DESCRIPTION</a>
|
||||||
|
<li><a name="TOC3" href="#SEC3">OPTIONS</a>
|
||||||
|
<li><a name="TOC4" href="#SEC4">SEE ALSO</a>
|
||||||
|
<li><a name="TOC5" href="#SEC5">AUTHOR</a>
|
||||||
|
<li><a name="TOC6" href="#SEC6">REVISION</a>
|
||||||
|
</ul>
|
||||||
|
<br><a name="SEC1" href="#TOC1">SYNOPSIS</a><br>
|
||||||
|
<P>
|
||||||
|
<b>pcre2-config [--prefix] [--exec-prefix] [--version]</b>
|
||||||
|
<b> [--libs8] [--libs16] [--libs32] [--libs-posix]</b>
|
||||||
|
<b> [--cflags] [--cflags-posix]</b>
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC2" href="#TOC1">DESCRIPTION</a><br>
|
||||||
|
<P>
|
||||||
|
<b>pcre2-config</b> returns the configuration of the installed PCRE2 libraries
|
||||||
|
and the options required to compile a program to use them. Some of the options
|
||||||
|
apply only to the 8-bit, or 16-bit, or 32-bit libraries, respectively, and are
|
||||||
|
not available for libraries that have not been built. If an unavailable option
|
||||||
|
is encountered, the "usage" information is output.
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC3" href="#TOC1">OPTIONS</a><br>
|
||||||
|
<P>
|
||||||
|
<b>--prefix</b>
|
||||||
|
Writes the directory prefix used in the PCRE2 installation for architecture
|
||||||
|
independent files (<i>/usr</i> on many systems, <i>/usr/local</i> on some
|
||||||
|
systems) to the standard output.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--exec-prefix</b>
|
||||||
|
Writes the directory prefix used in the PCRE2 installation for architecture
|
||||||
|
dependent files (normally the same as <b>--prefix</b>) to the standard output.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--version</b>
|
||||||
|
Writes the version number of the installed PCRE2 libraries to the standard
|
||||||
|
output.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--libs8</b>
|
||||||
|
Writes to the standard output the command line options required to link
|
||||||
|
with the 8-bit PCRE2 library (<b>-lpcre2-8</b> on many systems).
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--libs16</b>
|
||||||
|
Writes to the standard output the command line options required to link
|
||||||
|
with the 16-bit PCRE2 library (<b>-lpcre2-16</b> on many systems).
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--libs32</b>
|
||||||
|
Writes to the standard output the command line options required to link
|
||||||
|
with the 32-bit PCRE2 library (<b>-lpcre2-32</b> on many systems).
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--libs-posix</b>
|
||||||
|
Writes to the standard output the command line options required to link with
|
||||||
|
PCRE2's POSIX API wrapper library (<b>-lpcre2-posix</b> <b>-lpcre2-8</b> on many
|
||||||
|
systems).
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--cflags</b>
|
||||||
|
Writes to the standard output the command line options required to compile
|
||||||
|
files that use PCRE2 (this may include some <b>-I</b> options, but is blank on
|
||||||
|
many systems).
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>--cflags-posix</b>
|
||||||
|
Writes to the standard output the command line options required to compile
|
||||||
|
files that use PCRE2's POSIX API wrapper library (this may include some
|
||||||
|
<b>-I</b> options, but is blank on many systems).
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC4" href="#TOC1">SEE ALSO</a><br>
|
||||||
|
<P>
|
||||||
|
<b>pcre2(3)</b>
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC5" href="#TOC1">AUTHOR</a><br>
|
||||||
|
<P>
|
||||||
|
This manual page was originally written by Mark Baker for the Debian GNU/Linux
|
||||||
|
system. It has been subsequently revised as a generic PCRE2 man page.
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC6" href="#TOC1">REVISION</a><br>
|
||||||
|
<P>
|
||||||
|
Last updated: 28 September 2014
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
214
3rd/pcre2/doc/html/pcre2.html
Normal file
214
3rd/pcre2/doc/html/pcre2.html
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2 specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2 man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<ul>
|
||||||
|
<li><a name="TOC1" href="#SEC1">INTRODUCTION</a>
|
||||||
|
<li><a name="TOC2" href="#SEC2">SECURITY CONSIDERATIONS</a>
|
||||||
|
<li><a name="TOC3" href="#SEC3">USER DOCUMENTATION</a>
|
||||||
|
<li><a name="TOC4" href="#SEC4">AUTHORS</a>
|
||||||
|
<li><a name="TOC5" href="#SEC5">REVISION</a>
|
||||||
|
</ul>
|
||||||
|
<br><a name="SEC1" href="#TOC1">INTRODUCTION</a><br>
|
||||||
|
<P>
|
||||||
|
PCRE2 is the name used for a revised API for the PCRE library, which is a set
|
||||||
|
of functions, written in C, that implement regular expression pattern matching
|
||||||
|
using the same syntax and semantics as Perl, with just a few differences. After
|
||||||
|
nearly two decades, the limitations of the original API were making development
|
||||||
|
increasingly difficult. The new API is more extensible, and it was simplified
|
||||||
|
by abolishing the separate "study" optimizing function; in PCRE2, patterns are
|
||||||
|
automatically optimized where possible. Since forking from PCRE1, the code has
|
||||||
|
been extensively refactored and new features introduced. The old library is now
|
||||||
|
obsolete and is no longer maintained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
As well as Perl-style regular expression patterns, some features that appeared
|
||||||
|
in Python and the original PCRE before they appeared in Perl are available
|
||||||
|
using the Python syntax. There is also some support for one or two .NET and
|
||||||
|
Oniguruma syntax items, and there are options for requesting some minor changes
|
||||||
|
that give better ECMAScript (aka JavaScript) compatibility.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The source code for PCRE2 can be compiled to support strings of 8-bit, 16-bit,
|
||||||
|
or 32-bit code units, which means that up to three separate libraries may be
|
||||||
|
installed, one for each code unit size. The size of code unit is not related to
|
||||||
|
the bit size of the underlying hardware. In a 64-bit environment that also
|
||||||
|
supports 32-bit applications, versions of PCRE2 that are compiled in both
|
||||||
|
64-bit and 32-bit modes may be needed.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The original work to extend PCRE to 16-bit and 32-bit code units was done by
|
||||||
|
Zoltan Herczeg and Christian Persch, respectively. In all three cases, strings
|
||||||
|
can be interpreted either as one character per code unit, or as UTF-encoded
|
||||||
|
Unicode, with support for Unicode general category properties. Unicode support
|
||||||
|
is optional at build time (but is the default). However, processing strings as
|
||||||
|
UTF code units must be enabled explicitly at run time. The version of Unicode
|
||||||
|
in use can be discovered by running
|
||||||
|
<pre>
|
||||||
|
pcre2test -C
|
||||||
|
</PRE>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The three libraries contain identical sets of functions, with names ending in
|
||||||
|
_8, _16, or _32, respectively (for example, <b>pcre2_compile_8()</b>). However,
|
||||||
|
by defining PCRE2_CODE_UNIT_WIDTH to be 8, 16, or 32, a program that uses just
|
||||||
|
one code unit width can be written using generic names such as
|
||||||
|
<b>pcre2_compile()</b>, and the documentation is written assuming that this is
|
||||||
|
the case.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
In addition to the Perl-compatible matching function, PCRE2 contains an
|
||||||
|
alternative function that matches the same compiled patterns in a different
|
||||||
|
way. In certain circumstances, the alternative function has some advantages.
|
||||||
|
For a discussion of the two matching algorithms, see the
|
||||||
|
<a href="pcre2matching.html"><b>pcre2matching</b></a>
|
||||||
|
page.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
Details of exactly which Perl regular expression features are and are not
|
||||||
|
supported by PCRE2 are given in separate documents. See the
|
||||||
|
<a href="pcre2pattern.html"><b>pcre2pattern</b></a>
|
||||||
|
and
|
||||||
|
<a href="pcre2compat.html"><b>pcre2compat</b></a>
|
||||||
|
pages. There is a syntax summary in the
|
||||||
|
<a href="pcre2syntax.html"><b>pcre2syntax</b></a>
|
||||||
|
page.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
Some features of PCRE2 can be included, excluded, or changed when the library
|
||||||
|
is built. The
|
||||||
|
<a href="pcre2_config.html"><b>pcre2_config()</b></a>
|
||||||
|
function makes it possible for a client to discover which features are
|
||||||
|
available. The features themselves are described in the
|
||||||
|
<a href="pcre2build.html"><b>pcre2build</b></a>
|
||||||
|
page. Documentation about building PCRE2 for various operating systems can be
|
||||||
|
found in the
|
||||||
|
<a href="README.txt"><b>README</b></a>
|
||||||
|
and
|
||||||
|
<a href="NON-AUTOTOOLS-BUILD.txt"><b>NON-AUTOTOOLS_BUILD</b></a>
|
||||||
|
files in the source distribution.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The libraries contains a number of undocumented internal functions and data
|
||||||
|
tables that are used by more than one of the exported external functions, but
|
||||||
|
which are not intended for use by external callers. Their names all begin with
|
||||||
|
"_pcre2", which hopefully will not provoke any name clashes. In some
|
||||||
|
environments, it is possible to control which external symbols are exported
|
||||||
|
when a shared library is built, and in these cases the undocumented symbols are
|
||||||
|
not exported.
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC2" href="#TOC1">SECURITY CONSIDERATIONS</a><br>
|
||||||
|
<P>
|
||||||
|
If you are using PCRE2 in a non-UTF application that permits users to supply
|
||||||
|
arbitrary patterns for compilation, you should be aware of a feature that
|
||||||
|
allows users to turn on UTF support from within a pattern. For example, an
|
||||||
|
8-bit pattern that begins with "(*UTF)" turns on UTF-8 mode, which interprets
|
||||||
|
patterns and subjects as strings of UTF-8 code units instead of individual
|
||||||
|
8-bit characters. This causes both the pattern and any data against which it is
|
||||||
|
matched to be checked for UTF-8 validity. If the data string is very long, such
|
||||||
|
a check might use sufficiently many resources as to cause your application to
|
||||||
|
lose performance.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
One way of guarding against this possibility is to use the
|
||||||
|
<b>pcre2_pattern_info()</b> function to check the compiled pattern's options for
|
||||||
|
PCRE2_UTF. Alternatively, you can set the PCRE2_NEVER_UTF option when calling
|
||||||
|
<b>pcre2_compile()</b>. This causes a compile time error if the pattern contains
|
||||||
|
a UTF-setting sequence.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The use of Unicode properties for character types such as \d can also be
|
||||||
|
enabled from within the pattern, by specifying "(*UCP)". This feature can be
|
||||||
|
disallowed by setting the PCRE2_NEVER_UCP option.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If your application is one that supports UTF, be aware that validity checking
|
||||||
|
can take time. If the same data string is to be matched many times, you can use
|
||||||
|
the PCRE2_NO_UTF_CHECK option for the second and subsequent matches to avoid
|
||||||
|
running redundant checks.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The use of the \C escape sequence in a UTF-8 or UTF-16 pattern can lead to
|
||||||
|
problems, because it may leave the current matching point in the middle of a
|
||||||
|
multi-code-unit character. The PCRE2_NEVER_BACKSLASH_C option can be used by an
|
||||||
|
application to lock out the use of \C, causing a compile-time error if it is
|
||||||
|
encountered. It is also possible to build PCRE2 with the use of \C permanently
|
||||||
|
disabled.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
Another way that performance can be hit is by running a pattern that has a very
|
||||||
|
large search tree against a string that will never match. Nested unlimited
|
||||||
|
repeats in a pattern are a common example. PCRE2 provides some protection
|
||||||
|
against this: see the <b>pcre2_set_match_limit()</b> function in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page. There is a similar function called <b>pcre2_set_depth_limit()</b> that can
|
||||||
|
be used to restrict the amount of memory that is used.
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC3" href="#TOC1">USER DOCUMENTATION</a><br>
|
||||||
|
<P>
|
||||||
|
The user documentation for PCRE2 comprises a number of different sections. In
|
||||||
|
the "man" format, each of these is a separate "man page". In the HTML format,
|
||||||
|
each is a separate page, linked from the index page. In the plain text format,
|
||||||
|
the descriptions of the <b>pcre2grep</b> and <b>pcre2test</b> programs are in
|
||||||
|
files called <b>pcre2grep.txt</b> and <b>pcre2test.txt</b>, respectively. The
|
||||||
|
remaining sections, except for the <b>pcre2demo</b> section (which is a program
|
||||||
|
listing), and the short pages for individual functions, are concatenated in
|
||||||
|
<b>pcre2.txt</b>, for ease of searching. The sections are as follows:
|
||||||
|
<pre>
|
||||||
|
pcre2 this document
|
||||||
|
pcre2-config show PCRE2 installation configuration information
|
||||||
|
pcre2api details of PCRE2's native C API
|
||||||
|
pcre2build building PCRE2
|
||||||
|
pcre2callout details of the pattern callout feature
|
||||||
|
pcre2compat discussion of Perl compatibility
|
||||||
|
pcre2convert details of pattern conversion functions
|
||||||
|
pcre2demo a demonstration C program that uses PCRE2
|
||||||
|
pcre2grep description of the <b>pcre2grep</b> command (8-bit only)
|
||||||
|
pcre2jit discussion of just-in-time optimization support
|
||||||
|
pcre2limits details of size and other limits
|
||||||
|
pcre2matching discussion of the two matching algorithms
|
||||||
|
pcre2partial details of the partial matching facility
|
||||||
|
pcre2pattern syntax and semantics of supported regular expression patterns
|
||||||
|
pcre2perform discussion of performance issues
|
||||||
|
pcre2posix the POSIX-compatible C API for the 8-bit library
|
||||||
|
pcre2sample discussion of the pcre2demo program
|
||||||
|
pcre2serialize details of pattern serialization
|
||||||
|
pcre2syntax quick syntax reference
|
||||||
|
pcre2test description of the <b>pcre2test</b> command
|
||||||
|
pcre2unicode discussion of Unicode and UTF support
|
||||||
|
</pre>
|
||||||
|
In the "man" and HTML formats, there is also a short page for each C library
|
||||||
|
function, listing its arguments and results.
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC4" href="#TOC1">AUTHORS</a><br>
|
||||||
|
<P>
|
||||||
|
The current maintainers of PCRE2 are Nicholas Wilson and Zoltan Herczeg.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
PCRE2 was written by Philip Hazel, of the University Computing Service,
|
||||||
|
Cambridge, England. Many others have also contributed.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
To contact the maintainers, please use the GitHub issues tracker or PCRE2
|
||||||
|
mailing list, as described at the project page:
|
||||||
|
<a href="https://github.com/PCRE2Project/pcre2">https://github.com/PCRE2Project/pcre2</a>
|
||||||
|
</P>
|
||||||
|
<br><a name="SEC5" href="#TOC1">REVISION</a><br>
|
||||||
|
<P>
|
||||||
|
Last updated: 18 December 2024
|
||||||
|
<br>
|
||||||
|
Copyright © 1997-2021 University of Cambridge.
|
||||||
|
<br>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
63
3rd/pcre2/doc/html/pcre2_callout_enumerate.html
Normal file
63
3rd/pcre2/doc/html/pcre2_callout_enumerate.html
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_callout_enumerate specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_callout_enumerate man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_callout_enumerate(const pcre2_code *<i>code</i>,</b>
|
||||||
|
<b> int (*<i>callback</i>)(pcre2_callout_enumerate_block *, void *),</b>
|
||||||
|
<b> void *<i>callout_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function scans a compiled regular expression and calls the <i>callback()</i>
|
||||||
|
function for each callout within the pattern. The yield of the function is zero
|
||||||
|
for success and non-zero otherwise. The arguments are:
|
||||||
|
<pre>
|
||||||
|
<i>code</i> Points to the compiled pattern
|
||||||
|
<i>callback</i> The callback function
|
||||||
|
<i>callout_data</i> User data that is passed to the callback
|
||||||
|
</pre>
|
||||||
|
The <i>callback()</i> function is passed a pointer to a data block containing
|
||||||
|
the following fields (not necessarily in this order):
|
||||||
|
<pre>
|
||||||
|
uint32_t <i>version</i> Block version number
|
||||||
|
uint32_t <i>callout_number</i> Number for numbered callouts
|
||||||
|
PCRE2_SIZE <i>pattern_position</i> Offset to next item in pattern
|
||||||
|
PCRE2_SIZE <i>next_item_length</i> Length of next item in pattern
|
||||||
|
PCRE2_SIZE <i>callout_string_offset</i> Offset to string within pattern
|
||||||
|
PCRE2_SIZE <i>callout_string_length</i> Length of callout string
|
||||||
|
PCRE2_SPTR <i>callout_string</i> Points to callout string or is NULL
|
||||||
|
</pre>
|
||||||
|
The second argument passed to the <b>callback()</b> function is the callout data
|
||||||
|
that was passed to <b>pcre2_callout_enumerate()</b>. The <b>callback()</b>
|
||||||
|
function must return zero for success. Any other value causes the pattern scan
|
||||||
|
to stop, with the value being passed back as the result of
|
||||||
|
<b>pcre2_callout_enumerate()</b>.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
43
3rd/pcre2/doc/html/pcre2_code_copy.html
Normal file
43
3rd/pcre2/doc/html/pcre2_code_copy.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_code_copy specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_code_copy man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_code *pcre2_code_copy(const pcre2_code *<i>code</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function makes a copy of the memory used for a compiled pattern, excluding
|
||||||
|
any memory used by the JIT compiler. Without a subsequent call to
|
||||||
|
<b>pcre2_jit_compile()</b>, the copy can be used only for non-JIT matching. The
|
||||||
|
pointer to the character tables is copied, not the tables themselves (see
|
||||||
|
<b>pcre2_code_copy_with_tables()</b>). The yield of the function is NULL if
|
||||||
|
<i>code</i> is NULL or if sufficient memory cannot be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
44
3rd/pcre2/doc/html/pcre2_code_copy_with_tables.html
Normal file
44
3rd/pcre2/doc/html/pcre2_code_copy_with_tables.html
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_code_copy_with_tables specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_code_copy_with_tables man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_code *pcre2_code_copy_with_tables(const pcre2_code *<i>code</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function makes a copy of the memory used for a compiled pattern, excluding
|
||||||
|
any memory used by the JIT compiler. Without a subsequent call to
|
||||||
|
<b>pcre2_jit_compile()</b>, the copy can be used only for non-JIT matching.
|
||||||
|
Unlike <b>pcre2_code_copy()</b>, a separate copy of the character tables is also
|
||||||
|
made, with the new code pointing to it. This memory will be automatically freed
|
||||||
|
when <b>pcre2_code_free()</b> is called. The yield of the function is NULL if
|
||||||
|
<i>code</i> is NULL or if sufficient memory cannot be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_code_free.html
Normal file
42
3rd/pcre2/doc/html/pcre2_code_free.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_code_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_code_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_code_free(pcre2_code *<i>code</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
If <i>code</i> is NULL, this function does nothing. Otherwise, <i>code</i> must
|
||||||
|
point to a compiled pattern. This function frees its memory, including any
|
||||||
|
memory used by the JIT compiler. If the compiled pattern was created by a call
|
||||||
|
to <b>pcre2_code_copy_with_tables()</b>, the memory for the character tables is
|
||||||
|
also freed.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
120
3rd/pcre2/doc/html/pcre2_compile.html
Normal file
120
3rd/pcre2/doc/html/pcre2_compile.html
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_compile specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_compile man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_code *pcre2_compile(PCRE2_SPTR <i>pattern</i>, PCRE2_SIZE <i>length</i>,</b>
|
||||||
|
<b> uint32_t <i>options</i>, int *<i>errorcode</i>, PCRE2_SIZE *<i>erroroffset,</i></b>
|
||||||
|
<b> pcre2_compile_context *<i>ccontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function compiles a regular expression pattern into an internal form. Its
|
||||||
|
arguments are:
|
||||||
|
<pre>
|
||||||
|
<i>pattern</i> A string containing expression to be compiled
|
||||||
|
<i>length</i> The length of the string or PCRE2_ZERO_TERMINATED
|
||||||
|
<i>options</i> Primary option bits
|
||||||
|
<i>errorcode</i> Where to put an error code
|
||||||
|
<i>erroffset</i> Where to put an error offset
|
||||||
|
<i>ccontext</i> Pointer to a compile context or NULL
|
||||||
|
</pre>
|
||||||
|
The length of the pattern and any error offset that is returned are in code
|
||||||
|
units, not characters. A NULL pattern with zero length is treated as an empty
|
||||||
|
string. A compile context is needed only if you want to provide custom memory
|
||||||
|
allocation functions, or to provide an external function for system stack size
|
||||||
|
checking (see <b>pcre2_set_compile_recursion_guard()</b>), or to change one or
|
||||||
|
more of these parameters:
|
||||||
|
<pre>
|
||||||
|
What \R matches (Unicode newlines, or CR, LF, CRLF only);
|
||||||
|
PCRE2's character tables;
|
||||||
|
The newline character sequence;
|
||||||
|
The compile time nested parentheses limit;
|
||||||
|
The maximum pattern length (in code units) that is allowed;
|
||||||
|
The additional options bits.
|
||||||
|
</pre>
|
||||||
|
The primary option bits are:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ANCHORED Force pattern anchoring
|
||||||
|
PCRE2_ALLOW_EMPTY_CLASS Allow empty classes
|
||||||
|
PCRE2_ALT_BSUX Alternative handling of \u, \U, and \x
|
||||||
|
PCRE2_ALT_CIRCUMFLEX Alternative handling of ^ in multiline mode
|
||||||
|
PCRE2_ALT_EXTENDED_CLASS Alternative extended character class syntax
|
||||||
|
PCRE2_ALT_VERBNAMES Process backslashes in verb names
|
||||||
|
PCRE2_AUTO_CALLOUT Compile automatic callouts
|
||||||
|
PCRE2_CASELESS Do caseless matching
|
||||||
|
PCRE2_DOLLAR_ENDONLY $ not to match newline at end
|
||||||
|
PCRE2_DOTALL . matches anything including NL
|
||||||
|
PCRE2_DUPNAMES Allow duplicate names for subpatterns
|
||||||
|
PCRE2_ENDANCHORED Pattern can match only at end of subject
|
||||||
|
PCRE2_EXTENDED Ignore white space and # comments
|
||||||
|
PCRE2_FIRSTLINE Force matching to be before newline
|
||||||
|
PCRE2_LITERAL Pattern characters are all literal
|
||||||
|
PCRE2_MATCH_INVALID_UTF Enable support for matching invalid UTF
|
||||||
|
PCRE2_MATCH_UNSET_BACKREF Match unset backreferences
|
||||||
|
PCRE2_MULTILINE ^ and $ match newlines within data
|
||||||
|
PCRE2_NEVER_BACKSLASH_C Lock out the use of \C in patterns
|
||||||
|
PCRE2_NEVER_UCP Lock out PCRE2_UCP, e.g. via (*UCP)
|
||||||
|
PCRE2_NEVER_UTF Lock out PCRE2_UTF, e.g. via (*UTF)
|
||||||
|
PCRE2_NO_AUTO_CAPTURE Disable numbered capturing paren-
|
||||||
|
theses (named ones available)
|
||||||
|
PCRE2_NO_AUTO_POSSESS Disable auto-possessification
|
||||||
|
PCRE2_NO_DOTSTAR_ANCHOR Disable automatic anchoring for .*
|
||||||
|
PCRE2_NO_START_OPTIMIZE Disable match-time start optimizations
|
||||||
|
PCRE2_NO_UTF_CHECK Do not check the pattern for UTF validity
|
||||||
|
(only relevant if PCRE2_UTF is set)
|
||||||
|
PCRE2_UCP Use Unicode properties for \d, \w, etc.
|
||||||
|
PCRE2_UNGREEDY Invert greediness of quantifiers
|
||||||
|
PCRE2_USE_OFFSET_LIMIT Enable offset limit for unanchored matching
|
||||||
|
PCRE2_UTF Treat pattern and subjects as UTF strings
|
||||||
|
</pre>
|
||||||
|
PCRE2 must be built with Unicode support (the default) in order to use
|
||||||
|
PCRE2_UTF, PCRE2_UCP and related options.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
Additional options may be set in the compile context via the
|
||||||
|
<a href="pcre2_set_compile_extra_options.html"><b>pcre2_set_compile_extra_options</b></a>
|
||||||
|
function.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If either of <i>errorcode</i> or <i>erroroffset</i> is NULL, the function returns
|
||||||
|
NULL immediately. Otherwise, the yield of this function is a pointer to a
|
||||||
|
private data structure that contains the compiled pattern, or NULL if an error
|
||||||
|
was detected. In the error case, a text error message can be obtained by
|
||||||
|
passing the value returned via the <i>errorcode</i> argument to the
|
||||||
|
<b>pcre2_get_error_message()</b> function. The offset (in code units) where the
|
||||||
|
error was encountered is returned via the <i>erroroffset</i> argument.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If there is no error, the value passed via <i>errorcode</i> returns the message
|
||||||
|
"no error" if passed to <b>pcre2_get_error_message()</b>, and the value passed
|
||||||
|
via <i>erroroffset</i> is zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API, with more detail on
|
||||||
|
each option, in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page, and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
41
3rd/pcre2/doc/html/pcre2_compile_context_copy.html
Normal file
41
3rd/pcre2/doc/html/pcre2_compile_context_copy.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_compile_context_copy specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_compile_context_copy man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_compile_context *pcre2_compile_context_copy(</b>
|
||||||
|
<b> pcre2_compile_context *<i>ccontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function makes a new copy of a compile context, using the memory
|
||||||
|
allocation function that was used for the original context. The result is NULL
|
||||||
|
if the memory cannot be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_compile_context_create.html
Normal file
42
3rd/pcre2/doc/html/pcre2_compile_context_create.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_compile_context_create specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_compile_context_create man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_compile_context *pcre2_compile_context_create(</b>
|
||||||
|
<b> pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function creates and initializes a new compile context. If its argument is
|
||||||
|
NULL, <b>malloc()</b> is used to get the necessary memory; otherwise the memory
|
||||||
|
allocation function within the general context is used. The result is NULL if
|
||||||
|
the memory could not be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
41
3rd/pcre2/doc/html/pcre2_compile_context_free.html
Normal file
41
3rd/pcre2/doc/html/pcre2_compile_context_free.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_compile_context_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_compile_context_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_compile_context_free(pcre2_compile_context *<i>ccontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function frees the memory occupied by a compile context, using the memory
|
||||||
|
freeing function from the general context with which it was created, or
|
||||||
|
<b>free()</b> if that was not set. If the argument is NULL, the function returns
|
||||||
|
immediately without doing anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
84
3rd/pcre2/doc/html/pcre2_config.html
Normal file
84
3rd/pcre2/doc/html/pcre2_config.html
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_config specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_config man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_config(uint32_t <i>what</i>, void *<i>where</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function makes it possible for a client program to find out which optional
|
||||||
|
features are available in the version of the PCRE2 library it is using. The
|
||||||
|
arguments are as follows:
|
||||||
|
<pre>
|
||||||
|
<i>what</i> A code specifying what information is required
|
||||||
|
<i>where</i> Points to where to put the information
|
||||||
|
</pre>
|
||||||
|
If <i>where</i> is NULL, the function returns the amount of memory needed for
|
||||||
|
the requested information. When the information is a string, the value is in
|
||||||
|
code units; for other types of data it is in bytes.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If <b>where</b> is not NULL, for PCRE2_CONFIG_JITTARGET,
|
||||||
|
PCRE2_CONFIG_UNICODE_VERSION, and PCRE2_CONFIG_VERSION it must point to a
|
||||||
|
buffer that is large enough to hold the string. For all other codes it must
|
||||||
|
point to a uint32_t integer variable. The available codes are:
|
||||||
|
<pre>
|
||||||
|
PCRE2_CONFIG_BSR Indicates what \R matches by default:
|
||||||
|
PCRE2_BSR_UNICODE
|
||||||
|
PCRE2_BSR_ANYCRLF
|
||||||
|
PCRE2_CONFIG_COMPILED_WIDTHS Which of 8/16/32 support was compiled
|
||||||
|
PCRE2_CONFIG_DEPTHLIMIT Default backtracking depth limit
|
||||||
|
PCRE2_CONFIG_HEAPLIMIT Default heap memory limit
|
||||||
|
PCRE2_CONFIG_JIT Availability of just-in-time compiler support (1=yes 0=no)
|
||||||
|
PCRE2_CONFIG_JITTARGET Information (a string) about the target architecture for the JIT compiler
|
||||||
|
PCRE2_CONFIG_LINKSIZE Configured internal link size (2, 3, 4)
|
||||||
|
PCRE2_CONFIG_MATCHLIMIT Default internal resource limit
|
||||||
|
PCRE2_CONFIG_NEVER_BACKSLASH_C Whether or not \C is disabled
|
||||||
|
PCRE2_CONFIG_NEWLINE Code for the default newline sequence:
|
||||||
|
PCRE2_NEWLINE_CR
|
||||||
|
PCRE2_NEWLINE_LF
|
||||||
|
PCRE2_NEWLINE_CRLF
|
||||||
|
PCRE2_NEWLINE_ANY
|
||||||
|
PCRE2_NEWLINE_ANYCRLF
|
||||||
|
PCRE2_NEWLINE_NUL
|
||||||
|
PCRE2_CONFIG_PARENSLIMIT Default parentheses nesting limit
|
||||||
|
PCRE2_CONFIG_RECURSIONLIMIT Obsolete: use PCRE2_CONFIG_DEPTHLIMIT
|
||||||
|
PCRE2_CONFIG_STACKRECURSE Obsolete: always returns 0
|
||||||
|
PCRE2_CONFIG_UNICODE Availability of Unicode support (1=yes 0=no)
|
||||||
|
PCRE2_CONFIG_UNICODE_VERSION The Unicode version (a string)
|
||||||
|
PCRE2_CONFIG_VERSION The PCRE2 version (a string)
|
||||||
|
</pre>
|
||||||
|
The function yields a non-negative value on success or the negative value
|
||||||
|
PCRE2_ERROR_BADOPTION otherwise. This is also the result for the
|
||||||
|
PCRE2_CONFIG_JITTARGET code if JIT support is not available. When a string is
|
||||||
|
requested, the function returns the number of code units used, including the
|
||||||
|
terminating zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_convert_context_copy.html
Normal file
40
3rd/pcre2/doc/html/pcre2_convert_context_copy.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_convert_context_copy specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_convert_context_copy man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_convert_context *pcre2_convert_context_copy(</b>
|
||||||
|
<b> pcre2_convert_context *<i>cvcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It makes a new copy of a convert context, using the memory allocation function
|
||||||
|
that was used for the original context. The result is NULL if the memory cannot
|
||||||
|
be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
41
3rd/pcre2/doc/html/pcre2_convert_context_create.html
Normal file
41
3rd/pcre2/doc/html/pcre2_convert_context_create.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_convert_context_create specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_convert_context_create man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_convert_context *pcre2_convert_context_create(</b>
|
||||||
|
<b> pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It creates and initializes a new convert context. If its argument is
|
||||||
|
NULL, <b>malloc()</b> is used to get the necessary memory; otherwise the memory
|
||||||
|
allocation function within the general context is used. The result is NULL if
|
||||||
|
the memory could not be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_convert_context_free.html
Normal file
40
3rd/pcre2/doc/html/pcre2_convert_context_free.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_convert_context_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_convert_context_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_convert_context_free(pcre2_convert_context *<i>cvcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It frees the memory occupied by a convert context, using the memory
|
||||||
|
freeing function from the general context with which it was created, or
|
||||||
|
<b>free()</b> if that was not set. If the argument is NULL, the function returns
|
||||||
|
immediately without doing anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_converted_pattern_free.html
Normal file
40
3rd/pcre2/doc/html/pcre2_converted_pattern_free.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_converted_pattern_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_converted_pattern_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_converted_pattern_free(PCRE2_UCHAR *<i>converted_pattern</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It frees the memory occupied by a converted pattern that was obtained by
|
||||||
|
calling <b>pcre2_pattern_convert()</b> with arguments that caused it to place
|
||||||
|
the converted pattern into newly obtained heap memory. If the argument is NULL,
|
||||||
|
the function returns immediately without doing anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
86
3rd/pcre2/doc/html/pcre2_dfa_match.html
Normal file
86
3rd/pcre2/doc/html/pcre2_dfa_match.html
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_dfa_match specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_dfa_match man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_dfa_match(const pcre2_code *<i>code</i>, PCRE2_SPTR <i>subject</i>,</b>
|
||||||
|
<b> PCRE2_SIZE <i>length</i>, PCRE2_SIZE <i>startoffset</i>,</b>
|
||||||
|
<b> uint32_t <i>options</i>, pcre2_match_data *<i>match_data</i>,</b>
|
||||||
|
<b> pcre2_match_context *<i>mcontext</i>,</b>
|
||||||
|
<b> int *<i>workspace</i>, PCRE2_SIZE <i>wscount</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function matches a compiled regular expression against a given subject
|
||||||
|
string, using an alternative matching algorithm that scans the subject string
|
||||||
|
just once (except when processing lookaround assertions). This function is
|
||||||
|
<i>not</i> Perl-compatible (the Perl-compatible matching function is
|
||||||
|
<b>pcre2_match()</b>). The arguments for this function are:
|
||||||
|
<pre>
|
||||||
|
<i>code</i> Points to the compiled pattern
|
||||||
|
<i>subject</i> Points to the subject string
|
||||||
|
<i>length</i> Length of the subject string
|
||||||
|
<i>startoffset</i> Offset in the subject at which to start matching
|
||||||
|
<i>options</i> Option bits
|
||||||
|
<i>match_data</i> Points to a match data block, for results
|
||||||
|
<i>mcontext</i> Points to a match context, or is NULL
|
||||||
|
<i>workspace</i> Points to a vector of ints used as working space
|
||||||
|
<i>wscount</i> Number of elements in the vector
|
||||||
|
</pre>
|
||||||
|
The size of output vector needed to contain all the results depends on the
|
||||||
|
number of simultaneous matches, not on the number of parentheses in the
|
||||||
|
pattern. Using <b>pcre2_match_data_create_from_pattern()</b> to create the match
|
||||||
|
data block is therefore not advisable when using this function.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
A match context is needed only if you want to set up a callout function or
|
||||||
|
specify the heap limit or the match or the recursion depth limits. The
|
||||||
|
<i>length</i> and <i>startoffset</i> values are code units, not characters. The
|
||||||
|
options are:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ANCHORED Match only at the first position
|
||||||
|
PCRE2_COPY_MATCHED_SUBJECT
|
||||||
|
On success, make a private subject copy
|
||||||
|
PCRE2_ENDANCHORED Pattern can match only at end of subject
|
||||||
|
PCRE2_NOTBOL Subject is not the beginning of a line
|
||||||
|
PCRE2_NOTEOL Subject is not the end of a line
|
||||||
|
PCRE2_NOTEMPTY An empty string is not a valid match
|
||||||
|
PCRE2_NOTEMPTY_ATSTART An empty string at the start of the subject is not a valid match
|
||||||
|
PCRE2_NO_UTF_CHECK Do not check the subject for UTF validity (only relevant if PCRE2_UTF
|
||||||
|
was set at compile time)
|
||||||
|
PCRE2_PARTIAL_HARD Return PCRE2_ERROR_PARTIAL for a partial match even if there is a full match
|
||||||
|
PCRE2_PARTIAL_SOFT Return PCRE2_ERROR_PARTIAL for a partial match if no full matches are found
|
||||||
|
PCRE2_DFA_RESTART Restart after a partial match
|
||||||
|
PCRE2_DFA_SHORTEST Return only the shortest match
|
||||||
|
</pre>
|
||||||
|
There are restrictions on what may appear in a pattern when using this matching
|
||||||
|
function. Details are given in the
|
||||||
|
<a href="pcre2matching.html"><b>pcre2matching</b></a>
|
||||||
|
documentation. For details of partial matching, see the
|
||||||
|
<a href="pcre2partial.html"><b>pcre2partial</b></a>
|
||||||
|
page. There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_general_context_copy.html
Normal file
42
3rd/pcre2/doc/html/pcre2_general_context_copy.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_general_context_copy specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_general_context_copy man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_general_context *pcre2_general_context_copy(</b>
|
||||||
|
<b> pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function makes a new copy of a general context, using the memory
|
||||||
|
allocation functions in the context, if set, to get the necessary memory.
|
||||||
|
Otherwise <b>malloc()</b> is used. The result is NULL if the memory cannot be
|
||||||
|
obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
44
3rd/pcre2/doc/html/pcre2_general_context_create.html
Normal file
44
3rd/pcre2/doc/html/pcre2_general_context_create.html
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_general_context_create specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_general_context_create man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_general_context *pcre2_general_context_create(</b>
|
||||||
|
<b> void *(*<i>private_malloc</i>)(size_t, void *),</b>
|
||||||
|
<b> void (*<i>private_free</i>)(void *, void *), void *<i>memory_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function creates and initializes a general context. The arguments define
|
||||||
|
custom memory management functions and a data value that is passed to them when
|
||||||
|
they are called. The <b>private_malloc()</b> function is used to get memory for
|
||||||
|
the context. If either of the first two arguments is NULL, the system memory
|
||||||
|
management function is used. The result is NULL if no memory could be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_general_context_free.html
Normal file
40
3rd/pcre2/doc/html/pcre2_general_context_free.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_general_context_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_general_context_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_general_context_free(pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function frees the memory occupied by a general context, using the memory
|
||||||
|
freeing function within the context, if set. If the argument is NULL, the
|
||||||
|
function returns immediately without doing anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
51
3rd/pcre2/doc/html/pcre2_get_error_message.html
Normal file
51
3rd/pcre2/doc/html/pcre2_get_error_message.html
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_error_message specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_error_message man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_get_error_message(int <i>errorcode</i>, PCRE2_UCHAR *<i>buffer</i>,</b>
|
||||||
|
<b> PCRE2_SIZE <i>bufflen</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function provides a textual error message for each PCRE2 error code.
|
||||||
|
Compilation errors are positive numbers; UTF formatting errors and matching
|
||||||
|
errors are negative numbers. The arguments are:
|
||||||
|
<pre>
|
||||||
|
<i>errorcode</i> an error code (positive or negative)
|
||||||
|
<i>buffer</i> where to put the message
|
||||||
|
<i>bufflen</i> the length of the buffer (code units)
|
||||||
|
</pre>
|
||||||
|
The function returns the length of the message in code units, excluding the
|
||||||
|
trailing zero, or the negative error code PCRE2_ERROR_NOMEMORY if the buffer is
|
||||||
|
too small. In this case, the returned message is truncated (but still with a
|
||||||
|
trailing zero). If <i>errorcode</i> does not contain a recognized error code
|
||||||
|
number, the negative value PCRE2_ERROR_BADDATA is returned.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
47
3rd/pcre2/doc/html/pcre2_get_mark.html
Normal file
47
3rd/pcre2/doc/html/pcre2_get_mark.html
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_mark specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_mark man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>PCRE2_SPTR pcre2_get_mark(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
After a call of <b>pcre2_match()</b> that was passed the match block that is
|
||||||
|
this function's argument, this function returns a pointer to the last (*MARK),
|
||||||
|
(*PRUNE), or (*THEN) name that was encountered during the matching process. The
|
||||||
|
name is zero-terminated, and is within the compiled pattern. The length of the
|
||||||
|
name is in the preceding code unit. If no name is available, NULL is returned.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
After a successful match, the name that is returned is the last one on the
|
||||||
|
matching path. After a failed match or a partial match, the last encountered
|
||||||
|
name is returned.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_get_match_data_heapframes_size.html
Normal file
40
3rd/pcre2/doc/html/pcre2_get_match_data_heapframes_size.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_match_data_heapframes_size specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_match_data_heapframes_size man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>PCRE2_SIZE pcre2_get_match_data_heapframes_size(</b>
|
||||||
|
<b> pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function returns the size, in bytes, of the heapframes data block that is
|
||||||
|
owned by its argument.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
39
3rd/pcre2/doc/html/pcre2_get_match_data_size.html
Normal file
39
3rd/pcre2/doc/html/pcre2_get_match_data_size.html
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_match_data_size specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_match_data_size man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>PCRE2_SIZE pcre2_get_match_data_size(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function returns the size, in bytes, of the match data block that is its
|
||||||
|
argument.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
39
3rd/pcre2/doc/html/pcre2_get_ovector_count.html
Normal file
39
3rd/pcre2/doc/html/pcre2_get_ovector_count.html
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_ovector_count specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_ovector_count man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>uint32_t pcre2_get_ovector_count(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function returns the number of pairs of offsets in the ovector that forms
|
||||||
|
part of the given match data block.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_get_ovector_pointer.html
Normal file
40
3rd/pcre2/doc/html/pcre2_get_ovector_pointer.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_ovector_pointer specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_ovector_pointer man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>PCRE2_SIZE *pcre2_get_ovector_pointer(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function returns a pointer to the vector of offsets that forms part of the
|
||||||
|
given match data block. The number of pairs can be found by calling
|
||||||
|
<b>pcre2_get_ovector_count()</b>.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
44
3rd/pcre2/doc/html/pcre2_get_startchar.html
Normal file
44
3rd/pcre2/doc/html/pcre2_get_startchar.html
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_get_startchar specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_get_startchar man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>PCRE2_SIZE pcre2_get_startchar(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
After a successful call of <b>pcre2_match()</b> that was passed the match block
|
||||||
|
that is this function's argument, this function returns the code unit offset of
|
||||||
|
the character at which the successful match started. For a non-partial match,
|
||||||
|
this can be different to the value of <i>ovector[0]</i> if the pattern contains
|
||||||
|
the \K escape sequence. After a partial match, however, this value is always
|
||||||
|
the same as <i>ovector[0]</i> because \K does not affect the result of a
|
||||||
|
partial match.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
74
3rd/pcre2/doc/html/pcre2_jit_compile.html
Normal file
74
3rd/pcre2/doc/html/pcre2_jit_compile.html
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_jit_compile specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_jit_compile man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_jit_compile(pcre2_code *<i>code</i>, uint32_t <i>options</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function requests JIT compilation, which, if the just-in-time compiler is
|
||||||
|
available, further processes a compiled pattern into machine code that executes
|
||||||
|
much faster than the <b>pcre2_match()</b> interpretive matching function. Full
|
||||||
|
details are given in the
|
||||||
|
<a href="pcre2jit.html"><b>pcre2jit</b></a>
|
||||||
|
documentation.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The availability of JIT support can be tested by calling
|
||||||
|
<b>pcre2_compile_jit()</b> with a single option PCRE2_JIT_TEST_ALLOC (the
|
||||||
|
code argument is ignored, so a NULL value is accepted). Such a call
|
||||||
|
returns zero if JIT is available and has a working allocator. Otherwise
|
||||||
|
it returns PCRE2_ERROR_NOMEMORY if JIT is available but cannot allocate
|
||||||
|
executable memory, or PCRE2_ERROR_JIT_UNSUPPORTED if JIT support is not
|
||||||
|
compiled.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
Otherwise, the first argument must be a pointer that was returned by a
|
||||||
|
successful call to <b>pcre2_compile()</b>, and the second must contain one or
|
||||||
|
more of the following bits:
|
||||||
|
<pre>
|
||||||
|
PCRE2_JIT_COMPLETE compile code for full matching
|
||||||
|
PCRE2_JIT_PARTIAL_SOFT compile code for soft partial matching
|
||||||
|
PCRE2_JIT_PARTIAL_HARD compile code for hard partial matching
|
||||||
|
</pre>
|
||||||
|
There is also an obsolete option called PCRE2_JIT_INVALID_UTF, which has been
|
||||||
|
superseded by the <b>pcre2_compile()</b> option PCRE2_MATCH_INVALID_UTF. The old
|
||||||
|
option is deprecated and may be removed in the future.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The yield of the function when called with any of the three options above is 0
|
||||||
|
for success, or a negative error code otherwise. In particular,
|
||||||
|
PCRE2_ERROR_JIT_BADOPTION is returned if JIT is not supported or if an unknown
|
||||||
|
bit is set in <i>options</i>. The function can also return PCRE2_ERROR_NOMEMORY
|
||||||
|
if JIT is unable to allocate executable memory for the compiler, even if it was
|
||||||
|
because of a system security restriction. In a few cases, the function may
|
||||||
|
return with PCRE2_ERROR_JIT_UNSUPPORTED for unsupported features.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
43
3rd/pcre2/doc/html/pcre2_jit_free_unused_memory.html
Normal file
43
3rd/pcre2/doc/html/pcre2_jit_free_unused_memory.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_jit_free_unused_memory specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_jit_free_unused_memory man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_jit_free_unused_memory(pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function frees unused JIT executable memory. The argument is a general
|
||||||
|
context, for custom memory management, or NULL for standard memory management.
|
||||||
|
JIT memory allocation retains some memory in order to improve future JIT
|
||||||
|
compilation speed. In low memory conditions,
|
||||||
|
<b>pcre2_jit_free_unused_memory()</b> can be used to cause this memory to be
|
||||||
|
freed.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
70
3rd/pcre2/doc/html/pcre2_jit_match.html
Normal file
70
3rd/pcre2/doc/html/pcre2_jit_match.html
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_jit_match specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_jit_match man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_jit_match(const pcre2_code *<i>code</i>, PCRE2_SPTR <i>subject</i>,</b>
|
||||||
|
<b> PCRE2_SIZE <i>length</i>, PCRE2_SIZE <i>startoffset</i>,</b>
|
||||||
|
<b> uint32_t <i>options</i>, pcre2_match_data *<i>match_data</i>,</b>
|
||||||
|
<b> pcre2_match_context *<i>mcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function matches a compiled regular expression that has been successfully
|
||||||
|
processed by the JIT compiler against a given subject string, using a matching
|
||||||
|
algorithm that is similar to Perl's. It is a "fast path" interface to JIT, and
|
||||||
|
it bypasses some of the sanity checks that <b>pcre2_match()</b> applies.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
In UTF mode, the subject string is not checked for UTF validity. Unless
|
||||||
|
PCRE2_MATCH_INVALID_UTF was set when the pattern was compiled, passing an
|
||||||
|
invalid UTF string results in undefined behaviour. Your program may crash or
|
||||||
|
loop or give wrong results. In the absence of PCRE2_MATCH_INVALID_UTF you
|
||||||
|
should only call <b>pcre2_jit_match()</b> in UTF mode if you are sure the
|
||||||
|
subject is valid.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The arguments for <b>pcre2_jit_match()</b> are exactly the same as for
|
||||||
|
<a href="pcre2_match.html"><b>pcre2_match()</b>,</a>
|
||||||
|
except that the subject string must be specified with a length;
|
||||||
|
PCRE2_ZERO_TERMINATED is not supported.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The supported options are PCRE2_NOTBOL, PCRE2_NOTEOL, PCRE2_NOTEMPTY,
|
||||||
|
PCRE2_NOTEMPTY_ATSTART, PCRE2_PARTIAL_HARD, and PCRE2_PARTIAL_SOFT. Unsupported
|
||||||
|
options are ignored.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The return values are the same as for <b>pcre2_match()</b> plus
|
||||||
|
PCRE2_ERROR_JIT_BADOPTION if a matching mode (partial or complete) is requested
|
||||||
|
that was not compiled. For details of partial matching, see the
|
||||||
|
<a href="pcre2partial.html"><b>pcre2partial</b></a>
|
||||||
|
page.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the JIT API in the
|
||||||
|
<a href="pcre2jit.html"><b>pcre2jit</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
75
3rd/pcre2/doc/html/pcre2_jit_stack_assign.html
Normal file
75
3rd/pcre2/doc/html/pcre2_jit_stack_assign.html
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_jit_stack_assign specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_jit_stack_assign man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_jit_stack_assign(pcre2_match_context *<i>mcontext</i>,</b>
|
||||||
|
<b> pcre2_jit_callback <i>callback_function</i>, void *<i>callback_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function provides control over the memory used by JIT as a run-time stack
|
||||||
|
when <b>pcre2_match()</b> or <b>pcre2_jit_match()</b> is called with a pattern
|
||||||
|
that has been successfully processed by the JIT compiler. The information that
|
||||||
|
determines which stack is used is put into a match context that is subsequently
|
||||||
|
passed to a matching function. The arguments of this function are:
|
||||||
|
<pre>
|
||||||
|
mcontext a pointer to a match context
|
||||||
|
callback a callback function
|
||||||
|
callback_data a JIT stack or a value to be passed to the callback
|
||||||
|
</PRE>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If <i>mcontext</i> is NULL, the function returns immediately, without doing
|
||||||
|
anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If <i>callback</i> is NULL and <i>callback_data</i> is NULL, an internal 32KiB
|
||||||
|
block on the machine stack is used.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If <i>callback</i> is NULL and <i>callback_data</i> is not NULL,
|
||||||
|
<i>callback_data</i> must be a valid JIT stack, the result of calling
|
||||||
|
<b>pcre2_jit_stack_create()</b>.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If <i>callback</i> not NULL, it is called with <i>callback_data</i> as an
|
||||||
|
argument at the start of matching, in order to set up a JIT stack. If the
|
||||||
|
result is NULL, the internal 32KiB stack is used; otherwise the return value
|
||||||
|
must be a valid JIT stack, the result of calling
|
||||||
|
<b>pcre2_jit_stack_create()</b>.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
You may safely use the same JIT stack for multiple patterns, as long as they
|
||||||
|
are all matched in the same thread. In a multithread application, each thread
|
||||||
|
must use its own JIT stack. For more details, see the
|
||||||
|
<a href="pcre2jit.html"><b>pcre2jit</b></a>
|
||||||
|
page.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
50
3rd/pcre2/doc/html/pcre2_jit_stack_create.html
Normal file
50
3rd/pcre2/doc/html/pcre2_jit_stack_create.html
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_jit_stack_create specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_jit_stack_create man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_jit_stack *pcre2_jit_stack_create(size_t <i>startsize</i>,</b>
|
||||||
|
<b> size_t <i>maxsize</i>, pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is used to create a stack for use by the code compiled by the JIT
|
||||||
|
compiler. The first two arguments are a starting size for the stack, and a
|
||||||
|
maximum size to which it is allowed to grow. The final argument is a general
|
||||||
|
context, for memory allocation functions, or NULL for standard memory
|
||||||
|
allocation. The result can be passed to the JIT run-time code by calling
|
||||||
|
<b>pcre2_jit_stack_assign()</b> to associate the stack with a compiled pattern,
|
||||||
|
which can then be processed by <b>pcre2_match()</b> or <b>pcre2_jit_match()</b>.
|
||||||
|
A maximum stack size of 512KiB to 1MiB should be more than enough for any
|
||||||
|
pattern. If the stack couldn't be allocated or the values passed were not
|
||||||
|
reasonable, NULL will be returned. For more details, see the
|
||||||
|
<a href="pcre2jit.html"><b>pcre2jit</b></a>
|
||||||
|
page.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
43
3rd/pcre2/doc/html/pcre2_jit_stack_free.html
Normal file
43
3rd/pcre2/doc/html/pcre2_jit_stack_free.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_jit_stack_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_jit_stack_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_jit_stack_free(pcre2_jit_stack *<i>jit_stack</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is used to free a JIT stack that was created by
|
||||||
|
<b>pcre2_jit_stack_create()</b> when it is no longer needed. If the argument is
|
||||||
|
NULL, the function returns immediately without doing anything. For more
|
||||||
|
details, see the
|
||||||
|
<a href="pcre2jit.html"><b>pcre2jit</b></a>
|
||||||
|
page.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
48
3rd/pcre2/doc/html/pcre2_maketables.html
Normal file
48
3rd/pcre2/doc/html/pcre2_maketables.html
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_maketables specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_maketables man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>const uint8_t *pcre2_maketables(pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function builds a set of character tables for character code points that
|
||||||
|
are less than 256. These can be passed to <b>pcre2_compile()</b> in a compile
|
||||||
|
context in order to override the internal, built-in tables (which were either
|
||||||
|
defaulted or made by <b>pcre2_maketables()</b> when PCRE2 was compiled). See the
|
||||||
|
<a href="pcre2_set_character_tables.html"><b>pcre2_set_character_tables()</b></a>
|
||||||
|
page. You might want to do this if you are using a non-standard locale.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If the argument is NULL, <b>malloc()</b> is used to get memory for the tables.
|
||||||
|
Otherwise it must point to a general context, which can supply pointers to a
|
||||||
|
custom memory manager. The function yields a pointer to the tables.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
44
3rd/pcre2/doc/html/pcre2_maketables_free.html
Normal file
44
3rd/pcre2/doc/html/pcre2_maketables_free.html
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_maketables_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_maketables_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_maketables_free(pcre2_general_context *<i>gcontext</i>,</b>
|
||||||
|
<b> const uint8_t *<i>tables</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function discards a set of character tables that were created by a call
|
||||||
|
to
|
||||||
|
<a href="pcre2_maketables.html"><b>pcre2_maketables()</b>.</a>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The <i>gcontext</i> parameter should match what was used in that call to
|
||||||
|
account for any custom allocators that might be in use; if it is NULL
|
||||||
|
the system <b>free()</b> is used.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
87
3rd/pcre2/doc/html/pcre2_match.html
Normal file
87
3rd/pcre2/doc/html/pcre2_match.html
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_match(const pcre2_code *<i>code</i>, PCRE2_SPTR <i>subject</i>,</b>
|
||||||
|
<b> PCRE2_SIZE <i>length</i>, PCRE2_SIZE <i>startoffset</i>,</b>
|
||||||
|
<b> uint32_t <i>options</i>, pcre2_match_data *<i>match_data</i>,</b>
|
||||||
|
<b> pcre2_match_context *<i>mcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function matches a compiled regular expression against a given subject
|
||||||
|
string, using a matching algorithm that is similar to Perl's. It returns
|
||||||
|
offsets to what it has matched and to captured substrings via the
|
||||||
|
<b>match_data</b> block, which can be processed by functions with names that
|
||||||
|
start with <b>pcre2_get_ovector_...()</b> or <b>pcre2_substring_...()</b>. The
|
||||||
|
return from <b>pcre2_match()</b> is one more than the highest numbered capturing
|
||||||
|
pair that has been set (for example, 1 if there are no captures), zero if the
|
||||||
|
vector of offsets is too small, or a negative error code for no match and other
|
||||||
|
errors. The function arguments are:
|
||||||
|
<pre>
|
||||||
|
<i>code</i> Points to the compiled pattern
|
||||||
|
<i>subject</i> Points to the subject string
|
||||||
|
<i>length</i> Length of the subject string
|
||||||
|
<i>startoffset</i> Offset in the subject at which to start matching
|
||||||
|
<i>options</i> Option bits
|
||||||
|
<i>match_data</i> Points to a match data block, for results
|
||||||
|
<i>mcontext</i> Points to a match context, or is NULL
|
||||||
|
</pre>
|
||||||
|
A match context is needed only if you want to:
|
||||||
|
<pre>
|
||||||
|
Set up a callout function
|
||||||
|
Set a matching offset limit
|
||||||
|
Change the heap memory limit
|
||||||
|
Change the backtracking match limit
|
||||||
|
Change the backtracking depth limit
|
||||||
|
Set custom memory management specifically for the match
|
||||||
|
</pre>
|
||||||
|
The <i>length</i> and <i>startoffset</i> values are code units, not characters.
|
||||||
|
The length may be given as PCRE2_ZERO_TERMINATED for a subject that is
|
||||||
|
terminated by a binary zero code unit. The options are:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ANCHORED Match only at the first position
|
||||||
|
PCRE2_COPY_MATCHED_SUBJECT
|
||||||
|
On success, make a private subject copy
|
||||||
|
PCRE2_DISABLE_RECURSELOOP_CHECK
|
||||||
|
Only useful in rare cases; use with care
|
||||||
|
PCRE2_ENDANCHORED Pattern can match only at end of subject
|
||||||
|
PCRE2_NOTBOL Subject string is not the beginning of a line
|
||||||
|
PCRE2_NOTEOL Subject string is not the end of a line
|
||||||
|
PCRE2_NOTEMPTY An empty string is not a valid match
|
||||||
|
PCRE2_NOTEMPTY_ATSTART An empty string at the start of the subject is not a valid match
|
||||||
|
PCRE2_NO_JIT Do not use JIT matching
|
||||||
|
PCRE2_NO_UTF_CHECK Do not check the subject for UTF validity (only relevant if PCRE2_UTF
|
||||||
|
was set at compile time)
|
||||||
|
PCRE2_PARTIAL_HARD Return PCRE2_ERROR_PARTIAL for a partial match even if there is a full match
|
||||||
|
PCRE2_PARTIAL_SOFT Return PCRE2_ERROR_PARTIAL for a partial match if no full matches are found
|
||||||
|
</pre>
|
||||||
|
For details of partial matching, see the
|
||||||
|
<a href="pcre2partial.html"><b>pcre2partial</b></a>
|
||||||
|
page. There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
41
3rd/pcre2/doc/html/pcre2_match_context_copy.html
Normal file
41
3rd/pcre2/doc/html/pcre2_match_context_copy.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match_context_copy specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match_context_copy man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_match_context *pcre2_match_context_copy(</b>
|
||||||
|
<b> pcre2_match_context *<i>mcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function makes a new copy of a match context, using the memory
|
||||||
|
allocation function that was used for the original context. The result is NULL
|
||||||
|
if the memory cannot be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_match_context_create.html
Normal file
42
3rd/pcre2/doc/html/pcre2_match_context_create.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match_context_create specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match_context_create man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_match_context *pcre2_match_context_create(</b>
|
||||||
|
<b> pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function creates and initializes a new match context. If its argument is
|
||||||
|
NULL, <b>malloc()</b> is used to get the necessary memory; otherwise the memory
|
||||||
|
allocation function within the general context is used. The result is NULL if
|
||||||
|
the memory could not be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
41
3rd/pcre2/doc/html/pcre2_match_context_free.html
Normal file
41
3rd/pcre2/doc/html/pcre2_match_context_free.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match_context_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match_context_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_match_context_free(pcre2_match_context *<i>mcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function frees the memory occupied by a match context, using the memory
|
||||||
|
freeing function from the general context with which it was created, or
|
||||||
|
<b>free()</b> if that was not set. If the argument is NULL, the function returns
|
||||||
|
immediately without doing anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
50
3rd/pcre2/doc/html/pcre2_match_data_create.html
Normal file
50
3rd/pcre2/doc/html/pcre2_match_data_create.html
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match_data_create specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match_data_create man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_match_data *pcre2_match_data_create(uint32_t <i>ovecsize</i>,</b>
|
||||||
|
<b> pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function creates a new match data block, which is used for holding the
|
||||||
|
result of a match. The first argument specifies the number of pairs of offsets
|
||||||
|
that are required. These form the "output vector" (ovector) within the match
|
||||||
|
data block, and are used to identify the matched string and any captured
|
||||||
|
substrings when matching with <b>pcre2_match()</b>, or a number of different
|
||||||
|
matches at the same point when used with <b>pcre2_dfa_match()</b>. There is
|
||||||
|
always one pair of offsets; if <b>ovecsize</b> is zero, it is treated as one.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The second argument points to a general context, for custom memory management,
|
||||||
|
or is NULL for system memory management. The result of the function is NULL if
|
||||||
|
the memory for the block could not be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
53
3rd/pcre2/doc/html/pcre2_match_data_create_from_pattern.html
Normal file
53
3rd/pcre2/doc/html/pcre2_match_data_create_from_pattern.html
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match_data_create_from_pattern specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match_data_create_from_pattern man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>pcre2_match_data *pcre2_match_data_create_from_pattern(</b>
|
||||||
|
<b> const pcre2_code *<i>code</i>, pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function creates a new match data block for holding the result of a match.
|
||||||
|
The first argument points to a compiled pattern. The number of capturing
|
||||||
|
parentheses within the pattern is used to compute the number of pairs of
|
||||||
|
offsets that are required in the match data block. These form the "output
|
||||||
|
vector" (ovector) within the match data block, and are used to identify the
|
||||||
|
matched string and any captured substrings when matching with
|
||||||
|
<b>pcre2_match()</b>. If you are using <b>pcre2_dfa_match()</b>, which uses the
|
||||||
|
output vector in a different way, you should use <b>pcre2_match_data_create()</b>
|
||||||
|
instead of this function.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The second argument points to a general context, for custom memory management,
|
||||||
|
or is NULL to use the same memory allocator as was used for the compiled
|
||||||
|
pattern. The result of the function is NULL if the memory for the block could
|
||||||
|
not be obtained.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
48
3rd/pcre2/doc/html/pcre2_match_data_free.html
Normal file
48
3rd/pcre2/doc/html/pcre2_match_data_free.html
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_match_data_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_match_data_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_match_data_free(pcre2_match_data *<i>match_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
If <i>match_data</i> is NULL, this function does nothing. Otherwise,
|
||||||
|
<i>match_data</i> must point to a match data block, which this function frees,
|
||||||
|
using the memory freeing function from the general context or compiled pattern
|
||||||
|
with which it was created, or <b>free()</b> if that was not set. If the match
|
||||||
|
data block was previously passed to <b>pcre2_match()</b>, it will have an
|
||||||
|
attached heapframe vector; this is also freed.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
If the PCRE2_COPY_MATCHED_SUBJECT was used for a successful match using this
|
||||||
|
match data block, the copy of the subject that was referenced within the block
|
||||||
|
is also freed.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
70
3rd/pcre2/doc/html/pcre2_pattern_convert.html
Normal file
70
3rd/pcre2/doc/html/pcre2_pattern_convert.html
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_pattern_convert specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_pattern_convert man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_pattern_convert(PCRE2_SPTR <i>pattern</i>, PCRE2_SIZE <i>length</i>,</b>
|
||||||
|
<b> uint32_t <i>options</i>, PCRE2_UCHAR **<i>buffer</i>,</b>
|
||||||
|
<b> PCRE2_SIZE *<i>blength</i>, pcre2_convert_context *<i>cvcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It converts a foreign pattern (for example, a glob) into a PCRE2 regular
|
||||||
|
expression pattern. Its arguments are:
|
||||||
|
<pre>
|
||||||
|
<i>pattern</i> The foreign pattern
|
||||||
|
<i>length</i> The length of the input pattern or PCRE2_ZERO_TERMINATED
|
||||||
|
<i>options</i> Option bits
|
||||||
|
<i>buffer</i> Pointer to pointer to output buffer, or NULL
|
||||||
|
<i>blength</i> Pointer to output length field
|
||||||
|
<i>cvcontext</i> Pointer to a convert context or NULL
|
||||||
|
</pre>
|
||||||
|
The length of the converted pattern (excluding the terminating zero) is
|
||||||
|
returned via <i>blength</i>. If <i>buffer</i> is NULL, the function just returns
|
||||||
|
the output length. If <i>buffer</i> points to a NULL pointer, heap memory is
|
||||||
|
obtained for the converted pattern, using the allocator in the context if
|
||||||
|
present (or else <b>malloc()</b>), and the field pointed to by <i>buffer</i> is
|
||||||
|
updated. If <i>buffer</i> points to a non-NULL field, that must point to a
|
||||||
|
buffer whose size is in the variable pointed to by <i>blength</i>. This value is
|
||||||
|
updated.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The option bits are:
|
||||||
|
<pre>
|
||||||
|
PCRE2_CONVERT_UTF Input is UTF
|
||||||
|
PCRE2_CONVERT_NO_UTF_CHECK Do not check UTF validity
|
||||||
|
PCRE2_CONVERT_POSIX_BASIC Convert POSIX basic pattern
|
||||||
|
PCRE2_CONVERT_POSIX_EXTENDED Convert POSIX extended pattern
|
||||||
|
PCRE2_CONVERT_GLOB ) Convert
|
||||||
|
PCRE2_CONVERT_GLOB_NO_WILD_SEPARATOR ) various types
|
||||||
|
PCRE2_CONVERT_GLOB_NO_STARSTAR ) of glob
|
||||||
|
</pre>
|
||||||
|
The return value from <b>pcre2_pattern_convert()</b> is zero on success or a
|
||||||
|
non-zero PCRE2 error code.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
109
3rd/pcre2/doc/html/pcre2_pattern_info.html
Normal file
109
3rd/pcre2/doc/html/pcre2_pattern_info.html
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_pattern_info specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_pattern_info man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_pattern_info(const pcre2_code *<i>code</i>, uint32_t <i>what</i>,</b>
|
||||||
|
<b> void *<i>where</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function returns information about a compiled pattern. Its arguments are:
|
||||||
|
<pre>
|
||||||
|
<i>code</i> Pointer to a compiled regular expression pattern
|
||||||
|
<i>what</i> What information is required
|
||||||
|
<i>where</i> Where to put the information
|
||||||
|
</pre>
|
||||||
|
The recognized values for the <i>what</i> argument, and the information they
|
||||||
|
request are as follows:
|
||||||
|
<pre>
|
||||||
|
PCRE2_INFO_ALLOPTIONS Final options after compiling
|
||||||
|
PCRE2_INFO_ARGOPTIONS Options passed to <b>pcre2_compile()</b>
|
||||||
|
PCRE2_INFO_BACKREFMAX Number of highest backreference
|
||||||
|
PCRE2_INFO_BSR What \R matches:
|
||||||
|
PCRE2_BSR_UNICODE: Unicode line endings
|
||||||
|
PCRE2_BSR_ANYCRLF: CR, LF, or CRLF only
|
||||||
|
PCRE2_INFO_CAPTURECOUNT Number of capturing subpatterns
|
||||||
|
PCRE2_INFO_DEPTHLIMIT Backtracking depth limit if set, otherwise PCRE2_ERROR_UNSET
|
||||||
|
PCRE2_INFO_EXTRAOPTIONS Extra options that were passed in the
|
||||||
|
compile context
|
||||||
|
PCRE2_INFO_FIRSTBITMAP Bitmap of first code units, or NULL
|
||||||
|
PCRE2_INFO_FIRSTCODETYPE Type of start-of-match information
|
||||||
|
0 nothing set
|
||||||
|
1 first code unit is set
|
||||||
|
2 start of string or after newline
|
||||||
|
PCRE2_INFO_FIRSTCODEUNIT First code unit when type is 1
|
||||||
|
PCRE2_INFO_FRAMESIZE Size of backtracking frame
|
||||||
|
PCRE2_INFO_HASBACKSLASHC Return 1 if pattern contains \C
|
||||||
|
PCRE2_INFO_HASCRORLF Return 1 if explicit CR or LF matches exist in the pattern
|
||||||
|
PCRE2_INFO_HEAPLIMIT Heap memory limit if set, otherwise PCRE2_ERROR_UNSET
|
||||||
|
PCRE2_INFO_JCHANGED Return 1 if (?J) or (?-J) was used
|
||||||
|
PCRE2_INFO_JITSIZE Size of JIT compiled code, or 0
|
||||||
|
PCRE2_INFO_LASTCODETYPE Type of must-be-present information
|
||||||
|
0 nothing set
|
||||||
|
1 code unit is set
|
||||||
|
PCRE2_INFO_LASTCODEUNIT Last code unit when type is 1
|
||||||
|
PCRE2_INFO_MATCHEMPTY 1 if the pattern can match an empty string, 0 otherwise
|
||||||
|
PCRE2_INFO_MATCHLIMIT Match limit if set, otherwise PCRE2_ERROR_UNSET
|
||||||
|
PCRE2_INFO_MAXLOOKBEHIND Length (in characters) of the longest lookbehind assertion
|
||||||
|
PCRE2_INFO_MINLENGTH Lower bound length of matching strings
|
||||||
|
PCRE2_INFO_NAMECOUNT Number of named subpatterns
|
||||||
|
PCRE2_INFO_NAMEENTRYSIZE Size of name table entries
|
||||||
|
PCRE2_INFO_NAMETABLE Pointer to name table
|
||||||
|
PCRE2_CONFIG_NEWLINE Code for the newline sequence:
|
||||||
|
PCRE2_NEWLINE_CR
|
||||||
|
PCRE2_NEWLINE_LF
|
||||||
|
PCRE2_NEWLINE_CRLF
|
||||||
|
PCRE2_NEWLINE_ANY
|
||||||
|
PCRE2_NEWLINE_ANYCRLF
|
||||||
|
PCRE2_NEWLINE_NUL
|
||||||
|
PCRE2_INFO_RECURSIONLIMIT Obsolete synonym for PCRE2_INFO_DEPTHLIMIT
|
||||||
|
PCRE2_INFO_SIZE Size of compiled pattern
|
||||||
|
</pre>
|
||||||
|
If <i>where</i> is NULL, the function returns the amount of memory needed for
|
||||||
|
the requested information, in bytes. Otherwise, the <i>where</i> argument must
|
||||||
|
point to an unsigned 32-bit integer (uint32_t variable), except for the
|
||||||
|
following <i>what</i> values, when it must point to a variable of the type
|
||||||
|
shown:
|
||||||
|
<pre>
|
||||||
|
PCRE2_INFO_FIRSTBITMAP const uint8_t *
|
||||||
|
PCRE2_INFO_JITSIZE size_t
|
||||||
|
PCRE2_INFO_NAMETABLE PCRE2_SPTR
|
||||||
|
PCRE2_INFO_SIZE size_t
|
||||||
|
</pre>
|
||||||
|
The yield of the function is zero on success or:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ERROR_NULL the argument <i>code</i> is NULL
|
||||||
|
PCRE2_ERROR_BADMAGIC the "magic number" was not found
|
||||||
|
PCRE2_ERROR_BADOPTION the value of <i>what</i> is invalid
|
||||||
|
PCRE2_ERROR_BADMODE the pattern was compiled in the wrong mode
|
||||||
|
PCRE2_ERROR_UNSET the requested information is not set
|
||||||
|
</PRE>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
65
3rd/pcre2/doc/html/pcre2_serialize_decode.html
Normal file
65
3rd/pcre2/doc/html/pcre2_serialize_decode.html
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_serialize_decode specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_serialize_decode man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int32_t pcre2_serialize_decode(pcre2_code **<i>codes</i>,</b>
|
||||||
|
<b> int32_t <i>number_of_codes</i>, const uint8_t *<i>bytes</i>,</b>
|
||||||
|
<b> pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function decodes a serialized set of compiled patterns back into a list of
|
||||||
|
individual patterns. This is possible only on a host that is running the same
|
||||||
|
version of PCRE2, with the same code unit width, and the host must also have
|
||||||
|
the same endianness, pointer width and PCRE2_SIZE type. The arguments for
|
||||||
|
<b>pcre2_serialize_decode()</b> are:
|
||||||
|
<pre>
|
||||||
|
<i>codes</i> pointer to a vector in which to build the list
|
||||||
|
<i>number_of_codes</i> number of slots in the vector
|
||||||
|
<i>bytes</i> the serialized byte stream
|
||||||
|
<i>gcontext</i> pointer to a general context or NULL
|
||||||
|
</pre>
|
||||||
|
The <i>bytes</i> argument must point to a block of data that was originally
|
||||||
|
created by <b>pcre2_serialize_encode()</b>, though it may have been saved on
|
||||||
|
disc or elsewhere in the meantime. If there are more codes in the serialized
|
||||||
|
data than slots in the list, only those compiled patterns that will fit are
|
||||||
|
decoded. The yield of the function is the number of decoded patterns, or one of
|
||||||
|
the following negative error codes:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ERROR_BADDATA <i>number_of_codes</i> is zero or less
|
||||||
|
PCRE2_ERROR_BADMAGIC mismatch of id bytes in <i>bytes</i>
|
||||||
|
PCRE2_ERROR_BADMODE mismatch of variable unit size or PCRE version
|
||||||
|
PCRE2_ERROR_NOMEMORY memory allocation failed
|
||||||
|
PCRE2_ERROR_NULL <i>codes</i> or <i>bytes</i> is NULL
|
||||||
|
</pre>
|
||||||
|
PCRE2_ERROR_BADMAGIC may mean that the data is corrupt, or that it was compiled
|
||||||
|
on a system with different endianness.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the serialization functions in the
|
||||||
|
<a href="pcre2serialize.html"><b>pcre2serialize</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
66
3rd/pcre2/doc/html/pcre2_serialize_encode.html
Normal file
66
3rd/pcre2/doc/html/pcre2_serialize_encode.html
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_serialize_encode specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_serialize_encode man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int32_t pcre2_serialize_encode(const pcre2_code **<i>codes</i>,</b>
|
||||||
|
<b> int32_t <i>number_of_codes</i>, uint8_t **<i>serialized_bytes</i>,</b>
|
||||||
|
<b> PCRE2_SIZE *<i>serialized_size</i>, pcre2_general_context *<i>gcontext</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function encodes a list of compiled patterns into a byte stream that can
|
||||||
|
be saved on disc or elsewhere. Note that this is not an abstract format like
|
||||||
|
Java or .NET. Conversion of the byte stream back into usable compiled patterns
|
||||||
|
can only happen on a host that is running the same version of PCRE2, with the
|
||||||
|
same code unit width, and the host must also have the same endianness, pointer
|
||||||
|
width and PCRE2_SIZE type. The arguments for <b>pcre2_serialize_encode()</b>
|
||||||
|
are:
|
||||||
|
<pre>
|
||||||
|
<i>codes</i> pointer to a vector containing the list
|
||||||
|
<i>number_of_codes</i> number of slots in the vector
|
||||||
|
<i>serialized_bytes</i> set to point to the serialized byte stream
|
||||||
|
<i>serialized_size</i> set to the number of bytes in the byte stream
|
||||||
|
<i>gcontext</i> pointer to a general context or NULL
|
||||||
|
</pre>
|
||||||
|
The context argument is used to obtain memory for the byte stream. When the
|
||||||
|
serialized data is no longer needed, it must be freed by calling
|
||||||
|
<b>pcre2_serialize_free()</b>. The yield of the function is the number of
|
||||||
|
serialized patterns, or one of the following negative error codes:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ERROR_BADDATA <i>number_of_codes</i> is zero or less
|
||||||
|
PCRE2_ERROR_BADMAGIC mismatch of id bytes in one of the patterns
|
||||||
|
PCRE2_ERROR_MEMORY memory allocation failed
|
||||||
|
PCRE2_ERROR_MIXEDTABLES the patterns do not all use the same tables
|
||||||
|
PCRE2_ERROR_NULL an argument other than <i>gcontext</i> is NULL
|
||||||
|
</pre>
|
||||||
|
PCRE2_ERROR_BADMAGIC means either that a pattern's code has been corrupted, or
|
||||||
|
that a slot in the vector does not point to a compiled pattern.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the serialization functions in the
|
||||||
|
<a href="pcre2serialize.html"><b>pcre2serialize</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
41
3rd/pcre2/doc/html/pcre2_serialize_free.html
Normal file
41
3rd/pcre2/doc/html/pcre2_serialize_free.html
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_serialize_free specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_serialize_free man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>void pcre2_serialize_free(uint8_t *<i>bytes</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function frees the memory that was obtained by
|
||||||
|
<b>pcre2_serialize_encode()</b> to hold a serialized byte stream. The argument
|
||||||
|
must point to such a byte stream or be NULL, in which case the function returns
|
||||||
|
without doing anything.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the serialization functions in the
|
||||||
|
<a href="pcre2serialize.html"><b>pcre2serialize</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
49
3rd/pcre2/doc/html/pcre2_serialize_get_number_of_codes.html
Normal file
49
3rd/pcre2/doc/html/pcre2_serialize_get_number_of_codes.html
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_serialize_get_number_of_codes specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_serialize_get_number_of_codes man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int32_t pcre2_serialize_get_number_of_codes(const uint8_t *<i>bytes</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
The <i>bytes</i> argument must point to a serialized byte stream that was
|
||||||
|
originally created by <b>pcre2_serialize_encode()</b> (though it may have been
|
||||||
|
saved on disc or elsewhere in the meantime). The function returns the number of
|
||||||
|
serialized patterns in the byte stream, or one of the following negative error
|
||||||
|
codes:
|
||||||
|
<pre>
|
||||||
|
PCRE2_ERROR_BADMAGIC mismatch of id bytes in <i>bytes</i>
|
||||||
|
PCRE2_ERROR_BADMODE mismatch of variable unit size or PCRE version
|
||||||
|
PCRE2_ERROR_NULL the argument is NULL
|
||||||
|
</pre>
|
||||||
|
PCRE2_ERROR_BADMAGIC may mean that the data is corrupt, or that it was compiled
|
||||||
|
on a system with different endianness.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the serialization functions in the
|
||||||
|
<a href="pcre2serialize.html"><b>pcre2serialize</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_set_bsr.html
Normal file
42
3rd/pcre2/doc/html/pcre2_set_bsr.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_bsr specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_bsr man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_bsr(pcre2_compile_context *<i>ccontext</i>,</b>
|
||||||
|
<b> uint32_t <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets the convention for processing \R within a compile context.
|
||||||
|
The second argument must be one of PCRE2_BSR_ANYCRLF or PCRE2_BSR_UNICODE. The
|
||||||
|
result is zero for success or PCRE2_ERROR_BADDATA if the second argument is
|
||||||
|
invalid.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
43
3rd/pcre2/doc/html/pcre2_set_callout.html
Normal file
43
3rd/pcre2/doc/html/pcre2_set_callout.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_callout specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_callout man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_callout(pcre2_match_context *<i>mcontext</i>,</b>
|
||||||
|
<b> int (*<i>callout_function</i>)(pcre2_callout_block *),</b>
|
||||||
|
<b> void *<i>callout_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets the callout fields in a match context (the first argument).
|
||||||
|
The second argument specifies a callout function, and the third argument is an
|
||||||
|
opaque data item that is passed to it. The result of this function is always
|
||||||
|
zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
45
3rd/pcre2/doc/html/pcre2_set_character_tables.html
Normal file
45
3rd/pcre2/doc/html/pcre2_set_character_tables.html
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_character_tables specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_character_tables man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_character_tables(pcre2_compile_context *<i>ccontext</i>,</b>
|
||||||
|
<b> const uint8_t *<i>tables</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets a pointer to custom character tables within a compile
|
||||||
|
context. The second argument must point to a set of PCRE2 character tables or
|
||||||
|
be NULL to request the default tables. The result is always zero. Character
|
||||||
|
tables can be created by calling <b>pcre2_maketables()</b> or by running the
|
||||||
|
<b>pcre2_dftables</b> maintenance command in binary mode (see the
|
||||||
|
<a href="pcre2build.html"><b>pcre2build</b></a>
|
||||||
|
documentation).
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
58
3rd/pcre2/doc/html/pcre2_set_compile_extra_options.html
Normal file
58
3rd/pcre2/doc/html/pcre2_set_compile_extra_options.html
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_compile_extra_options specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_compile_extra_options man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_compile_extra_options(pcre2_compile_context *<i>ccontext</i>,</b>
|
||||||
|
<b> uint32_t <i>extra_options</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets additional option bits for <b>pcre2_compile()</b> that are
|
||||||
|
housed in a compile context. It completely replaces all the bits. The extra
|
||||||
|
options are:
|
||||||
|
<pre>
|
||||||
|
PCRE2_EXTRA_ALLOW_LOOKAROUND_BSK Allow \K in lookarounds
|
||||||
|
PCRE2_EXTRA_ALLOW_SURROGATE_ESCAPES Allow \x{d800} to \x{dfff} in UTF-8 and UTF-32 modes
|
||||||
|
PCRE2_EXTRA_ALT_BSUX Extended alternate \u, \U, and \x handling
|
||||||
|
PCRE2_EXTRA_ASCII_BSD \d remains ASCII in UCP mode
|
||||||
|
PCRE2_EXTRA_ASCII_BSS \s remains ASCII in UCP mode
|
||||||
|
PCRE2_EXTRA_ASCII_BSW \w remains ASCII in UCP mode
|
||||||
|
PCRE2_EXTRA_ASCII_DIGIT [:digit:] and [:xdigit:] POSIX classes remain ASCII in UCP mode
|
||||||
|
PCRE2_EXTRA_ASCII_POSIX POSIX classes remain ASCII in UCP mode
|
||||||
|
PCRE2_EXTRA_BAD_ESCAPE_IS_LITERAL Treat all invalid escapes as a literal following character
|
||||||
|
PCRE2_EXTRA_CASELESS_RESTRICT Disable mixed ASCII/non-ASCII case folding
|
||||||
|
PCRE2_EXTRA_ESCAPED_CR_IS_LF Interpret \r as \n
|
||||||
|
PCRE2_EXTRA_MATCH_LINE Pattern matches whole lines
|
||||||
|
PCRE2_EXTRA_MATCH_WORD Pattern matches "words"
|
||||||
|
PCRE2_EXTRA_NEVER_CALLOUT Disallow callouts in pattern
|
||||||
|
PCRE2_EXTRA_NO_BS0 Disallow \0 (but not \00 or \000)
|
||||||
|
PCRE2_EXTRA_PYTHON_OCTAL Use Python rules for octal
|
||||||
|
PCRE2_EXTRA_TURKISH_CASING Use Turkish I case folding
|
||||||
|
</pre>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
46
3rd/pcre2/doc/html/pcre2_set_compile_recursion_guard.html
Normal file
46
3rd/pcre2/doc/html/pcre2_set_compile_recursion_guard.html
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_compile_recursion_guard specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_compile_recursion_guard man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_compile_recursion_guard(pcre2_compile_context *<i>ccontext</i>,</b>
|
||||||
|
<b> int (*<i>guard_function</i>)(uint32_t, void *), void *<i>user_data</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function defines, within a compile context, a function that is called
|
||||||
|
whenever <b>pcre2_compile()</b> starts to compile a parenthesized part of a
|
||||||
|
pattern. The first argument to the function gives the current depth of
|
||||||
|
parenthesis nesting, and the second is user data that is supplied when the
|
||||||
|
function is set up. The callout function should return zero if all is well, or
|
||||||
|
non-zero to force an error. This feature is provided so that applications can
|
||||||
|
check the available system stack space, in order to avoid running out. The
|
||||||
|
result of <b>pcre2_set_compile_recursion_guard()</b> is always zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_set_depth_limit.html
Normal file
40
3rd/pcre2/doc/html/pcre2_set_depth_limit.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_depth_limit specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_depth_limit man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_depth_limit(pcre2_match_context *<i>mcontext</i>,</b>
|
||||||
|
<b> uint32_t <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets the backtracking depth limit field in a match context. The
|
||||||
|
result is always zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
43
3rd/pcre2/doc/html/pcre2_set_glob_escape.html
Normal file
43
3rd/pcre2/doc/html/pcre2_set_glob_escape.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_glob_escape specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_glob_escape man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_glob_escape(pcre2_convert_context *<i>cvcontext</i>,</b>
|
||||||
|
<b> uint32_t <i>escape_char</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It sets the escape character that is used when converting globs. The second
|
||||||
|
argument must either be zero (meaning there is no escape character) or a
|
||||||
|
punctuation character whose code point is less than 256. The default is grave
|
||||||
|
accent if running under Windows, otherwise backslash. The result of the
|
||||||
|
function is zero for success or PCRE2_ERROR_BADDATA if the second argument is
|
||||||
|
invalid.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_set_glob_separator.html
Normal file
42
3rd/pcre2/doc/html/pcre2_set_glob_separator.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_glob_separator specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_glob_separator man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_glob_separator(pcre2_convert_context *<i>cvcontext</i>,</b>
|
||||||
|
<b> uint32_t <i>separator_char</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function is part of an experimental set of pattern conversion functions.
|
||||||
|
It sets the component separator character that is used when converting globs.
|
||||||
|
The second argument must be one of the characters forward slash, backslash, or
|
||||||
|
dot. The default is backslash when running under Windows, otherwise forward
|
||||||
|
slash. The result of the function is zero for success or PCRE2_ERROR_BADDATA if
|
||||||
|
the second argument is invalid.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The pattern conversion functions are described in the
|
||||||
|
<a href="pcre2convert.html"><b>pcre2convert</b></a>
|
||||||
|
documentation.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_set_heap_limit.html
Normal file
40
3rd/pcre2/doc/html/pcre2_set_heap_limit.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_heap_limit specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_heap_limit man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_heap_limit(pcre2_match_context *<i>mcontext</i>,</b>
|
||||||
|
<b> uint32_t <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets the backtracking heap limit field in a match context. The
|
||||||
|
result is always zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
40
3rd/pcre2/doc/html/pcre2_set_match_limit.html
Normal file
40
3rd/pcre2/doc/html/pcre2_set_match_limit.html
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_match_limit specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_match_limit man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_match_limit(pcre2_match_context *<i>mcontext</i>,</b>
|
||||||
|
<b> uint32_t <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets the match limit field in a match context. The result is
|
||||||
|
always zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_max_pattern_compiled_length specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_max_pattern_compiled_length man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_max_pattern_compiled_length(</b>
|
||||||
|
<b> pcre2_compile_context *<i>ccontext</i>, PCRE2_SIZE <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets, in a compile context, the maximum size (in bytes) for the
|
||||||
|
memory needed to hold the compiled version of a pattern that is using this
|
||||||
|
context. The result is always zero. If a pattern that is passed to
|
||||||
|
<b>pcre2_compile()</b> referencing this context needs more memory, an error is
|
||||||
|
generated. The default is the largest number that a PCRE2_SIZE variable can
|
||||||
|
hold, which is effectively unlimited.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
43
3rd/pcre2/doc/html/pcre2_set_max_pattern_length.html
Normal file
43
3rd/pcre2/doc/html/pcre2_set_max_pattern_length.html
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_max_pattern_length specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_max_pattern_length man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_max_pattern_length(pcre2_compile_context *<i>ccontext</i>,</b>
|
||||||
|
<b> PCRE2_SIZE <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This function sets, in a compile context, the maximum text length (in code
|
||||||
|
units) of the pattern that can be compiled. The result is always zero. If a
|
||||||
|
longer pattern is passed to <b>pcre2_compile()</b> there is an immediate error
|
||||||
|
return. The default is effectively unlimited, being the largest value a
|
||||||
|
PCRE2_SIZE variable can hold.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
42
3rd/pcre2/doc/html/pcre2_set_max_varlookbehind.html
Normal file
42
3rd/pcre2/doc/html/pcre2_set_max_varlookbehind.html
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>pcre2_set_max_varlookbehind specification</title>
|
||||||
|
</head>
|
||||||
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
||||||
|
<h1>pcre2_set_max_varlookbehind man page</h1>
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This page is part of the PCRE2 HTML documentation. It was generated
|
||||||
|
automatically from the original man page. If there is any nonsense in it,
|
||||||
|
please consult the man page, in case the conversion went wrong.
|
||||||
|
<br>
|
||||||
|
<br><b>
|
||||||
|
SYNOPSIS
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
<b>#include <pcre2.h></b>
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<b>int pcre2_set_max_varlookbehind(pcre2_compile_context *<i>ccontext</i>,</b>
|
||||||
|
<b> uint32_t <i>value</i>);</b>
|
||||||
|
</P>
|
||||||
|
<br><b>
|
||||||
|
DESCRIPTION
|
||||||
|
</b><br>
|
||||||
|
<P>
|
||||||
|
This sets a maximum length for the number of characters matched by a
|
||||||
|
variable-length lookbehind assertion. The default is set when PCRE2 is built,
|
||||||
|
with the ultimate default being 255, the same as Perl. Lookbehind assertions
|
||||||
|
without a bounding length are not supported. The result is always zero.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
There is a complete description of the PCRE2 native API in the
|
||||||
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
||||||
|
page and a description of the POSIX API in the
|
||||||
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
||||||
|
page.
|
||||||
|
<p>
|
||||||
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
||||||
|
</p>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user