2016-07-21 8 views
1

J'essaie d'intégrer valgrind dans mon cadre de test unitaire en utilisant la macro m4 suivante décrite au https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html. Dans mon configure.ac jeerreur de syntaxe à proximité du jeton inattendu `AX_VALGRIND_CHECK '

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

J'ai placé le .m4 script fourni, dans les deux ./m4 et dans/usr/share/aclocal. Pour générer le script de configuration etc, je lance ce qui suit:

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

Cependant quand je vais une course ./configure je reçois l'erreur suivante

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

Que dois-je faire pour obtenir mon script de configuration à travailler avec les macros fournies par le .m4 script ci-dessus. Je ne suis pas sûr de ce que d'autres informations à fournir.


Voici mon configure.ac. Je vais essayer de trouver à quel point les choses se brisent en utilisant ce configure.ac vs celui généré par autoreconf -i tel que posté par @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 

Répondre

0

Je ne peux pas recréer votre problème.

Je exécute aussi très rarement autre chose que autoreconf -i. Cela relancera les autres autotools si nécessaire.

je mets les ax_valgrind_check.m4 dans un répertoire ./m4 et créé un talon 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 

L'exécution autoreconf -i crée un script configure qui effectue les opérations suivantes:

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

Ainsi, les macros sont ramassées (ce qu'ils n'étaient pas dans votre cas).

Alors, exécutez autoreconf -i pour voir si cela vous permet de trier les choses.

Si vous ne parvenez pas à faire fonctionner ce produit, essayez d'installer le package autoconf-archive pour tous les appareils Unix que vous utilisez. Il contiendra également cette macro.