1## Process this file with automake to produce Makefile.in.
2
3ACLOCAL_AMFLAGS = -I m4
4
5dist_doc_DATA = \
6  doc/pcre.txt \
7  doc/pcre-config.txt \
8  doc/pcregrep.txt \
9  doc/pcretest.txt \
10  AUTHORS \
11  COPYING \
12  ChangeLog \
13  LICENCE \
14  NEWS \
15  README
16
17# Note that pcrecpp.html is not in this list; it is listed separately below.
18
19dist_html_DATA = \
20  doc/html/NON-AUTOTOOLS-BUILD.txt \
21  doc/html/README.txt \
22  doc/html/index.html \
23  doc/html/pcre-config.html \
24  doc/html/pcre.html \
25  doc/html/pcre16.html \
26  doc/html/pcre32.html \
27  doc/html/pcre_assign_jit_stack.html \
28  doc/html/pcre_compile.html \
29  doc/html/pcre_compile2.html \
30  doc/html/pcre_config.html \
31  doc/html/pcre_copy_named_substring.html \
32  doc/html/pcre_copy_substring.html \
33  doc/html/pcre_dfa_exec.html \
34  doc/html/pcre_exec.html \
35  doc/html/pcre_free_study.html \
36  doc/html/pcre_free_substring.html \
37  doc/html/pcre_free_substring_list.html \
38  doc/html/pcre_fullinfo.html \
39  doc/html/pcre_get_named_substring.html \
40  doc/html/pcre_get_stringnumber.html \
41  doc/html/pcre_get_stringtable_entries.html \
42  doc/html/pcre_get_substring.html \
43  doc/html/pcre_get_substring_list.html \
44  doc/html/pcre_jit_exec.html \
45  doc/html/pcre_jit_stack_alloc.html \
46  doc/html/pcre_jit_stack_free.html \
47  doc/html/pcre_maketables.html \
48  doc/html/pcre_pattern_to_host_byte_order.html \
49  doc/html/pcre_refcount.html \
50  doc/html/pcre_study.html \
51  doc/html/pcre_utf16_to_host_byte_order.html \
52  doc/html/pcre_utf32_to_host_byte_order.html \
53  doc/html/pcre_version.html \
54  doc/html/pcreapi.html \
55  doc/html/pcrebuild.html \
56  doc/html/pcrecallout.html \
57  doc/html/pcrecompat.html \
58  doc/html/pcredemo.html \
59  doc/html/pcregrep.html \
60  doc/html/pcrejit.html \
61  doc/html/pcrelimits.html \
62  doc/html/pcrematching.html \
63  doc/html/pcrepartial.html \
64  doc/html/pcrepattern.html \
65  doc/html/pcreperform.html \
66  doc/html/pcreposix.html \
67  doc/html/pcreprecompile.html \
68  doc/html/pcresample.html \
69  doc/html/pcrestack.html \
70  doc/html/pcresyntax.html \
71  doc/html/pcretest.html \
72  doc/html/pcreunicode.html
73
74pcrecpp_html = doc/html/pcrecpp.html
75dist_noinst_DATA = $(pcrecpp_html)
76
77if WITH_PCRE_CPP
78html_DATA = $(pcrecpp_html)
79endif
80
81# The Libtool libraries to install.  We'll add to this later.
82lib_LTLIBRARIES =
83
84# Unit tests you want to run when people type 'make check'.
85# TESTS is for binary unit tests, check_SCRIPTS for script-based tests
86TESTS =
87check_SCRIPTS =
88dist_noinst_SCRIPTS =
89
90# Some of the binaries we make are to be installed, and others are
91# (non-user-visible) helper programs needed to build libpcre, libpcre16
92# or libpcre32.
93bin_PROGRAMS =
94noinst_PROGRAMS =
95
96# Additional files to delete on 'make clean' and 'make maintainer-clean'.
97CLEANFILES =
98MAINTAINERCLEANFILES =
99
100# Additional files to bundle with the distribution, over and above what
101# the Autotools include by default.
102EXTRA_DIST =
103
104# These files contain additional m4 macros that are used by autoconf.
105EXTRA_DIST += \
106  m4/ax_pthread.m4 m4/pcre_visibility.m4
107
108# These files contain maintenance information
109EXTRA_DIST += \
110  doc/perltest.txt \
111  NON-UNIX-USE \
112  NON-AUTOTOOLS-BUILD \
113  HACKING
114
115# These files are used in the preparation of a release
116EXTRA_DIST += \
117  PrepareRelease \
118  CheckMan \
119  CleanTxt \
120  Detrail \
121  132html \
122  doc/index.html.src
123
124# These files are to do with building for Virtual Pascal
125EXTRA_DIST += \
126  makevp.bat \
127  makevp_c.txt \
128  makevp_l.txt \
129  pcregexp.pas
130
131# These files are usable versions of pcre.h and config.h that are distributed
132# for the benefit of people who are building PCRE manually, without the
133# Autotools support.
134EXTRA_DIST += \
135  pcre.h.generic \
136  config.h.generic
137
138# The only difference between pcre.h.in and pcre.h is the setting of the PCRE
139# version number. Therefore, we can create the generic version just by copying.
140pcre.h.generic: pcre.h.in configure.ac
141	rm -f $@
142	cp -p pcre.h $@
143
144# It is more complicated for config.h.generic. We need the version that results
145# from a default configuration so as to get all the default values for PCRE
146# configuration macros such as MATCH_LIMIT and NEWLINE. We can get this by
147# doing a configure in a temporary directory. However, some trickery is needed,
148# because the source directory may already be configured. If you just try
149# running configure in a new directory, it complains. For this reason, we move
150# config.status out of the way while doing the default configuration. The
151# resulting config.h is munged by perl to put #ifdefs round any #defines for
152# macros with values, and to #undef all boolean macros such as HAVE_xxx and
153# SUPPORT_xxx. We also get rid of any gcc-specific visibility settings. Make
154# sure that PCRE_EXP_DEFN is unset (in case it has visibility settings).
155config.h.generic: configure.ac
156	rm -rf $@ _generic
157	mkdir _generic
158	cs=$(srcdir)/config.status; test ! -f $$cs || mv -f $$cs $$cs.aside
159	cd _generic && $(abs_top_srcdir)/configure || :
160	cs=$(srcdir)/config.status; test ! -f $$cs.aside || mv -f $$cs.aside $$cs
161	test -f _generic/config.h
162	perl -n \
163	  -e 'BEGIN{$$blank=0;}' \
164	  -e 'if(/PCRE_EXP_DEFN/){print"/* #undef PCRE_EXP_DEFN */\n";$$blank=0;next;}' \
165	  -e 'if(/to make a symbol visible/){next;}' \
166	  -e 'if(/__attribute__ \(\(visibility/){next;}' \
167	  -e 'if(/LT_OBJDIR/){print"/* This is ignored unless you are using libtool. */\n";}' \
168	  -e 'if(/^#define\s((?:HAVE|SUPPORT|STDC)_\w+)/){print"/* #undef $$1 */\n";$$blank=0;next;}' \
169	  -e 'if(/^#define\s(?!PACKAGE|VERSION)(\w+)/){print"#ifndef $$1\n$$_#endif\n";$$blank=0;next;}' \
170	  -e 'if(/^\s*$$/){print unless $$blank; $$blank=1;} else{print;$$blank=0;}' \
171	  _generic/config.h >$@
172	rm -rf _generic
173
174MAINTAINERCLEANFILES += pcre.h.generic config.h.generic
175
176# These are the header files we'll install. We do not distribute pcre.h because
177# it is generated from pcre.h.in.
178nodist_include_HEADERS = \
179  pcre.h
180include_HEADERS = \
181  pcreposix.h
182
183# These additional headers will be be installed if C++ support is enabled. We
184# do not distribute pcrecpparg.h or pcre_stringpiece.h, as these are generated
185# from corresponding .h.in files (which we do distribute).
186if WITH_PCRE_CPP
187nodist_include_HEADERS += \
188  pcrecpparg.h \
189  pcre_stringpiece.h
190include_HEADERS += \
191  pcrecpp.h \
192  pcre_scanner.h
193endif # WITH_PCRE_CPP
194
195bin_SCRIPTS = pcre-config
196
197## ---------------------------------------------------------------
198## The dftables program is used to rebuild character tables before compiling
199## PCRE, if --enable-rebuild-chartables is specified. It is not a user-visible
200## program. The default (when --enable-rebuild-chartables is not specified) is
201## to copy a distributed set of tables that are defined for ASCII code. In this
202## case, dftables is not needed.
203
204if WITH_REBUILD_CHARTABLES
205
206noinst_PROGRAMS += dftables
207dftables_SOURCES = dftables.c
208
209pcre_chartables.c: dftables$(EXEEXT)
210	./dftables$(EXEEXT) $@
211else
212
213pcre_chartables.c: $(srcdir)/pcre_chartables.c.dist
214	rm -f $@
215	$(LN_S) $(srcdir)/pcre_chartables.c.dist $@
216
217endif # WITH_REBUILD_CHARTABLES
218
219BUILT_SOURCES = pcre_chartables.c
220
221## The main pcre library
222
223# Build the 8 bit library if it is enabled.
224if WITH_PCRE8
225lib_LTLIBRARIES += libpcre.la
226
227libpcre_la_SOURCES = \
228  pcre_byte_order.c \
229  pcre_compile.c \
230  pcre_config.c \
231  pcre_dfa_exec.c \
232  pcre_exec.c \
233  pcre_fullinfo.c \
234  pcre_get.c \
235  pcre_globals.c \
236  pcre_internal.h \
237  pcre_jit_compile.c \
238  pcre_maketables.c \
239  pcre_newline.c \
240  pcre_ord2utf8.c \
241  pcre_refcount.c \
242  pcre_string_utils.c \
243  pcre_study.c \
244  pcre_tables.c \
245  pcre_ucd.c \
246  pcre_valid_utf8.c \
247  pcre_version.c \
248  pcre_xclass.c \
249  ucp.h
250
251libpcre_la_CFLAGS = \
252  $(VISIBILITY_CFLAGS) \
253  $(AM_CFLAGS)
254
255libpcre_la_LIBADD =
256
257## This file is generated as part of the building process, so don't distribute.
258nodist_libpcre_la_SOURCES = \
259  pcre_chartables.c
260
261endif # WITH_PCRE8
262
263# Build the 16 bit library if it is enabled.
264if WITH_PCRE16
265lib_LTLIBRARIES += libpcre16.la
266libpcre16_la_SOURCES = \
267  pcre16_byte_order.c \
268  pcre16_chartables.c \
269  pcre16_compile.c \
270  pcre16_config.c \
271  pcre16_dfa_exec.c \
272  pcre16_exec.c \
273  pcre16_fullinfo.c \
274  pcre16_get.c \
275  pcre16_globals.c \
276  pcre16_jit_compile.c \
277  pcre16_maketables.c \
278  pcre16_newline.c \
279  pcre16_ord2utf16.c \
280  pcre16_refcount.c \
281  pcre16_string_utils.c \
282  pcre16_study.c \
283  pcre16_tables.c \
284  pcre16_ucd.c \
285  pcre16_utf16_utils.c \
286  pcre16_valid_utf16.c \
287  pcre16_version.c \
288  pcre16_xclass.c
289
290libpcre16_la_CFLAGS = \
291  $(VISIBILITY_CFLAGS) \
292  $(AM_CFLAGS)
293
294libpcre16_la_LIBADD =
295
296## This file is generated as part of the building process, so don't distribute.
297nodist_libpcre16_la_SOURCES = \
298  pcre_chartables.c
299
300endif # WITH_PCRE16
301
302# Build the 32 bit library if it is enabled.
303if WITH_PCRE32
304lib_LTLIBRARIES += libpcre32.la
305libpcre32_la_SOURCES = \
306  pcre32_byte_order.c \
307  pcre32_chartables.c \
308  pcre32_compile.c \
309  pcre32_config.c \
310  pcre32_dfa_exec.c \
311  pcre32_exec.c \
312  pcre32_fullinfo.c \
313  pcre32_get.c \
314  pcre32_globals.c \
315  pcre32_jit_compile.c \
316  pcre32_maketables.c \
317  pcre32_newline.c \
318  pcre32_ord2utf32.c \
319  pcre32_refcount.c \
320  pcre32_string_utils.c \
321  pcre32_study.c \
322  pcre32_tables.c \
323  pcre32_ucd.c \
324  pcre32_utf32_utils.c \
325  pcre32_valid_utf32.c \
326  pcre32_version.c \
327  pcre32_xclass.c
328
329libpcre32_la_CFLAGS = \
330  $(VISIBILITY_CFLAGS) \
331  $(AM_CFLAGS)
332
333libpcre32_la_LIBADD =
334
335## This file is generated as part of the building process, so don't distribute.
336nodist_libpcre32_la_SOURCES = \
337  pcre_chartables.c
338
339endif # WITH_PCRE32
340
341# The pcre_chartables.c.dist file is the default version of pcre_chartables.c,
342# used unless --enable-rebuild-chartables is specified.
343EXTRA_DIST += pcre_chartables.c.dist
344
345# The JIT compiler lives in a separate directory, but its files are #included
346# when pcre_jit_compile.c is processed, so they must be distributed.
347EXTRA_DIST += \
348  sljit/sljitConfig.h \
349  sljit/sljitConfigInternal.h \
350  sljit/sljitExecAllocator.c \
351  sljit/sljitLir.c \
352  sljit/sljitLir.h \
353  sljit/sljitNativeARM_32.c \
354  sljit/sljitNativeARM_64.c \
355  sljit/sljitNativeARM_T2_32.c \
356  sljit/sljitNativeMIPS_32.c \
357  sljit/sljitNativeMIPS_64.c \
358  sljit/sljitNativeMIPS_common.c \
359  sljit/sljitNativePPC_32.c \
360  sljit/sljitNativePPC_64.c \
361  sljit/sljitNativePPC_common.c \
362  sljit/sljitNativeSPARC_32.c \
363  sljit/sljitNativeSPARC_common.c \
364  sljit/sljitNativeTILEGX_64.c \
365  sljit/sljitNativeTILEGX-encoder.c \
366  sljit/sljitNativeX86_32.c \
367  sljit/sljitNativeX86_64.c \
368  sljit/sljitNativeX86_common.c \
369  sljit/sljitUtils.c
370
371if WITH_PCRE8
372libpcre_la_LDFLAGS = $(EXTRA_LIBPCRE_LDFLAGS)
373endif # WITH_PCRE8
374if WITH_PCRE16
375libpcre16_la_LDFLAGS = $(EXTRA_LIBPCRE16_LDFLAGS)
376endif # WITH_PCRE16
377if WITH_PCRE32
378libpcre32_la_LDFLAGS = $(EXTRA_LIBPCRE32_LDFLAGS)
379endif # WITH_PCRE32
380
381if WITH_VALGRIND
382if WITH_PCRE8
383libpcre_la_CFLAGS += $(VALGRIND_CFLAGS)
384endif # WITH_PCRE8
385if WITH_PCRE16
386libpcre16_la_CFLAGS += $(VALGRIND_CFLAGS)
387endif # WITH_PCRE16
388if WITH_PCRE32
389libpcre32_la_CFLAGS += $(VALGRIND_CFLAGS)
390endif # WITH_PCRE32
391endif # WITH_VALGRIND
392
393if WITH_GCOV
394if WITH_PCRE8
395libpcre_la_CFLAGS += $(GCOV_CFLAGS)
396endif # WITH_PCRE8
397if WITH_PCRE16
398libpcre16_la_CFLAGS += $(GCOV_CFLAGS)
399endif # WITH_PCRE16
400if WITH_PCRE32
401libpcre32_la_CFLAGS += $(GCOV_CFLAGS)
402endif # WITH_PCRE32
403endif # WITH_GCOV
404
405CLEANFILES += pcre_chartables.c
406
407## If JIT support is enabled, arrange for the JIT test program to run.
408if WITH_JIT
409TESTS += pcre_jit_test
410noinst_PROGRAMS += pcre_jit_test
411pcre_jit_test_SOURCES = pcre_jit_test.c
412pcre_jit_test_CFLAGS = $(AM_CFLAGS)
413pcre_jit_test_LDADD =
414if WITH_PCRE8
415pcre_jit_test_LDADD += libpcre.la
416endif # WITH_PCRE8
417if WITH_PCRE16
418pcre_jit_test_LDADD += libpcre16.la
419endif # WITH_PCRE16
420if WITH_PCRE32
421pcre_jit_test_LDADD += libpcre32.la
422endif # WITH_PCRE32
423if WITH_GCOV
424pcre_jit_test_CFLAGS += $(GCOV_CFLAGS)
425pcre_jit_test_LDADD += $(GCOV_LIBS)
426endif # WITH_GCOV
427endif # WITH_JIT
428
429## A version of the main pcre library that has a posix re API.
430if WITH_PCRE8
431
432lib_LTLIBRARIES += libpcreposix.la
433libpcreposix_la_SOURCES = \
434  pcreposix.c
435libpcreposix_la_CFLAGS = $(VISIBILITY_CFLAGS) $(AM_CFLAGS)
436libpcreposix_la_LDFLAGS = $(EXTRA_LIBPCREPOSIX_LDFLAGS)
437libpcreposix_la_LIBADD = libpcre.la
438
439if WITH_GCOV
440libpcreposix_la_CFLAGS += $(GCOV_CFLAGS)
441endif # WITH_GCOV
442
443endif # WITH_PCRE8
444
445## There's a C++ library as well.
446if WITH_PCRE_CPP
447
448lib_LTLIBRARIES += libpcrecpp.la
449libpcrecpp_la_SOURCES = \
450  pcrecpp_internal.h \
451  pcrecpp.cc \
452  pcre_scanner.cc \
453  pcre_stringpiece.cc
454libpcrecpp_la_CXXFLAGS = $(VISIBILITY_CXXFLAGS) $(AM_CXXFLAGS)
455libpcrecpp_la_LDFLAGS = $(EXTRA_LIBPCRECPP_LDFLAGS)
456libpcrecpp_la_LIBADD = libpcre.la
457
458TESTS += pcrecpp_unittest
459noinst_PROGRAMS += pcrecpp_unittest
460pcrecpp_unittest_SOURCES = pcrecpp_unittest.cc
461pcrecpp_unittest_CXXFLAGS = $(AM_CXXFLAGS)
462pcrecpp_unittest_LDADD = libpcrecpp.la
463
464TESTS += pcre_scanner_unittest
465noinst_PROGRAMS += pcre_scanner_unittest
466pcre_scanner_unittest_SOURCES = pcre_scanner_unittest.cc
467pcre_scanner_unittest_CXXFLAGS = $(AM_CXXFLAGS)
468pcre_scanner_unittest_LDADD = libpcrecpp.la
469
470TESTS += pcre_stringpiece_unittest
471noinst_PROGRAMS += pcre_stringpiece_unittest
472pcre_stringpiece_unittest_SOURCES = pcre_stringpiece_unittest.cc
473pcre_stringpiece_unittest_CXXFLAGS = $(AM_CXXFLAGS)
474pcre_stringpiece_unittest_LDADD = libpcrecpp.la
475
476if WITH_GCOV
477libpcrecpp_la_CXXFLAGS += $(GCOV_CXXFLAGS)
478pcrecpp_unittest_LDADD += $(GCOV_LIBS)
479pcre_scanner_unittest_LDADD += $(GCOV_LIBS)
480pcre_stringpiece_unittest_LDADD += $(GCOV_LIBS)
481endif # WITH_GCOV
482
483endif # WITH_PCRE_CPP
484
485## The main unit tests
486
487# Each unit test is a binary plus a script that runs that binary in various
488# ways. We install these test binaries in case folks find it helpful.
489
490TESTS += RunTest
491dist_noinst_SCRIPTS += RunTest
492EXTRA_DIST += RunTest.bat
493bin_PROGRAMS += pcretest
494pcretest_SOURCES = pcretest.c
495pcretest_CFLAGS = $(AM_CFLAGS)
496pcretest_LDADD = $(LIBREADLINE)
497if WITH_PCRE8
498pcretest_SOURCES += pcre_printint.c
499pcretest_LDADD += libpcre.la libpcreposix.la
500endif # WITH_PCRE8
501if WITH_PCRE16
502pcretest_SOURCES += pcre16_printint.c
503pcretest_LDADD += libpcre16.la
504endif # WITH_PCRE16
505if WITH_PCRE32
506pcretest_SOURCES += pcre32_printint.c
507pcretest_LDADD += libpcre32.la
508endif # WITH_PCRE32
509if WITH_VALGRIND
510pcretest_CFLAGS += $(VALGRIND_CFLAGS)
511endif # WITH_VALGRIND
512if WITH_GCOV
513pcretest_CFLAGS += $(GCOV_CFLAGS)
514pcretest_LDADD += $(GCOV_LIBS)
515endif # WITH_GCOV
516
517if WITH_PCRE8
518TESTS += RunGrepTest
519dist_noinst_SCRIPTS += RunGrepTest
520bin_PROGRAMS += pcregrep
521pcregrep_SOURCES = pcregrep.c
522pcregrep_CFLAGS = $(AM_CFLAGS)
523pcregrep_LDADD = $(LIBZ) $(LIBBZ2)
524pcregrep_LDADD += libpcre.la libpcreposix.la
525if WITH_GCOV
526pcregrep_CFLAGS += $(GCOV_CFLAGS)
527pcregrep_LDADD += $(GCOV_LIBS)
528endif # WITH_GCOV
529endif # WITH_PCRE8
530
531EXTRA_DIST += \
532  testdata/grepbinary \
533  testdata/grepfilelist \
534  testdata/grepinput \
535  testdata/grepinput3 \
536  testdata/grepinput8 \
537  testdata/grepinputv \
538  testdata/grepinputx \
539  testdata/greplist \
540  testdata/grepoutput \
541  testdata/grepoutput8 \
542  testdata/grepoutputN \
543  testdata/greppatN4 \
544  testdata/saved16 \
545  testdata/saved16BE-1 \
546  testdata/saved16BE-2 \
547  testdata/saved16LE-1 \
548  testdata/saved16LE-2 \
549  testdata/saved32 \
550  testdata/saved32BE-1 \
551  testdata/saved32BE-2 \
552  testdata/saved32LE-1 \
553  testdata/saved32LE-2 \
554  testdata/saved8 \
555  testdata/testinput1 \
556  testdata/testinput2 \
557  testdata/testinput3 \
558  testdata/testinput4 \
559  testdata/testinput5 \
560  testdata/testinput6 \
561  testdata/testinput7 \
562  testdata/testinput8 \
563  testdata/testinput9 \
564  testdata/testinput10 \
565  testdata/testinput11 \
566  testdata/testinput12 \
567  testdata/testinput13 \
568  testdata/testinput14 \
569  testdata/testinput15 \
570  testdata/testinput16 \
571  testdata/testinput17 \
572  testdata/testinput18 \
573  testdata/testinput19 \
574  testdata/testinput20 \
575  testdata/testinput21 \
576  testdata/testinput22 \
577  testdata/testinput23 \
578  testdata/testinput24 \
579  testdata/testinput25 \
580  testdata/testinput26 \
581  testdata/testinputEBC \
582  testdata/testoutput1 \
583  testdata/testoutput2 \
584  testdata/testoutput3 \
585  testdata/testoutput3A \
586  testdata/testoutput3B \
587  testdata/testoutput4 \
588  testdata/testoutput5 \
589  testdata/testoutput6 \
590  testdata/testoutput7 \
591  testdata/testoutput8 \
592  testdata/testoutput9 \
593  testdata/testoutput10 \
594  testdata/testoutput11-8 \
595  testdata/testoutput11-16 \
596  testdata/testoutput11-32 \
597  testdata/testoutput12 \
598  testdata/testoutput13 \
599  testdata/testoutput14 \
600  testdata/testoutput15 \
601  testdata/testoutput16 \
602  testdata/testoutput17 \
603  testdata/testoutput18-16 \
604  testdata/testoutput18-32 \
605  testdata/testoutput19 \
606  testdata/testoutput20 \
607  testdata/testoutput21-16 \
608  testdata/testoutput21-32 \
609  testdata/testoutput22-16 \
610  testdata/testoutput22-32 \
611  testdata/testoutput23 \
612  testdata/testoutput24 \
613  testdata/testoutput25 \
614  testdata/testoutput26 \
615  testdata/testoutputEBC \
616  testdata/wintestinput3 \
617  testdata/wintestoutput3 \
618  perltest.pl
619
620CLEANFILES += \
621	testsavedregex \
622	teststderr \
623        testtemp* \
624	testtry \
625        testNinput \
626        testtrygrep \
627        teststderrgrep \
628        testNinputgrep
629
630# PCRE demonstration program. No longer built automatcally. The point is that
631# the users should build it themselves. So just distribute the source.
632# noinst_PROGRAMS += pcredemo
633# pcredemo_SOURCES = pcredemo.c
634# pcredemo_LDADD = libpcre.la
635
636EXTRA_DIST += pcredemo.c
637
638
639## Utility rules, documentation, etc.
640
641# A compatibility line, the old build system worked with 'make test'
642test: check ;
643
644
645# A PCRE user submitted the following addition, saying that it "will allow
646# anyone using the 'mingw32' compiler to simply type 'make pcre.dll' and get a
647# nice DLL for Windows use". (It is used by the pcre.dll target.)
648DLL_OBJS= pcre_byte_order.o pcre_compile.o pcre_config.o \
649	pcre_dfa_exec.o pcre_exec.o pcre_fullinfo.o pcre_get.o \
650	pcre_globals.o pcre_jit_compile.o pcre_maketables.o \
651	pcre_newline.o pcre_ord2utf8.o pcre_refcount.o \
652	pcre_study.o pcre_tables.o pcre_ucd.o \
653	pcre_valid_utf8.o pcre_version.o pcre_chartables.o \
654	pcre_xclass.o
655
656# A PCRE user submitted the following addition, saying that it "will allow
657# anyone using the 'mingw32' compiler to simply type 'make pcre.dll' and get a
658# nice DLL for Windows use".
659pcre.dll: $(DLL_OBJS)
660	$(CC) -shared -o pcre.dll -Wl,"--strip-all" -Wl,"--export-all-symbols" $(DLL_OBJS)
661
662
663# We have .pc files for pkg-config users.
664pkgconfigdir = $(libdir)/pkgconfig
665pkgconfig_DATA = libpcre.pc libpcreposix.pc
666if WITH_PCRE16
667pkgconfig_DATA += libpcre16.pc
668endif
669if WITH_PCRE32
670pkgconfig_DATA += libpcre32.pc
671endif
672if WITH_PCRE_CPP
673pkgconfig_DATA += libpcrecpp.pc
674endif
675
676# Note that pcrecpp.3 is not in this list, but is included separately below.
677
678dist_man_MANS = \
679  doc/pcre-config.1 \
680  doc/pcre.3 \
681  doc/pcre16.3 \
682  doc/pcre32.3 \
683  doc/pcre_assign_jit_stack.3 \
684  doc/pcre_compile.3 \
685  doc/pcre_compile2.3 \
686  doc/pcre_config.3 \
687  doc/pcre_copy_named_substring.3 \
688  doc/pcre_copy_substring.3 \
689  doc/pcre_dfa_exec.3 \
690  doc/pcre_exec.3 \
691  doc/pcre_free_study.3 \
692  doc/pcre_free_substring.3 \
693  doc/pcre_free_substring_list.3 \
694  doc/pcre_fullinfo.3 \
695  doc/pcre_get_named_substring.3 \
696  doc/pcre_get_stringnumber.3 \
697  doc/pcre_get_stringtable_entries.3 \
698  doc/pcre_get_substring.3 \
699  doc/pcre_get_substring_list.3 \
700  doc/pcre_jit_exec.3 \
701  doc/pcre_jit_stack_alloc.3 \
702  doc/pcre_jit_stack_free.3 \
703  doc/pcre_maketables.3 \
704  doc/pcre_pattern_to_host_byte_order.3 \
705  doc/pcre_refcount.3 \
706  doc/pcre_study.3 \
707  doc/pcre_utf16_to_host_byte_order.3 \
708  doc/pcre_utf32_to_host_byte_order.3 \
709  doc/pcre_version.3 \
710  doc/pcreapi.3 \
711  doc/pcrebuild.3 \
712  doc/pcrecallout.3 \
713  doc/pcrecompat.3 \
714  doc/pcredemo.3 \
715  doc/pcregrep.1 \
716  doc/pcrejit.3 \
717  doc/pcrelimits.3 \
718  doc/pcrematching.3 \
719  doc/pcrepartial.3 \
720  doc/pcrepattern.3 \
721  doc/pcreperform.3 \
722  doc/pcreposix.3 \
723  doc/pcreprecompile.3 \
724  doc/pcresample.3 \
725  doc/pcrestack.3 \
726  doc/pcresyntax.3 \
727  doc/pcretest.1 \
728  doc/pcreunicode.3
729
730# Arrange for the per-function man pages to have 16- and 32-bit names as well.
731install-data-hook:
732	ln -sf pcre_assign_jit_stack.3		 $(DESTDIR)$(man3dir)/pcre16_assign_jit_stack.3
733	ln -sf pcre_compile.3			 $(DESTDIR)$(man3dir)/pcre16_compile.3
734	ln -sf pcre_compile2.3			 $(DESTDIR)$(man3dir)/pcre16_compile2.3
735	ln -sf pcre_config.3			 $(DESTDIR)$(man3dir)/pcre16_config.3
736	ln -sf pcre_copy_named_substring.3	 $(DESTDIR)$(man3dir)/pcre16_copy_named_substring.3
737	ln -sf pcre_copy_substring.3		 $(DESTDIR)$(man3dir)/pcre16_copy_substring.3
738	ln -sf pcre_dfa_exec.3			 $(DESTDIR)$(man3dir)/pcre16_dfa_exec.3
739	ln -sf pcre_exec.3			 $(DESTDIR)$(man3dir)/pcre16_exec.3
740	ln -sf pcre_free_study.3		 $(DESTDIR)$(man3dir)/pcre16_free_study.3
741	ln -sf pcre_free_substring.3		 $(DESTDIR)$(man3dir)/pcre16_free_substring.3
742	ln -sf pcre_free_substring_list.3	 $(DESTDIR)$(man3dir)/pcre16_free_substring_list.3
743	ln -sf pcre_fullinfo.3			 $(DESTDIR)$(man3dir)/pcre16_fullinfo.3
744	ln -sf pcre_get_named_substring.3	 $(DESTDIR)$(man3dir)/pcre16_get_named_substring.3
745	ln -sf pcre_get_stringnumber.3		 $(DESTDIR)$(man3dir)/pcre16_get_stringnumber.3
746	ln -sf pcre_get_stringtable_entries.3	 $(DESTDIR)$(man3dir)/pcre16_get_stringtable_entries.3
747	ln -sf pcre_get_substring.3		 $(DESTDIR)$(man3dir)/pcre16_get_substring.3
748	ln -sf pcre_get_substring_list.3	 $(DESTDIR)$(man3dir)/pcre16_get_substring_list.3
749	ln -sf pcre_jit_exec.3			 $(DESTDIR)$(man3dir)/pcre16_jit_exec.3
750	ln -sf pcre_jit_stack_alloc.3		 $(DESTDIR)$(man3dir)/pcre16_jit_stack_alloc.3
751	ln -sf pcre_jit_stack_free.3		 $(DESTDIR)$(man3dir)/pcre16_jit_stack_free.3
752	ln -sf pcre_maketables.3		 $(DESTDIR)$(man3dir)/pcre16_maketables.3
753	ln -sf pcre_pattern_to_host_byte_order.3 $(DESTDIR)$(man3dir)/pcre16_pattern_to_host_byte_order.3
754	ln -sf pcre_refcount.3			 $(DESTDIR)$(man3dir)/pcre16_refcount.3
755	ln -sf pcre_study.3			 $(DESTDIR)$(man3dir)/pcre16_study.3
756	ln -sf pcre_utf16_to_host_byte_order.3	 $(DESTDIR)$(man3dir)/pcre16_utf16_to_host_byte_order.3
757	ln -sf pcre_version.3			 $(DESTDIR)$(man3dir)/pcre16_version.3
758	ln -sf pcre_assign_jit_stack.3		 $(DESTDIR)$(man3dir)/pcre32_assign_jit_stack.3
759	ln -sf pcre_compile.3			 $(DESTDIR)$(man3dir)/pcre32_compile.3
760	ln -sf pcre_compile2.3			 $(DESTDIR)$(man3dir)/pcre32_compile2.3
761	ln -sf pcre_config.3			 $(DESTDIR)$(man3dir)/pcre32_config.3
762	ln -sf pcre_copy_named_substring.3	 $(DESTDIR)$(man3dir)/pcre32_copy_named_substring.3
763	ln -sf pcre_copy_substring.3		 $(DESTDIR)$(man3dir)/pcre32_copy_substring.3
764	ln -sf pcre_dfa_exec.3			 $(DESTDIR)$(man3dir)/pcre32_dfa_exec.3
765	ln -sf pcre_exec.3			 $(DESTDIR)$(man3dir)/pcre32_exec.3
766	ln -sf pcre_free_study.3		 $(DESTDIR)$(man3dir)/pcre32_free_study.3
767	ln -sf pcre_free_substring.3		 $(DESTDIR)$(man3dir)/pcre32_free_substring.3
768	ln -sf pcre_free_substring_list.3	 $(DESTDIR)$(man3dir)/pcre32_free_substring_list.3
769	ln -sf pcre_fullinfo.3			 $(DESTDIR)$(man3dir)/pcre32_fullinfo.3
770	ln -sf pcre_get_named_substring.3	 $(DESTDIR)$(man3dir)/pcre32_get_named_substring.3
771	ln -sf pcre_get_stringnumber.3		 $(DESTDIR)$(man3dir)/pcre32_get_stringnumber.3
772	ln -sf pcre_get_stringtable_entries.3	 $(DESTDIR)$(man3dir)/pcre32_get_stringtable_entries.3
773	ln -sf pcre_get_substring.3		 $(DESTDIR)$(man3dir)/pcre32_get_substring.3
774	ln -sf pcre_get_substring_list.3	 $(DESTDIR)$(man3dir)/pcre32_get_substring_list.3
775	ln -sf pcre_jit_exec.3			 $(DESTDIR)$(man3dir)/pcre32_jit_exec.3
776	ln -sf pcre_jit_stack_alloc.3		 $(DESTDIR)$(man3dir)/pcre32_jit_stack_alloc.3
777	ln -sf pcre_jit_stack_free.3		 $(DESTDIR)$(man3dir)/pcre32_jit_stack_free.3
778	ln -sf pcre_maketables.3		 $(DESTDIR)$(man3dir)/pcre32_maketables.3
779	ln -sf pcre_pattern_to_host_byte_order.3 $(DESTDIR)$(man3dir)/pcre32_pattern_to_host_byte_order.3
780	ln -sf pcre_refcount.3			 $(DESTDIR)$(man3dir)/pcre32_refcount.3
781	ln -sf pcre_study.3			 $(DESTDIR)$(man3dir)/pcre32_study.3
782	ln -sf pcre_utf32_to_host_byte_order.3	 $(DESTDIR)$(man3dir)/pcre32_utf32_to_host_byte_order.3
783	ln -sf pcre_version.3			 $(DESTDIR)$(man3dir)/pcre32_version.3
784
785pcrecpp_man = doc/pcrecpp.3
786EXTRA_DIST += $(pcrecpp_man)
787
788if WITH_PCRE_CPP
789man_MANS = $(pcrecpp_man)
790endif
791
792# gcov/lcov code coverage reporting
793
794if WITH_GCOV
795
796# Coverage reporting targets:
797#
798# coverage: Create a coverage report from 'make check'
799# coverage-baseline: Capture baseline coverage information
800# coverage-reset: This zeros the coverage counters only
801# coverage-report: This creates the coverage report only
802# coverage-clean-report: This removes the generated coverage report
803#   without cleaning the coverage data itself
804# coverage-clean-data: This removes the captured coverage data without
805#   removing the coverage files created at compile time (*.gcno)
806# coverage-clean: This cleans all coverage data including the generated
807#   coverage report.
808
809COVERAGE_TEST_NAME = $(PACKAGE)
810COVERAGE_NAME = $(PACKAGE)-$(VERSION)
811COVERAGE_OUTPUT_FILE = $(COVERAGE_NAME)-coverage.info
812COVERAGE_OUTPUT_DIR = $(COVERAGE_NAME)-coverage
813COVERAGE_LCOV_EXTRA_FLAGS =
814COVERAGE_GENHTML_EXTRA_FLAGS =
815
816coverage_quiet = $(coverage_quiet_$(V))
817coverage_quiet_ = $(coverage_quiet_$(AM_DEFAULT_VERBOSITY))
818coverage_quiet_0 = --quiet
819
820coverage-check: all
821	-$(MAKE) $(AM_MAKEFLAGS) -k check
822
823coverage-baseline:
824	$(LCOV) $(coverage_quiet) \
825		--directory $(top_builddir) \
826		--output-file "$(COVERAGE_OUTPUT_FILE)" \
827		--capture \
828		--initial
829
830coverage-report:
831	$(LCOV) $(coverage_quiet) \
832		--directory $(top_builddir) \
833		--capture \
834		--output-file "$(COVERAGE_OUTPUT_FILE).tmp" \
835		--test-name "$(COVERAGE_TEST_NAME)" \
836		--no-checksum \
837		--compat-libtool \
838		$(COVERAGE_LCOV_EXTRA_FLAGS)
839	$(LCOV) $(coverage_quiet) \
840		--directory $(top_builddir) \
841		--output-file "$(COVERAGE_OUTPUT_FILE)" \
842		--remove "$(COVERAGE_OUTPUT_FILE).tmp" \
843		"/tmp/*" \
844		"/usr/include/*" \
845		"$(includedir)/*"
846	-@rm -f "$(COVERAGE_OUTPUT_FILE).tmp"
847	LANG=C $(GENHTML) $(coverage_quiet) \
848		--prefix $(top_builddir) \
849		--output-directory "$(COVERAGE_OUTPUT_DIR)" \
850		--title "$(PACKAGE) $(VERSION) Code Coverage Report" \
851		--show-details "$(COVERAGE_OUTPUT_FILE)" \
852		--legend \
853		$(COVERAGE_GENHTML_EXTRA_FLAGS)
854	@echo "Code coverage report written to file://$(abs_builddir)/$(COVERAGE_OUTPUT_DIR)/index.html"
855
856coverage-reset:
857	-$(LCOV) $(coverage_quiet) --zerocounters --directory $(top_builddir)
858
859coverage-clean-report:
860	-rm -f "$(COVERAGE_OUTPUT_FILE)" "$(COVERAGE_OUTPUT_FILE).tmp"
861	-rm -rf "$(COVERAGE_OUTPUT_DIR)"
862
863coverage-clean-data:
864	-find $(top_builddir) -name "*.gcda" -delete
865
866coverage-clean: coverage-reset coverage-clean-report coverage-clean-data
867	-find $(top_builddir) -name "*.gcno" -delete
868
869coverage-distclean: coverage-clean
870
871coverage: coverage-reset coverage-baseline coverage-check coverage-report
872clean-local: coverage-clean
873distclean-local: coverage-distclean
874
875.PHONY: coverage coverage-baseline coverage-check coverage-report coverage-reset coverage-clean-report coverage-clean-data coverage-clean coverage-distclean
876
877else
878
879coverage:
880	@echo "Configuring with --enable-coverage required to generate code coverage report."
881
882endif # WITH_GCOV
883
884## CMake support
885
886EXTRA_DIST += \
887  cmake/COPYING-CMAKE-SCRIPTS \
888  cmake/FindPackageHandleStandardArgs.cmake \
889  cmake/FindReadline.cmake \
890  cmake/FindEditline.cmake \
891  CMakeLists.txt \
892  config-cmake.h.in
893
894## end Makefile.am
895