about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--INSTALL14
-rw-r--r--Src/Modules/pcre.mdd2
-rw-r--r--configure.ac9
3 files changed, 24 insertions, 1 deletions
diff --git a/INSTALL b/INSTALL
index e1513bfa4..75d675d2e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -359,6 +359,20 @@ correct handling of these types.
 None of this is relevant for 64-bit systems; zsh should compile and run
 without problems if (sizeof(long) == 8).
 
+Searching for `pcre'
+--------------------
+
+Zsh has a module which allows the pcre regular expression library to be
+used via shell builtins.  Compiling this library into the shell with
+dynamic loading (the default where available) produces a dependency on the
+library libpcre.so.  This is a problem on systems where zsh needs to be
+available at boot before the directory containing libpcre.so (for
+example /usr/lib or /usr/local/lib) is mounted.  For this reason,
+pcre support will only be searched for if the option --enable-pcre
+is passed to configure.
+
+(Future versions of the shell may have a better fix for this problem.)
+
 Options For Configure
 ---------------------
 
diff --git a/Src/Modules/pcre.mdd b/Src/Modules/pcre.mdd
index b32e2c67a..724911ca0 100644
--- a/Src/Modules/pcre.mdd
+++ b/Src/Modules/pcre.mdd
@@ -1,5 +1,5 @@
 name=zsh/pcre
-link=dynamic
+link=`if test x$enable_pcre = xyes; then echo dynamic; else echo no; fi`
 load=no
 
 autobins="pcre_compile pcre_study pcre_match"
diff --git a/configure.ac b/configure.ac
index b80ff0c87..99f28546b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -308,6 +308,11 @@ else
   AC_DEFINE_UNQUOTED(MAX_FUNCTION_DEPTH, $enableval)
 fi])
 
+dnl Do you want to look for pcre support?
+AC_ARG_ENABLE(pcre,
+AC_HELP_STRING([--enable-pcre],
+[enable the search for the pcre library (may create run-time library dependencies)]))
+
 dnl ------------------
 dnl CHECK THE COMPILER
 dnl ------------------
@@ -495,6 +500,7 @@ AC_HEADER_STAT
 AC_HEADER_SYS_WAIT
 
 oldcflags="$CFLAGS"
+if test x$enable_pcre = xyes; then
 AC_CHECK_PROG([PCRECONF], pcre-config, pcre-config)
 dnl Typically (meaning on this single RedHat 9 box in front of me)
 dnl pcre-config --cflags produces a -I output which needs to go into
@@ -503,6 +509,7 @@ dnl producing a warning.
 if test "x$ac_cv_prog_PCRECONF" = xpcre-config; then
   CPPFLAGS="$CPPFLAGS `pcre-config --cflags`"
 fi
+fi
 
 AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \
 		 termios.h sys/param.h sys/filio.h string.h memory.h \
@@ -708,8 +715,10 @@ AC_CHECK_LIB(socket, socket)
 
 AC_CHECK_LIB(iconv, iconv)
 
+if test x$enable_pcre = xyes; then
 dnl pcre-config should probably be employed here
 AC_SEARCH_LIBS(pcre_compile, pcre)
+fi
 
 dnl ---------------------
 dnl CHECK TERMCAP LIBRARY