Routino : Installation on MS Windows

Using Cygwin

Cygwin is a large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows. A Cygwin DLL provides substantial POSIX API functionality therefore providing direct compatibility for most UNIX source code.

Since Cygwin aims to replicate a Linux-like system on Windows it is the simplest method of compiling Routino. The disadvantage is that all programs compiled with Cygwin require a number of runtime Cygwin libraries which may introduce a runtime speed penalty.

The installer for Cygwin can be downloaded from http://cygwin.org/; there are 32-bit and 64-bit versions available. For compiling Routino the Cygwin installer should be run and the following packages selected (any dependencies will be automatically be selected at the next step):

To compile Routino open the "Cygwin Terminal" change to the Routino source directory and compile using the make command.

Native Compilation

Routino has limited support in the source code for compiling on Microsoft Windows. This includes a set of functions that can replace the mmap() and munmap() UNIX functions which are not available on Microsoft Windows.

The source code should be downloaded, either as a release version file or from subversion - no instructions are provided for this step. The release versions include some files (mainly the web icons) which are not included in the subversion source (and which may be difficult to create on Windows).

Using Microsoft Visual C

The Routino source code (for the router at least) has been modified so that it will compile with the Microsoft Visual C compiler.

The files that need to be compiled for the Routino router can be found from the Makefile in the src directory listed in the ROUTER_OBJ variable.

To compile the router in slim mode the pre-processor definition SLIM=0 must be set and for non-slim mode SLIM=1 must be set.

The default directory for the Routino data files must be set in the ROUTINO_DATADIR pre-processor variable. If the router command line --data option is going to be used then this variable can be set to any value.

Since Microsoft Visual C does not fully support the C99 standard it is necessary to tell the compiler how to handle the inline functions. This can be done by passing in the command line option -Dinline=__inline to the C compiler.

Using MinGW

MinGW is the "Minimalist GNU for Windows" which includes some of the common GNU programs; principally gcc and related programs for software development.

The installer for MinGW can be downloaded from http://mingw.org/. For compiling Routino the MinGW installer should be run and the following packages selected:

To compile Routino open a DOS command window and set the path to the installed MinGW and MSYS software. For example if MinGW was installed in the C:/MinGW directory then the path needs to be set to C:\MinGW\bin;C:\MinGW\MSYS\1.0\bin.

From within this DOS command window change to the Routino source directory and compile using the MinGW version of make with this command mingw32-make MINGW=1.

Using MinGW-W64

MinGW-w64 is an alernative implementation of the same concept as MinGW but allows for compilation to 32-bit or 64-bit executables.

The website for MinGW-w64 is http://mingw-w64.org/ but the downloads are available from http://win-builds.org/.

The compilation method for MinGW-w64 should be the same as for MinGW.

Limitations

A native Microsoft Windows compilation of Routino is more complicated than compiling on Linux, other UNIX system or Cygwin. This is probably not an option if you are unfamiliar with software development on Microsoft Windows.

The size of files that can be accessed with an MSVC or MinGW compiled version of Routino is limited to 32-bits (about 2 GB). The MinGW-w64 compiler on 64-bit windows might be able to handle larger files but has not been tested.

The Windows operating system does not have a function equivalent to the fork() function on UNIX. This means that it is not possible to use the planetsplitter program's built-in file decompression with an MSVC or MinGW compiled version of Routino.

Example Web Pages

No instructions are available for using the Routino example web pages with the Microsoft Web server (IIS).

For information on setting up Apache see the "Example Web Pages" section of the main installation instructions.