Routino SVN Repository Browser

Check out the latest version of Routino: svn co http://routino.org/svn/trunk routino

ViewVC logotype

Contents of /branches/MS-Windows/doc/html/installation-ms-windows.html

Parent Directory Parent Directory | Revision Log 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)
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 &copy; 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>