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-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
28 on fedora:
29
30 apt-get install boost-devel
31 apt-get install g++
32
33 on other systems:
34
35 check your system package repository, you may need to
36 build some of these from source. if your package repository
37 does not contain the libraries, see:
38
39 http://gcc.gnu.org for g++
40 http://www.boost.org for boost
41
421.1 building boost:
43
44 many people have reported difficulty building boost. the main
45 problem is that boost builds with an unorthodox build tool called
46 "bjam" which must, itself, be built or installed before boost can be
47 built. the bjam sources are contained within the boost distribution,
48 but somewhat hidden. there are instructions on
49 http://www.boost.org/more/getting_started.html, but we have
50 assembled this abbreviated bourne shell sequence for advanced users
51 who do not need all the preamble:
52
53 wget http://aleron.dl.sourceforge.net/sourceforge/boost/boost_1_32_0.tar.gz
54 tar -xzf boost_1_32_0.tar.gz
55 cd boost_1_32_0
56 (cd tools/build/jam_src && ./build.sh)
57 BJAM=`find tools/build/jam_src/ -name bjam -a -type f`
58 $BJAM "-sBUILD=release <threading>single <optimization>speed <runtime-link>static"
59 for i in `find bin -type d -a -name \*.a`;
60 do for j in `find $i -type f -a -name \*.a`;
61 do mv $j libs/`basename $i`;
62 done;
63 done
64 ranlib libs/*.a
65
66 if this completes successfully, you will have a selection of boost
67 libraries in boost_1_32_0/libs and boost headers in
68 boost_1_32_0/boost. you can then either copy the .a files to your
69 standard library path and the directory "boost_1_32_0/boost" to your
70 standard include path, or you can pass additional configuration
71 options to your monotone configure build, such as:
72
73 ./configure CPPFLAGS="-Iboost_1_32_0" LDFLAGS="-Lboost_1_32_0/libs"
74
75 monotone does not use all of boost -- for instance, people often
76 have trouble building boost.python, which we do not use. you don't
77 need to build any libraries that we don't use!
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 If this fails early, check that you have gettext packages installed.
89
90 * type "./configure" for a basic configuration of monotone. several
91 configuration options are available; type "configure --help" for a
92 list of all of them. some special options are shown here:
93
94 --enable-ipv6[=auto|no|yes]
95
96 specify whether IPv6 support has to be enabled or disabled. the
97 default is to try automatic detection (auto) and use the guessed
98 results. however, you can force IPv6 detection by saying 'yes'
99 or completely disable it using 'no'.
100
101 --enable-static-boost[=prefix]
102
103 this will attempt to link a "mostly static" version of monotone
104 using the .a files supplied with your installation of
105 boost. the resulting binary will be larger but more portable
106 than a normal (dynamic) link.
107
108 you can optionally pass a prefix to the option, which will be
109 used to look for the static libraries; otherwise a list of
110 predefined directories will be used. for example:
111
112 ./configure --enable-static-boost=/usr/local/boost
113
114 --disable-nls
115
116 build a version of monotone without support for local message
117 catalogs. you might like to do this if you do not have a
118 working installation of GNU gettext.
119
120 --disable-large-file
121
122 this will disable large file support from the builtin sqlite, to
123 achieve maximum binary compatibility with old systems.
124
125 BOOST_SUFFIX=string
126
127 this variable, to be set on configure's command line, can be used
128 to specify a special string suffix to be appended to boost library
129 names. many Linux distributions provide symlinks to hide this
130 suffix, but others do not. therefore, you need to pass it to the
131 configure script through this variable for correct detection of
132 boost. for example:
133
134 ./configure BOOST_SUFFIX=-gcc
135
136 note that, sometimes, the configure script will be able to guess
137 the correct suffix by itself.
138
1393. building monotone
140
141 * type "make". this should produce a monotone binary in your current
142 directory. if not, please send a build log to
143 monotone-devel@nongnu.org with a description of the failure.
144
1454. testing monotone
146
147 * there is a "make check" target which you can try, if you'd like to
148 confirm monotone's functionality on your system. you might also
149 like to try fetching monotone's sources from our monotone
150 server. this process will transfer the complete development
151 history (about 40 megabytes) to your database, and you will then
152 be free to share it with others or make changes and submit them to
153 us:
154
155 monotone --db=mt.db db init
156
157 monotone --db=mt.db read <<EOF
158 [pubkey monotone@off.net]
159 MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCkVU7BYI5bRRJmkJc8gomO9WdTTGG10Lmh
160 PdAEqD6sSdsMkTC9okfsQQ8obE+GODrFa70fX5PJNevNoE+Ryxzu+xtJjmuR2tYTeRNwNa0F
161 dIo/QLteQ4Vwh5162It1kPhLKb1Ki62ZG8aw6ATS4GQVJPci2g1lpn1RG0Z+fFdFJQIBEQ==
162 [end]
163 EOF
164
165 monotone --db=mt.db --key="" pull off.net net.venge.monotone
166
167 monotone --db=mt.db --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