monotone

monotone Mtn Source Tree

Root/INSTALL

1building and installation process for monotone
2==============================================
3
41. prerequisites:
5
6 * hardware prerequisites:
7
8 - g++ consumes a lot of memory building monotone, due to
9 monotone's liberal use of C++ features. it may be possible to
10 build on a system with 128mb of memory, but not pleasant. we are
11 working on making this situation better.
12
13 * software prerequisites:
14
15 - a supported C++ compiler: g++ 3.2 or 3.3.
16 - an installed copy of boost 1.31.0.
17 - gnome popt, an option processing library.
18
19 on debian:
20
21 apt-get install libboost-date-time-dev
22 apt-get install libboost-filesystem-dev
23 apt-get install libboost-regex-dev
24 apt-get install libboost-test-dev
25 apt-get install libboost-dev
26 apt-get install g++
27 apt-get install libpopt-dev
28
29 on fedora:
30
31 apt-get install boost-devel
32 apt-get install g++
33 apt-get install popt
34
35 on other systems:
36
37 check your system package repository, you may need to
38 build some of these from source. if your package repository
39 does not contain the libraries, see:
40
41 http://gcc.gnu.org for g++
42 http://www.boost.org for boost
43 http://www.gnome.org for popt
44
451.1 building boost:
46
47 many people have reported difficulty building boost. the main
48 problem is that boost builds with an unorthodox build tool called
49 "bjam" which must, itself, be built or installed before boost can be
50 built. the bjam sources are contained within the boost distribution,
51 but somewhat hidden. there are instructions on
52 http://www.boost.org/more/getting_started.html, but we have
53 assembled this abbreviated bourne shell sequence for advanced users
54 who do not need all the preamble:
55
56 wget http://aleron.dl.sourceforge.net/sourceforge/boost/boost_1_31_0.tar.gz
57 tar -xzf boost_1_31_0.tar.gz
58 cd boost_1_31_0
59 (cd tools/build/jam_src && ./build.sh)
60 BJAM=`find tools/build/jam_src/ -name bjam -a -type f`
61 $BJAM "-sBUILD=release <threading>single <optimization>speed <runtime-link>static"
62 for i in `find bin -type d -a -name \*.a`;
63 do for j in `find $i -type f -a -name \*.a`;
64 do mv $j libs/`basename $i`;
65 done;
66 done
67 ranlib libs/*.a
68
69 if this completes successfully, you will have a selection of boost
70 libraries in boost_1_31_0/libs and boost headers in
71 boost_1_31_0/boost. you can then either copy the .a files to your
72 standard library path and the directory "boost_1_31_0/boost" to your
73 standard include path, or you can pass additional configuration
74 options to your monotone configure build, such as:
75
76 ./configure CPPFLAGS="-Iboost_1_31_2" LDFLAGS="-Lboost_1_31_0/libs"
77
78
792. configuring monotone:
80
81 * if there is no ./configure script in your source tree you'll need
82 to create one before proceeding to the next step. one of the
83 following auto* commands should work:
84
85 $ aclocal-1.7 && autoreconf --install
86 $ AUTOMAKE=automake-1.7 ACLOCAL=aclocal-1.7 autoreconf --install
87
88 * type "./configure" for a basic configuration of monotone. several
89 configuration options are available; type "configure --help" for a
90 list of all of them. some special options are shown here:
91
92 --enable-ipv6[=auto|no|yes]
93
94 specify whether IPv6 support has to be enabled or disabled. the
95 default is to try automatic detection (auto) and use the guessed
96 results. however, you can force IPv6 detection by saying 'yes'
97 or completely disable it using 'no'.
98
99 --enable-static-boost[=prefix]
100
101 this will attempt to link a "mostly static" version of monotone
102 using the .a files supplied with your installation of
103 boost. the resulting binary will be larger but more portable
104 than a normal (dynamic) link.
105
106 you can optionally pass a prefix to the option, which will be
107 used to look for the static libraries; otherwise a list of
108 predefined directories will be used. for example:
109
110 ./configure --enable-static-boost=/usr/local/boost
111
112 --disable-nls
113
114 build a version of monotone without support for local message
115 catalogs. you might like to do this if you do not have a
116 working installation of GNU gettext.
117
118 --with-bundled-lua=no
119 --with-bundled-sqlite=no
120
121 build a version of monotone without the internal "bundled"
122 copies of lua and sqlite libraries. normally monotone will use
123 copies of these libraries it was bundled with. If you set these
124 flags to "no", it will try to use librarise it finds on your
125 system, and use the bundled versions only if you do not have
126 your own copies.
127
128 --disable-large-file
129
130 this will disable large file support from the builtin sqlite, to
131 achieve maximum binary compatibility with old systems. this option
132 has no effect when --with-bundled-sqlite=no is also given.
133
134 BOOST_SUFFIX=string
135
136 this variable, to be set on configure's command line, can be used
137 to specify a special string suffix to be appended to boost library
138 names. many Linux distributions provide symlinks to hide this
139 suffix, but others do not. therefore, you need to pass it to the
140 configure script through this variable for correct detection of
141 boost. for example:
142
143 ./configure BOOST_SUFFIX=-gcc
144
145 note that, sometimes, the configure script will be able to guess
146 the correct suffix by itself.
147
1483. building monotone
149
150 * type "make". this should produce a monotone binary in your current
151 directory. if not, please send a build log to
152 monotone-devel@nongnu.org with a description of the failure.
153
1544. testing monotone
155
156 * there is a "make check" target which you can try, if you'd like to
157 confirm monotone's functionality on your system. you might also
158 like to try fetching monotone's sources from our monotone
159 server. this process will transfer the complete development
160 history (about 25 megabytes) to your database, and you will then be
161 free to share it with others or make changes and submit them to
162 us:
163
164 monotone --db=mt.db db init
165
166 monotone --db=mt.db read <<EOF
167 [pubkey monotone@off.net]
168 MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCkVU7BYI5bRRJmkJc8gomO9WdTTGG10Lmh
169 PdAEqD6sSdsMkTC9okfsQQ8obE+GODrFa70fX5PJNevNoE+Ryxzu+xtJjmuR2tYTeRNwNa0F
170 dIo/QLteQ4Vwh5162It1kPhLKb1Ki62ZG8aw6ATS4GQVJPci2g1lpn1RG0Z+fFdFJQIBEQ==
171 [end]
172 EOF
173
174 monotone --db=mt.db --key="" pull off.net net.venge.monotone
175
176 monotone --db=mt.db --branch=net.venge.monotone checkout monotone-sources
177
1785. upgrading
179
180 * if you have an existing monotone installation, you may need to
181 perform some additional steps to migrate your data to the newest
182 version; see the file UPGRADE for details.

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status