[Box Backup-commit] COMMIT r1771 - in box/chris/merge: . docs/backup lib/common
boxbackup-dev@fluffy.co.uk
boxbackup-dev@fluffy.co.uk
Thu, 26 Jul 2007 23:05:56 +0100
Author: chris
Date: 2007-07-26 23:05:56 +0100 (Thu, 26 Jul 2007)
New Revision: 1771
Modified:
box/chris/merge/configure.ac
box/chris/merge/docs/backup/win32_build_on_cygwin_using_mingw.txt
box/chris/merge/lib/common/BoxConfig-MSVC.h
box/chris/merge/lib/common/ExcludeList.cpp
box/chris/merge/lib/common/ExcludeList.h
Log:
Work around the fact that we may have regex support without having
regex.h (e.g. from pcreposix.h/libpcreposix) and disabuse HAVE_REGEX_H,
define and use HAVE_REGEX_SUPPORT instead, thanks Gary!
(refs #3, merges [1677] [1678] [1679])
Modified: box/chris/merge/configure.ac
===================================================================
--- box/chris/merge/configure.ac 2007-07-26 22:04:53 UTC (rev 1770)
+++ box/chris/merge/configure.ac 2007-07-26 22:05:56 UTC (rev 1771)
@@ -112,9 +112,25 @@
if test "$have_regex_h" = "yes"; then
AC_DEFINE([HAVE_REGEX_H], [1], [Define to 1 if regex.h is available])
- AC_SEARCH_LIBS([regcomp], ["pcreposix -lpcre"])
+else
+ AC_CHECK_HEADER([pcreposix.h], [have_pcreposix_h=yes])
fi
+if test "$have_pcreposix_h" = "yes"; then
+ AC_SEARCH_LIBS([regcomp], ["pcreposix -lpcre"],,[have_pcreposix_h=no_regcomp])
+fi
+
+if test "$have_pcreposix_h" = "yes"; then
+ AC_DEFINE([HAVE_PCREPOSIX_H], [1], [Define to 1 if pcreposix.h is available])
+fi
+
+if test "$have_regex_h" = "yes" -o "$have_pcreposix_h" = "yes"; then
+ have_regex_support=yes
+ AC_DEFINE([HAVE_REGEX_SUPPORT], [1], [Define to 1 if regular expressions are supported])
+else
+ have_regex_support=no
+fi
+
AC_SEARCH_LIBS([dlsym], ["dl"])
### Checks for typedefs, structures, and compiler characteristics.
@@ -274,7 +290,7 @@
without these features, but will work better where they are present. Refer
to the documentation for more information on each feature.
-Regular expressions: $have_regex_h
+Regular expressions: $have_regex_support
Large files: $have_large_file_support
Berkeley DB: $ax_path_bdb_ok
Readline: $have_libreadline
Modified: box/chris/merge/docs/backup/win32_build_on_cygwin_using_mingw.txt
===================================================================
--- box/chris/merge/docs/backup/win32_build_on_cygwin_using_mingw.txt 2007-07-26 22:04:53 UTC (rev 1770)
+++ box/chris/merge/docs/backup/win32_build_on_cygwin_using_mingw.txt 2007-07-26 22:05:56 UTC (rev 1771)
@@ -35,20 +35,12 @@
export CFLAGS="-mno-cygwin"
./configure
make winshared
- cp .libs/pcreposix.dll /bin
- cp .libs/pcreposix.dll.a /usr/i686-pc-mingw32/lib
- cp pcreposix.h /usr/i686-pc-mingw32/include/regex.h
+ cp .libs/libpcre.a .libs/libpcreposix.a /usr/lib/mingw
+ cp pcreposix.h /usr/include/mingw
Now unpack the Box Backup sources, enter the source directory,
and configure like this:
- export CXX="g++ -mno-cygwin"
- export LD="g++ -mno-cygwin"
- export CFLAGS="-mno-cygwin -mthreads"
- export CXXFLAGS="-mno-cygwin -mthreads"
- export LDFLAGS="-mno-cygwin -mthreads"
- export LIBS="-lcrypto -lws2_32 -lgdi32"
- (if you don't have a "configure" file, run "./bootstrap")
- ./configure --target=i686-pc-mingw32
+ ./infrastructure/mingw/configure.sh
make
Modified: box/chris/merge/lib/common/BoxConfig-MSVC.h
===================================================================
--- box/chris/merge/lib/common/BoxConfig-MSVC.h 2007-07-26 22:04:53 UTC (rev 1770)
+++ box/chris/merge/lib/common/BoxConfig-MSVC.h 2007-07-26 22:05:56 UTC (rev 1771)
@@ -178,6 +178,7 @@
/* Define to 1 if you have the <regex.h> header file. */
/* #undef HAVE_REGEX_H */
#define HAVE_PCREPOSIX_H 1
+#define HAVE_REGEX_SUPPORT 1
/* Define to 1 if you have the `setproctitle' function. */
/* #undef HAVE_SETPROCTITLE */
Modified: box/chris/merge/lib/common/ExcludeList.cpp
===================================================================
--- box/chris/merge/lib/common/ExcludeList.cpp 2007-07-26 22:04:53 UTC (rev 1770)
+++ box/chris/merge/lib/common/ExcludeList.cpp 2007-07-26 22:05:56 UTC (rev 1771)
@@ -9,12 +9,13 @@
#include "Box.h"
-#ifdef HAVE_PCREPOSIX_H
- #include <pcreposix.h>
+#ifdef HAVE_REGEX_SUPPORT
+ #ifdef HAVE_PCREPOSIX_H
+ #include <pcreposix.h>
+ #else
+ #include <regex.h>
+ #endif
#define EXCLUDELIST_IMPLEMENTATION_REGEX_T_DEFINED
-#elif defined HAVE_REGEX_H
- #include <regex.h>
- #define EXCLUDELIST_IMPLEMENTATION_REGEX_T_DEFINED
#endif
#include "ExcludeList.h"
@@ -49,7 +50,7 @@
// --------------------------------------------------------------------------
ExcludeList::~ExcludeList()
{
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
// free regex memory
while(mRegex.size() > 0)
{
@@ -167,7 +168,7 @@
// --------------------------------------------------------------------------
void ExcludeList::AddRegexEntries(const std::string &rEntries)
{
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
// Split strings up
std::vector<std::string> ens;
@@ -252,7 +253,7 @@
}
// Check against regular expressions
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
for(std::vector<regex_t *>::const_iterator i(mRegex.begin()); i != mRegex.end(); ++i)
{
// Test against this expression
@@ -308,7 +309,7 @@
//
mDefinite.clear();
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
// free regex memory
while(mRegex.size() > 0)
{
@@ -349,7 +350,7 @@
//
//
//
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
rArchive.Read(iCount);
if (iCount > 0)
@@ -386,7 +387,7 @@
}
}
}
-#endif // HAVE_REGEX_H
+#endif // HAVE_REGEX_SUPPORT
//
//
@@ -441,7 +442,7 @@
//
//
//
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
// don't even try to save compiled regular expressions,
// use string copies instead.
ASSERT(mRegex.size() == mRegexStr.size());
@@ -454,7 +455,7 @@
{
rArchive.Write(*i);
}
-#endif // HAVE_REGEX_H
+#endif // HAVE_REGEX_SUPPORT
//
//
Modified: box/chris/merge/lib/common/ExcludeList.h
===================================================================
--- box/chris/merge/lib/common/ExcludeList.h 2007-07-26 22:04:53 UTC (rev 1770)
+++ box/chris/merge/lib/common/ExcludeList.h 2007-07-26 22:05:56 UTC (rev 1771)
@@ -50,7 +50,7 @@
// Mainly for tests
unsigned int SizeOfDefiniteList() const {return mDefinite.size();}
unsigned int SizeOfRegexList() const
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
{return mRegex.size();}
#else
{return 0;}
@@ -58,7 +58,7 @@
private:
std::set<std::string> mDefinite;
-#ifdef HAVE_REGEX_H
+#ifdef HAVE_REGEX_SUPPORT
std::vector<regex_t *> mRegex;
std::vector<std::string> mRegexStr; // save original regular expression string-based source for Serialize
#endif