2013-04-24 15 views
10

Jestem nowy w autotoolach, a po tym tutorial. ale nie mogę rozwiązać ten błąd,Błąd automake: nie znaleziono prawidłowego wywołania AM_INIT_AUTOMAKE

$ automake 
    configure.ac: error: no proper invocation of AM_INIT_AUTOMAKE was found. 
    .. 
    Makefile.am: error: required file './depcomp' not found 
    .. 
    /usr/share/automake-1.12/am/depend2.am: error: am__fastdepCC does not appear in AM_CONDITIONAL 
    .. 
    /usr/share/automake-1.12/am/depend2.am: error: AMDEP does not appear in AM_CONDITIONAL 
    .. 

mój plik configure.ac jest

# -*- Autoconf -*- 
    # Process this file with autoconf to produce a configure script. 

    AC_PREREQ([2.69]) 
    AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) 
    AM_INIT_AUTOMAKE(hello,1.0) 
    AC_CONFIG_SRCDIR([config.h.in]) 
    AM_CONFIG_HEADERS(config.h) 

    # Checks for programs. 
    AC_PROG_CC 

    # Checks for libraries. 

    # Checks for header files. 
    AC_CHECK_HEADERS([sys/time.h]) 

    # Checks for typedefs, structures, and compiler characteristics. 

    # Checks for library functions. 
    AC_CHECK_FUNCS([gettimeofday]) 

    AC_CONFIG_FILES([Makefile]) 
    AC_OUTPUT 

I sprawdzone rozwiązania w Internecie, mój configure.ac wygląda dobrze, nie wiem co jest nie tak z nim.

Odpowiedz

2

Musisz to naprawić linia po linii.

Po pierwsze, wymagane jest Makefile.amdepcomp. Tak, trzeba skopiować go do folderu (na tym etapie można uruchomić automake --add-missing tak, aby automatycznie dodać brakujące pliki):

cp -a /usr/share/automake-X.XX/depcomp . 

drugie, trzeba uruchomić aclocal przed automake:

$ aclocal 

Wreszcie, można uruchomić automake:

$ automake 
$ autoconf 
23

Skąd kopiowałeś & wklejasz swój configure.ac z? Niezależnie od tej witryny, powinieneś ją usunąć z zakładek!

Zmieniasz nowy sposób AC_INIT, aby wskazać wersję pakietu, przy użyciu starego sposobu AM_INIT_AUTOMAKE, aby zrobić to samo. Nie rób tego. (Stary i nowy nowy przełącznik, który wystąpił 10 lat temu.) Począwszy od Automake 1.13 stary sposób wywoływania AM_INIT_AUTOMAKE z dwoma argumentami nie jest obsługiwany.

W twoim przypadku usunięcie argumentów AM_INIT_AUTOMAKE i poprawne ustawienie argumentu AC_INIT w celu odzwierciedlenia nazwy i wersji projektu powinno wystarczyć.

Zobacz na początek aktualny przykład bardzo prostego configure.ac.

Zamiast dzwonić pod numer automake, po prostu użyj autoreconf -vfi, aby uruchomić wszystkie odpowiednie narzędzia w odpowiedniej kolejności i zainstalować brakujące pliki.

+0

masz rację, zadziałało, dziękuję bardzo. – arslan

+0

Powinienem szukać najnowszych przykładów. – arslan

+0

Dobry punkt użycia autoreconf. Nie wiedziałem o tym. – jmmk

0

W moim przypadku aktualizowania libtool od 2.2.6 do 2.4.6. ps: Używam wersji 1.15 automake. Uruchom libtoolize przed uruchomieniem aclocal i autoheader.