summaryrefslogtreecommitdiff
path: root/ext/filter/config.m4
blob: b7a42cf105811f316975ca3145e5a22318687e86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
dnl $Id: config.m4,v 1.6 2006/01/14 15:04:12 sniper Exp $
dnl config.m4 for input filtering extension

PHP_ARG_ENABLE(filter, whether to enable input filter support,
[  --disable-filter        Disable input filter support], yes)

PHP_ARG_WITH(pcre-dir, pcre install prefix,
[  --with-pcre-dir           FILTER: pcre install prefix], no, no)

if test "$PHP_FILTER" != "no"; then

  dnl Check if configure is the PHP core configure
  if test -n "$PHP_VERSION"; then
    dnl This extension can not be build as shared when in PHP core
    ext_shared=no
  else
    dnl This is PECL build, check if bundled PCRE library is used
    old_CPPFLAGS=$CPPFLAGS
    CPPFLAGS=$INCLUDES
    AC_EGREP_CPP(yes,[
#include <main/php_config.h>
#if defined(HAVE_BUNDLED_PCRE) && !defined(COMPILE_DL_PCRE)
yes
#endif
    ],[
      PHP_PCRE_REGEX=yes
    ],[
      AC_EGREP_CPP(yes,[
#include <main/php_config.h>
#if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE)
yes
#endif
      ],[
        PHP_PCRE_REGEX=pecl
      ],[
        PHP_PCRE_REGEX=no
      ])
    ])
    CPPFLAGS=$old_CPPFLAGS
  fi

  if test "$PHP_PCRE_REGEX" != "yes"; then
    dnl
    dnl If PCRE extension is enabled we can use the already found paths,
    dnl otherwise we have to detect them here:
    dnl
    if test "$PHP_PCRE_REGEX" = "no" || test "$PHP_PCRE_REGEX" = "pecl"; then
      dnl Set the PCRE search dirs correctly
      case "$PHP_PCRE_DIR" in
        yes|no)
          PCRE_SEARCH_DIR="/usr/local /usr"
          ;;
        *)
          PCRE_SEARCH_DIR="$PHP_PCRE_DIR"
          ;;
      esac

      for i in $PCRE_SEARCH_DIR; do
        if test -f $i/include/pcre/pcre.h; then
          PCRE_INCDIR=$i/include/pcre
          break
        elif test -f $i/include/pcre.h; then
          PCRE_INCDIR=$i/include
          break
        elif test -f $i/pcre.h; then
          PCRE_INCDIR=$i
          break
        fi
      done

      if test -z "$PCRE_INCDIR"; then
        AC_MSG_ERROR([Could not find pcre.h anywhere under $PCRE_SEARCH_DIR])
      fi

      for j in $PCRE_SEARCH_DIR/$PHP_LIBDIR $PCRE_SEARCH_DIR; do
        if test -f $j/libpcre.a || test -f $j/libpcre.$SHLIB_SUFFIX_NAME; then
          PCRE_LIBDIR=$j
          break
        fi
      done
    
      if test -z "$PCRE_LIBDIR" ; then
        AC_MSG_ERROR([Could not find libpcre.(a|$SHLIB_SUFFIX_NAME) anywhere under $PCRE_SEARCH_DIR])
      fi
    fi

    PHP_ADD_LIBRARY_WITH_PATH(pcre, $PCRE_LIBDIR, FILTER_SHARED_LIBADD)
    PHP_ADD_INCLUDE($PCRE_INCDIR)
  fi

  PHP_NEW_EXTENSION(filter, filter.c sanitizing_filters.c logical_filters.c callback_filter.c, $ext_shared)
  PHP_SUBST(FILTER_SHARED_LIBADD)

  PHP_INSTALL_HEADERS([$ext_srcdir/php_filter.h])
fi