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 2202e6b75823c415d346545ebd749accaa1354c8..5104e50f69ebbce0e1e737743a4ce868e37eeea3 100644 (file)
@@ -1647,6 +1647,7 @@ architecture and operating system for itself, but the defaults can be
 overridden if necessary.
 
 
 overridden if necessary.
 
 
+.new
 .section "PCRE library" "SECTpcre"
 .cindex "PCRE library"
 Exim no longer has an embedded PCRE library as the vast majority of
 .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
 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/).
 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"
 
 .section "DBM libraries" "SECTdb"
 .cindex "DBM libraries" "discussion of"
index de7c178787dc74360993014d73e164f17afe127a..6a34c5757b2a86cfc19a0f0cff4b161e327fd9d4 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/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
 -----------------
 
 Exim version 4.77
 -----------------
index 432bbd220a9fda370f081db2f2db6e3fd9f82d45..db77318db79a2595056917d447cf4cfbfa27c6df 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".
 
     "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
  4. New expansion variable $tls_bits.
 
  5. New lookup type, "dbmjz".  Key is an Exim list, the elements of which will
index c9629688a8ae6c7abaf742e35c12b924e1553e9c..925504df6564b67d165c424c0442c4b14e08e3f9 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
 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
 PERL_CC                      system*      compiler for Perl interface code
 PERL_CCOPTS                  system*      flags for same
 PERL_COMMAND                 system       path to Perl
index 63db9c5dfd21a498c09f27e494e5a07f80d6902e..c876998e5eb168b742e91aa661086cf5f6bd1584 100644 (file)
@@ -2,11 +2,6 @@
 
 CFLAGS=-O
 
 
 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
 CHOWN_COMMAND=/usr/etc/chown
 HOSTNAME_COMMAND=/usr/bin/hostname
 EXIT_FAILURE=1
index dbc101cd6459be193fff0c46c58e7880ab806556..ff331393777470bd8def443afea6785b31dc2151 100644 (file)
@@ -8,7 +8,6 @@ LIBS=-liberty -lm
 XINCLUDE=-I/usr/X11R6/include
 
 CFLAGS=-O
 XINCLUDE=-I/usr/X11R6/include
 
 CFLAGS=-O
-PCRE_CFLAGS=-DUSE_BCOPY -DSTRERROR_FROM_ERRLIST
 
 EXIWHAT_PS_ARG=-ax
 EXIWHAT_EGREP_ARG='/exim( |$$)'
 
 EXIWHAT_PS_ARG=-ax
 EXIWHAT_EGREP_ARG='/exim( |$$)'
index 5ef0ff7f08e1e0c8e911b8e3d294828230a0e7f2..3e901e6a6a8bb6f0b9b20e904dadc39f163c2f47 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]*(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
   sed "s/[$st]*=/='/" | \
   sed "s/\$/'/" >> $mftt
 if test -s $mftt
@@ -173,6 +173,19 @@ then
         fi
         ;;
 
         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"
     esac
   done
   echo "# End of pkg-config fixups"
index f247f44a9a981626d9ed6abf79a4a68641958493..d972e9c150b666eed33c4b000a5e8e59bb6a4093 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)
 # 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
 
 
 #------------------------------------------------------------------------------
 
 
 #------------------------------------------------------------------------------