aboutsummaryrefslogtreecommitdiffstats
path: root/INSTALL
blob: 9e016d1334d114da1e80e3eb5546363181cf65a9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
Building the Qt version under Linux
-----------------------------------

On Debian you need libqt4-dev, libmarble-dev, libzip-dev.
Unfortunately the marble version in Debian stable (and possibly
Ubuntu) appears broken and missing essential header files used in the
current git version of Subsurface. We hack around this right now by
including this header file but this needs to be revisited before an
actual release.

On Fedora you need qt-devel, marble-devel, libzip-devel,
libxml2-devel, libxslt-devel, libsqlite3x-devel. If you are going to
compile libdivecomputer, you need to libusb-devel too.

On Debian the package names are different; try libxml2-dev,
libsqlite3-dev, libxslt1-dev, libzip-dev (and libusb-1.0-0-dev if
you're going to compile libdivecomputer).

To compile libdivecomputer:
$ git clone git://git.libdivecomputer.org/libdivecomputer
$ cd libdivecomputer
$ git checkout release-0.4
$ autoreconf --install
$ ./configure --disable-shared
$ make
$ sudo make install

To compile Subsurface:
$ git clone git://subsurface.hohndel.org/subsurface.git
$ cd subsurface
$ qmake
$ make
$ sudo make install     [optionally, add: prefix=/usr/local]

Building the Qt version under MacOSX
------------------------------------

1)  Install Homebrew

$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

2) Install needed dependencies

$ brew install asciidoc libzip qt sqlite cmake libusb pkg-config

3) Make the brew version of sqlite the default

$ brew link --force sqlite

4) Install Marble

$ mkdir -p ~/src/marble/build
$ git clone -b KDE/4.11 git://anongit.kde.org/marble ~/src/marble/sources
$ cd ~/src/marble/build
$ cmake -DCMAKE_BUILD_TYPE=Debug -DQTONLY=TRUE -DCMAKE_INSTALL_PREFIX=/usr/local ../sources
$ cd src/lib
$ make -j4
$ cp *dylib /usr/local/lib/
$ mkdir -p /usr/local/include/marble
$ cd ../../../source/src/lib
$ cp $(find . -name '*.h') /usr/local/include/marble/

5) Install Libdivecomputer

$ brew install automake libtool
$ cd ~/src
$ git clone git://git.libdivecomputer.org/libdivecomputer
$ cd libdivecomputer
$ git checkout release-0.4
$ autoreconf --install
$ ./configure --disable-shared
$ make
$ make install

6) Compile Subsurface

$ cd ~/src
$ git clone git://subsurface.hohndel.org/subsurface.git
$ cd subsurface
$ qmake
$ make
$ make install_mac_bundle

After the above is done, Subsurface will be installed to
/Applications.

Another option is to create a .dmg for distribution:

$ qmake
$ make
$ make mac-create-dmg

Cross-building Subsurface on Linux for Windows
----------------------------------------------

Subsurface builds nicely with MinGW - the official builds are done 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

$ git clone git://libdivecomputer.git.sourceforge.net/gitroot/libdivecomputer/libdivecomputer
$ cd libdivecomputer
$ git checkout release-0.4
$ mingw32-configure --disable-shared
$ mingw32-make
$ sudo mingw32-make install

To compile Subsurface, use:

$ git clone git://subsurface.hohndel.org/subsurface.git
$ cd subsurface
$ i686-w64-mingw32-qmake-qt4
$ make
$ make install
$ make create-windows-installer

Building Subsurface on Windows
------------------------------

This is still work in progress.

To build subsurface, use:

$ git clone git://subsurface.hohndel.org/subsurface.git
$ cd subsurface
$ qmake
$ make
$ make install
$ make create-windows-installer

Build options
-------------

The following options are recognised when passed to qmake:

 -config debug        Create a debug build
 -config release      Create a release build
                      The default depends on how Qt was built.
 V=1                  Disable the "silent" build mode
 LIBDCDEVEL=1         Search for libdivecomputer in ../libdivecomputer
 INCLUDEPATH+=xxx     Add xxx to the include paths to the compiler
                      (pass the actual path, without -I)
 LIBS+=xxx            Add xxx to the linker flags. -l and -L options are
                      recognised.

The INCLUDEPATH and LIBS options are useful to tell the buildsystem
about non-standard installation paths for the dependencies (such as
Marble). They can be repeated as often as needed, or multiple
arguments can be passed on the same switch, separated by a space. For
example:

  qmake LIBS+="-L$HOME/marble/lib -L$HOME/libdivecomputer/lib" \
        INCLUDEPATH+="$HOME/marble/include $HOME/libdivecomputer/include"