Check out the latest version of Routino: svn co http://routino.org/svn/trunk routino
Contents of /branches/MS-Windows/doc/html/installation-ms-windows.html
Parent Directory
|
Revision Log
Revision 1692 -
(show annotations)
(download)
(as text)
Fri May 29 14:34:26 2015 UTC (9 years, 9 months ago) by amb
File MIME type: text/html
File size: 6708 byte(s)
Fri May 29 14:34:26 2015 UTC (9 years, 9 months ago) by amb
File MIME type: text/html
File size: 6708 byte(s)
Add instructions for compiling with Cygwin (no source code changes needed).
1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
2 | <html> |
3 | |
4 | <head> |
5 | <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
6 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
7 | |
8 | <title>Routino : Installation on MS Windows</title> |
9 | |
10 | <!-- |
11 | Routino documentation - installation on MS Windows |
12 | |
13 | Part of the Routino routing software. |
14 | |
15 | This file Copyright 2008-2015 Andrew M. Bishop |
16 | |
17 | This program is free software: you can redistribute it and/or modify |
18 | it under the terms of the GNU Affero General Public License as published by |
19 | the Free Software Foundation, either version 3 of the License, or |
20 | (at your option) any later version. |
21 | |
22 | This program is distributed in the hope that it will be useful, |
23 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
24 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
25 | GNU Affero General Public License for more details. |
26 | |
27 | You should have received a copy of the GNU Affero General Public License |
28 | along with this program. If not, see http://www.gnu.org/licenses/. |
29 | --> |
30 | |
31 | <link href="style.css" type="text/css" rel="stylesheet"> |
32 | </head> |
33 | |
34 | <body> |
35 | |
36 | <!-- Header Start --> |
37 | |
38 | <div class="header"> |
39 | |
40 | <h1>Routino : Installation on MS Windows</h1> |
41 | |
42 | </div> |
43 | |
44 | <!-- Header End --> |
45 | |
46 | <!-- Content Start --> |
47 | |
48 | <div class="content"> |
49 | |
50 | |
51 | <h2 id="H_1_1">Using Cygwin</h2> |
52 | |
53 | Cygwin is a large collection of GNU and Open Source tools which provide |
54 | functionality similar to a Linux distribution on Windows. A Cygwin DLL |
55 | provides substantial POSIX API functionality therefore providing direct |
56 | compatibility for most UNIX source code. |
57 | |
58 | <p> |
59 | |
60 | Since Cygwin aims to replicate a Linux-like system on Windows it is the simplest |
61 | method of compiling Routino. The disadvantage is that all programs compiled |
62 | with Cygwin require a number of runtime Cygwin libraries which may introduce a |
63 | runtime speed penalty. |
64 | |
65 | <p> |
66 | |
67 | The installer for Cygwin can be downloaded from <tt>http://cygwin.org/</tt>; |
68 | there are 32-bit and 64-bit versions available. For compiling Routino the |
69 | Cygwin installer should be run and the following packages selected (any |
70 | dependencies will be automatically be selected at the next step): |
71 | |
72 | <ul> |
73 | <li><i>base packages</i> |
74 | <li>gcc-core (in 'Devel' menu) |
75 | <li>make (in 'Devel' menu) |
76 | <li>libbz2-devel (in 'Libs' menu) |
77 | <li>zlib-devel (in 'Libs' menu) |
78 | <li>perl (in 'Perl' menu) |
79 | </ul> |
80 | |
81 | <p> |
82 | |
83 | To compile Routino open the "Cygwin Terminal" change to the Routino source |
84 | directory and compile using the <tt>make</tt> command. |
85 | |
86 | |
87 | <h2 id="H_1_2">Native Compilation</h2> |
88 | |
89 | Routino has limited support in the source code for compiling on Microsoft |
90 | Windows. This includes a set of functions that can replace the <tt>mmap()</tt> |
91 | and <tt>munmap()</tt> UNIX functions which are not available on Microsoft |
92 | Windows. |
93 | |
94 | <p> |
95 | |
96 | The source code should be downloaded, either as a release version file or from |
97 | subversion - no instructions are provided for this step. The release versions |
98 | include some files (mainly the web icons) which are not included in the |
99 | subversion source (and which may be difficult to create on Windows). |
100 | |
101 | |
102 | <h3 id="H_1_2_1">Using Microsoft Visual C</h3> |
103 | |
104 | The Routino source code (for the router at least) has been modified so that it |
105 | will compile with the Microsoft Visual C compiler. |
106 | |
107 | <p> |
108 | |
109 | The files that need to be compiled for the Routino router can be found from the |
110 | Makefile in the <tt>src</tt> directory listed in the <tt>ROUTER_OBJ</tt> |
111 | variable. |
112 | |
113 | <p> |
114 | |
115 | To compile the router in slim mode the pre-processor definition <tt>SLIM=0</tt> |
116 | must be set and for non-slim mode <tt>SLIM=1</tt> must be set. |
117 | |
118 | <p> |
119 | |
120 | The default directory for the Routino data files must be set in the |
121 | <tt>ROUTINO_DATADIR</tt> pre-processor variable. If the router command line |
122 | <tt>--data</tt> option is going to be used then this variable can be set to any |
123 | value. |
124 | |
125 | <p> |
126 | |
127 | Since Microsoft Visual C does not fully support the C99 standard it is necessary |
128 | to tell the compiler how to handle the <tt>inline</tt> functions. This can be |
129 | done by passing in the command line option <tt>-Dinline=__inline</tt> to the C |
130 | compiler. |
131 | |
132 | |
133 | <h3 id="H_1_2_2">Using MinGW</h3> |
134 | |
135 | MinGW is the "Minimalist GNU for Windows" which includes some of the common GNU |
136 | programs; principally gcc and related programs for software development. |
137 | |
138 | <p> |
139 | |
140 | The installer for MinGW can be downloaded from <tt>http://mingw.org/</tt>. For |
141 | compiling Routino the MinGW installer should be run and the following packages |
142 | selected: |
143 | |
144 | <ul> |
145 | <li>mingw-base |
146 | <li>msys-base |
147 | <li>mingw32-pthreads-w32 |
148 | <li>mingw32-libz (dev package) |
149 | <li>msys-perl |
150 | </ul> |
151 | |
152 | <p> |
153 | |
154 | To compile Routino open a DOS command window and set the path to the installed |
155 | MinGW and MSYS software. For example if MinGW was installed in the |
156 | <tt>C:/MinGW</tt> directory then the path needs to be set to |
157 | <tt>C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin</tt>. |
158 | |
159 | <p> |
160 | |
161 | From within this DOS command window change to the Routino source directory and |
162 | compile using the MinGW version of <tt>make</tt> with this command |
163 | <tt>mingw32-make MINGW=1</tt>. |
164 | |
165 | |
166 | <h3 id="H_1_2_3">Using MinGW-W64</h3> |
167 | |
168 | MinGW-w64 is an alernative implementation of the same concept as MinGW but |
169 | allows for compilation to 32-bit or 64-bit executables. |
170 | |
171 | <p> |
172 | |
173 | The website for MinGW-w64 is <tt>http://mingw-w64.org/</tt> but the downloads |
174 | are available from <tt>http://win-builds.org/</tt>. |
175 | |
176 | <p> |
177 | |
178 | The compilation method for MinGW-w64 should be the same as for MinGW. |
179 | |
180 | |
181 | <h3 id="H_1_2_4">Limitations</h3> |
182 | |
183 | A native Microsoft Windows compilation of Routino is more complicated than |
184 | compiling on Linux, other UNIX system or Cygwin. This is probably not an option |
185 | if you are unfamiliar with software development on Microsoft Windows. |
186 | |
187 | <p> |
188 | |
189 | The size of files that can be accessed with an MSVC or MinGW compiled version of |
190 | Routino is limited to 32-bits (about 2 GB). The MinGW-w64 compiler on 64-bit |
191 | windows might be able to handle larger files but has not been tested. |
192 | |
193 | <p> |
194 | |
195 | The Windows operating system does not have a function equivalent to the |
196 | <tt>fork()</tt> function on UNIX. This means that it is not possible to use |
197 | the <tt>planetsplitter</tt> program's built-in file decompression with an MSVC |
198 | or MinGW compiled version of Routino. |
199 | |
200 | |
201 | <h2 id="H_1_3">Example Web Pages</h2> |
202 | |
203 | No instructions are available for using the Routino example web pages with the |
204 | Microsoft Web server (IIS). |
205 | |
206 | <p> |
207 | |
208 | For information on setting up Apache see the "Example Web Pages" section of the |
209 | main <a href="installation.html">installation instructions</a>. |
210 | |
211 | </div> |
212 | |
213 | <!-- Content End --> |
214 | |
215 | <!-- Footer Start --> |
216 | |
217 | <div class="footer"> |
218 | |
219 | <address> |
220 | © Andrew M. Bishop - <a href="http://www.routino.org/">http://www.routino.org/</a> |
221 | </address> |
222 | |
223 | </div> |
224 | |
225 | <!-- Footer End --> |
226 | |
227 | </body> |
228 | |
229 | </html> |