This directory contains a version of LibPCRE 7.6 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:
cmake
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
CleanTxt
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 pcrecpp_internal.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.6/pcre_internal.h 2008-01-20 13:59:21.000000000 -0600
+++ libpcre/pcre_internal.h 2008-02-15 18:12:28.000000000 -0600
@@ -108,15 +108,19 @@ PCRE_EXP_DATA_DEFN only if they are not
#ifndef PCRE_EXP_DECL
# ifdef _WIN32
+/* COMMENTED OUT AS IT'S COMPILED STATICALLY
# ifndef PCRE_STATIC
# 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
# define PCRE_EXP_DECL extern "C"
...and pcre.h.in/pcre.h.generic/pcre.h:
--- pcre-7.6/pcre.h.in 2008-01-20 14:01:08.000000000 -0600
+++ libpcre/pcre.h.in 2008-02-15 18:12:54.000000000 -0600
@@ -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 existing definitions of PCRE_EXP_DECL and PCRECPP_EXP_DECL. */
+/*
#if defined(_WIN32) && !defined(PCRE_STATIC)
# ifndef PCRE_EXP_DECL
# define PCRE_EXP_DECL extern __declspec(dllimport)
@@ -64,6 +65,7 @@ don't change existing definitions of PCR
# endif
# endif
#endif
+*/
/* By default, we use the standard "extern" declarations. */
..and pcreposix.h:
--- pcre-7.6/pcreposix.h 2008-01-20 13:56:29.000000000 -0600
+++ libpcre/pcreposix.h 2008-02-15 18:13:29.000000000 -0600
@@ -110,10 +110,12 @@ imported have to be identified as such.
export settings are needed, and are set in pcreposix.c before including this
file. */
+/*
#if defined(_WIN32) && !defined(PCRE_STATIC) && !defined(PCREPOSIX_EXP_DECL)
# define PCREPOSIX_EXP_DECL extern __declspec(dllimport)
# define PCREPOSIX_EXP_DEFN __declspec(dllimport)
#endif
+*/
/* By default, we use the standard "extern" declarations. */
o Added pcre_winconfig.h for Windows. LibPCRE used to include config.h in
pcre_internal.h, and we'd include this winconfig there instead of config.h
if WIN32 is defined. Now, however, they've moved config.h includes to a
bunch of different files, so we have to change them. We could remove the
other includes and move it back to pcre_internal.h, but they must've moved
them for a reason, so we'll follow them. Occurrences of
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
get changed to
#ifdef WIN32
#include "pcre_winconfig.h"
#else
#include "config.h"
#endif
o Removed this pcre_chartables deletion code from configure.ac:
--- configure.ac (revision 13598)
+++ configure.ac (working copy)
@@ -491,10 +491,6 @@
# Make the generated script files executable.
AC_CONFIG_COMMANDS([script-chmod], [chmod a+x pcre-config])
-# Make sure that pcre_chartables.c is removed in case the method for
-# creating it was changed by reconfiguration.
-AC_CONFIG_COMMANDS([delete-old-chartables], [rm -f pcre_chartables.c])
-
AC_OUTPUT
dnl end configure.ac
o Removed Makefile.am since it doesn't even seem to regenerate without a bunch of files which were previously deleted (e.g. NEWS, etc.)
o Removed the code from Makefile.in which regenerates Makefile.am when it's out of date:
--- Makefile.in (revision 13598)
+++ Makefile.in (working copy)
@@ -265,21 +265,7 @@
.SUFFIXES:
.SUFFIXES: .c .o .obj
-am--refresh:
- @:
-$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
- cd $(srcdir) && $(AUTOMAKE) --gnu \
- && exit 0; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
- cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu Makefile
+
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -751,7 +737,7 @@
.MAKE: install-am install-strip
-.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
+.PHONY: CTAGS GTAGS all all-am check check-am clean \
clean-binPROGRAMS clean-generic clean-libLIBRARIES \
clean-noinstPROGRAMS ctags dist dist-all dist-bzip2 dist-gzip \
dist-shar dist-tarZ dist-zip distcheck distclean \
o Regenerated everything with 'aclocal; autoconf'
o Prevent pcre.h from being regenerated everytime configure is invoked and
subsequently removed upon a distclean:
Index: configure.ac
===================================================================
--- configure.ac (revision 25730)
+++ configure.ac (working copy)
@@ -13,7 +13,7 @@
AC_PREREQ(2.57)
AC_INIT(PCRE, pcre_major.pcre_minor[]pcre_prerelease, , pcre)
-AC_CONFIG_SRCDIR([pcre.h.in])
+AC_CONFIG_SRCDIR()
AM_INIT_AUTOMAKE([dist-bzip2 dist-zip])
AC_CONFIG_HEADERS(config.h)
@@ -485,7 +485,6 @@
AC_CONFIG_FILES(
Makefile
pcre-config
- pcre.h
)
# Make the generated script files executable.
Index: Makefile.in
===================================================================
--- Makefile.in (revision 25730)
+++ Makefile.in (working copy)
@@ -44,7 +44,6 @@
$(srcdir)/../depcomp $(srcdir)/../install-sh \
$(srcdir)/../missing $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
- $(srcdir)/pcre-config.in $(srcdir)/pcre.h.in \
$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@@ -54,7 +53,7 @@
configure.lineno config.status.lineno
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = pcre-config pcre.h
+CONFIG_CLEAN_FILES = pcre-config
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -228,9 +227,6 @@
CLEANFILES =
MAINTAINERCLEANFILES = pcre.h.generic
-# These are the header files we'll install. We do not distribute pcre.h because
-# it is generated from pcre.h.in.
-nodist_include_HEADERS = pcre.h
include_HEADERS = pcreposix.h
bin_SCRIPTS = pcre-config
@WITH_REBUILD_CHARTABLES_TRUE@dftables_SOURCES = dftables.c
@@ -303,8 +299,6 @@
-rm -f config.h stamp-h1
pcre-config: $(top_builddir)/config.status $(srcdir)/pcre-config.in
cd $(top_builddir) && $(SHELL) ./config.status $@
-pcre.h: $(top_builddir)/config.status $(srcdir)/pcre.h.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
install-libLIBRARIES: $(lib_LIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@@ -760,7 +754,6 @@
pcre.h.generic: configure.ac
rm -f $@
- cp -p pcre.h $@
@WITH_REBUILD_CHARTABLES_TRUE@pcre_chartables.c: dftables$(EXEEXT)
@WITH_REBUILD_CHARTABLES_TRUE@ ./dftables$(EXEEXT) $@