2013-02-21 7 views
20

Ich verwende Autotools für eine Bibliotheken auf GitHub gehostet. Anstatt eine gewöhnliche README Textdatei zu verwenden, möchte ich README.md verwenden.Verwenden Sie Autotools mit README.md

Wenn automake läuft, bekomme ich folgende Fehler

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

Ist es möglich, Autotools zu sagen, nicht für README zu überprüfen?

Antwort

27

Übergeben Sie einfach die Option foreign an automake. Dies sagt ihm, dass Ihre Software nicht den typischen Gnu-Standards entspricht, und das Weglassen von README ist daher kein Fehler. Typischerweise wird dies in configure.ac getan:

AM_INIT_AUTOMAKE([foreign]) 

aber es kann auch durch die Zuordnung AUTOMAKE_OPTIONS in Makefile.am erfolgen:

AUTOMAKE_OPTIONS = foreign 
+1

Fantastisch, danke. Hinweis für andere, Sie müssen "autoreconf" ausführen, nachdem Sie "configure.ac" geändert haben. –

4

Warum sollten Sie nicht nach Ihrer README-Datei suchen, wenn Sie bereits eine haben? Es ist einfach im Abreißformat und wird als README.md gespeichert. Wenn Sie möchten, dass Ihre README-Datei mit Ihrer README.md-Datei identisch ist, warum verlinken Sie sie nicht?

in der Befehlszeile:

ln -s README.md README 

Auf diese Weise erhalten Sie Ihre README.md Datei und alle Werkzeuge, um Sie noch mit den Standard-Namenskonventionen arbeiten können verwendet werden. Nebenbei bemerkt ist es sehr wahrscheinlich, dass Sie mit autotools einen benutzerdefinierten Pfad für Ihre Readme-Datei angeben können.

+4

Ich will das natürlich nicht. Das ist nur verwirrend. –

7

Wir

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

zu erzeugen, einen Text README von der Abschrift README.md

+0

danke! aber warum so kompliziert? Wäre nicht ein README: README.md Katze $ < > $ @. Tmp tun? :) – Ax3l

0

Die Simple-Lösung, basierend auf pn fceller 's Antwort: Das einzige, was benötigt wird, ist eine Erstellungsregel für README in makefile.am. Diese Regel kann sogar leer sein. So fügen Sie einfach die folgende Zeile in makefile.am:

README: README.md 

das ist alles, jetzt auto beschwert sich nicht mehr, und Sie müssen nicht Ihr Projekt als foreign erklären.

Es ist nicht erforderlich, aber ich ziehe es eine vollständigere Regel, füge ich zu makefile.am:

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

CLEANFILES = README 

Aber auch mit dieser Regel README wird nicht gebaut, wenn Sie ausdrücklich make README nennen.