Re: autoconf & co.
Andre Heine <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Moin moin,
Am Donnerstag, 14. Oktober 2004 16:21 schrieb Ralf Corsepius:
[...]
> > Mit dieser Einleitung wollt ich nun anfangen, soweit so gut!
>
> Nun ja, das Goat-Book ist ein wenig veraltet, aber immer noch
> ganz brauchbar.
Kennst Du einen besseren Link?
> > "Makefile.am" und "configure.in" angelegt, danach habe ich
>
> Mit autoconf-2.59 solltest Du statt "configure.in",
> "configure.ac" verwenden.
Auf meinen gentoo habe ich 2.13 und 2.59 installiert, ich habe
2.13 benutzt.
> > aclocal
> > autoconf
> > automake --add-missing
>
> Ein einmaliges "autoreconf -fi" macht alles auf einmal.
Probiere ich mal aus :))))
> > aufgerufen.
> > Als letztes noch mit "touch" die fehlenden Dateien angelegt...
> > (NEWS,COPYING, usw....)
>
> Siehe oben.
>
> > Prima, scheint bis hier alles OK zu sein, ist es aber nicht ;(
> >
> > Laut der Einleitung reicht nun einfach ein "./configure" um das
> > Makefile zu generieren.
> >
> > Stimmt tut's auch, aber das Makefile funktioniert nicht
> > wirklich;(
So, das von mir probierte funktioniert also tadelos, wiedermal
"USERERROR" (siehe unten);(
> > ------------------- snip ------------------------------------
> > voodoo@yamato tmp $ make
> > gcc -DPACKAGE=\"sigger\" -DVERSION=\"1.0\" -I. -I. -g -O2
> > -c main.c
> > main.c: In Funktion »main«:
> > main.c:13: error: `SIGINT' undeclared (first use in this
> > function) main.c:13: error: (Each undeclared identifier is
> > reported only once main.c:13: error: for each function it
> > appears in.)
> > main.c:13: error: `SIG_ERR' undeclared (first use in this
> > function) main.c: In Funktion »strgc_faenger«:
> > main.c:39: error: `SIGINT' undeclared (first use in this
> > function) main.c:39: error: `SIG_IGN' undeclared (first use in
> > this function) main.c:45: error: `SIG_ERR' undeclared (first
> > use in this function) make: *** [main.o] Fehler 1
> >
> > Hmm, "SIGINT" & Co. ist in signal.h deklariert, warum wird die
> > nicht gefunden?
>
> #include <signal.h> vergessen?
Nein...
> Hast Du eine Datei names signal.h in '.' herumliegen?
JAUUUUUUUUU, das ist das Problem.
Bei meinen von Hand geschrieben Makefile gab's damit keine
Probleme. Bei nÀherer Betrachtung hatte ich da wohl GlÌck,
das gcc zuerst in den Systempfaden geguckt hat.
Kann aber auch sein, das autoconf & Co. das unterbinden, may be?
Kurz meine (leere!!) signal.h aus dem Verzeichnis gelöscht
und alles funktioniert _prima_!!!
Also in Zukunft nur noch mit autoconf & Co.
Eigene Makefile's haben doch oft LÃŒcken, z.B.
bei "inline" in Header-Dateien.
Bei c++ ist das doch des öfteren der Fall.
Man muss darauf achten, das neu kompiliert wird, wenn sich
ein solcher Header Àndert. Bislang musste ich das alles von Hand
in meine Makefile eintragen(Oft auch richtig tricksen).
Auf den ersten Blick funktioniert das alles tadellos mit autoconf.
Ich habe mal ein neues C-File mit Header eingebaut, man braucht
_nichtmal_ die neue Datei irgendwo eintragen(SUFFIX-Regeln).
Gut, das machen einige meiner selbst geschrieben Makefile auch,
aber man muss sie eben selber schreiben.
"touche" ich den Header, wird sofort das betroffene Modul
neukompiliert.
Jetzt, wo ich mich damit befasst habe bin ich etwas Weiser als
vorher, weil
- man muss weniger Tippen
- autoconf funktioniert genauso einfach wie z.B. qmake/tmake
- man hat bestimmt bessere Chancen, das das Programm von
anderen benutzt wird, weil GNU...
- mit autoconf hÀtte ich mich schon viel frÌher beschÀftigen
mÃŒssen :))
Gut das es _diese_ Mailinglisten gibt! *freu*
Vielen Dank!
Ciao
Andre
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfÃŒgbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]