Prime Programs‎ > ‎

BOINC with MinGW on Win32

So you want to know how I compiled PPSieve on Windows (for 32-bit) with MinGW GCC 4.4.1?  Well, I'm glad you asked.  It's a simple 12-step process, with only 16 different files to download!

The first 11 steps here build BOINC with MinGW:

1. Install TDM MinGW 4.4.1-2 from http://www.tdragon.net/recentgcc/

2. Install MSYS 1.0.11, following the instructions here: http://www.mingw.org/wiki/MSYS
2.a. That's MSYS 1.0.11, MSYS DTK 1.0, and MSYS Core 1.0.11.  Get used to un-taring things in msys\1.0.  I suggest using 7-zip.

3. Get autoconf-2.63-1-msys-1.0.11-bin, automake-1.11-1-msys-1.0.11-bin, and libtool-2.2.7a-1-msys-1.0.11-bin.  I got them in tar.lzma files.  Extract them like you did with MSYS Core.

4. Get dbghelp.h and libdbghelp.def, from the Wine project, from the attached files section here: http://sourceforge.net/tracker/index.php?func=detail&aid=1660497&group_id=2435&atid=352435
4.a. After you get the files, place dbghelp.h in the MinGW include directory, and place libdbghelp.def in the MinGW lib directory.

5. Create a directory in msys\1.0\home called srcs.

6. Download boinc_core_release_6_10_17.tgz, curl-7.19.6.tar.gz, openssl-1.0.0-beta3.tar.gz, and zlib-1.2.3.tar.gz.  Don't extract them; just place them in the srcs directory you created above.  You can get them from http://87.230.35.12/tmp/boinc/srcs/ or from their respective manufacturers.

7. Just two more things to download, and these you can only get from that server.  From http://87.230.35.12/tmp/boinc/ download build_boinc.sh and patches-boinc_core_release_6_10_17.tgz.  Place these both in the srcs directory, again without extracting.

8. Launch MSYS (there should be a desktop icon), cd to /home/srcs, and run "./build_boinc.sh all".  This will take a long time to run!  The build will almost complete, but not quite.  Don't despair - just a few steps left!

9. In the MSYS home\tmp\boinc_core_release_6_10_17\lib directory, add the following line to stackwalker_win.cpp under the #includes:

#define PCTSTR LPCTSTR

You may want to make the file read-only after you make the change.

10. Finally, back in the MSYS window, run "./build_boinc.sh boinc-patched".  The build should *finally* finish successfully! :)

But if you try to compile C code against this version, you'll get an error. So:

11. In mingw\include\boinc, edit filesys.h.  At line 28, put #ifdef __cplusplus around the two #includes without ".h" at the end.

OK, you've finally finished building BOINC with MinGW!  So what about building PPSieve?

12. Download the PPSieve source, extract it, and in MSys, run "make do_pps_boinc".  The binary should appear in the pps subdirectory.


P.S. Thanks to SETI Germany for their files and the general build procedure, though it needed some tweaking (and translating!)
Comments