XuvTools is developed in a cooperative effort from:
  • Chair of Pattern Recognition and Image Processing [www]
  • Friedrich Miescher Institute for Biomedical Research [www]
  • Center for Biological Systems Analysis [www]

Compiling XuvTools Sources on Linux or Apple Mac


  • GNU Compiler Collection
    • Any recent version of gcc should do. We have tested gcc-4.3.4 and some newer versions.

To compile XuvTools on Linux, you have to fulfill several build-dependencies. It is recommended that you use a change-root environment, because the compile-process might be disturbed by other/older/newer libraries that you have installed on your Linux. We provide pages that help you setup the compile environment:

Testing your Build Environment

This step is still in an early stage. While the automatic testing can already help find several issues, it is not able to detect all possible problems.

To test if you should have a working Build environment, you can use the script xuvprepare.sh. The script will inspect your setup and warn about problems and errors. Here is a sample run on Linux:

emmenlau(decuman) ~/XuvTools/trunk/xuvtools/scripts> ./xuvprepare.sh --verbose

Sources, Directory Layout and Environment

Directory Layout

The next steps should be getting the sources and installing them in the correct directories. It is highly recommended to stick to the following directory layout, where USER is the username of the active user (call 'whoami' to find your user name).

Sources: "/home/${USER}/XuvTools/trunk"
Binaries: "/data/${USER}/lmbsoft"

If you can't use this directory layout or drive letters, please edit the script “XuvTools/trunk/xuvtools/scripts/env-lmb.sh” to reflect your directory layout.

Getting the Sources

You can now check out the sources from the LMB Freiburg Subversion server. For getting the sources, you need to have an Subversion account, which you can request from admin@xuvtools.org. Please make sure you check out the sources in the Sources directory set above.

Subversion Server: svn://tim.informatik.uni-freiburg.de/lmbsoft/trunk
User Name: <The user name you have received via email>
Password: <The password you have received via email>

Starting a Compile

To enter the new build environment, you only have to set the environment variables for your shell by sourcing the environment script:

source XuvTools/trunk/xuvtools/scripts/env-lmb.sh
Starting the XuvTools Compile

Finally, you can now use the “xuvbuild.sh” script to compile the sources. When compiling the sources for the first time, you need to use the parameter “–qmake” to generate the Makefiles. For a first run it also recommended to use the parameter “–genfirst”. Compiling the thirdparty prerequisites is required only the first time (or whenever there are updates). Thirdparty compilation is activated with the “–thirdparty” switch. Here is a sample run for compiling the first time:

emmenlau(decuman) ~/XuvTools/trunk> xuvbuild.sh --help
usage: xuvbuild.sh
        [--verbose|-v]                        -  be more verbose (default=0)
        [--qmake|-q]                          -  reconfigure (run qmake) first (default=no)
        [--thirdparty|-t]                     -  extract thirdparty libs (default=no)
        [--nobuild|-nb]                       -  do not build solution (default=build)
        [--rebuild|-c]                        -  rebuild solution (default=no)
        [--debug|-d]                          -  build debug configuration (default=no)
        [--release|-r]                        -  build release configuration (default=yes)
        [--cleantree]                         -  clean temporary and destination build-dirs-tree (default=no)
        [--jobs|-jobs]                        -  number of parallel jobs (default=autodetect)

emmenlau(decuman) ~/XuvTools/trunk> xuvbuild.sh --verbose --qmake --tools --thirdparty

Here is a sample run for compiling all future times:

emmenlau(decuman) ~/XuvTools/trunk> xuvbuild.sh --verbose

XuvTools Releases

XuvTools releases are packaged with a simple shell script. The script will package the XuvTools release automatically, and include the Java runtime environment and other dependencies.

Packaging a XuvTools Release

Depending on the platform, you can use one of currently three packaging scripts: xuvpackage-win.sh, xuvpackage-mac.sh or xuvpackage-lin.sh. Here we demonstrate xuvpackage-lin.sh:

emmenlau(decuman) ~/XuvTools/trunk> xuvpackage-lin.sh --verbose --version=<versionnr>

This will create a new packaged release in your XuvTools/trunk/releases/ directory.

Putting it all together - a new XuvTools Release

Here is the full, non-beautified truth on what shell invocations had to be done to create the XuvTools 1.8.0-beta11 download.

# compile the new release, on Linux we use a chroot
schroot -c lucid64
source /home/emmenlau/XuvTools/trunk/xuvtools/scripts/env-lmb.sh
xuvbuild.sh --qmake --verbose --tools --thirdparty --version=""
# package the new release
xuvpackage-lin.sh --verbose --version="1.8.0" --beta="11"
# upload it for the Download page to catch up
rsync --verbose --progress $LMBSOFTSRC/releases/XuvStitch-1.8.0-beta11-* aldebaran:/home/www/org.xuvtools/pages/data/releases/
devel/compile-unix-xuvbuild.txt · Last modified: 2010/10/14 20:38 by mario
Contact: admin(a)xuvtools.org