2013-02-21 17 views
20

Uso gli autotools per le librerie ospitate su GitHub. Invece di usare un normale file di testo README, voglio usare README.md.Utilizzare gli autotools con README.md

Quando si esegue automake, ottengo il seguente errore

Makefile.am: required file `./README' not found 

E 'possibile dire autotools non per verificare la presenza README?

risposta

27

Basta passare l'opzione foreign all'automake. Questo dice che il tuo software non è conforme agli standard gnu tipici e quindi omettere README non è un errore. In genere, questo è fatto in configure.ac:

AM_INIT_AUTOMAKE([foreign]) 

ma può anche essere fatto assegnando AUTOMAKE_OPTIONS in Makefile.am:

AUTOMAKE_OPTIONS = foreign 
+1

Fantastico, grazie. Nota per gli altri, è necessario eseguire 'autoreconf' dopo aver modificato' configure.ac'. –

4

Perché chiedere di non cercare il file README quando ne hai già uno? Capita di essere in formato markdown e salvato come README.md. Se vuoi che il tuo file README sia identico al tuo file README.md, perché non collegarlo ad esso?

Dalla riga di comando:

ln -s README.md README 

In questo modo, si arriva a mantenere il file README.md e gli eventuali strumenti utilizzati saranno ancora in grado di lavorare con le convenzioni di denominazione standard. Parentalmente parlando, è molto probabile che gli autotools ti permettano di specificare un percorso personalizzato per il tuo readme.

+4

Non voglio questo ovviamente. Questo è solo confuso. –

7

Stiamo usando

README: README.md 
     fgrep -v "[Build Status]" $< \ 
       | markdown \ 
       | html2text -style pretty -nobs \ 
       | sed -e 's:&gt;:>:g' \ 
       > [email protected] 

per generare un testo README dal markdown README.md

+0

grazie! ma perché così complicato? Non sarebbe un README : README.md cat $ < > $ @. Tmp fare? :) – Ax3l

0

La soluzione semplice, basata su pn Risposta fceller: L'unica cosa necessaria è una regola di costruzione per README in makefile.am. Questa regola può anche essere vuota. Quindi, solo aggiungere la seguente riga al makefile.am:

README: README.md 

Questo è tutto, ora automake non si lamenta più, e non è necessario dichiarare il vostro progetto come foreign.

Non è necessario, ma preferisco una regola più completa, aggiungo a makefile.am:

README: README.md 
    pandoc -f markdown -t plain --wrap=none $< -o [email protected] 

CLEANFILES = README 

Ma anche con questa regola, README non è costruito a meno che non si chiama in modo esplicito make README.

Problemi correlati