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