[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