| 1 | #serial 5001 | 
|---|
| 2 |  | 
|---|
| 3 | dnl Initially derived from code in GNU grep. | 
|---|
| 4 | dnl Mostly written by Jim Meyering. | 
|---|
| 5 |  | 
|---|
| 6 | dnl Usage: jm_INCLUDED_REGEX([lib/regex.c]) | 
|---|
| 7 | dnl | 
|---|
| 8 | AC_DEFUN(jm_INCLUDED_REGEX, | 
|---|
| 9 | [ | 
|---|
| 10 | dnl Even packages that don't use regex.c can use this macro. | 
|---|
| 11 | dnl Of course, for them it doesn't do anything. | 
|---|
| 12 |  | 
|---|
| 13 | # Assume we'll default to using the included regex.c. | 
|---|
| 14 | ac_use_included_regex=yes | 
|---|
| 15 |  | 
|---|
| 16 | # However, if the system regex support is good enough that it passes the | 
|---|
| 17 | # the following run test, then default to *not* using the included regex.c. | 
|---|
| 18 | # If cross compiling, assume the test would fail and use the included | 
|---|
| 19 | # regex.c.  The first failing regular expression is from `Spencer ere | 
|---|
| 20 | # test #75' in grep-2.3. | 
|---|
| 21 | AC_CACHE_CHECK([for working re_compile_pattern], | 
|---|
| 22 | jm_cv_func_working_re_compile_pattern, | 
|---|
| 23 | AC_TRY_RUN( | 
|---|
| 24 | changequote(<<, >>)dnl | 
|---|
| 25 | << | 
|---|
| 26 | #include <stdio.h> | 
|---|
| 27 | #include <regex.h> | 
|---|
| 28 | int | 
|---|
| 29 | main () | 
|---|
| 30 | { | 
|---|
| 31 | static struct re_pattern_buffer regex; | 
|---|
| 32 | const char *s; | 
|---|
| 33 | re_set_syntax (RE_SYNTAX_POSIX_EGREP); | 
|---|
| 34 | /* Add this third left square bracket, [, to balance the | 
|---|
| 35 | three right ones below.  Otherwise autoconf-2.14 chokes.  */ | 
|---|
| 36 | s = re_compile_pattern ("a[[:]:]]b\n", 9, ®ex); | 
|---|
| 37 | /* This should fail with _Invalid character class name_ error.  */ | 
|---|
| 38 | if (!s) | 
|---|
| 39 | exit (1); | 
|---|
| 40 |  | 
|---|
| 41 | /* This should succeed, but doesn't for e.g. glibc-2.1.3.  */ | 
|---|
| 42 | s = re_compile_pattern ("{1", 2, ®ex); | 
|---|
| 43 |  | 
|---|
| 44 | exit (s ? 1 : 0); | 
|---|
| 45 | } | 
|---|
| 46 | >>, | 
|---|
| 47 | changequote([, ])dnl | 
|---|
| 48 |  | 
|---|
| 49 | jm_cv_func_working_re_compile_pattern=yes, | 
|---|
| 50 | jm_cv_func_working_re_compile_pattern=no, | 
|---|
| 51 | dnl When crosscompiling, assume it's broken. | 
|---|
| 52 | jm_cv_func_working_re_compile_pattern=no)) | 
|---|
| 53 | if test $jm_cv_func_working_re_compile_pattern = yes; then | 
|---|
| 54 | ac_use_included_regex=no | 
|---|
| 55 | fi | 
|---|
| 56 |  | 
|---|
| 57 | test -n "$1" || AC_MSG_ERROR([missing argument]) | 
|---|
| 58 | syscmd([test -f $1]) | 
|---|
| 59 | ifelse(sysval, 0, | 
|---|
| 60 | [ | 
|---|
| 61 |  | 
|---|
| 62 | AC_ARG_WITH(included-regex, | 
|---|
| 63 | [  --without-included-regex don't compile regex; this is the default on | 
|---|
| 64 | systems with version 2 of the GNU C library | 
|---|
| 65 | (use with caution on other system)], | 
|---|
| 66 | jm_with_regex=$withval, | 
|---|
| 67 | jm_with_regex=$ac_use_included_regex) | 
|---|
| 68 | if test "$jm_with_regex" = yes; then | 
|---|
| 69 | AC_LIBOBJ(regex) | 
|---|
| 70 | fi | 
|---|
| 71 | ], | 
|---|
| 72 | ) | 
|---|
| 73 | ] | 
|---|
| 74 | ) | 
|---|