SETI@Kulthea.net

Kulthea.net Home

Home

My SPARC Box

Compiling the BOINC Client

Compiling the SETI@home Client

Downloads

 

Links

SETI@home Classic

SETI@home BOINC

BOINC Project

Ned Slider's SETI-Linux Site

 

Compiling the SETI@home Client

The SETI@home client is the program that actually does the processing of work units. The idea of optimising the SETI client is to reduce the amount of time it takes to process those work units. In actual fact there would appear to be very little you can do to optimise the SETI@home Client but minor improvements may be possible. You'll need a copy of the BOINC source code used to compile the BOINC Client and the SETI source code from the same nightly build. Make sure you get the tar.gz version and not the zip windows file.

Important : The SETI Client requires shared libraries from the BOINC build in order to compile. However, the -ffast-math flag we originally used when compiling the BOINC Client will cause problems with the compiled SETI Client if we use those versions. So before compiling the SETI Client make sure you delete your boinc_public folder first (but make sure you've copied the boinc_client binary to somewhere safe first!) and re-extract the files from the source archives.

tar -zxvf boinc_public-cvs-200?-??-??.tar.gz
tar -zxvf seti_boinc-client-cvs-200?-??-??.tar.gz

Next we need to rename the folder to just boinc so that the SETI build will find it and also recompile the BOINC Client without using the -ffast-math flag.

mv boinc_public boinc
cd boinc

export MYSQL_CONFIG=true
export CFLAGS="-mcpu=ultrasparc -O3 -fomit-frame-pointer -funroll-loops -fforce-addr -ftracer"
export CXXFLAGS=$CFLAGS
./configure
make -k

This will more than likely throw up a few errors (unless you have MySQL installed) but those will be related to the server build and we don't need to worry about those. Running make with the -k switch will continue to compile even if errors are encountered. With the BOINC Client recompiled we now need to compile the SETI Client.

cd ../seti_boinc
./configure
make -k

On my machine I kept getting a load of errors complaining about malloc and realloc. From what I can only assume is a bug in the configure script, a false path is added to the makefile - /usr/bin/X11/xlsfonts/include but xlsfonts is actually a file on my machine and not a directory. I tried manually editing this path and even removing it completely but it still gave errors when compiling. What I had to do was temporarily rename xlsfonts to something else before running the configure script and after this it would compile fine.

Something else you may see errors messages for is unable to find file glut.h. I presume glut.h is required for some GL graphics functions and isn't essential for just building the command line client but installing the freeglut3 and freeglut3-dev packages got rid of the error messages for me. If using Debian it's a simple case of running apt-get install freeglut3 freeglut3-dev to install the packages.