C: Hur man installerar och använder Allegro på sin Linux-dator

1. Ladda hem

Börja med att ladda hem Allegro-biblioteket från webbplatsen http://www.liballeg.org/. Klicka på Latest version under rubriken Downloads i menyn till vänster.

Vi ska ladda hem källkoden. Under rubriken Stable branch 4.2.2 source releases hittar vi källkoden i "Unix friendly format", vilket betyder en gzippad tar-fil. När jag skriver detta heter den allegro-4.2.2.tar.gz. Klicka på den, och ladda hem filen.

Eller ta bara den här lokala kopian av filen: allegro-4.2.2.tar.gz

2. Andra saker som behövs

Bibliotek använder sig ibland av andra bibliotek, och av olika program och verktyg. Innan man kan installera Allegro, kan man därför behöva installera ytterligare saker. Exakt vilka det är beror på vilken Linux-distribution man kör, men på min Ubuntu 8.04 behövde jag installera paketen build-essential och libx11-dev:
sudo apt-get install build-essential
sudo apt-get install libx11-dev

3. Packa upp och installera Allegro

Man kan installera Allegro på olika ställen, men här väljer jag katalogen /home/padrone/allegro/installation. Jag har valt en plats där jag har skrivrättigheter, så att jag inte behöver kunna root-lösenordet bara för att installera Allegro.

Packa upp tar-filen:

tar xvzf allegro-4.2.2.tar.gz
Det skapas en katalog som heter allegro-4.2.2. Gå till den katalogen, konfigurera, bygg och installera:
cd allegro-4.2.2
./configure  --prefix=/home/padrone/allegro/installation  --enable-dbglib 
make depend
make
make install
I underkatalogen examples finns några olika exempelprogram. Vi provkör ett par av dem:
./examples/exhello
./examples/exlights
Eftersom vi installerade Allegro på en lite ovanlig plats, hamnade biblioteksfilerna inte där de brukar finnas, så för att programmen ska hitta biblioteksfilerna vid körning, måste vi tala om var de finns. Det kan vi göra genom att sätta omgivningsvariabeln LD_LIBRARY_PATH. Så här skriver man i bash, som är ett av de vanligaste skalen:
LD_LIBRARY_PATH=/home/padrone/allegro/installation/lib
export LD_LIBRARY_PATH
Programmen avslutas genom att man trycker någon tangent.

4. Gör ett program

Skapa en katalog för programmet, till exempel /home/padrone/allegrospel, och byt till den katalogen.
mkdir /home/padrone/allegrospel
cd /home/padrone/allegrospel
För att kompilatorn och länkaren ska hitta Allegro-biblioteket, lägger vi in följande rader i en fil som heter Makefile:
LDLIBS += -L/home/padrone/allegro/installation/lib -L/usr/X11R6/lib
LDLIBS += -Wl,--export-dynamic -lalld-4.2.2 -lalld_unsharable
CPPFLAGS += -I/home/padrone/allegro/installation/include -DDEBUGMODE
CFLAGS += -Wall -std=c99 -pedantic
Vissa saker, till exempel var X11-biblioteken finns, kan variera mellan olika Linux-versioner. Man kan använda programmet allegro-config, som finns i underkatalogen bin i installationskatalogen, för att automatiskt generera (en del av) det som ska stå i makefilen:
/home/padrone/allegro/installation/bin/allegro-config  --libs  debug
/home/padrone/allegro/installation/bin/allegro-config  --cppflags  debug
Skapa en källkodsfil, till exempel med namnet allegrospel.c, och skriv in eller kopiera följande programkod:

#define USE_CONSOLE
#include <allegro.h>

int main(void) {
        if (allegro_init() != 0)
                return 1;
        allegro_message("Hej!");
        return 0;
}
END_OF_MAIN()

Vi måste sätta omgivningsvariabeln LD_LIBRARY_PATH på samma sätt som ovan. Så här skriver man alltså i bash:

LD_LIBRARY_PATH=/home/padrone/allegro/installation/lib
export LD_LIBRARY_PATH

Kompilera och provkör programmet:

make allegrospel
./allegrospel
Om allt är rätt, ska det dyka upp en ruta med texten "Hej". Beroende på vilken version av fönstersystemet som man använder, kan rutan se ut på olika sätt. Jag får en ruskigt stor och ful ruta:

OK-rutan

Nu har vi konfigurerat projektet för att använda debug-versionen av Allegro-biblioteket, med dynamisk länkning. Det passar bra när vi utvecklar och provkör våra egna Allegro-program, men om vi ska skriva spel och distribuera dem till andra, bör vi använda en annan konfiguration. Den som vill lära sig mer om detta kan läsa mer till exempel i filen allegro-4.2.2/docs/build/unix.txt.


Thomas Padron-McCarthy (Thomas.Padron-McCarthy@oru.se), 16 december 2008