ein Kapitel zurück                                           ein Kapitel weiter

Jeder der mit Linux/Unix zu tun hat und Programme darauf installiert hat kennt den Installationsdreiklang...

./configure

make

make install


Nun will ich Ihnen in diesem Kapitel zeigen wie sie vorgehen können um selbst ein Programmpacket zu erstellen. Dafür benötigen sie folgende Programme, die normalerweise automatisch bei der Installation der Distribution mitinstalliert werden....

  • autoconf
  • automake
  • libtool


Testen, ob sich diese Programme auf Ihrem System befinden und welche Version können sie mittels.....

autoconf --version
automake --version
libtool --version


Sollte sich eins der Programme nicht auf Ihrem System befinden können sie es von Ihre Distribution nachinstallieren oder von www.gnu.org herunterladen.
Desweiteren benötigen sie weiter Programme die sich ebenfalls auf Ihrem System befinden müsste.....

  • make
  • m4
  • tar


Zuerst wollen wir ein C-Programm erstellen welches wir für den weiteren Verlauf zur Paketerstellung verwenden werden...

/*meinPacket.c*/

#include <stdio.h>

int main()
{
   printf("Mein erstes selbstgestricktes Packet!\n");
   return 0;
}


Als nächstes benötigen wir ein Verzeichnis. Dies erstellen wir mittels...

mkdir MEIN_PACKET-0.1

In diesem neu erstellten Packet speichern sie nun unser C-Programm ab. Wechseln sie nun in das neu erstellte Verzeichnis....

cd MEIN_PACKET-0.1

Als nächstes erstellen wir die Datei Makefile.am die wie folgt aussieht...


bin_PROGRAMS = meinPacket
meinPacket_SOURCES = meinPacket.c


Mit der Variable bin_PROGRAMS geben wir den Namen für make an den unser Programm haben soll. Mit make install wird unser Programm anschließend meist in das Verzeichnis /usr/local/bin oder /usr/bin kopiert.
Mit der Variabeln meinPacket_SOURCES werden alle Dateien aufgelistet die wir zur Erzeugung unseres Programms benötigen. Im Falle eines anderen Namen für unser Programm, z.B. proggi, sieht dies dann so aus...

proggi_SOURCES = proggi.c

Jetzt benötigen wir nur noch die configure.in Datei.....

AC_INIT(meinPacket.c)
AM_INIT_AUTOMAKE(MEIN_PACKET,0.1)
AC_PROG_CC
AC_PROG_INSTALL
AC_OUTPUT(Makefile)


Mit AC_INIT intitialisieren wir das configure-Skript. Als Argument übergeben wir hier den Namen der Quelldatei. Mit AM_INIT_AUTOMAKE legen wir die Startwerte für automake fest mit dem Namen des Programmpackets und durch Komma getrennt, die Versionsnummer unseres Packetes. Mit AC_PROG suchen wir nach Programmen. In unserem Fall nach dem C-Compiler AC_PROG_CC und nach einem Installationsprogramm AC_PROG_INSTALL
Mit AC_OUTPUT geben wir die vom configure-Skript erzeugten Datei, Makefile, an. Jetzt erzeugen wir mittels...

touch NEWS README AUTHORS ChangeLog

...noch einige Dokumentationsdatei. Nun sieht unser Verzeichnis etwa so aus.......

-rw-r--r--    1 tot      tot             0 Sep 15 18:47 AUTHORS
-rw-r--r--    1 tot      tot             0 Sep 15 18:47 ChangeLog
-rw-rw-rw-    1 tot      tot            48 Sep 15 18:32 Makefile.am
-rw-r--r--    1 tot      tot             0 Sep 15 18:47 NEWS
-rw-r--r--    1 tot      tot             0 Sep 15 18:47 README
-rw-rw-rw-    1 tot      tot            98 Sep 15 18:39 configure.in
-rw-r--r--    1 tot      tot            99 Sep 15 18:30 meinPacket.c


Jetzt können wir loslegen unser Programmpacket zu erzeugen. Geben sie nun ein...

aclocal

...und dann...

autoconf

Jetzt geben sie ein....

automake -a

Nun befindet sich ein Dateibaum in Ihrem Verzeichnis wie sie Ihn als Anwender schon kennen dürften. Nun könnten sie schon Ihr Verzeichnis, mittels tar in einem tar-Ball packen. Wir wollen natürlich jetzt auch Probieren ob alles auch funktioniert. Also testen wir unseren Installationsdreiklang...

./configure
make


Jetzt können sie unser Programm testen ob alles funktionierte....

./meinPacket

Nun sollten die Ausgabe auf dem Bildschirm erscheinen. Jetzt können sie wenn sie wollen das Programm Systemweit installieren das man von jedem Verzeichnis darauf zurückgreifen kann. Machen sie sich zum Superuser mittels...

su

Jetzt beginnen sie die Systemweite Installation mittels...

make install

Jetzt loggen sie sich wieder mittels exit als Superuser aus und testen ob die Systemweite Installation funktioniert hat mittels...

meinPacket

Um das ganze jetzt zu einem tar-Ball zu machen brauchen sie nur noch in der Kommandozeile und im Verzeichnis des Packetes eingeben.....

make distcheck

Jetzt befindet sich ein TAR-Ball in Ihrem Verzeichnis, den sie z.B. jetzt zum download im Internet anbieten können.

ein Kapitel zurück          nach oben           ein Kapitel weiter


© 2001,2002 Jürgen Wolf