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

Archive Download this file

Branches

Tags

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