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
18 on debian:
19
20 apt-get install libboost-date-time-dev
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://aleron.dl.sourceforge.net/sourceforge/boost/boost_1_32_0.tar.gz
53 tar -xzf boost_1_32_0.tar.gz
54 cd boost_1_32_0
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_32_0/libs and boost headers in
67 boost_1_32_0/boost. you can then either copy the .a files to your
68 standard library path and the directory "boost_1_32_0/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_32_0" LDFLAGS="-Lboost_1_32_0/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.7 && autoreconf --install
85 $ AUTOMAKE=automake-1.7 ACLOCAL=aclocal-1.7 autoreconf --install
86
87 * type "./configure" for a basic configuration of monotone. several
88 configuration options are available; type "configure --help" for a
89 list of all of them. some special options are shown here:
90
91 --enable-ipv6[=auto|no|yes]
92
93 specify whether IPv6 support has to be enabled or disabled. the
94 default is to try automatic detection (auto) and use the guessed
95 results. however, you can force IPv6 detection by saying 'yes'
96 or completely disable it using 'no'.
97
98 --enable-static-boost[=prefix]
99
100 this will attempt to link a "mostly static" version of monotone
101 using the .a files supplied with your installation of
102 boost. the resulting binary will be larger but more portable
103 than a normal (dynamic) link.
104
105 you can optionally pass a prefix to the option, which will be
106 used to look for the static libraries; otherwise a list of
107 predefined directories will be used. for example:
108
109 ./configure --enable-static-boost=/usr/local/boost
110
111 --disable-nls
112
113 build a version of monotone without support for local message
114 catalogs. you might like to do this if you do not have a
115 working installation of GNU gettext.
116
117 --disable-large-file
118
119 this will disable large file support from the builtin sqlite, to
120 achieve maximum binary compatibility with old systems.
121
122 BOOST_SUFFIX=string
123
124 this variable, to be set on configure's command line, can be used
125 to specify a special string suffix to be appended to boost library
126 names. many Linux distributions provide symlinks to hide this
127 suffix, but others do not. therefore, you need to pass it to the
128 configure script through this variable for correct detection of
129 boost. for example:
130
131 ./configure BOOST_SUFFIX=-gcc
132
133 note that, sometimes, the configure script will be able to guess
134 the correct suffix by itself.
135
1363. building monotone
137
138 * type "make". this should produce a monotone binary in your current
139 directory. if not, please send a build log to
140 monotone-devel@nongnu.org with a description of the failure.
141
1424. testing monotone
143
144 * there is a "make check" target which you can try, if you'd like to
145 confirm monotone's functionality on your system. you might also
146 like to try fetching monotone's sources from our monotone
147 server. this process will transfer the complete development
148 history (about 40 megabytes) to your database, and you will then
149 be free to share it with others or make changes and submit them to
150 us:
151
152 monotone --db=mt.db db init
153
154 monotone --db=mt.db read <<EOF
155 [pubkey monotone@off.net]
156 MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCkVU7BYI5bRRJmkJc8gomO9WdTTGG10Lmh
157 PdAEqD6sSdsMkTC9okfsQQ8obE+GODrFa70fX5PJNevNoE+Ryxzu+xtJjmuR2tYTeRNwNa0F
158 dIo/QLteQ4Vwh5162It1kPhLKb1Ki62ZG8aw6ATS4GQVJPci2g1lpn1RG0Z+fFdFJQIBEQ==
159 [end]
160 EOF
161
162 monotone --db=mt.db --key="" pull off.net net.venge.monotone
163
164 monotone --db=mt.db --branch=net.venge.monotone checkout monotone-sources
165
1665. upgrading
167
168 * if you have an existing monotone installation, you may need to
169 perform some additional steps to migrate your data to the newest
170 version; see the file UPGRADE for details.
171

Archive Download this file

Branches

Tags

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