2010-07-08 9 views
14

Quindi un paio di anni fa ho impiegato un po 'di tempo per affumicare lo make, ed è stato pagato enormemente. Scrivere piccoli makefile per costruire i miei progetti e automatizzare le attività è divertente e produttivo.Come imparare la gioia degli autotools?

Lo svantaggio è, ovviamente, che i miei makefile sono eccessivamente specifici, specialmente quando si tratta di piattaforme e posizioni di libreria.

Quindi questo è il punto in cui le persone mi dicono "autotools in soccorso!" E sicuramente sembrano fare il trucco quando gli altri li fanno (mi piace scaricare qualcosa ed eseguire configure && make && sudo make install e guardarlo funzionare), ma non riesco a capirlo.

Ho cercato alcuni file configure.ac e Makefile.am e non capisco cosa sta succedendo. Non so quale parte degli identificatori è la scelta degli sviluppatori, e quale parte è significativa per gli autotools. Non sono sicuro di aver compreso l'intero flusso e il punto di Makefile.in. Penso che sto solo colpendo un muro mentale che va dal sistema a cui sono abituato (make) a qualcosa che è uno strato o due al di sopra di quello.

Qualcuno può indicarmi un tutorial o un libro (preferibilmente non eccessivamente secco) che possa insegnarmi la gioia degli autotools? Quali sono i passaggi e come posso utilizzarli, come posso scrivere da solo il mio configure.ac e Makefile.am? Mostrami come essere efficace e divertirti con loro?

+2

In realtà non risponde alla tua domanda, ma potresti prendere in considerazione anche cmake. Ho trovato molto più semplice lavorare con i soliti autotools. –

+9

Tu, come utente, hai imparato la gioia degli autotools. Ora imparerai che è doloroso :) –

+1

Riconosco davvero i commenti di @Evan Teran e @Vitor Py. Gli autotools (specialmente quando si uniscono a libtool) hanno la tendenza a causare molto dolore. Qui in azienda ci stiamo attualmente spostando dagli autotools alla cmake, senza rimpianti. – Rudi

risposta

5

Anche se mi considero di Alexandre Duret-Lutz Autotools Tutorial, menzionato nella risposta di Elmarco, di essere il migliore a disposizione molto, si dovrebbe conoscere anche la capra libro:

http://sourceware.org/autobook/

Le versioni degli strumenti di cui si occupa sono un po 'vecchia, ma è una bella introduzione ed è presentato in un ordine logico. È anche più completo del Tutorial. È forse il modo migliore di utilizzarlo come lettura supplementare dopo aver lavorato con il tutorial.

UPDATE C'è anche John Calcote's book, è stato pubblicato intorno ad agosto 2010 ed è veramente buono. Non sono sicuro che l'intero libro sia online a quel link, ma almeno una parte di esso è.

9

Non sono sicuro che tu possa divertirti con i sistemi di compilazione ... Hai letto il tutorial di Autotools?

http://www.lrde.epita.fr/~adl/autotools.html

Ci sono varie risorse su autotools, il problema è che tendono ad essere incompleta, un po 'obsolete, ecc ...

Un recente documento ed eccellente è Autotools MythBusters, anche se non è un'introduzione :

http://www.flameeyes.eu/autotools-mythbuster/index.html

+2

+1 per i collegamenti, grazie! Ma spero che tu abbia torto sulla tua richiesta iniziale. Con la programmazione (e qualsiasi sistema di compilazione sufficientemente complesso è in programmazione), penso spesso che se non ti stai divertendo, stai sbagliando. Questa potrebbe essere la stessa tendenza che porta i programmatori a preferire la soluzione più complessa quando lo farà una semplice, ma questo sembra essere un voto per la moderazione più di ogni altra cosa. – rampion

+1

La sezione più illuminante del tutorial di Autotools per me era il diagramma di quali file sono usati per generare quali altri file e cosa sono tutti destinati a fare. Questo è stato il momento in cui ho capito la gioia degli autotools e ho smesso di vederli come un voodoo. – ptomato

+1

Sono molto d'accordo con la menzione del tutorial di Autotools di Alexandre Duret-Lutz (il primo link di cui sopra). Per un investimento di tempo di appena un'ora o due di lavoro attraverso la sua eccellente serie di diapositive, imparerai abbastanza di Autotools per risolvere la maggior parte dei casi d'uso. –