Few more PCRE to PCRE2 changes

This commit is contained in:
William S Fulton 2022-01-20 22:24:53 +00:00
commit f8e4a5cc25
8 changed files with 37 additions and 37 deletions

View file

@ -281,12 +281,12 @@ You must use <a href="http://www.gnu.org/software/make/">GNU make</a> to build a
</p> </p>
<p> <p>
<a href="http://www.pcre.org/">PCRE</a> <a href="http://www.pcre.org/">PCRE2</a>
needs to be installed on your system to build SWIG, in particular needs to be installed on your system to build SWIG, in particular
pcre2-config must be available. If you have PCRE headers and libraries but not pcre2-config must be available. If you have PCRE2 headers and libraries but not
pcre2-config itself or, alternatively, wish to override the compiler or linker pcre2-config itself or, alternatively, wish to override the compiler or linker
flags returned by pcre-config, you may set PCRE2_LIBS and PCRE2_CFLAGS variables flags returned by pcre2-config, you may set PCRE2_LIBS and PCRE2_CFLAGS variables
to be used instead. And if you don't have PCRE at all, the configure script to be used instead. And if you don't have PCRE2 at all, the configure script
will provide instructions for obtaining it. will provide instructions for obtaining it.
</p> </p>

View file

@ -208,7 +208,7 @@ General Options
-oh &lt;headfile&gt; - Set name of C++ output header file for directors to &lt;headfile&gt; -oh &lt;headfile&gt; - Set name of C++ output header file for directors to &lt;headfile&gt;
-outcurrentdir - Set default output dir to current dir instead of input file's path -outcurrentdir - Set default output dir to current dir instead of input file's path
-outdir &lt;dir&gt; - Set language specific files output directory to &lt;dir&gt; -outdir &lt;dir&gt; - Set language specific files output directory to &lt;dir&gt;
-pcreversion - Display PCRE version information -pcreversion - Display PCRE2 version information
-small - Compile in virtual elimination and compact mode -small - Compile in virtual elimination and compact mode
-swiglib - Report location of SWIG library and exit -swiglib - Report location of SWIG library and exit
-templatereduce - Reduce all the typedefs in templates -templatereduce - Reduce all the typedefs in templates
@ -2022,8 +2022,8 @@ and a more descriptive one, but the two functions are otherwise equivalent:
<td>String after (Perl-like) regex substitution operation. This function <td>String after (Perl-like) regex substitution operation. This function
allows applying arbitrary regular expressions to the identifier names. The allows applying arbitrary regular expressions to the identifier names. The
<i>pattern</i> part is a regular expression in Perl syntax (as supported <i>pattern</i> part is a regular expression in Perl syntax (as supported
by the <a href="http://www.pcre.org/">Perl Compatible Regular Expressions (PCRE)</a>) by the <a href="http://www.pcre.org/">Perl Compatible Regular Expressions</a>)
library and the <i>subst</i> string (PCRE2 library) and the <i>subst</i> string
can contain back-references of the form <tt>\N</tt> where <tt>N</tt> is a digit can contain back-references of the form <tt>\N</tt> where <tt>N</tt> is a digit
from 0 to 9, or one of the following escape sequences: <tt>\l</tt>, <tt>\L</tt>, from 0 to 9, or one of the following escape sequences: <tt>\l</tt>, <tt>\L</tt>,
<tt>\u</tt>, <tt>\U</tt> or <tt>\E</tt>. The back-references are replaced with the <tt>\u</tt>, <tt>\U</tt> or <tt>\E</tt>. The back-references are replaced with the

View file

@ -258,7 +258,7 @@ cd pcre2
cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=C:/pcre . cmake -G "Visual Studio 15 2017 Win64" -DCMAKE_INSTALL_PREFIX=C:/pcre .
cmake --build . --config Release --target install cmake --build . --config Release --target install
</pre></div> </pre></div>
Alternatively, use <tt>WITH_PCRE</tt> option to disable PCRE support if you are sure not to need it. Alternatively, use <tt>WITH_PCRE</tt> option to disable PCRE2 support if you are sure not to need it.
</li> </li>
<li> <li>
We will also need the SWIG source code. Either download a zipped archive from GitHub, or if git is installed clone the latest codebase We will also need the SWIG source code. Either download a zipped archive from GitHub, or if git is installed clone the latest codebase
@ -451,10 +451,10 @@ the autotools will fail miserably on those.
</li> </li>
<li> <li>
The PCRE third party library needs to be built next. The PCRE2 third party library needs to be built next.
Download the latest PCRE source tarball, such as <tt>pcre2-10.39.tar.bz2</tt>, from Download the latest PCRE2 source tarball, such as <tt>pcre2-10.39.tar.bz2</tt>, from
<a href=http://www.pcre.org>PCRE</a> and place in the <tt>/usr/src/swig</tt> directory. <a href=http://www.pcre.org>www.pcre.org</a> and place in the <tt>/usr/src/swig</tt> directory.
Build PCRE as a static library using the Tools/pcre-build.sh script as follows: Build PCRE2 as a static library using the Tools/pcre-build.sh script as follows:
<div class="shell"><pre> <div class="shell"><pre>
cd /usr/src/swig cd /usr/src/swig

View file

@ -137,7 +137,7 @@ static const char *usage4 = (const char *) "\
-oh <headfile> - Set name of C++ output header file for directors to <headfile>\n\ -oh <headfile> - Set name of C++ output header file for directors to <headfile>\n\
-outcurrentdir - Set default output dir to current dir instead of input file's path\n\ -outcurrentdir - Set default output dir to current dir instead of input file's path\n\
-outdir <dir> - Set language specific files output directory to <dir>\n\ -outdir <dir> - Set language specific files output directory to <dir>\n\
-pcreversion - Display PCRE version information\n\ -pcreversion - Display PCRE2 version information\n\
-small - Compile in virtual elimination and compact mode\n\ -small - Compile in virtual elimination and compact mode\n\
-swiglib - Report location of SWIG library and exit\n\ -swiglib - Report location of SWIG library and exit\n\
-templatereduce - Reduce all the typedefs in templates\n\ -templatereduce - Reduce all the typedefs in templates\n\

View file

@ -1493,7 +1493,7 @@ String *Swig_pcre_version(void) {
char *buf = malloc(len); char *buf = malloc(len);
String *result; String *result;
pcre2_config(PCRE2_CONFIG_VERSION, buf); pcre2_config(PCRE2_CONFIG_VERSION, buf);
result = NewStringf("PCRE Version: %s", buf); result = NewStringf("PCRE2 Version: %s", buf);
free(buf); free(buf);
return result; return result;
} }

View file

@ -87,7 +87,7 @@ tarball=$swigbasename.tar.gz
pcre_tarball=`ls pcre2-*.tar.*` pcre_tarball=`ls pcre2-*.tar.*`
if ! test -f "$pcre_tarball"; then if ! test -f "$pcre_tarball"; then
echo "Could not find PCRE tarball. Please download a PCRE source tarball from http://www.pcre.org" echo "Could not find PCRE2 tarball. Please download a PCRE2 source tarball from http://www.pcre.org"
echo "and place in the same directory as the SWIG tarball." echo "and place in the same directory as the SWIG tarball."
exit 1 exit 1
fi fi

View file

@ -4,17 +4,17 @@ pcre_subdir=pcre/pcre-swig-install
pcre_install_dir=`pwd`/$pcre_subdir pcre_install_dir=`pwd`/$pcre_subdir
usage() { usage() {
echo "Helper script to build PCRE as a static library from a tarball just for use during the" echo "Helper script to build PCRE2 as a static library from a tarball just for use during the"
echo "SWIG build. It does not install PCRE for global use on your system." echo "SWIG build. It does not install PCRE2 for global use on your system."
echo "Usage: pcre-build.sh [--help] [args]" echo "Usage: pcre-build.sh [--help] [args]"
echo " args - optional additional arguments passed on to the PCRE configure script (leave out" echo " args - optional additional arguments passed on to the PCRE2 configure script (leave out"
echo " unless you are an expert at configure)" echo " unless you are an expert at configure)"
echo " --help - Display this help information." echo " --help - Display this help information."
echo "Instructions:" echo "Instructions:"
echo " - Download the latest PCRE source tarball from http://www.pcre.org and place in the" echo " - Download the latest PCRE2 source tarball from http://www.pcre.org and place in the"
echo " directory that you will configure and build SWIG." echo " directory that you will configure and build SWIG."
echo " - Run this script in the same directory that you intend to configure and build SWIG in." echo " - Run this script in the same directory that you intend to configure and build SWIG in."
echo " This will configure and build PCRE as a static library." echo " This will configure and build PCRE2 as a static library."
echo " - Afterwards run the SWIG configure script which will then find and use the PCRE static" echo " - Afterwards run the SWIG configure script which will then find and use the PCRE static"
echo " libraries in the $pcre_subdir subdirectory." echo " libraries in the $pcre_subdir subdirectory."
exit 0 exit 0
@ -35,21 +35,21 @@ if test -f "pcre-build.sh" ; then
usage usage
fi fi
echo "Looking for PCRE tarball..." echo "Looking for PCRE2 tarball..."
rm -rf pcre rm -rf pcre
pcre_tarball=`ls pcre2-*.tar*` pcre_tarball=`ls pcre2-*.tar*`
test -n "$pcre_tarball" || bail "Could not find tarball matching pattern: pcre2-*.tar*" test -n "$pcre_tarball" || bail "Could not find tarball matching pattern: pcre2-*.tar*"
test -f "$pcre_tarball" || bail "Could not find a single PCRE tarball. Found: $pcre_tarball" test -f "$pcre_tarball" || bail "Could not find a single PCRE2 tarball. Found: $pcre_tarball"
echo "Extracting tarball: $pcre_tarball" echo "Extracting tarball: $pcre_tarball"
tar -xf $pcre_tarball || bail "Could not untar $pcre_tarball" tar -xf $pcre_tarball || bail "Could not untar $pcre_tarball"
pcre_dir=`echo $pcre_tarball | sed -e "s/\.tar.*//"` pcre_dir=`echo $pcre_tarball | sed -e "s/\.tar.*//"`
echo "Configuring PCRE in directory: pcre" echo "Configuring PCRE in directory: pcre"
mv $pcre_dir pcre || bail "Could not create pcre directory" mv $pcre_dir pcre || bail "Could not create pcre directory"
cd pcre && ./configure --prefix=$pcre_install_dir --disable-shared $* || bail "PCRE configure failed" cd pcre && ./configure --prefix=$pcre_install_dir --disable-shared $* || bail "PCRE2 configure failed"
echo "Building PCRE..." echo "Building PCRE2..."
${MAKE:-make} -s || bail "Could not build PCRE" ${MAKE:-make} -s || bail "Could not build PCRE2"
echo "Installing PCRE locally to $pcre_install_dir..." echo "Installing PCRE2 locally to $pcre_install_dir..."
${MAKE:-make} -s install || bail "Could not install PCRE" ${MAKE:-make} -s install || bail "Could not install PCRE2"
echo "" echo ""
echo "The SWIG configure script can now be run, whereupon PCRE will automatically be detected and used from $pcre_install_dir/bin/pcre-config." echo "The SWIG configure script can now be run, whereupon PCRE2 will automatically be detected and used from $pcre_install_dir/bin/pcre-config."

View file

@ -48,16 +48,16 @@ fi
dnl PCRE dnl PCRE
AC_ARG_WITH([pcre], AC_ARG_WITH([pcre],
[AS_HELP_STRING([--without-pcre], [AS_HELP_STRING([--without-pcre],
[Disable support for regular expressions using PCRE])], [Disable support for regular expressions using PCRE2])],
[], [],
[with_pcre=yes]) [with_pcre=yes])
AC_MSG_CHECKING([whether to enable PCRE support]) AC_MSG_CHECKING([whether to enable PCRE2 support])
AC_MSG_RESULT([$with_pcre]) AC_MSG_RESULT([$with_pcre])
dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script dnl To make configuring easier, check for a locally built PCRE using the Tools/pcre-build.sh script
if test x"${with_pcre}" = xyes ; then if test x"${with_pcre}" = xyes ; then
AC_MSG_CHECKING([whether to use local PCRE]) AC_MSG_CHECKING([whether to use local PCRE2])
local_pcre_config=no local_pcre_config=no
if test -z $PCRE2_CONFIG; then if test -z $PCRE2_CONFIG; then
if test -f `pwd`/pcre/pcre-swig-install/bin/pcre2-config; then if test -f `pwd`/pcre/pcre-swig-install/bin/pcre2-config; then
@ -71,20 +71,20 @@ AS_IF([test "x$with_pcre" != xno],
[AX_PATH_GENERIC([pcre2], [AX_PATH_GENERIC([pcre2],
[], dnl Minimal version of PCRE we need -- accept any [], dnl Minimal version of PCRE we need -- accept any
[], dnl custom sed script for version parsing is not needed [], dnl custom sed script for version parsing is not needed
[AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library]) [AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE2 library])
LIBS="$LIBS $PCRE2_LIBS" LIBS="$LIBS $PCRE2_LIBS"
CPPFLAGS="$CPPFLAGS $PCRE2_CFLAGS" CPPFLAGS="$CPPFLAGS $PCRE2_CFLAGS"
], ],
[AC_MSG_FAILURE([ [AC_MSG_FAILURE([
Cannot find pcre2-config script from PCRE (Perl Compatible Regular Expressions) Cannot find pcre2-config script from PCRE2 (Perl Compatible Regular Expressions)
library package. This dependency is needed for configure to complete, library package. This dependency is needed for configure to complete,
Either: Either:
- Install the PCRE developer package on your system (preferred approach). - Install the PCRE2 developer package on your system (preferred approach).
- Download the PCRE source tarball, build and install on your system - Download the PCRE2 source tarball, build and install on your system
as you would for any package built from source distribution. as you would for any package built from source distribution.
- Use the Tools/pcre-build.sh script to build PCRE just for SWIG to statically - Use the Tools/pcre-build.sh script to build PCRE2 just for SWIG to statically
link against. Run 'Tools/pcre-build.sh --help' for instructions. link against. Run 'Tools/pcre-build.sh --help' for instructions.
(quite easy and does not require privileges to install PCRE on your system) (quite easy and does not require privileges to install PCRE2 on your system)
- Use configure --without-pcre to disable regular expressions support in SWIG - Use configure --without-pcre to disable regular expressions support in SWIG
(not recommended).]) (not recommended).])
], ],