Menu

Tree [504051] 5.1 /
 History

HTTPS access


File Date Author Commit
 addons 2015-07-05 Todd Cope Todd Cope [d47812] Create menus recursively for OSX, fixing a numb...
 android 2015-03-28 Pavel Sountsov Pavel Sountsov [2ad959] Generate the Android *.properties file at confi...
 cmake 2015-06-13 Pavel Sountsov Pavel Sountsov [44d579] Add WANT_STATIC_RUNTIME.
 demos 2015-04-06 Pavel Sountsov Pavel Sountsov [b21455] Get Cosmic Protector to compile on iOS again
 docs 2015-07-13 Elias Pschernig Elias Pschernig [6ae8cb] [doc] Mention al_get_display_option in al_set_n...
 examples 2015-07-09 Elias Pschernig Elias Pschernig [4b0de4] Added an ALLEGRO_MAXIMIZED display flag.
 include 2015-07-12 Elias Pschernig Elias Pschernig [c29b4b] Implement ALLEGRO_MAXIMIZED for Windows.
 misc 2015-06-26 Bruce Pascoe Bruce Pascoe [3e6e3a] al_get_blend_color() return color by value
 python 2013-10-15 Elias Pschernig Elias Pschernig [fbb21c] adjusted python API xbuild and removed leftover...
 src 2015-10-18 Elias Pschernig Elias Pschernig [504051] Fix #511.
 tests 2015-07-01 Pavel Sountsov Pavel Sountsov [c98877] Add tests for the constant color blending.
 tools 2010-03-02 Peter Wang Peter Wang [61ce1d] Remove AL_CONST everywhere.
 .travis.yml 2015-01-27 Pavel Sountsov Pavel Sountsov [500a24] Test builds with and without shaders on Travis.
 CMakeLists.txt 2015-06-21 Pavel Sountsov Pavel Sountsov [956edf] Bump version to 5.1.12 (GIT)
 CONTRIBUTORS.txt 2015-07-01 Pavel Sountsov Pavel Sountsov [a2ee4c] Update CONTRIBUTORS.txt.
 LICENSE.txt 2012-09-30 Trent Gamblin Trent Gamblin [27a5be] Renamed a5teroids to Cosmic Protector
 README.txt 2015-03-31 Pavel Sountsov Pavel Sountsov [d5837d] Fix some of the most eggregious issues with Rea...
 README_android.txt 2015-03-20 Pavel Sountsov Pavel Sountsov [fe60ae] Add ANDROID_TARGET CMake option to set the Andr...
 README_cmake.txt 2010-06-14 Peter Wang Peter Wang [b88137] Split up readme_a5.txt; try to streamline the b...
 README_iphone.txt 2015-06-01 Pavel Sountsov Pavel Sountsov [8d4227] Fix spelling of the cmake Xcode generator in th...
 README_macosx.txt 2015-06-03 Pavel Sountsov Pavel Sountsov [c84927] Add retina display support to OSX.
 README_make.txt 2011-01-08 Peter Wang Peter Wang [86868e] Minor updates to the build documentation.
 README_msvc.txt 2011-01-08 Peter Wang Peter Wang [86868e] Minor updates to the build documentation.
 README_packaging.txt 2010-10-25 Peter Wang Peter Wang [9eebd3] Add a readme for packagers.
 README_pkgconfig.txt 2015-04-26 Elias Pschernig Elias Pschernig [7bcd72] Mention path and static linking for pkg-config.
 README_raspberrypi.txt 2012-12-27 Peter Wang Peter Wang [652112] Add notes about running Raspberry Pi VM with qemu.
 README_releasing.txt 2015-01-05 Pavel Sountsov Pavel Sountsov [58d422] Document the release process.
 allegro5.cfg 2015-06-07 Pavel Sountsov Pavel Sountsov [e15776] Turn on logging by defaul in release modes.
 appveyor.yml 2015-01-06 Pavel Sountsov Pavel Sountsov [57301d] Change the version string in AppVeyor, to work ...
 indent.pro 2008-09-23 Elias Pschernig Elias Pschernig [28835d] Added -bls and -l80 and some types to indent.pro.

Read Me

% Allegro 5

Overview
========

Welcome to Allegro 5, a cross-platform game programming library.
Currently supported platforms are Linux/Unix, Windows, MacOS X and iPhone.
Note that Allegro 5 is wholly *incompatible* with Allegro 4 and earlier
versions, but both may be installed at the same time without conflicts.

>   *Note:* the Allegro 5.1 branch is *unstable*.
    Any API additions since the 5.0 branch are subject to change, tinkering,
    or outright removal at any time.

This readme contains general information which applies to all platforms
that Allegro builds on.

README_cmake.txt discusses some build options for cmake.

README_msvc.txt discusses compilation on Windows with Microsoft Visual C/C++.

README_make.txt discusses compilation with GNU make.  This applies to Unix-like
operating systems such as Linux, MacOS X and MinGW on Windows.

README_macosx.txt has a few additional notes for MacOS X.

README_iphone.txt discusses iPhone operating systems.



Requirements
============

We assume you have C and C++ compilers installed and functioning.
We support gcc, clang and MSVC.

Allegro also requires CMake 2.8.5 or later to build.
You may download it from <http://www.cmake.org/>



Library dependencies
====================

Allegro is divided into a core library and a number of addon libraries.
The core library depends on certain libraries to function.  If you don't have
those, nothing will work.  These are required for the core library:

- DirectX SDK (Windows only)

  You can get this for MSVC from the Microsoft web site (large download).

  Alternatively, smaller downloads for MSVC and MinGW are available
  here: <http://liballeg.org/download.html#miscellaneous-files>. Some
  MinGW distributions come with sufficient DirectX SDK to support
  compiling Allegro.

- X11 development libraries (Linux/Unix only)
  The libraries will be part of your Linux distribution, but you may have to
  install them explicitly.

- OpenGL development libraries (optional only on Windows)

The addons, too, may require additional libraries.  Since the addons are
strictly optional, they are not required to build Allegro, but a lot of
functionality may be disabled if they are not present.

Windows users may find some precompiled binaries for the additional libraries
from <http://gnuwin32.sourceforge.net/>.  You need to get the `bin` and `lib`
packages.  The `bin` packages contain DLLs, and the `lib` packages contain the
headers and import libraries.

Mac users may find some dependencies in Homebrew, Fink or MacPorts.
<http://brew.sh/>, <http://www.finkproject.org/> and
<http://www.macports.org/>

Linux users likely have all the dependencies already, except PhysicsFS
and DUMB. If your distribution uses separate development packages, they
will need to be installed.  The packages are probably named *-dev or *-devel.

These are the dependencies required for the addons: 

- libpng and zlib, for PNG image support (Unix and older MinGW only)
  Home page: <http://www.libpng.org/pub/png/>
  Windows binaries: <http://gnuwin32.sourceforge.net/packages/libpng.htm>

  On Windows/Mac OS X/iPhone/Android, PNG image support is available by
  using the native facilities on the respective operating systems, so
  libpng is not required.

- libjpeg, for JPEG image support (Unix and older MinGW only)
  Home page: <http://www.ijg.org/>
  Windows binaries: <http://gnuwin32.sourceforge.net/packages/jpeg.htm>

  On Windows/Mac OS X/iPhone/Android, JPEG image support is available
  by using the native facilities on the respective operating systems,
  so libjpeg is not required.

- FreeType, for TrueType font support.
  Home page: <http://freetype.sourceforge.net/>
  Windows binaries: <http://gnuwin32.sourceforge.net/packages/freetype.htm>

- Ogg Vorbis, a free lossy audio format. (libogg, libvorbis, libvorbisfile)
  Home page: <http://www.vorbis.com/>

- FLAC, a free lossless audio codec. (libFLAC, libogg)
  Home page: <http://flac.sourceforge.net/>

- DUMB, an IT, XM, S3M and MOD player library. (libdumb)
  Home page: <http://dumb.sourceforge.net/>

- OpenAL, a 3D audio API.
  The audio addon can use OpenAL, although the 3D capabilities aren't used.
  <http://kcat.strangesoft.net/openal.html>

  On Mac OS X, OpenAL is *required* but should come with the OS anyway.

  On Linux and Windows, OpenAL will only be used if you request it, hence there
  is no reason to install it specifically.

- PhysicsFS, provides access to archives, e.g. .zip files.
  Home page: <http://icculus.org/physfs/>

On Windows it may be a pain to place all these libraries such that they can be
found.  Please see the README_cmake.txt section on the "deps subdirectory"
when the time comes.



API documentation
=================

To build the documentation you will need Pandoc.
Pandoc's home page is <http://johnmacfarlane.net/pandoc/>

Installing Pandoc from source can be challenging, but you can build Allegro
without building the documentation.

Online documentation is available on the Allegro web site:
<http://docs.liballeg.org/>



Building with CMake
===================

Building with CMake is a two step process.  During the _configuration_ step,
cmake will detect your compiler setup and find the libraries which are
installed on your system.  At the same time, you may select options to
customise your build.  If you are unsure of what you are doing, leave all the
options at the defaults.

Once the configuration step is successful, you will invoke another tool to
build Allegro.  The tool depends on your compiler, but is usually either
`make`, or your IDE.

To avoid problems, unpack Allegro into a directory *without spaces or other
"weird" characters in the path*.  This is a known problem.

Now read README_msvc.txt, README_make.txt or README_macosx.txt.