--- embedaddon/pcre/Makefile.am 2012/02/21 23:05:51 1.1 +++ embedaddon/pcre/Makefile.am 2013/07/22 08:25:55 1.1.1.4 @@ -14,10 +14,16 @@ dist_doc_DATA = \ NEWS \ README +# Note that pcrecpp.html is not in this list; it is listed separately below. + dist_html_DATA = \ + doc/html/NON-AUTOTOOLS-BUILD.txt \ + doc/html/README.txt \ doc/html/index.html \ - doc/html/pcre.html \ doc/html/pcre-config.html \ + doc/html/pcre.html \ + doc/html/pcre16.html \ + doc/html/pcre32.html \ doc/html/pcre_assign_jit_stack.html \ doc/html/pcre_compile.html \ doc/html/pcre_compile2.html \ @@ -35,12 +41,15 @@ dist_html_DATA = \ doc/html/pcre_get_stringtable_entries.html \ doc/html/pcre_get_substring.html \ doc/html/pcre_get_substring_list.html \ - doc/html/pcre_info.html \ + doc/html/pcre_jit_exec.html \ doc/html/pcre_jit_stack_alloc.html \ doc/html/pcre_jit_stack_free.html \ doc/html/pcre_maketables.html \ + doc/html/pcre_pattern_to_host_byte_order.html \ doc/html/pcre_refcount.html \ doc/html/pcre_study.html \ + doc/html/pcre_utf16_to_host_byte_order.html \ + doc/html/pcre_utf32_to_host_byte_order.html \ doc/html/pcre_version.html \ doc/html/pcreapi.html \ doc/html/pcrebuild.html \ @@ -79,7 +88,8 @@ 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 libpcre. +# (non-user-visible) helper programs needed to build libpcre, libpcre16 +# or libpcre32. bin_PROGRAMS = noinst_PROGRAMS = @@ -91,10 +101,15 @@ MAINTAINERCLEANFILES = # 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/pcre_visibility.m4 + # These files contain maintenance information EXTRA_DIST += \ doc/perltest.txt \ NON-UNIX-USE \ + NON-AUTOTOOLS-BUILD \ HACKING # These files are used in the preparation of a release @@ -120,12 +135,44 @@ EXTRA_DIST += \ pcre.h.generic \ config.h.generic -pcre.h.generic: configure.ac +# The only difference between pcre.h.in and pcre.h is the setting of the PCRE +# version number. Therefore, we can create the generic version just by copying. +pcre.h.generic: pcre.h.in configure.ac rm -f $@ cp -p pcre.h $@ -MAINTAINERCLEANFILES += pcre.h.generic +# 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. Make +# sure that PCRE_EXP_DEFN is unset (in case it has visibility settings). +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/config.h + perl -n \ + -e 'BEGIN{$$blank=0;}' \ + -e 'if(/PCRE_EXP_DEFN/){print"/* #undef PCRE_EXP_DEFN */\n";$$blank=0;next;}' \ + -e 'if(/to make a symbol visible/){next;}' \ + -e 'if(/__attribute__ \(\(visibility/){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/config.h >$@ + rm -rf _generic +MAINTAINERCLEANFILES += pcre.h.generic config.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 = \ @@ -169,10 +216,16 @@ pcre_chartables.c: $(srcdir)/pcre_chartables.c.dist endif # WITH_REBUILD_CHARTABLES +BUILT_SOURCES = pcre_chartables.c ## The main pcre library + +# Build the 8 bit library if it is enabled. +if WITH_PCRE8 lib_LTLIBRARIES += libpcre.la + libpcre_la_SOURCES = \ + pcre_byte_order.c \ pcre_compile.c \ pcre_config.c \ pcre_dfa_exec.c \ @@ -180,31 +233,115 @@ libpcre_la_SOURCES = \ pcre_fullinfo.c \ pcre_get.c \ pcre_globals.c \ - pcre_info.c \ pcre_internal.h \ pcre_jit_compile.c \ pcre_maketables.c \ pcre_newline.c \ pcre_ord2utf8.c \ pcre_refcount.c \ + pcre_string_utils.c \ pcre_study.c \ pcre_tables.c \ - pcre_try_flipped.c \ pcre_ucd.c \ pcre_valid_utf8.c \ pcre_version.c \ pcre_xclass.c \ ucp.h +libpcre_la_CFLAGS = \ + $(VISIBILITY_CFLAGS) \ + $(AM_CFLAGS) + +libpcre_la_LIBADD = + ## This file is generated as part of the building process, so don't distribute. nodist_libpcre_la_SOURCES = \ pcre_chartables.c -# The pcre_printint.src file is #included by some source files, so it must be -# distributed. The pcre_chartables.c.dist file is the default version of -# pcre_chartables.c, used unless --enable-rebuild-chartables is specified. -EXTRA_DIST += pcre_printint.src pcre_chartables.c.dist +endif # WITH_PCRE8 +# Build the 16 bit library if it is enabled. +if WITH_PCRE16 +lib_LTLIBRARIES += libpcre16.la +libpcre16_la_SOURCES = \ + pcre16_byte_order.c \ + pcre16_chartables.c \ + pcre16_compile.c \ + pcre16_config.c \ + pcre16_dfa_exec.c \ + pcre16_exec.c \ + pcre16_fullinfo.c \ + pcre16_get.c \ + pcre16_globals.c \ + pcre16_jit_compile.c \ + pcre16_maketables.c \ + pcre16_newline.c \ + pcre16_ord2utf16.c \ + pcre16_refcount.c \ + pcre16_string_utils.c \ + pcre16_study.c \ + pcre16_tables.c \ + pcre16_ucd.c \ + pcre16_utf16_utils.c \ + pcre16_valid_utf16.c \ + pcre16_version.c \ + pcre16_xclass.c + +libpcre16_la_CFLAGS = \ + $(VISIBILITY_CFLAGS) \ + $(AM_CFLAGS) + +libpcre16_la_LIBADD = + +## This file is generated as part of the building process, so don't distribute. +nodist_libpcre16_la_SOURCES = \ + pcre_chartables.c + +endif # WITH_PCRE16 + +# Build the 32 bit library if it is enabled. +if WITH_PCRE32 +lib_LTLIBRARIES += libpcre32.la +libpcre32_la_SOURCES = \ + pcre32_byte_order.c \ + pcre32_chartables.c \ + pcre32_compile.c \ + pcre32_config.c \ + pcre32_dfa_exec.c \ + pcre32_exec.c \ + pcre32_fullinfo.c \ + pcre32_get.c \ + pcre32_globals.c \ + pcre32_jit_compile.c \ + pcre32_maketables.c \ + pcre32_newline.c \ + pcre32_ord2utf32.c \ + pcre32_refcount.c \ + pcre32_string_utils.c \ + pcre32_study.c \ + pcre32_tables.c \ + pcre32_ucd.c \ + pcre32_utf32_utils.c \ + pcre32_valid_utf32.c \ + pcre32_version.c \ + pcre32_xclass.c + +libpcre32_la_CFLAGS = \ + $(VISIBILITY_CFLAGS) \ + $(AM_CFLAGS) + +libpcre32_la_LIBADD = + +## This file is generated as part of the building process, so don't distribute. +nodist_libpcre32_la_SOURCES = \ + pcre_chartables.c + +endif # WITH_PCRE32 + +# The pcre_chartables.c.dist file is the default version of pcre_chartables.c, +# used unless --enable-rebuild-chartables is specified. +EXTRA_DIST += pcre_chartables.c.dist + # The JIT compiler lives in a separate directory, but its files are #included # when pcre_jit_compile.c is processed, so they must be distributed. EXTRA_DIST += \ @@ -220,13 +357,47 @@ EXTRA_DIST += \ sljit/sljitNativePPC_32.c \ sljit/sljitNativePPC_64.c \ sljit/sljitNativePPC_common.c \ + sljit/sljitNativeSPARC_32.c \ + sljit/sljitNativeSPARC_common.c \ sljit/sljitNativeX86_32.c \ sljit/sljitNativeX86_64.c \ sljit/sljitNativeX86_common.c \ sljit/sljitUtils.c +if WITH_PCRE8 libpcre_la_LDFLAGS = $(EXTRA_LIBPCRE_LDFLAGS) +endif # WITH_PCRE8 +if WITH_PCRE16 +libpcre16_la_LDFLAGS = $(EXTRA_LIBPCRE16_LDFLAGS) +endif # WITH_PCRE16 +if WITH_PCRE32 +libpcre32_la_LDFLAGS = $(EXTRA_LIBPCRE32_LDFLAGS) +endif # WITH_PCRE32 +if WITH_VALGRIND +if WITH_PCRE8 +libpcre_la_CFLAGS += $(VALGRIND_CFLAGS) +endif # WITH_PCRE8 +if WITH_PCRE16 +libpcre16_la_CFLAGS += $(VALGRIND_CFLAGS) +endif # WITH_PCRE16 +if WITH_PCRE32 +libpcre32_la_CFLAGS += $(VALGRIND_CFLAGS) +endif # WITH_PCRE32 +endif # WITH_VALGRIND + +if WITH_GCOV +if WITH_PCRE8 +libpcre_la_CFLAGS += $(GCOV_CFLAGS) +endif # WITH_PCRE8 +if WITH_PCRE16 +libpcre16_la_CFLAGS += $(GCOV_CFLAGS) +endif # WITH_PCRE16 +if WITH_PCRE32 +libpcre32_la_CFLAGS += $(GCOV_CFLAGS) +endif # WITH_PCRE32 +endif # WITH_GCOV + CLEANFILES += pcre_chartables.c ## If JIT support is enabled, arrange for the JIT test program to run. @@ -234,16 +405,39 @@ if WITH_JIT TESTS += pcre_jit_test noinst_PROGRAMS += pcre_jit_test pcre_jit_test_SOURCES = pcre_jit_test.c -pcre_jit_test_LDADD = libpcre.la +pcre_jit_test_CFLAGS = $(AM_CFLAGS) +pcre_jit_test_LDADD = +if WITH_PCRE8 +pcre_jit_test_LDADD += libpcre.la +endif # WITH_PCRE8 +if WITH_PCRE16 +pcre_jit_test_LDADD += libpcre16.la +endif # WITH_PCRE16 +if WITH_PCRE32 +pcre_jit_test_LDADD += libpcre32.la +endif # WITH_PCRE32 +if WITH_GCOV +pcre_jit_test_CFLAGS += $(GCOV_CFLAGS) +pcre_jit_test_LDADD += $(GCOV_LIBS) +endif # WITH_GCOV endif # WITH_JIT ## A version of the main pcre library that has a posix re API. +if WITH_PCRE8 + lib_LTLIBRARIES += libpcreposix.la libpcreposix_la_SOURCES = \ pcreposix.c +libpcreposix_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS) libpcreposix_la_LDFLAGS = $(EXTRA_LIBPCREPOSIX_LDFLAGS) libpcreposix_la_LIBADD = libpcre.la +if WITH_GCOV +libpcreposix_la_CFLAGS += $(GCOV_CFLAGS) +endif # WITH_GCOV + +endif # WITH_PCRE8 + ## There's a C++ library as well. if WITH_PCRE_CPP @@ -253,24 +447,35 @@ libpcrecpp_la_SOURCES = \ pcrecpp.cc \ pcre_scanner.cc \ pcre_stringpiece.cc +libpcrecpp_la_CXXFLAGS = $(VISIBILITY_CXXFLAGS) $(AM_CXXFLAGS) libpcrecpp_la_LDFLAGS = $(EXTRA_LIBPCRECPP_LDFLAGS) libpcrecpp_la_LIBADD = libpcre.la TESTS += pcrecpp_unittest noinst_PROGRAMS += pcrecpp_unittest pcrecpp_unittest_SOURCES = pcrecpp_unittest.cc +pcrecpp_unittest_CXXFLAGS = $(AM_CXXFLAGS) pcrecpp_unittest_LDADD = libpcrecpp.la TESTS += pcre_scanner_unittest noinst_PROGRAMS += pcre_scanner_unittest pcre_scanner_unittest_SOURCES = pcre_scanner_unittest.cc +pcre_scanner_unittest_CXXFLAGS = $(AM_CXXFLAGS) pcre_scanner_unittest_LDADD = libpcrecpp.la TESTS += pcre_stringpiece_unittest noinst_PROGRAMS += pcre_stringpiece_unittest pcre_stringpiece_unittest_SOURCES = pcre_stringpiece_unittest.cc +pcre_stringpiece_unittest_CXXFLAGS = $(AM_CXXFLAGS) pcre_stringpiece_unittest_LDADD = libpcrecpp.la +if WITH_GCOV +libpcrecpp_la_CXXFLAGS += $(GCOV_CXXFLAGS) +pcrecpp_unittest_LDADD += $(GCOV_LIBS) +pcre_scanner_unittest_LDADD += $(GCOV_LIBS) +pcre_stringpiece_unittest_LDADD += $(GCOV_LIBS) +endif # WITH_GCOV + endif # WITH_PCRE_CPP ## The main unit tests @@ -283,15 +488,45 @@ dist_noinst_SCRIPTS += RunTest EXTRA_DIST += RunTest.bat bin_PROGRAMS += pcretest pcretest_SOURCES = pcretest.c -pcretest_LDADD = libpcreposix.la $(LIBREADLINE) +pcretest_CFLAGS = $(AM_CFLAGS) +pcretest_LDADD = $(LIBREADLINE) +if WITH_PCRE8 +pcretest_SOURCES += pcre_printint.c +pcretest_LDADD += libpcre.la libpcreposix.la +endif # WITH_PCRE8 +if WITH_PCRE16 +pcretest_SOURCES += pcre16_printint.c +pcretest_LDADD += libpcre16.la +endif # WITH_PCRE16 +if WITH_PCRE32 +pcretest_SOURCES += pcre32_printint.c +pcretest_LDADD += libpcre32.la +endif # WITH_PCRE32 +if WITH_VALGRIND +pcretest_CFLAGS += $(VALGRIND_CFLAGS) +endif # WITH_VALGRIND +if WITH_GCOV +pcretest_CFLAGS += $(GCOV_CFLAGS) +pcretest_LDADD += $(GCOV_LIBS) +endif # WITH_GCOV +if WITH_PCRE8 TESTS += RunGrepTest dist_noinst_SCRIPTS += RunGrepTest bin_PROGRAMS += pcregrep pcregrep_SOURCES = pcregrep.c -pcregrep_LDADD = libpcreposix.la $(LIBZ) $(LIBBZ2) +pcregrep_CFLAGS = $(AM_CFLAGS) +pcregrep_LDADD = $(LIBZ) $(LIBBZ2) +pcregrep_LDADD += libpcre.la libpcreposix.la +if WITH_GCOV +pcregrep_CFLAGS += $(GCOV_CFLAGS) +pcregrep_LDADD += $(GCOV_LIBS) +endif # WITH_GCOV +endif # WITH_PCRE8 EXTRA_DIST += \ + testdata/grepbinary \ + testdata/grepfilelist \ testdata/grepinput \ testdata/grepinput3 \ testdata/grepinput8 \ @@ -301,6 +536,18 @@ EXTRA_DIST += \ testdata/grepoutput \ testdata/grepoutput8 \ testdata/grepoutputN \ + testdata/greppatN4 \ + testdata/saved16 \ + testdata/saved16BE-1 \ + testdata/saved16BE-2 \ + testdata/saved16LE-1 \ + testdata/saved16LE-2 \ + testdata/saved32 \ + testdata/saved32BE-1 \ + testdata/saved32BE-2 \ + testdata/saved32LE-1 \ + testdata/saved32LE-2 \ + testdata/saved8 \ testdata/testinput1 \ testdata/testinput2 \ testdata/testinput3 \ @@ -316,6 +563,18 @@ EXTRA_DIST += \ 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/testinputEBC \ testdata/testoutput1 \ testdata/testoutput2 \ testdata/testoutput3 \ @@ -326,11 +585,28 @@ EXTRA_DIST += \ testdata/testoutput8 \ testdata/testoutput9 \ testdata/testoutput10 \ - testdata/testoutput11 \ + testdata/testoutput11-8 \ + testdata/testoutput11-16 \ + testdata/testoutput11-32 \ testdata/testoutput12 \ testdata/testoutput13 \ testdata/testoutput14 \ testdata/testoutput15 \ + testdata/testoutput16 \ + testdata/testoutput17 \ + testdata/testoutput18-16 \ + testdata/testoutput18-32 \ + testdata/testoutput19 \ + testdata/testoutput20 \ + testdata/testoutput21-16 \ + testdata/testoutput21-32 \ + testdata/testoutput22-16 \ + testdata/testoutput22-32 \ + testdata/testoutput23 \ + testdata/testoutput24 \ + testdata/testoutput25 \ + testdata/testoutput26 \ + testdata/testoutputEBC \ testdata/wintestinput3 \ testdata/wintestoutput3 \ perltest.pl @@ -338,6 +614,7 @@ EXTRA_DIST += \ CLEANFILES += \ testsavedregex \ teststderr \ + testtemp* \ testtry \ testNinput @@ -360,13 +637,12 @@ test: check ; # A PCRE user submitted the following addition, saying that it "will allow # anyone using the 'mingw32' compiler to simply type 'make pcre.dll' and get a # nice DLL for Windows use". (It is used by the pcre.dll target.) -DLL_OBJS= pcre_compile.o pcre_config.o \ +DLL_OBJS= pcre_byte_order.o pcre_compile.o pcre_config.o \ pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \ - pcre_globals.o pcre_info.o pcre_jit_compile.o pcre_maketables.o \ + pcre_globals.o pcre_jit_compile.o pcre_maketables.o \ pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \ - pcre_study.o pcre_tables.o pcre_try_flipped.o \ - pcre_ucd.o pcre_valid_utf8.o pcre_version.o \ - pcre_chartables.o \ + pcre_study.o pcre_tables.o pcre_ucd.o \ + pcre_valid_utf8.o pcre_version.o pcre_chartables.o \ pcre_xclass.o # A PCRE user submitted the following addition, saying that it "will allow @@ -379,13 +655,23 @@ pcre.dll: $(DLL_OBJS) # We have .pc files for pkg-config users. pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libpcre.pc libpcreposix.pc +if WITH_PCRE16 +pkgconfig_DATA += libpcre16.pc +endif +if WITH_PCRE32 +pkgconfig_DATA += libpcre32.pc +endif if WITH_PCRE_CPP pkgconfig_DATA += libpcrecpp.pc endif +# Note that pcrecpp.3 is not in this list, but is included separately below. + dist_man_MANS = \ - doc/pcre.3 \ doc/pcre-config.1 \ + doc/pcre.3 \ + doc/pcre16.3 \ + doc/pcre32.3 \ doc/pcre_assign_jit_stack.3 \ doc/pcre_compile.3 \ doc/pcre_compile2.3 \ @@ -403,17 +689,21 @@ dist_man_MANS = \ doc/pcre_get_stringtable_entries.3 \ doc/pcre_get_substring.3 \ doc/pcre_get_substring_list.3 \ - doc/pcre_info.3 \ + doc/pcre_jit_exec.3 \ doc/pcre_jit_stack_alloc.3 \ doc/pcre_jit_stack_free.3 \ doc/pcre_maketables.3 \ + doc/pcre_pattern_to_host_byte_order.3 \ doc/pcre_refcount.3 \ doc/pcre_study.3 \ + doc/pcre_utf16_to_host_byte_order.3 \ + doc/pcre_utf32_to_host_byte_order.3 \ doc/pcre_version.3 \ doc/pcreapi.3 \ doc/pcrebuild.3 \ doc/pcrecallout.3 \ doc/pcrecompat.3 \ + doc/pcredemo.3 \ doc/pcregrep.1 \ doc/pcrejit.3 \ doc/pcrelimits.3 \ @@ -429,6 +719,61 @@ dist_man_MANS = \ doc/pcretest.1 \ doc/pcreunicode.3 +# Arrange for the per-function man pages to have 16- and 32-bit names as well. +install-data-hook: + ln -sf pcre_assign_jit_stack.3 $(DESTDIR)$(man3dir)/pcre16_assign_jit_stack.3 + ln -sf pcre_compile.3 $(DESTDIR)$(man3dir)/pcre16_compile.3 + ln -sf pcre_compile2.3 $(DESTDIR)$(man3dir)/pcre16_compile2.3 + ln -sf pcre_config.3 $(DESTDIR)$(man3dir)/pcre16_config.3 + ln -sf pcre_copy_named_substring.3 $(DESTDIR)$(man3dir)/pcre16_copy_named_substring.3 + ln -sf pcre_copy_substring.3 $(DESTDIR)$(man3dir)/pcre16_copy_substring.3 + ln -sf pcre_dfa_exec.3 $(DESTDIR)$(man3dir)/pcre16_dfa_exec.3 + ln -sf pcre_exec.3 $(DESTDIR)$(man3dir)/pcre16_exec.3 + ln -sf pcre_free_study.3 $(DESTDIR)$(man3dir)/pcre16_free_study.3 + ln -sf pcre_free_substring.3 $(DESTDIR)$(man3dir)/pcre16_free_substring.3 + ln -sf pcre_free_substring_list.3 $(DESTDIR)$(man3dir)/pcre16_free_substring_list.3 + ln -sf pcre_fullinfo.3 $(DESTDIR)$(man3dir)/pcre16_fullinfo.3 + ln -sf pcre_get_named_substring.3 $(DESTDIR)$(man3dir)/pcre16_get_named_substring.3 + ln -sf pcre_get_stringnumber.3 $(DESTDIR)$(man3dir)/pcre16_get_stringnumber.3 + ln -sf pcre_get_stringtable_entries.3 $(DESTDIR)$(man3dir)/pcre16_get_stringtable_entries.3 + ln -sf pcre_get_substring.3 $(DESTDIR)$(man3dir)/pcre16_get_substring.3 + ln -sf pcre_get_substring_list.3 $(DESTDIR)$(man3dir)/pcre16_get_substring_list.3 + ln -sf pcre_jit_exec.3 $(DESTDIR)$(man3dir)/pcre16_jit_exec.3 + ln -sf pcre_jit_stack_alloc.3 $(DESTDIR)$(man3dir)/pcre16_jit_stack_alloc.3 + ln -sf pcre_jit_stack_free.3 $(DESTDIR)$(man3dir)/pcre16_jit_stack_free.3 + ln -sf pcre_maketables.3 $(DESTDIR)$(man3dir)/pcre16_maketables.3 + ln -sf pcre_pattern_to_host_byte_order.3 $(DESTDIR)$(man3dir)/pcre16_pattern_to_host_byte_order.3 + ln -sf pcre_refcount.3 $(DESTDIR)$(man3dir)/pcre16_refcount.3 + ln -sf pcre_study.3 $(DESTDIR)$(man3dir)/pcre16_study.3 + ln -sf pcre_utf16_to_host_byte_order.3 $(DESTDIR)$(man3dir)/pcre16_utf16_to_host_byte_order.3 + ln -sf pcre_version.3 $(DESTDIR)$(man3dir)/pcre16_version.3 + ln -sf pcre_assign_jit_stack.3 $(DESTDIR)$(man3dir)/pcre32_assign_jit_stack.3 + ln -sf pcre_compile.3 $(DESTDIR)$(man3dir)/pcre32_compile.3 + ln -sf pcre_compile2.3 $(DESTDIR)$(man3dir)/pcre32_compile2.3 + ln -sf pcre_config.3 $(DESTDIR)$(man3dir)/pcre32_config.3 + ln -sf pcre_copy_named_substring.3 $(DESTDIR)$(man3dir)/pcre32_copy_named_substring.3 + ln -sf pcre_copy_substring.3 $(DESTDIR)$(man3dir)/pcre32_copy_substring.3 + ln -sf pcre_dfa_exec.3 $(DESTDIR)$(man3dir)/pcre32_dfa_exec.3 + ln -sf pcre_exec.3 $(DESTDIR)$(man3dir)/pcre32_exec.3 + ln -sf pcre_free_study.3 $(DESTDIR)$(man3dir)/pcre32_free_study.3 + ln -sf pcre_free_substring.3 $(DESTDIR)$(man3dir)/pcre32_free_substring.3 + ln -sf pcre_free_substring_list.3 $(DESTDIR)$(man3dir)/pcre32_free_substring_list.3 + ln -sf pcre_fullinfo.3 $(DESTDIR)$(man3dir)/pcre32_fullinfo.3 + ln -sf pcre_get_named_substring.3 $(DESTDIR)$(man3dir)/pcre32_get_named_substring.3 + ln -sf pcre_get_stringnumber.3 $(DESTDIR)$(man3dir)/pcre32_get_stringnumber.3 + ln -sf pcre_get_stringtable_entries.3 $(DESTDIR)$(man3dir)/pcre32_get_stringtable_entries.3 + ln -sf pcre_get_substring.3 $(DESTDIR)$(man3dir)/pcre32_get_substring.3 + ln -sf pcre_get_substring_list.3 $(DESTDIR)$(man3dir)/pcre32_get_substring_list.3 + ln -sf pcre_jit_exec.3 $(DESTDIR)$(man3dir)/pcre32_jit_exec.3 + ln -sf pcre_jit_stack_alloc.3 $(DESTDIR)$(man3dir)/pcre32_jit_stack_alloc.3 + ln -sf pcre_jit_stack_free.3 $(DESTDIR)$(man3dir)/pcre32_jit_stack_free.3 + ln -sf pcre_maketables.3 $(DESTDIR)$(man3dir)/pcre32_maketables.3 + ln -sf pcre_pattern_to_host_byte_order.3 $(DESTDIR)$(man3dir)/pcre32_pattern_to_host_byte_order.3 + ln -sf pcre_refcount.3 $(DESTDIR)$(man3dir)/pcre32_refcount.3 + ln -sf pcre_study.3 $(DESTDIR)$(man3dir)/pcre32_study.3 + ln -sf pcre_utf32_to_host_byte_order.3 $(DESTDIR)$(man3dir)/pcre32_utf32_to_host_byte_order.3 + ln -sf pcre_version.3 $(DESTDIR)$(man3dir)/pcre32_version.3 + pcrecpp_man = doc/pcrecpp.3 EXTRA_DIST += $(pcrecpp_man) @@ -436,12 +781,105 @@ if WITH_PCRE_CPP man_MANS = $(pcrecpp_man) endif +# gcov/lcov code coverage reporting + +if WITH_GCOV + +# 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. + +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 + +else + +coverage: + @echo "Configuring with --enable-coverage required to generate code coverage report." + +endif # WITH_GCOV + ## CMake support EXTRA_DIST += \ cmake/COPYING-CMAKE-SCRIPTS \ cmake/FindPackageHandleStandardArgs.cmake \ cmake/FindReadline.cmake \ + cmake/FindEditline.cmake \ CMakeLists.txt \ config-cmake.h.in