2016-07-21 9 views
1

Я пытаюсь интегрировать valgrind в мою модульную тестовую структуру, используя следующий макрос m4, описанный в https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html. В моей configure.ac у меня естьсинтаксическая ошибка возле неожиданного токена `AX_VALGRIND_CHECK '

AC_CONFIG_MACRO_DIR([m4]) 
... 
AX_VALGRIND_DFLT() 
AX_VALGRIND_CHECK 

Я поместил .m4 script при условии, в обоих ./m4 и в/USR/доли/ACLOCAL. Для того, чтобы сгенерировать скрипт конфигурации и т.д., я бегу следующее:

aclocal && autoconf && autoreconf --no-recursive --install && \ 
autoheader && libtoolize --force && automake --force-missing \ 
--add-missing 

Однако, когда я иду прогон ./configure Я получаю следующую ошибку

./configure: line 12914: syntax error near unexpected token `AX_VALGRIND_CHECK' 
./configure: line 12914: `AX_VALGRIND_CHECK' 

Что мне нужно сделать, чтобы получить мой конфигурационный скрипт для работа с макросами, предоставленными выше .m4 script. Я не уверен, какую другую информацию предоставить.


Ниже приведена моя конфигурация.ac. Я попытаюсь найти, в какой момент все происходит, используя этот configure.ac, и тот, который генерируется autoreconf -i, как опубликовано @ Kusalananda.

AC_INIT([binary_balanced], [0.1], [[email protected]])       
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])      
AC_CONFIG_SRCDIR([./src/])              
AC_CONFIG_HEADERS([config.h])             
AC_CONFIG_MACRO_DIR([m4])              
AC_PROG_CC                  
AM_PROG_AR                  
AM_PATH_CHECK                 

LT_INIT                   

# Checks for programs.               
AC_PROG_CC                  

# Checks for libraries.               
AX_VALGRIND_DFLT()                
AX_VALGRIND_CHECK                

# Checks for header files.              

# Checks for typedefs, structures, and compiler characteristics.    

# Checks for library functions.             

AC_CONFIG_FILES([Makefile              
       src/Makefile             
       tests/Makefile])            
AC_OUTPUT 

ответ

0

Я не могу воссоздать вашу проблему.

Я также очень редко управляю чем-либо, кроме autoreconf -i. При необходимости повторно запустите другие автотела.

Я положил ax_valgrind_check.m4 в каталог ./m4 и создал окурок configure.ac:

AC_PREREQ([2.69]) 
AC_INIT([test],[0.0.0-dev]) 
AM_INIT_AUTOMAKE([foreign]) 
AC_CONFIG_MACRO_DIR([m4]) 
AX_VALGRIND_DFLT() 
AX_VALGRIND_CHECK 

Запуск autoreconf -i создает configure скрипт, который делает следующее:

$ ./configure 
checking for a BSD-compatible install... /Users/kk/sw/bin/ginstall -c 
checking whether build environment is sane... yes 
checking for a thread-safe mkdir -p... /Users/kk/sw/bin/gmkdir -p 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking whether make supports nested variables... yes 
checking for valgrind... no 

Так макросы подобран (которых они не были в вашем случае).

Итак, запустите autoreconf -i, чтобы узнать, все ли это для вас.

Если вы не можете заставить это работать, попробуйте установить пакет autoconf-archive для любого Unix, на котором вы находитесь. Он также будет содержать этот макрос.