Installation » History » Version 16
Tony Ciavarella, 06/04/2012 02:12 AM
1 | 1 | Tony Ciavarella | h1. Installation |
---|---|---|---|
2 | |||
3 | 5 | Tony Ciavarella | h2. Obtaining the Source Code |
4 | 1 | Tony Ciavarella | |
5 | 2 | Tony Ciavarella | h3. Release Tarballs |
6 | |||
7 | 4 | Tony Ciavarella | Release source tarballs are available on the "Files":http://oss.squalllinesoftware.com/projects/disorder/files page. This is what you want if you are looking for stability and something ready for production use. You'll probably want to use the most recent version found on that page. |
8 | 2 | Tony Ciavarella | |
9 | h3. SCM |
||
10 | |||
11 | 4 | Tony Ciavarella | The Disorder source code is hosted in a "Bazaar":http://bazaar.canonical.com repository. This is what you want if you are looking for the very latest bleeding edge of the code for contributing to Disorder or whatever other reason you may have. |
12 | 2 | Tony Ciavarella | |
13 | To get a lightweight checkout of the latest version without all the history (not suitable for Disorder development): |
||
14 | 3 | Tony Ciavarella | <pre>bzr co --lightweight http://???.squalllinesoftware.com/???/disorder</pre> |
15 | 2 | Tony Ciavarella | |
16 | To clone the repository including the full history: |
||
17 | 3 | Tony Ciavarella | <pre>bzr branch http://???.squalllinesoftware.com/???/disorder</pre> |
18 | 2 | Tony Ciavarella | |
19 | 1 | Tony Ciavarella | h2. Prerequisites |
20 | |||
21 | The following third party things are required to use Disorder: |
||
22 | 6 | Tony Ciavarella | * "Boost":http://www.boost.org >= 1.49.0 |
23 | 8 | Tony Ciavarella | * "Eigen":http://eigen.tuxfamily.org >= 3.0.5 |
24 | 7 | Tony Ciavarella | * C++ version of the "SEDRIS SRM":http://www.sedris.org/srm_4.4/srm_c_cpp.htm >= 4.4.0 (optional but you will need some kind of sophisticated geospatial library) |
25 | 1 | Tony Ciavarella | * A "Python":http://www.python.org interpreter (needed to use the "waf":https://code.google.com/p/waf/ build system) |
26 | |||
27 | 13 | Tony Ciavarella | Build and install these things in accordance with the instructions for your operating system provided by each vendor. Some hints for certain platforms follow. |
28 | 1 | Tony Ciavarella | |
29 | 8 | Tony Ciavarella | h3. Debian Linux and Derivatives |
30 | |||
31 | 13 | Tony Ciavarella | Pat yourself on the back for using a good operating system. All the dependencies are available via the package system. To install the Boost and Eigen build dependencies on Debian and maybe other derivatives: |
32 | 8 | Tony Ciavarella | <pre>sudo apt-get install libboost-dev libboost-system-dev libboost-thread-dev libboost-date-time-dev libeigen3-dev</pre> |
33 | 1 | Tony Ciavarella | |
34 | If you don't already have python, this will get the required bits of that: |
||
35 | <pre>sudo apt-get install python</pre> |
||
36 | 13 | Tony Ciavarella | |
37 | h2. Configuration |
||
38 | |||
39 | If everything is setup properly, this step will be a breeze, but it is important to resolve any errors produced by the configuration step prior to attempting to compile Disorder. |
||
40 | |||
41 | 15 | Tony Ciavarella | h3. Linux |
42 | 13 | Tony Ciavarella | |
43 | From inside the root of the Disorder tree do this in your favorite terminal emulator: |
||
44 | <pre>./waf configure --sedris-srm-root=<put the path to the SEDRIS SRM root here></pre> |
||
45 | For example, if your SEDRIS SRM is in /opt/sedris/srm: |
||
46 | <pre>./waf configure --sedris-srm-root=/opt/sedris/srm</pre> |
||
47 | |||
48 | That command will take several seconds and print a bunch of hopefully green stuff. The output should end up looking something like this: |
||
49 | <pre> |
||
50 | Setting top to : /opt/disorder |
||
51 | Setting out to : /opt/disorder/bin |
||
52 | Checking for 'g++' (c++ compiler) : /usr/bin/g++ |
||
53 | Checking for program doxygen : /usr/bin/doxygen |
||
54 | Checking for program tar : /bin/tar |
||
55 | Checking boost ABI tag : |
||
56 | Checking boost includes : 1_49 |
||
57 | Checking boost libs : ok |
||
58 | Checking for boost linkage : ok |
||
59 | Checking for header boost/asio.hpp : yes |
||
60 | Checking for header boost/bind.hpp : yes |
||
61 | Checking for header boost/date_time.hpp : yes |
||
62 | Checking for header boost/detail/endian.hpp : yes |
||
63 | Checking for header boost/format.hpp : yes |
||
64 | Checking for header boost/function.hpp : yes |
||
65 | Checking for header boost/functional/factory.hpp : yes |
||
66 | Checking for header boost/ptr_container/ptr_vector.hpp : yes |
||
67 | Checking for header boost/scoped_ptr.hpp : yes |
||
68 | Checking for header boost/static_assert.hpp : yes |
||
69 | Checking for header boost/thread.hpp : yes |
||
70 | Checking for program pkg-config : /usr/bin/pkg-config |
||
71 | Checking for 'eigen3' : yes |
||
72 | Checking for header Eigen/Dense : yes |
||
73 | Checking for SEDRIS SRM : /opt/sedris/srm |
||
74 | Checking for SEDRIS SRM include directory : /opt/sedris/srm/src/include |
||
75 | Checking for SEDRIS SRM library directory : /opt/sedris/srm/lib/linux-3.1.0-1-amd64-i386-gnu-/OPT |
||
76 | SEDRIS SRM library : /opt/sedris/srm/lib/linux-3.1.0-1-amd64-i386-gnu-/OPT/libsrm.so |
||
77 | Checking for header srf_all.h : yes |
||
78 | 'configure' finished successfully (25.518s) |
||
79 | </pre> |
||
80 | |||
81 | If you don't see that last line saying that 'configure' finished successfully, you must fix whatever it complains about and try again. |
||
82 | |||
83 | 16 | Tony Ciavarella | h3. Clang |
84 | |||
85 | To use the Clang C++ compiler instead of GCC's, assuming you already have clang++ installed, do this: |
||
86 | <pre>CXX=<put the path to clang++ here> ./waf configure --sedris-srm-root=<put the path to the SEDRIS SRM root here></pre> |
||
87 | |||
88 | So, this might work for example: |
||
89 | <pre>CXX=/usr/bin/clang++ ./waf configure --sedris-srm-root=/opt/sedris/srm</pre> |
||
90 | |||
91 | |||
92 | 13 | Tony Ciavarella | h3. Windows |
93 | |||
94 | On windows, your $PATH environment variable needs to include the path to the Python interpreter. |
||
95 | |||
96 | Next, you'll want to modify the provided batch file to tell Disorder where your prerequisites live. From inside the root of the disorder tree: |
||
97 | <pre>copy tools/configure.bat configure.bat</pre> |
||
98 | |||
99 | This file contains some stuff at the top you'll want to edit to match your system configuration. |
||
100 | 10 | Tony Ciavarella | |
101 | 1 | Tony Ciavarella | h2. Compiling |
102 | |||
103 | 11 | Tony Ciavarella | h3. With GCC on Linux |
104 | |||
105 | h3. With Clang++ on Linux |
||
106 | |||
107 | 12 | Tony Ciavarella | h3. With Visual Studio 2010 (Express or Full) |
108 | |||
109 | 1 | Tony Ciavarella | h2. Building Against the Disorder Library |