Makefile mit Hilfe von Autotools erstellen
Geizhals » Forum » Programmierung » Makefile mit Hilfe von Autotools erstellen (3 Beiträge, 96 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: Makefile mit Hilfe von Autotools erstellen
07.05.2006, 19:17:58
Hallo ich hoffe das dir das weiterhilft, ist ein Auszug aus den Pronix C-Kurs, findest sicher im Netz mit google.
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 http://www.gnu.org  herunterladen.
Des weiteren 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

int main()
{
   printf("Mein erstes selbstgestricktes *TRÖT*!\n");
   return 0;
}

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

mkdir MEIN_PACKET-0.1

In diesem neu erstellten *TRÖT* 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 initialisieren 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 *TRÖT*es. 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
PS machs einfach  unter gnome mit anjuta ist eine IDE nicht ganz so gross wie kdevelop aber reicht für c und c++(für grafikguis brauchst noch die gtkmmlibs dazu) und mit dem dazugehörenden glade hast in ein paar Minuten eine GUI zusammengestellt. Hier werden die ganzen scripte gleich automatisch erstellt.
Tschau El-Biero

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung