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 - boost 1.33.0 or later: either an installed copy or an extracted
20 tarball of its unbuilt sources somewhere in the file system are
21 supported.
22 - zlib 1.1.4 or later.
23 - libiconv if the iconv() function is missing.
24
25 on debian:
26
27 apt-get install autoconf
28 apt-get install automake
29 apt-get install gettext
30 apt-get install libboost-dev
31 apt-get install libz-dev
32 apt-get install g++
33
34 on fedora:
35
36 yum install autoconf
37 yum install automake
38 yum install gettext
39 yum install boost-devel
40 yum install zlib-devel
41 yum install gcc-c++
42
43 on Windows (incomplete):
44
45 libiconv (http://gnuwin32.sourceforge.net/packages/libiconv.htm)
46
47 on other systems:
48
49 check your system package repository, you may need to
50 build some of these from source. if your package repository
51 does not contain the libraries, see:
52
53 http://gcc.gnu.org/ for g++
54 http://www.boost.org/ for boost
55
561.1 using boost in the build process:
57
58 monotone uses the boost libraries in multiple parts of its code.
59 fortunately, it only uses the so-called header-only libraries: these
60 can be used very easily from other projects, as there is no need to
61 build them by hand prior usage.
62
63 therefore you can use an installed version of boost if shipped with your
64 distribution but, if you do not want to mess with the Boost.Build build
65 system (which is hard to deal with for beginners), you can simply use an
66 extracted copy of the boost sources. the two procedures are detailed
67 below:
68
69 * if your system already has the boost development libraries installed,
70 you must tell the compiler where to find them. their location will
71 usually be somewhere under /usr/include. try the following command:
72
73 ls -d /usr/include/boost*
74
75 if the command shows a single directory named 'boost', you do not have
76 to take any extra steps. configure will automatically find the
77 necessary files. instead, if the command shows a directory name of the
78 form boost_1_33_1, boost-1.33.1 or similar, you will have to pass that
79 to the configure script. do so as follows:
80
81 ./configure CPPFLAGS="-I/usr/include/boost-1.33.1"
82
83 if no directories are shown, look for prebuilt boost packages for your
84 system and install them. if there aren't any, resort to the procedure
85 described in the following point.
86
87 * if you do not have boost already installed, and you cannot easily
88 install it from prebuilt packages, fetch a copy of the boost sources
89 from their site (see previous section) and unpack them somewhere in
90 your system -- for example, your home directory. once done, tell the
91 configure script where the files are:
92
93 ./configure CPPFLAGS="-I${HOME}/boost-1.33.1"
94
95 it is important to note that, once monotone is built, you can get rid of
96 all the boost sources or boost development packages from your system.
97 the required header-only libraries will have been built into the final
98 binary, which will not rely on any binary boost library. in some sense,
99 you can think of it as static linkage.
100
1012. configuring monotone:
102
103 * if there is no ./configure script in your source tree you'll need
104 to create one before proceeding to the next step. one of the
105 following auto* commands should work:
106
107 $ aclocal-1.9 && autoreconf --install
108 $ AUTOMAKE=automake-1.9 ACLOCAL=aclocal-1.9 autoreconf --install
109
110 If this fails early, check that you have gettext packages installed.
111
112 * type "./configure" for a basic configuration of monotone. several
113 configuration options are available; type "configure --help" for a
114 list of all of them. some special options are shown here:
115
116 --enable-ipv6[=auto|no|yes]
117
118 specify whether IPv6 support has to be enabled or disabled. the
119 default is to try automatic detection (auto) and use the guessed
120 results. however, you can force IPv6 detection by saying 'yes'
121 or completely disable it using 'no'.
122
123 --disable-nls
124
125 build a version of monotone without support for local message
126 catalogs. you might like to do this if you do not have a
127 working installation of GNU gettext.
128
129 --disable-large-file
130
131 this will disable large file support from the builtin sqlite, to
132 achieve maximum binary compatibility with old systems.
133
134 --enable-pch
135
136 this will enable precompiled headers, which should improve compile
137 time. some versions of gcc have problems with this option, so
138 try disabling it if you run into trouble.
139
1403. building monotone
141
142 * type "make". this should produce a mtn binary in your current
143 directory. if not, please send a build log to
144 monotone-devel@nongnu.org with a description of the failure.
145
1464. testing monotone
147
148 * there is a "make check" target which you can try, if you'd like to
149 confirm monotone's functionality on your system.
150 Do not run "make check" as root (Unix)! Doing so will cause the
151 failure of some of the tests!
152 Also, make sure your testing process has enough memory. Experience
153 has shown that some tests may fail "mysteriously" when there is too
154 little memory. A possible hint is that 128MB was too little on
155 FreeBSD 6 on x86 while 256MB was enough.
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 monotone.ca "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