From 6a6084f8fd44dc65dce40536198ec5d282deb126 Mon Sep 17 00:00:00 2001 From: Phil Pennock Date: Sat, 12 May 2012 09:11:28 -0400 Subject: [PATCH] pcre-config support. Remove a couple of stray references to PCRE_CFLAGS too (dating from when PCRE was bundled). --- doc/doc-docbook/spec.xfpt | 9 +++++++-- doc/doc-txt/ChangeLog | 3 +++ doc/doc-txt/NewStuff | 3 +++ doc/doc-txt/OptionLists.txt | 3 ++- src/OS/Makefile-SunOS4 | 5 ----- src/OS/Makefile-mips | 1 - src/scripts/Configure-Makefile | 15 ++++++++++++++- src/src/EDITME | 9 ++++++--- 8 files changed, 35 insertions(+), 13 deletions(-) diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt index 2202e6b75..5104e50f6 100644 --- a/doc/doc-docbook/spec.xfpt +++ b/doc/doc-docbook/spec.xfpt @@ -1647,6 +1647,7 @@ architecture and operating system for itself, but the defaults can be overridden if necessary. +.new .section "PCRE library" "SECTpcre" .cindex "PCRE library" Exim no longer has an embedded PCRE library as the vast majority of @@ -1654,10 +1655,14 @@ modern systems include PCRE as a system library, although you may need to install the PCRE or PCRE development package for your operating system. If your system has a normal PCRE installation the Exim build process will need no further configuration. If the library or the -headers are in an unusual location you will need to set the PCRE_LIBS -and INCLUDE directives appropriately. If your operating system has no +headers are in an unusual location you will need to either set the PCRE_LIBS +and INCLUDE directives appropriately, +or set PCRE_CONFIG=yes to use the installed &(pcre-config)& command. +If your operating system has no PCRE support then you will need to obtain and build the current PCRE from &url(ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/). +More information on PCRE is available at &url(http://www.pcre.org/). +.wen .section "DBM libraries" "SECTdb" .cindex "DBM libraries" "discussion of" diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index de7c17878..6a34c5757 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -93,6 +93,9 @@ PP/21 Defaulting "accept_8bitmime" to true, not false. PP/22 Added -bw for inetd wait mode support. +PP/23 Added PCRE_CONFIG=yes support to Makefile for using pcre-config to + locate the relevant includes and libraries. Made this the default. + Exim version 4.77 ----------------- diff --git a/doc/doc-txt/NewStuff b/doc/doc-txt/NewStuff index 432bbd220..db77318db 100644 --- a/doc/doc-txt/NewStuff +++ b/doc/doc-txt/NewStuff @@ -26,6 +26,9 @@ Version 4.78 "LOOKUP_LIBS" directly. Similarly for handling the TLS library support without adjusting "TLS_INCLUDE" and "TLS_LIBS". + In addition, setting PCRE_CONFIG=yes will query the pcre-config tool to + find the headers and libraries for PCRE. + 4. New expansion variable $tls_bits. 5. New lookup type, "dbmjz". Key is an Exim list, the elements of which will diff --git a/doc/doc-txt/OptionLists.txt b/doc/doc-txt/OptionLists.txt index c9629688a..925504df6 100644 --- a/doc/doc-txt/OptionLists.txt +++ b/doc/doc-txt/OptionLists.txt @@ -910,7 +910,8 @@ MAX_INTERFACES system maximum network interfaces MSGLOG_DIRECTORY_MODE optional* mode for message log directory MV_COMMAND system path to mv command NO_SYMLINK optional install doesn't make 'exim" symlink -PCRE_CFLAGS system compile flags for PCRE library +PCRE_CONFIG system* use pcre-config for PCRE support +PCRE_LIBS system* library for using PCRE PERL_CC system* compiler for Perl interface code PERL_CCOPTS system* flags for same PERL_COMMAND system path to Perl diff --git a/src/OS/Makefile-SunOS4 b/src/OS/Makefile-SunOS4 index 63db9c5df..c876998e5 100644 --- a/src/OS/Makefile-SunOS4 +++ b/src/OS/Makefile-SunOS4 @@ -2,11 +2,6 @@ CFLAGS=-O -# Don't need -DSTRERROR_FROM_ERRLIST in PCRE_CFLAGS, because it is in os.h -# for SunOS4, which gets included for pcre. - -PCRE_CFLAGS=-DUSE_BCOPY - CHOWN_COMMAND=/usr/etc/chown HOSTNAME_COMMAND=/usr/bin/hostname EXIT_FAILURE=1 diff --git a/src/OS/Makefile-mips b/src/OS/Makefile-mips index dbc101cd6..ff3313937 100644 --- a/src/OS/Makefile-mips +++ b/src/OS/Makefile-mips @@ -8,7 +8,6 @@ LIBS=-liberty -lm XINCLUDE=-I/usr/X11R6/include CFLAGS=-O -PCRE_CFLAGS=-DUSE_BCOPY -DSTRERROR_FROM_ERRLIST EXIWHAT_PS_ARG=-ax EXIWHAT_EGREP_ARG='/exim( |$$)' diff --git a/src/scripts/Configure-Makefile b/src/scripts/Configure-Makefile index 5ef0ff7f0..3e901e6a6 100755 --- a/src/scripts/Configure-Makefile +++ b/src/scripts/Configure-Makefile @@ -117,7 +117,7 @@ done >> $mft || exit 1 egrep "^[$st]*(AUTH|LOOKUP)_[A-Z0-9_]*[$st]*=[$st]*" $mft | \ sed "s/[$st]*=/='/" | \ sed "s/\$/'/" > $mftt -egrep "^[$st]*((USE_(OPENSSL|GNUTLS)_PC)|SUPPORT_TLS|USE_GNUTLS)[$st]*=[$st]*" $mft | \ +egrep "^[$st]*((USE_(OPENSSL|GNUTLS)_PC)|SUPPORT_TLS|USE_GNUTLS|PCRE_CONFIG)[$st]*=[$st]*" $mft | \ sed "s/[$st]*=/='/" | \ sed "s/\$/'/" >> $mftt if test -s $mftt @@ -173,6 +173,19 @@ then fi ;; + PCRE_CONFIG) + case $PCRE_CONFIG in + yes|YES|y|Y) + cflags=`pcre-config --cflags` + libs=`pcre-config --libs` + if [ ".$cflags" != "." ]; then + echo "INCLUDE += $cflags" + fi + echo "PCRE_LIBS=$libs" + ;; + esac + ;; + esac done echo "# End of pkg-config fixups" diff --git a/src/src/EDITME b/src/src/EDITME index f247f44a9..d972e9c15 100644 --- a/src/src/EDITME +++ b/src/src/EDITME @@ -342,10 +342,13 @@ LOOKUP_DNSDB=yes # In either case you must specify the library link info here. If the # PCRE header files are not in the standard search path you must also # modify the INCLUDE path (above) -# The default setting of PCRE_LIBS should work on the vast majority of -# systems +# +# Use PCRE_CONFIG to query the pcre-config command (first found in $PATH) +# to find the include files and libraries, else use PCRE_LIBS and set INCLUDE +# too if needed. -PCRE_LIBS=-lpcre +# PCRE_CONFIG=yes +# PCRE_LIBS=-lpcre #------------------------------------------------------------------------------ -- 2.30.2