2013-02-21 12 views
20

Używam autotools dla bibliotek hostowanych na GitHub. Zamiast używać zwykłego pliku tekstowego README, chcę użyć README.md.Używaj automatycznych narzędzi z README.md

Uruchamiając automake, pojawia się następujący błąd

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

Czy można powiedzieć autotools nie do sprawdzenia README?

Odpowiedz

27

Po prostu przekaż opcję foreign do automake. Mówi to, że twoje oprogramowanie nie jest zgodne z typowymi standardami gnu, a zatem pominięcie README nie jest błędem. Zazwyczaj odbywa się to w configure.ac:

AM_INIT_AUTOMAKE([foreign]) 

ale może być również wykonane przez przypisanie AUTOMAKE_OPTIONS w Makefile.am:

AUTOMAKE_OPTIONS = foreign 
+1

Fantastyczne, dzięki. Uwaga dla innych, musisz uruchomić 'autoreconf' po zmianie' configure.ac'. –

4

Dlaczego nie należy szukać pliku README, jeśli już go masz? Zdarza się, że jest w formacie przeceny i zapisany jako README.md. Jeśli chcesz, aby plik README był identyczny z plikiem README.md, dlaczego nie chcesz go połączyć?

Z wiersza poleceń:

ln -s README.md README 

W ten sposób można dostać się do utrzymania README.md plik i narzędzi użyć nadal będzie w stanie pracować ze standardowymi konwencjami nazewnictwa. W nawiasie jest bardzo prawdopodobne, że autotools pozwala określić niestandardową ścieżkę do pliku readme.

+4

Nie chcę tego oczywiście. To jest po prostu mylące. –

7

Używamy

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

wygenerować tekst README ze znacznika README.md

+0

dziękuję! ale dlaczego tak skomplikowane? Czy nie zrobiłoby to niezastosowania się? README: README.md cat $ $ @. Tmp ? :) – Ax3l

0

Rozwiązanie uproszczone oparte na pn fceller Odpowiedź: potrzebna jest tylko reguła budowania dla README w makefile.am. Ta reguła może być nawet pusta. Więc po prostu dodać następującą linię do makefile.am:

README: README.md 

To wszystko, teraz automake nie narzeka już, i nie trzeba zadeklarować swój projekt jako foreign.

To nie jest potrzebne, ale wolę bardziej kompletny przepis, dodaję do makefile.am:

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

CLEANFILES = README 

Ale nawet z tą zasadą, README nie jest zbudowany, chyba że jawnie wywołać make README.

Powiązane problemy