summaryrefslogtreecommitdiff
path: root/m4/pcre.m4
blob: d859fe66c13bb151bed8854fc65cee084786935c (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
96
97
dnl
dnl Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
dnl Copyright (C) INRIA - 2008 - Sylvestre Ledru
dnl 
dnl This file must be used under the terms of the CeCILL.
dnl This source file is licensed as described in the file COPYING, which
dnl you should have received as part of this distribution.  The terms
dnl are also available at    
dnl http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
dnl
dnl PCRE detection
dnl

dnl PCRE is mandatory in Scilab 
dnl When we check :
dnl * if the path is provided or that we have to find it ourself
dnl * if it is available
dnl * what are the compilation flags 
dnl * what are linking flags
AC_DEFUN([AC_PCRE], [


AC_ARG_WITH(pcre,
    AC_HELP_STRING([--with-pcre=DIR],[Set the path to your PCRE (Perl 5 Compatible Regular Expression Library) installation]),
    [with_pcre=$withval],
    [with_pcre='yes']
    )

if test "$with_pcre" != 'yes' -a "$with_pcre" != 'no'; then
    # Look if pcre-config (which provides cflags and ldflags) is available
    AC_MSG_CHECKING([pcre, for pcre-config])
    PCRE_FOUND=0
    PCRE_CONFIG="$with_pcre/bin/pcre-config"
    if test -x "$PCRE_CONFIG"; then
        AC_MSG_RESULT([$PCRE_CONFIG])
        PCRE_FOUND=1
    fi
    if test $PCRE_FOUND -eq 0; then
        PCRE_CONFIG="$with_pcre/pcre-config"
        if test -x "$PCRE_CONFIG"; then
            PCRE_FOUND=1
            AC_MSG_RESULT([$PCRE_CONFIG])
        fi
    fi
    if test $PCRE_FOUND -eq 0; then
        AC_MSG_ERROR([Unable to find $PCRE_CONFIG. Please check the path you provided])
    else
        unset PCRE_FOUND
    fi
else
    if $WITH_DEVTOOLS; then # Scilab thirdparties
        PCRE_CONFIG="$DEVTOOLS_BINDIR/pcre-config"
    else
        AC_CHECK_PROGS(PCRE_CONFIG,pcre-config,no)
    fi
    if test "x$PCRE_CONFIG" = "xno"; then
        AC_MSG_ERROR([Unable to find pcre-config in the path. Please check your installation of pcre (example : libpcre3 & libpcre3-dev with Debian)])
    fi
fi
saved_cflags="$CFLAGS"
saved_LIBS="$LIBS"

PCRE_CFLAGS=`$PCRE_CONFIG --cflags`
PCRE_LIBS=`$PCRE_CONFIG --libs-posix`
PCRE_VERSION=`$PCRE_CONFIG --version`

PCRE_REQUIRED_VERSION=7.6
    PKG_CHECK_MODULES(PCRE,
                      libpcre >= $PCRE_REQUIRED_VERSION)

LIBS="$PCRE_LIBS $LIBS"
CFLAGS="$PCRE_CFLAGS $CFLAGS"

AC_CHECK_LIB([pcre], [pcre_compile],
               [],
               [AC_MSG_ERROR([pcre : library missing. (Cannot find symbol pcre_compile). Check if pcre is installed and if the version is correct])]
               )

AC_CHECK_LIB([pcreposix], [regexec],
               [],
               [AC_MSG_ERROR([pcreposix : library missing. (Cannot find symbol regexec). Check if pcre is installed and if the version is correct])]
               )
AC_CHECK_HEADERS([pcre.h])

LIBS="$saved_LIBS"
CFLAGS="$saved_cflags"

AC_SUBST(PCRE_CFLAGS)
AC_SUBST(PCRE_LIBS)
AC_SUBST(PCRE_VERSION)

AC_DEFINE_UNQUOTED([PCRE_CFLAGS],["$PCRE_CFLAGS"],[PCRE flags])
AC_DEFINE_UNQUOTED([PCRE_LIBS],["$PCRE_LIBS"],[PCRE library])
AC_DEFINE_UNQUOTED([PCRE_VERSION],["$PCRE_VERSION"],[PCRE version])

# Gets compilation and library flags
])