Seti@Home Optimization Project
You are here: setiboinc :: How to build

Seti @ Home Project

How to download files for seti@home

Ok, to make seti compile, you also need the BOINC client...odd isn't it?

So you will need a folder layout like this (folder names must be identical)


[your directory]/boinc
[your directory]/setiboinc

where /boinc contains all the boinc sources and /seti_boinc has...well you know.

The project files under /setiboinc/client/win_build.

The project file and makefile(s) refer to source files in ../../boinc/blah_blah_blah . This is why you need ./boinc also.

There are two paths for boinc and setiboinc in the development. There is the latest_public_release, and the work_in_progress paths.

The one you download from the tarballs is the work_in_progress. (unless you find the specific day of tarball that they used for public)

The other method for getting the source is CVS (Controlled Versioning System).

There are utilities for CVS for windows, 3 that I know of. WinCvs, TortoiseCVS, and cygwin. No I will not describe how to install them here, but short web search should find those docs.

  1. Install some CVS software program.
  2. Use the "checkout" command listed below to get ongoing boinc to the folder.
    cvs -z5 -d :pserver:anonymous@alien.ssl.berkeley.edu:/home/cvs/cvsroot checkout boinc
  3. Follow these cvs instructions (on another web page) to get ongoing setiboinc to the folder.
  4. If you have done it correctly, you should have the following directory structure.
    [your directory]/boinc
    [your directory]/setiboinc

Linux/Unix - Now you will need to prepare the makefiles

Boinc source includes files for the following programs:
client - Runs on end user's machine
server - Delivers data to the end users upon request, receives completed data
"other components" - ...

For your use, you won't need these other parts, but they come anyway.

On linux/unix variants you will need to configure both projects to work with your compiler & system features. A configure file is inlcuded for each. Go to setiboinc and run its configure commands.
cd ./setiboinc
  ./configure

For boinc project you need to check if you system has 'mysql' installed. Then use these commands
cd ./boinc
 no mysql - ./configure --disable-server
yes mysql - ./configure

First get boinc to compile...try typing make (in boinc root of course). There may be errors depending on your compiler configuration or other situations. When in doubt, you can search for problems others have had with compiling. Problems Compiling Boinc

Second, try compiling setiboinc. Goto it's directory and make.

Windows Compiling

The windows client was compiled with Microsoft Visual C++ 7.0 (.Net works also). The solution file for loading with the IDE is:
--- ./client/win_build/seti_boinc.sln

Make sure you check which target you are compiling..."debug" or "release". Usually you will want "release".

Testing the executable

Once you are sucessfull at compiling/linking both, try running setiboinc client with the included work unit
--- .\client\test_workunits\reference_work_unit.sah

  1. Put both your executable compiled client and a copy of the reference workunit into a directory.
  2. Rename the "reference_work_unit.sah" to "work_unit.sah".
  3. Start the executable
  4. Make some popcorn...watch a movie...its going to be a while...
  5. When the executable is finished, another few files will be in the directory.
  6. Use a diff utility to compare the newly generated "result.sah" with the ".\client\test_workunits\baseline_results.sah".
    The XML block structure should match. Some of the floating point numbers *might* be different on the 5th or 6th digits.