2016-05-24 25 views
0

In meinem Projekt habe ich den Ordner m4. In diesem Ordner habe ich ax_cxx_version.m4 Datei, die AX_CHECK_CXXFLAGS Makro enthält.autotools: wie man mein eigenes m4 Makro in configure.ac einfügt

Dann bin ich mit m4 Ordner in autoconf.ac:

AC_CONFIG_MACRO_DIR([m4]) 

und Ausführung autoconf.

Wenn ich configure renne es mit fließenden Fehler Fehler:

checking complex usability... yes 
checking complex presence... yes 
checking for complex... yes 
checking size of int64_t... 8 
checking for long long int... yes 
./configure: line 7235: syntax error near unexpected token `-std=c++0x' 
./configure: line 7235: `AX_CHECK_CXXFLAGS(-std=c++0x -pedantic -Wall)' 

Wenn ich hinzufügen meine Makro alles aclocal.m4 dann sehr gut funktioniert.

Wie kann ich mein eigenes Makro richtig einbinden?

+0

Haben Sie versucht, die Argumente in eckige Klammern zu setzen? 'AX_CHECK_CXXFLAGS ([- std = C++ 0x -pedantisch -Wand])' – baf

+0

Das Problem ist, dass die AX_CHECK_CXXFLAGS-Funktion nach dem Ausführen von autoconf nicht im configure-Skript enthalten ist. Es ist also egal wie ich AX_CHECK_CXXFLAGS anrufe. – user1209304

Antwort

0

Das Problem ist, dass AC_CONFIG_MACRO_DIR nicht tatsächlich den Include-Pfad einrichten, aber es ist aclocal generieren die richtige Datei. Aber aclocal ist ein Teil von automake, und wenn Sie gerade autoconf ausführen, wird es nicht aufgerufen.

Sie können autoreconf anstelle von autoconf aufrufen, um Ihre Dateien neu zu generieren, und das sollte den Zweck erfüllen. Oder wenn Sie sich nicht auf Automake verlassen wollen, können Sie eine Reihe anderer Tricks mit m4_include verwenden.

Relevante (von mir geschriebene) Dokumentation zu diesem Thema finden Sie unter Autotools Mythbuster.