# Installation Guide

This article includes download, build, and installation instructions.

Compiling from source
URLs

Build prerequisites
GCC C++ compiler

GCC version 3.2.3 with C++ support is known to build ALE successfully. Older versions of GCC may fail to compile some versions of ALE.

Prerequisites for building on Windows

Successfully running the configuration script on Windows (e.g., for native builds) may require installation of Cygwin. For more information on Cygwin, see:

Alternatively, this package can be cross-compiled for Windows on a non-Windows architecture, provided that the appropriate cross-compilers and libraries are available.

Extraction

Download the source archive file from the URL indicated in the section 'URLs', and invoke:

tar xzf cd

Invoking 'ls configure' afterward should reveal an executable script 'configure'. This script is used to determine the capabilities of the system that will run the software.

Running configure

This package uses a configuration script, 'configure', generated by the GNU project build tools ("autotools"). For most cases, it should be sufficient to invoke:

./configure make make install

In cases where the defaults are not adequate, configuration options can be passed to the configuration script.

Configuration options

Configuration options can be passed to the 'configure' script prior to build and installation, as:

./configure --config-option1 --config-option2 ... make make install

Options specific to this package are described in the following subsections. General configuration options are described in the file 'INSTALL' included in the source package.

ImageMagick Support

Enabling ImageMagick support allows ALE to make use of the file-handling capabilities of ImageMagick ( ). This includes reading and writing a variety of file formats, including, among many others, PNG and JPEG (two formats commonly used in web publishing) as well as common interchange formats such as PPM and TIFF. ImageMagick 6.0.6 is known to work with this version of ALE; certain older versions of ImageMagick may cause compile, link, or runtime errors. By default, support is automatically detected.

--with-imagemagick=auto Auto-detect ImageMagick support [default] --with-imagemagick=yes Enable ImageMagick support --with-imagemagick=no Disable ImageMagick support
Color Data Precision

ALE's internal data structures store each color channel within a pixel as floating-point data; similarly, arithmetic operations on color channels are performed in floating point. The available data-type configurations are listed below, with typical data sizes indicated in parentheses.

--with-colors=single Use C++ 'float' data type (32-bit) [default] --with-colors=double Use C++ 'double' data type (64-bit)
Coordinate Data Precision

In general, coordinate transformations used by ALE produce results outside of the set of integers; hence, coordinates are treated as floating-point data. The two available data-type configurations are listed below, with typical data sizes indicated in parentheses.

--with-coords=single Use C++ 'float' data type (32-bit) [default] --with-coords=double Use C++ 'double' data type (64-bit)
Thread support

Threads can improve performance on multiprocessor machines. POSIX threads are currently supported.

--enable-threads=auto Auto-detect thread support. [default] --enable-threads=yes Enable thread support. --enable-threads=no Disable thread support.
FFTW Support

This feature is required in order to use the --fl option; it also determines the approach to calculation of discrete Fourier transforms used by the Irani-Peleg renderer. For more information on FFTW, see http://fftw.org/.

--with-fftw3=auto Auto-detect FFTW3. [default] --with-fftw3=yes Use FFTW3 discrete Fourier transform. --with-fftw3=no Use built-in discrete Fourier transform.
Enable --wmx

This build option is required in order to use the --wmx option. If --enable-wmx is specified, it is expected that fork() and execlp() calls are available.

--enable-wmx=auto Automatically detect whether to enable --wmx --enable-wmx=yes Enable --wmx --enable-wmx=no Do not enable --wmx
Getsize

This build option is required to obtain additional output from --ui=tty. If TIOCGWINSZ is not defined in <sys/ioctl.h>, however, additional output will not be provided even if --enable-getsize is specified at build time.

--enable-getsize=auto Check for TIOCGWINSZ at build time. [default] --enable-getsize=yes Configure to attempt to use TIOCGWINSZ --enable-getsize=no Do not attempt to use TIOCGWINSZ
Assertions

Finding bugs within ALE, or within custom modifications to ALE, can be simplified by enabling run-time assertions. These checks enforce conditions believed to be necessary or desirable for correct program operation. If a condition is not satisfied, ALE will abort and display a message indicating the failed assertion.

--enable-assertions Enable assertions. [default] --disable-assertions Disable assertions.
Cross-compilation

For cross-compilation, it may be necessary to specify both host and build machine types, using the configure --host and --build options. For more information on these options, see the file 'INSTALL' in the source package.

Further details

General operation of the configure script is described in more detail in the file 'INSTALL' in the source package.

On-line resources
Home Page http://auricle.dyndns.org/ALE/ git repository http://repo.or.cz/w/Ale.git Mailing list archive http://ventricle.dyndns.org/pipermail/ale/
Mailing list

Bug reports, feature requests, patch and release announcements, and related discussion can be sent to ale@ventricle.dyndns.org. Archives of past postings and subscription information are available at the URLs indicated below.

Posting address ale@ventricle.dyndns.org Subscription info http://ventricle.dyndns.org/cgi-bin/mailman/listinfo/ale Archives http://ventricle.dyndns.org/pipermail/ale/