## 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 \
  COPYING \
  ChangeLog \
  LICENCE \
  NEWS \
  README \
  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_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_length.html \
  doc/html/pcre2_set_offset_limit.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_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_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_length.3 \
  doc/pcre2_set_offset_limit.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_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'.

CLEANFILES =
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 files are used in the preparation of a release

EXTRA_DIST += \
  PrepareRelease \
  CheckMan \
  CleanTxt \
  Detrail \
  132html \
  doc/index.html.src

# 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. Make
# sure that PCRE2_EXP_DEFN is unset (in case it has 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(/PCRE2_EXP_DEFN/){print"/* #undef PCRE2_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/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_compile.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_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_valid_utf.c \
  src/pcre2_xclass.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 += \
  src/sljit/sljitConfig.h \
  src/sljit/sljitConfigInternal.h \
  src/sljit/sljitExecAllocator.c \
  src/sljit/sljitLir.c \
  src/sljit/sljitLir.h \
  src/sljit/sljitNativeARM_32.c \
  src/sljit/sljitNativeARM_64.c \
  src/sljit/sljitNativeARM_T2_32.c \
  src/sljit/sljitNativeMIPS_32.c \
  src/sljit/sljitNativeMIPS_64.c \
  src/sljit/sljitNativeMIPS_common.c \
  src/sljit/sljitNativePPC_32.c \
  src/sljit/sljitNativePPC_64.c \
  src/sljit/sljitNativePPC_common.c \
  src/sljit/sljitNativeS390X.c \
  src/sljit/sljitNativeSPARC_32.c \
  src/sljit/sljitNativeSPARC_common.c \
  src/sljit/sljitNativeX86_32.c \
  src/sljit/sljitNativeX86_64.c \
  src/sljit/sljitNativeX86_common.c \
  src/sljit/sljitProtExecAllocator.c \
  src/sljit/sljitUtils.c \
  src/sljit/sljitWXExecAllocator.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 \
  $(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

## 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 = .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
pcre2fuzzcheck_SOURCES = src/pcre2_fuzzsupport.c
pcre2fuzzcheck_CFLAGS = -DSTANDALONE $(AM_CFLAGS)
pcre2fuzzcheck_LDADD = libpcre2-8.la
if WITH_GCOV
pcre2fuzzcheck_CFLAGS += $(GCOV_CFLAGS)
pcre2fuzzcheck_LDADD += $(GCOV_LIBS)
endif # WITH_GCOV
endif # WITH FUZZ_SUPPORT
endif # WITH_PCRE2_8

## -------- Testing ----------

## 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/grepinputM \
  testdata/grepinputv \
  testdata/grepinputx \
  testdata/greplist \
  testdata/grepoutput \
  testdata/grepoutput8 \
  testdata/grepoutputC \
  testdata/grepoutputCN \
  testdata/grepoutputN \
  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/testinputEBC \
  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/testoutputEBC \
  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 automatcally. 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/FindPackageHandleStandardArgs.cmake \
  cmake/FindReadline.cmake \
  cmake/pcre2-config-version.cmake.in \
  cmake/pcre2-config.cmake.in \
  CMakeLists.txt \
  config-cmake.h.in

## end Makefile.am
