Ajouter des tests de fonctions ou de bibliothèques

Problème

Lors de l’exécution du script configure, vous voulez tester si une fonction ou une bibliothèque est présente sur le système, puis modifier les options du compilateur et de l’éditeur de liens en fonction de l’emplacement de la bibliothèque concernée.

Solution

Ajoutez le nom de la fonction à tester à la macro AC_CHECK_FUNCS et le nom d’un fichier d’en-têtes à la macro AC_CHECK_HEADERS. Indiquez le nom d’une bibliothèque à AC_CHECK_LIB.

Discussion

Nous distinguons plusieurs cas et proposerons à chaque fois un extrait du script configure.ac.

Fonction de libc

Pour tester si une fonction se trouve dans la bibliothèque C standard, lisez la page de manuel correspondante et effectuez un test sur les fichiers d’en-têtes correspondants, puis sur la fonction elle-même. Voici un exemple pour pthread_create() :


AC_CHECK_HEADERS(pthread.h, [], [exit]) 
AC_CHECK_FUNC(pthread_create, [], [exit])
 

Le premier argument est, première ligne, l’en-tête à vérifier et, ligne suivante, la fonction dont la présence en standard est vérifiée. Le deuxième argument est l’instruction à exécuter si le test est concluant, donc ici, rien, puisqu’il n’y a rien à faire. Le troisième argument est l’instruction à exécuter si le test...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Démarrer un projet avec autoconf et automake
Suivant
Récupérer les variables de la commande ./configure