summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/cf-lex.l10
-rw-r--r--configure.ac9
2 files changed, 15 insertions, 4 deletions
diff --git a/conf/cf-lex.l b/conf/cf-lex.l
index 9bbb3660..6b67d984 100644
--- a/conf/cf-lex.l
+++ b/conf/cf-lex.l
@@ -27,13 +27,16 @@
%{
#undef REJECT /* Avoid name clashes */
+#include "sysdep/config.h"
#include <errno.h>
#include <stdlib.h>
#include <stdarg.h>
#include <stdint.h>
#include <unistd.h>
#include <libgen.h>
+#ifdef HAVE_GLOB
#include <glob.h>
+#endif
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
@@ -436,7 +439,9 @@ cf_include(char *arg, int alen)
struct include_file_stack *base_ifs = ifs;
int new_depth, rv, i;
char *patt;
+#ifdef HAVE_GLOB
glob_t g = {};
+#endif
new_depth = ifs->depth + 1;
if (new_depth > MAX_INCLUDE_DEPTH)
@@ -466,6 +471,7 @@ cf_include(char *arg, int alen)
return;
}
+#ifdef HAVE_GLOB
/* Expand the pattern */
rv = glob(patt, GLOB_ERR | GLOB_NOESCAPE, NULL, &g);
if (rv == GLOB_ABORTED)
@@ -501,6 +507,10 @@ cf_include(char *arg, int alen)
globfree(&g);
enter_ifs(ifs);
+#else
+ cf_error("Pattern match unsupported %s: %m", patt);
+ return;
+#endif /* !HAVE_GLOB */
}
static int
diff --git a/configure.ac b/configure.ac
index de4f813d..bb39508c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -337,10 +337,11 @@ AC_C_BIGENDIAN(
)
BIRD_CHECK_ANDROID_GLOB
-if test "$bird_cv_lib_glob" = no ; then
- AC_MSG_ERROR([glob.h not found.])
-elif test "$bird_cv_lib_glob" != yes ; then
- LIBS="$LIBS $bird_cv_lib_glob"
+if test "$bird_cv_lib_glob" != no ; then
+ AC_DEFINE([HAVE_GLOB], [1], [Define to 1 if you have glob()x])
+ if test "$bird_cv_lib_glob" != yes ; then
+ LIBS="$LIBS $bird_cv_lib_glob"
+ fi
fi
BIRD_CHECK_ANDROID_LOG