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 later.
16 - an installed copy of boost 1.32.0 or later.
17 - zlib 1.1.4 or later.
18
19 on debian:
20
21 apt-get install libboost-filesystem-dev
22 apt-get install libboost-regex-dev
23 apt-get install libboost-test-dev
24 apt-get install libboost-dev
25 apt-get install g++
26
27 on fedora:
28
29 apt-get install boost-devel
30 apt-get install g++
31
32 on other systems:
33
34 check your system package repository, you may need to
35 build some of these from source. if your package repository
36 does not contain the libraries, see:
37
38 http://gcc.gnu.org for g++
39 http://www.boost.org for boost
40
411.1 building boost:
42
43 many people have reported difficulty building boost. the main
44 problem is that boost builds with an unorthodox build tool called
45 "bjam" which must, itself, be built or installed before boost can be
46 built. the bjam sources are contained within the boost distribution,
47 but somewhat hidden. there are instructions on
48 http://www.boost.org/more/getting_started.html, but we have
49 assembled this abbreviated bourne shell sequence for advanced users
50 who do not need all the preamble:
51
52 wget http://internap.dl.sourceforge.net/sourceforge/boost/boost_1_33_1.tar.gz
53 tar -xzf boost_1_33_1.tar.gz
54 cd boost_1_33_1
55 (cd tools/build/jam_src && ./build.sh)
56 BJAM=`find tools/build/jam_src/ -name bjam -a -type f`
57 $BJAM "-sBUILD=release <threading>single <optimization>speed <runtime-link>static"
58 for i in `find bin -type d -a -name \*.a`;
59 do for j in `find $i -type f -a -name \*.a`;
60 do mv $j libs/`basename $i`;
61 done;
62 done
63 ranlib libs/*.a
64
65 if this completes successfully, you will have a selection of boost
66 libraries in boost_1_33_1/libs and boost headers in
67 boost_1_33_1/boost. you can then either copy the .a files to your
68 standard library path and the directory "boost_1_33_1/boost" to your
69 standard include path, or you can pass additional configuration
70 options to your monotone configure build, such as:
71
72 ./configure CPPFLAGS="-Iboost_1_33_1" LDFLAGS="-Lboost_1_33_1/libs"
73
74 monotone does not use all of boost -- for instance, people often
75 have trouble building boost.python, which we do not use. you don't
76 need to build any libraries that we don't use!
77
782. configuring monotone:
79
80 * if there is no ./configure script in your source tree you'll need
81 to create one before proceeding to the next step. one of the
82 following auto* commands should work:
83
84 $ aclocal-1.9 && autoreconf --install
85 $ AUTOMAKE=automake-1.9 ACLOCAL=aclocal-1.9 autoreconf --install
86
87 If this fails early, check that you have gettext packages installed.
88
89 * type "./configure" for a basic configuration of monotone. several
90 configuration options are available; type "configure --help" for a
91 list of all of them. some special options are shown here:
92
93 --enable-ipv6[=auto|no|yes]
94
95 specify whether IPv6 support has to be enabled or disabled. the
96 default is to try automatic detection (auto) and use the guessed
97 results. however, you can force IPv6 detection by saying 'yes'
98 or completely disable it using 'no'.
99
100 --enable-static-boost[=prefix]
101
102 this will attempt to link a "mostly static" version of monotone
103 using the .a files supplied with your installation of
104 boost. the resulting binary will be larger but more portable
105 than a normal (dynamic) link.
106
107 you can optionally pass a prefix to the option, which will be
108 used to look for the static libraries; otherwise a list of
109 predefined directories will be used. for example:
110
111 ./configure --enable-static-boost=/usr/local/boost
112
113 --disable-nls
114
115 build a version of monotone without support for local message
116 catalogs. you might like to do this if you do not have a
117 working installation of GNU gettext.
118
119 --disable-large-file
120
121 this will disable large file support from the builtin sqlite, to
122 achieve maximum binary compatibility with old systems.
123
124 BOOST_SUFFIX=string
125
126 this variable, to be set on configure's command line, can be used
127 to specify a special string suffix to be appended to boost library
128 names. many Linux distributions provide symlinks to hide this
129 suffix, but others do not. therefore, you need to pass it to the
130 configure script through this variable for correct detection of
131 boost. for example:
132
133 ./configure BOOST_SUFFIX=-gcc
134
135 note that, sometimes, the configure script will be able to guess
136 the correct suffix by itself.
137
138 --enable-pch
139
140 this will enable precompiled headers, which should improve compile
141 time. some versions of gcc have problems with this option, so
142 try disabling it if you run into trouble.
143
1443. building monotone
145
146 * type "make". this should produce a mtn binary in your current
147 directory. if not, please send a build log to
148 monotone-devel@nongnu.org with a description of the failure.
149
1504. testing monotone
151
152 * there is a "make check" target which you can try, if you'd like to
153 confirm monotone's functionality on your system.
154 Do not run "make check" as root (Unix)! Doing so will cause the
155 failure of some of the tests!
156
157 You might also like to try fetching monotone's sources from our
158 monotone server. this process will transfer the complete development
159 history (about 40 megabytes) to your database, and you will then
160 be free to share it with others or make changes and submit them to
161 us:
162
163 mtn --db=mt.mtn db init
164
165 mtn --db=mt.mtn pull venge.net "net.venge.monotone*"
166
167 mtn --db=mt.mtn --branch=net.venge.monotone checkout monotone-sources
168
1695. upgrading
170
171 * if you have an existing monotone installation, you may need to
172 perform some additional steps to migrate your data to the newest
173 version; see the file UPGRADE for details.
174

Archive Download this file

Branches

Tags

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