pcre-config support.
authorPhil Pennock <pdp@exim.org>
Sat, 12 May 2012 13:11:28 +0000 (09:11 -0400)
committerPhil Pennock <pdp@exim.org>
Sat, 12 May 2012 13:11:28 +0000 (09:11 -0400)
Remove a couple of stray references to PCRE_CFLAGS too (dating from when PCRE was bundled).

doc/doc-docbook/spec.xfpt
doc/doc-txt/ChangeLog
doc/doc-txt/NewStuff
doc/doc-txt/OptionLists.txt
src/OS/Makefile-SunOS4
src/OS/Makefile-mips
src/scripts/Configure-Makefile
src/src/EDITME

index 2202e6b..5104e50 100644 (file)
@@ -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"
index de7c178..6a34c57 100644 (file)
@@ -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
 -----------------
index 432bbd2..db77318 100644 (file)
@@ -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
index c962968..925504d 100644 (file)
@@ -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
index 63db9c5..c876998 100644 (file)
@@ -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
index dbc101c..ff33139 100644 (file)
@@ -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( |$$)'
index 5ef0ff7..3e901e6 100755 (executable)
@@ -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"
index f247f44..d972e9c 100644 (file)
@@ -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
 
 
 #------------------------------------------------------------------------------