2013-04-24 12 views
10

Ich bin neu in Autotools, und folgende tutorial. aber ich konnte diese Fehler nicht lösen,Automake-Fehler: kein ordnungsgemäßer Aufruf von AM_INIT_AUTOMAKE wurde gefunden

$ 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 
    .. 

meine configure.ac Datei ist

# -*- 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 

ich Lösung auf Internet überprüft, meine configure.ac sieht gut aus, weiß nicht, was falsch ist.

Antwort

2

Sie müssen es Zeile für Zeile beheben.

Zuerst ist Ihre Makefile.am erforderlich depcomp. Also, Sie haben es in den Ordner kopieren (für diesen Schritt können Sie automake --add-missing laufen, um fehlende Dateien automatisch hinzugefügt werden):

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

Zweitens haben Sie aclocal vor automake auszuführen:

$ aclocal 

Schließlich können Sie automake laufen:

$ automake 
$ autoconf 
23

Wo haben Sie & kopieren Sie Ihre configure.ac aus? Was auch immer diese Seite ist, sollten Sie sie aus Ihren Lesezeichen entfernen!

Sie mischen die neue AC_INIT Weise, um die Paketversion anzuzeigen, mit der alten AM_INIT_AUTOMAKE Möglichkeit, das gleiche zu tun. Tu beides nicht. (Old und neu beziehen sich auf einen Schalter, der vor 10 Jahren aufgetreten ist.) Beginnend mit Automake 1.13 wird der alte Weg, AM_INIT_AUTOMAKE mit zwei Argumenten zu nennen, nicht länger unterstützt.

In Ihrem Fall sollte das Entfernen der AM_INIT_AUTOMAKE Argumente, und die korrekte Festlegung der AC_INIT Argument, um den Namen und die Version Ihres Projekts widerspiegeln, sollte ausreichen.

Siehe the automake manual für ein aktuelles Beispiel von sehr einfach configure.ac zu starten.

Anstatt selbst aufzurufen, verwenden Sie einfach autoreconf -vfi, damit alle relevanten Tools in der richtigen Reihenfolge ausgeführt werden und die fehlenden Dateien installiert werden.

+0

Sie haben Recht, es hat funktioniert, vielen Dank. – arslan

+0

Ich sollte nach neuesten Beispielen suchen. – arslan

+0

Guter Punkt, um Autoreconf zu verwenden. Das wusste ich nicht. – jmmk

0

In meinem Fall libtool von 2.2.6 bis 2.4.6 zu aktualisieren. ps: Ich benutze die 1.15 Version von automake. Führen Sie libtoolize aus, bevor Sie aclocal und autoheader ausführen.

Verwandte Themen