[Box Backup] Compile Boxi from tarball or trunk?

Chris Wilson boxbackup@boxbackup.org
Thu, 2 Apr 2009 19:48:13 +0200 (CEST)


Hi Achim,

On Thu, 2 Apr 2009, Achim wrote:

> After looking into your suggestions, and after some modifications 
> (details below) to the source, I can at least compile boxi, but the 
> linking still breaks with references to wxStackWalker (again, even after 
> the changes you outlined in the document) and some functions in 
> boxbackup/bin/bbackupd/Win32ServiceFunctions.h which is really weird:

Did you start with a completely clean wx source after changing setup.h.in? 
This file is converted into something else, quite early in the build 
process.

> wxWidgets 2.6.4 does not compile with the options you point out at all, 
> but 2.8.10 build just fine (with 2.6. compatibility enabled).

Ok, I don't particularly care about compiling 2.6 manually, either 
distributions have it or they don't, in which case people should use 2.8 
now.

> How does CPPunit interact with WX, and why does the linker not find 
> entry points to boxbackup internal functions?

CPPunit itself does not interact with wx as far as I know. There is a wx 
test runner in cppunit that has a WX gui, but we don't use it. Wx may have 
an option to use cppunit for wx tests, but I've never heard about that, 
nor used it.

We have our own library of wx test functions, based on Reinhard Fureder's 
work, which we use to generate simulated wx events in cppunit tests, to 
drive the gui from cppunit tests. The integration of cppunit and wx in 
this way is very hairy and complex, I recommend that you don't touch it.

> * * * Zlib * * *
> BUGBUG not required?

What is bugbug and why is it not required? :)
Zlib is required for boxi because it's required for box backup.

> BUGBUG what about these:
> #define wxUSE_UNICODE 1

Don't know if they need changing. Unicode is certainly required.

> // This setting is for Win32 only and can only be enabled if your compiler
> // supports Win32 structured exception handling (currently only VC++ does)
> //
> // Default is 1
> //
> // Recommended setting: 1 if your compiler supports it.
> #define wxUSE_ON_FATAL_EXCEPTION 1

I guess it doesn't work on mingw then, so it should be turned off.

> --with-cppunit-prefix=/usr/local

What is this doing in the wx configuration line?

> Download Boxi from SVN (also fetches latest boxbackup from svn)
>
> svn co https://svn.sourceforge.net/svnroot/boxi/trunk/boxi
>
> cd boxi/
> ./configure-mingw.sh
>
> Will not result in a working Makefile for box, so we need to do that
> manually and downgrade to compilabe R2465 at the same time:

I've seen this problem as well, but I don't think it's the correct 
solution. Instead, just remove the line from configure.in that moves 
Makefile to Makefile.in.

> * * * wxStackFrame and wxStackWalker * * *
> wxStackFrame and wxStackWalker are not available even after the changes in
> setup.h.in and the corresponding MSW file.
> change following lines (around 82) in
> /usr/local/include/wx-2.8/wx/msw/chkconf.h
> #    define wxUSE_ON_FATAL_EXCEPTION 1
> #    define wxUSE_CRASHREPORT 1
> #    define wxUSE_STACKWALKER 1

You can't just change that file, it will result in link errors as you saw. 
You have to get wx to use and install the correct version when compiling.

> Does this perhaps von MSVC++? From the file:

Yes, some of these don't work with mingw.

Cheers, Chris.
-- 
_ ___ __     _
  / __/ / ,__(_)_  | Chris Wilson <0000 at qwirx.com> - Cambs UK |
/ (_/ ,\/ _/ /_ \ | Security/C/C++/Java/Perl/SQL/HTML Developer |
\ _/_/_/_//_/___/ | We are GNU-free your mind-and your software |