summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--configure.ac19
-rw-r--r--m4/pcre.m445
-rw-r--r--src/Makefile.am2
-rw-r--r--src/pcresearch.c2
5 files changed, 52 insertions, 20 deletions
diff --git a/NEWS b/NEWS
index 2e0414e8..115fe762 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,10 @@ GNU grep NEWS -*- outline -*-
* Noteworthy changes in release ?.? (????-??-??) [?]
+** Build-related
+
+ configure no longer relies on pkg-config to detect PCRE support.
+
* Noteworthy changes in release 2.6.1 (2010-03-25) [stable]
diff --git a/configure.ac b/configure.ac
index 474a9ae4..f43c92fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,15 +33,6 @@ AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
AC_CONFIG_HEADERS([config.h:config.hin])
-dnl Check for arguments
-AC_ARG_ENABLE(perl-regexp,
- [ --disable-perl-regexp disable perl-regexp],
- [case "${enableval}" in
- yes) testpcre=yes ;;
- no) testpcre=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-perl-regexp) ;;
- esac],[testpcre=yes])
-
dnl Checks for programs.
AC_CANONICAL_HOST
AC_PROG_AWK
@@ -158,15 +149,7 @@ if test "$ac_use_included_regex" = no; then
AC_MSG_WARN([Included lib/regex.c not used])
fi
-# support for pcre
-PKG_PROG_PKG_CONFIG
-if test x"$testpcre" = x"yes"; then
- PKG_CHECK_MODULES(PCRE, [libpcre],
- [AC_DEFINE([HAVE_LIBPCRE], 1,
- [Define to 1 if you have the `pcre' library (-lpcre).])
- CPPFLAGS="$CPPFLAGS $PCRE_CFLAGS"],
- [:])
-fi
+gl_FUNC_PCRE
AC_CONFIG_FILES([
Makefile
diff --git a/m4/pcre.m4 b/m4/pcre.m4
new file mode 100644
index 00000000..001806e0
--- /dev/null
+++ b/m4/pcre.m4
@@ -0,0 +1,45 @@
+# pcre.m4 - check for libpcre support
+# serial 1
+
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+AC_DEFUN([gl_FUNC_PCRE],
+[
+ AC_ARG_ENABLE([perl-regexp],
+ AC_HELP_STRING([--disable-perl-regexp],
+ [disable perl-regexp (pcre) support]),
+ [case $enableval in
+ yes|no) test_pcre=$enableval;;
+ *) AC_MSG_ERROR([invalid value $enableval for --disable-perl-regexp]);;
+ esac],
+ [test_pcre=yes])
+
+ LIB_PCRE=
+ AC_SUBST([LIB_PCRE])
+ use_pcre=no
+
+ if test x"$test_pcre" = x"yes"; then
+ AC_CHECK_HEADERS([pcre.h])
+ if test $ac_cv_header_pcre_h = yes; then
+ pcre_saved_LIBS=$LIBS
+ AC_SEARCH_LIBS([pcre_compile], [pcre],
+ [test "$ac_cv_search_pcre_compile" = "none required" ||
+ LIB_PCRE=$ac_cv_search_pcre_compile])
+ AC_CHECK_FUNCS([pcre_compile])
+ LIBS=$pcre_saved_LIBS
+ if test $ac_cv_func_pcre_compile = yes; then
+ use_pcre=yes
+ fi
+ fi
+ if test $use_pcre = no; then
+ AC_MSG_WARN([libpcre development library was not found or not usable.])
+ AC_MSG_WARN([AC_PACKAGE_NAME will be built without pcre support.])
+ fi
+ fi
+
+ AC_DEFINE_UNQUOTED([HAVE_LIBPCRE], [`test $use_pcre != yes; echo $?`],
+ [Define to 1 if you have the `pcre' library (-lpcre).])
+])
diff --git a/src/Makefile.am b/src/Makefile.am
index 08f7aacf..a5d8ecaa 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,7 +35,7 @@ libgrep_a_SOURCES = kwset.c dfa.c searchutils.c dfasearch.c kwsearch.c \
# replacement functions defined in libgreputils.a.
LDADD = libgrep.a ../lib/libgreputils.a $(LIBINTL) ../lib/libgreputils.a
-grep_LDADD = $(LDADD) $(PCRE_LIBS)
+grep_LDADD = $(LDADD) $(LIB_PCRE)
localedir = $(datadir)/locale
INCLUDES = -I$(top_srcdir)/lib -DLOCALEDIR=\"$(localedir)\"
diff --git a/src/pcresearch.c b/src/pcresearch.c
index 4dedf245..6a82be28 100644
--- a/src/pcresearch.c
+++ b/src/pcresearch.c
@@ -20,7 +20,7 @@
#include <config.h>
#include "search.h"
-#ifdef HAVE_LIBPCRE
+#if HAVE_LIBPCRE
# include <pcre.h>
#endif