This directory conains a version of LibPCRE 7.2 that has been stripped
down to less than a third of its original uncompressed size.  So if you
want docs, tests and such, you should go to the PCRE website at
http://www.pcre.org .  Here are the changes for the Nmap version:

o Started this NMAP_MODIFICATIONS file

o Removed these directories:
doc
testdata

o Removed these files:
pcretest.c
pcregrep.c
pcredemo.c
RunGrepTest
RunTest
RunTest.bat
perltest.pl
Detrail
PrepareRelease
libpcre.pc.in
libpcrecpp.pc.in
pcre_printint.src
CMakeLists.txt
config-cmake.h.in
132html
makevp.bat
makevp_c.txt
makevp_l.txt
pcregexp.pas
ltmain.sh
ChangeLog
NEWS
HACKING
COPYING [Look at LICENCE]

o Got rid of the C++ wrapper, which included this step:
  rm -f *.cc pcrecpparg.h.in pcrecpp.h pcre_scanner.h pcre_stringpiece.h.in

o Copied pcre.h.generic to pcre.h and pcre_chartables.c.dist to, you
  guessed it, pcre_chartables.c (for Windows).  Running ./configure in
  UNIX just overwrites them with other ones. Made the rule that makes
  pcre_chartables.c copy pcre_chartables.c.dist instead of making a
  symbolic link to it. Remove pcre_chartables.c from CLEANFILES.

o Stripped down Makefile.am and configure.ac substantially to remove
  libtool dependency (was having trouble on Mac OS X), remove Windows
  stuff (Nmap uses a custom MS VC project for this), and insure it only
  worries about building libpcre.a (which is now build in the libpcre
  directory rather than in libpcre/.libs ).  Removed quite a bit of
  unneeded things from these files, as well as adding -fno-thread-jumps
  when compiling on Mac OS X on Intel (original patch: Kurt Grutzmacher
  grutz(a)jingojango.net).  [The diff is FAR too large to included here]

o Removed config.sub, config.guess, depcomp, install-sh, and missing.
  These files are found in the parent (i.e., Nmap's) directory.

o Comment out some build configuration lines from pcre-internal.h because Nmap
  builds a static library:

--- pcre-7.2/pcre_internal.h	2007-06-12 08:39:55.000000000 -0500
+++ libpcre/pcre_internal.h	2007-08-15 18:56:18.000000000 -0500
@@ -112,15 +112,19 @@ PCRE_EXP_DATA_DEFN only if they are not 
 
 #ifndef PCRE_EXP_DECL
 #  ifdef _WIN32
+/* COMMENTED OUT AS IT'S COMPILED STATICALLY
 #    ifdef DLL_EXPORT
 #      define PCRE_EXP_DECL       extern __declspec(dllexport)
 #      define PCRE_EXP_DEFN       __declspec(dllexport)
 #      define PCRE_EXP_DATA_DEFN  __declspec(dllexport)
 #    else
+*/
 #      define PCRE_EXP_DECL       extern
 #      define PCRE_EXP_DEFN
 #      define PCRE_EXP_DATA_DEFN
+/*
 #    endif
+*/
 #
 #  else
 #    ifdef __cplusplus


...and pcre.h.in/pcre.h.generic/pcre.h:


--- pcre-7.2/pcre.h.in	2007-06-04 05:18:02.000000000 -0500
+++ libpcre/pcre.h.in	2007-08-15 19:24:46.000000000 -0500
@@ -51,6 +51,7 @@ imported have to be identified as such. 
 export setting is defined in pcre_internal.h, which includes this file. So we
 don't change an existing definition of PCRE_EXP_DECL. */
 
+/*
 #ifndef PCRE_EXP_DECL
 #  ifdef _WIN32
 #    ifndef PCRE_STATIC
@@ -58,6 +59,7 @@ don't change an existing definition of P
 #    endif
 #  endif
 #endif
+*/
 
 /* By default, we use the standard "extern" declarations. */


..and pcreposix.h:


--- pcre-7.2/pcreposix.h	2007-04-04 09:04:40.000000000 -0500
+++ libpcre/pcreposix.h	2007-08-15 20:31:42.000000000 -0500
@@ -109,12 +109,14 @@ typedef struct {
 imported have to be identified as such. When building PCRE, the appropriate
 export settings are needed. */
 
+/*
 #ifdef _WIN32
 #  ifndef PCREPOSIX_STATIC
 #    define PCREPOSIX_EXP_DECL extern __declspec(dllimport)
 #    define PCREPOSIX_EXP_DEFN  __declspec(dllimport)
 #  endif
 #endif
+*/
 
 /* By default, we use the standard "extern" declarations. */


o Added pcre_winconfig.h, and include it in pcre_internal.h instead of config.h:
 
--- pcre-7.2/pcre_internal.h	2007-06-12 08:39:55.000000000 -0500
+++ libpcre/pcre_internal.h	2007-08-15 20:33:48.000000000 -0500
@@ -69,7 +69,11 @@ be absolutely sure we get our version. *
 
 /* Get the definitions provided by running "configure" */
 
+#ifdef WIN32
+#include "pcre_winconfig.h"
+#else
 #include "config.h"
+#endif
 
 /* Standard C headers plus the external interface definition. The only time
 setjmp and stdarg are used is when NO_RECURSE is set. */
 

o Change the pcre.h #include in pcre_internal.h from <pcre.h> to "pcre.h".
  This seems to be needed on Windows.

o Regenerated everything with 'automake; aclocal; autoconf'

