Building

License: GPLv2

You can get the sources to the latest development version from our git repository or you can download Subsurface-3.1.tgz from our website.

Building subsurface under Linux

You need to install a few dependencies to build this. On Fedora you can use

sudo yum install libxml2-devel libxslt-devel gtk2-devel glib2-devel \
    GConf2-devel libsoup-devel libusbx-devel osm-gps-map-devel libzip-devel

on openSUSE

sudo zypper install libxml2-devel libxslt-devel gtk2-devel glib2-devel \
    gconf2-devel libsoup-devel libusb-1.0 osm-gps-map-devel libzip-devel

On Debian (and most of its derivatives, including Ubuntu) the package names are different

sudo apt-get install libxml2-dev libgtk2.0-dev libglib2.0-dev libgconf2-dev \
    libsoup2.4-dev libxslt1-dev zlib1g-dev libosmgpsmap-dev libusb-1.0-0-dev autoconf libtool

If you are on a different Linux distribution please use their native installer – the package names should be reasonably similar.

You also need to have libdivecomputer installed. Subsurface is designed to work with libdivecomputer version 0.4:

git clone git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
cd libdivecomputer
git checkout v0.4.0
autoreconf --install
./configure
make
sudo make install

Now clone the Subsurface sources

cd ..
git clone git://subsurface.hohndel.org/subsurface.git
cd subsurface

If you want the latest release (instead of the bleeding edge development version) you can get this via

git checkout v3.1 #or whatever the last release is

Now you are ready to build Subsurface:

make
sudo make install

Building subsurface under Windows

Subsurface builds nicely with MinGW – I tend to do all the builds as cross builds under Linux (currently on Fedora 17). A shell script to do that (plus the .nsi file to create the installer with makensis) are included in the packaging/Windows directory.

The best way to get libdivecomputer to build appears to be

mingw32-configure
mingw32-make
sudo mingw32-make install

Once you have built libdivecomputer you can use

sh packaging/Windows/mingw-make.sh

to then build subsurface.In order to create an installer simply use

sh packaging/Windows/mingw-make.sh create-windows-installer

Building subsurface on a Mac

Install MacPorts and install the dependencies from MacPorts:

sudo port install gtk2 +quartz py27-pygtk +quartz libusb gtk-osx-application \
automake autoconf libtool libsoup osm-gps-map libzip

Install libdivecomputer:

git clone git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
cd libdivecomputer
git checkout v0.4.0
autoreconf --install
LIBUSB_CFLAGS=-I/opt/local/include ./configure
make
sudo make install

Install subsurface:

git clone git://subsurface.hohndel.org/subsurface.git
cd subsurface
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" make
sudo make install-macosx

Subsurface Companion App on Android

This application is available in the Google Play Store. It is also under GPLv2 and sources are at git://subsurface.hohndel.org/subsurface-companion.git