The source code for my programs are in a repository. Here is a quick guide to the contents:
% svn list svn://hnaparst.homelinux.com
seti_boinc/ | The entire seti source code, with my changes. |
boinc/ | The boinc client with enhancements |
seti_enhanced/ | The seti beta project. This is the future. |
rescmp/ | Tetsuji's excellent program for comparing results of different seti clients. |
boinc and seti_boinc have their own trunk, tags, and branches
subdirectory, in standard subversion style.
If you are interested in compiling your own version of my cruncher, you
need to download the source for boinc and seti_boinc. You'll also need
to install
and ,
which you can get from Intel. Here's what to do:
cd /home/boinc
svn checkout svn://hnaparst.homelinux.com/boinc/trunk boinc
svn checkout svn://hnaparst.homelinux.com/seti_boinc/trunk seti_boinc
export CC=icc
export CXX=icpc
export AR=xiar
export IPP=/opt/intel/ipp/5.0/ia32
source /opt/intel/cc/9.0/bin/iccvars.sh
source $IPP/tools/env/ippvars32.sh
export MYSQL_CONFIG=true
export CFLAGS='-DIPP -DW7 -O3 -xW -ipo -no-prec-div -no-prec-sqrt
-fp-model fast -I/opt/intel/cc/9.0/include -I$IPP/include
-I$IPP/tools/staticlib -i-static'
export LDFLAGS='-L$IPP/lib -L$IPP/tools/staticlib
-L/opt/intel/cc/9.0/lib -limf -lippsmerged -lippvmmerged -lippchmerged
-lippcore -i-static -cxxlib-icc'
If you are politically opposed to monopolistic behavior, you may prefer
to use FFTW and avoid IPP entirely. You will get a much slower binary,
however.
export CFLAGS='-g -DICC90 -DW7 -O3 -xW -ipo -DUSE_FFTWF'
export LDFLAGS='-lfftw3f'
cd boinc
make distclean
./configure --enable-static=no --disable-static-linkage
--disable-server --without-wx
make
cd ../seti_boinc
./configure --enable-static=no --disable-server --disable-gui
make clean
cd client
make
If you are very, very opposed to monopolistic behaviour, you may
replace ICC with GCC.
Note that the above is only a guide. Linking with ICC is a
difficult process, and even though I use Gentoo, I do not support
compilation from source as well as Gentoo does. You are also free to
poke around in the rest of the subversion tree. For instance,
svn list svn://hnaparst.homelinux.com/seti_boinc/branches
amd64/ (still working on this)
svn list
svn://hnaparst.homelinux.com/seti_boinc/tags
20050508-official/
naparst-r3.2/
YAOSC8.1/
A complete guide to the available CFLAGS that I have added is here
The ChangeLog is in seti_boinc/client/ChangeLog
The log of my compile session to produce the posted binary is in
seti_boinc/client/compile.log