[linux-l] Makefiles, Autoconf, Automake (was: c++ lernen)

Volker Grabsch vog at notjusthosting.com
Di Aug 7 11:16:53 CEST 2007


On Mon, Aug 06, 2007 at 01:18:56PM +0200, Ivan F. Villanueva B. wrote:
> Am Mo, Aug 06, 2007 10:48:17 +0200, Volker Grabsch schrieb:
>  
> > Ich schreibe mir meistens ein Makefile mit einem Target "run" oder
> > "test", sodass ich via "make run" das Programm starten/testen kann.
> 
> Könntest Du mir ein Beispiel von so einem Make-File geben?

Vorab: Einen Trick habe ich vergessen zu nennen. Du brauchst eigentlich
kein "make run". Vim kann auch:

    :make && ./mein-programm

Da kannst du dir auch ne Taste drauf setzen, oder das make-Programm
selbst setzen:

    :set makeprg=make\ &&\ ./mein-programm
    :make

Willst du trotzdem ein "make run" haben (ich persönlich mach das
immer seltener und nutze lieber Testsuites, siehe unten), dann
füge folgendes deinem Makfile (bzw. Makefile.am) hinzu:

    run: mein-programm
            ./mein-programm

Für größere Projekte ist Autoconf+Automake generell eine gute Idee,
und zwar von jemanden aufgesetzt, der sich damit auskennt. Wenn die
configure.ac bzw. Makefile.am am Ende komplizierter und buggiger ist
als es ein handgeschriebenes Makefile wäre, habt ihr nichts gewonnen.

Nunja, Automake ist relativ gut, das Makefile.am kann man nicht allzu
sehr versauen. Aber Autoconf ist anders. Eine verkomplizierte configure.ac,
das geht ganz schnell und ist typisch für Autoconf-Anfänger. Ich spreche
da aus eigener Erfahrung.

(Nebenbei gesagt: Zu komplizierter Text ist generell ein typischer
Anfängerfehler ;-), das gilt auch für Programmiersprachen und natürliche
Sprachen)

Automake hat bereits ein vorgefertigtes Target "check" für Tests,
sodass du auch einfach kleine Testprogramme (bzw. gleich ne Testsuite)
durchjagen kannst, ohne extra was schreiben zu müssen. "make check"
macht das alles für dich.

Für interaktive Programme ist das nicht so prickelnd, aber wenn du ne
komplexe Logik implementierst, hilft das ungemein, statt "edit-compile-
start" einen "edit-compile-test"-Zyklus zu machen.

> > Mit ":cn" und ":cp" kann man vorwärts und rückwärts durch die
> > Fehlerzeilen wandern.
> 
> Ja, bei mir steht seit lange in .vimrc
>     map <F-5> :cn<CR>

Das ist gut! Muss ich mir merken.


Gruß,

    Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l