J'utilise les autotools pour gérer la configuration de sources (C) dont je m'occupe. Une partie du code doit être compilé en utilisant la bibliothèque truc-muche (ici netcdf) Sur certains systèmes, cette bibliothèque a ses entêtes dans
/usr/include
et ses .so dans /usr/lib
Dans ce cas, j'ai mis dans mon configure.in :AC_CHECK_HEADER([netcdf.h], [netcdf="yes"], [netcdf="no"])
mes sources ont un
#include <netcdf.h>et l'édition de lien se fait avec
-lnetcdf
Jusqu'ici tout va bien. Mais selon les distribution, ces bibliothèques s'installent par fois dans des sous répertoires (dont le nom varie avec la distribution). Par exemple sous Fedora, netcdf ce trouve dans
/usr/include/netcdf-3/
et son .so idem.Finalement ma question : comment est-ce que je fais pour détecter dans mon configure.in où ce trouve netcdf.h et libnetcdf.so?
La solution trouvée sur certains forum de faire :
CFLAGS=-I/usr/include/netcdf-3 LDFLAGS=-L/usr/lib/netcdf-3 ./configure
me paraît un peu trop cochonne.
# google ?
Posté par alf . Évalué à 1.
[^] # Re: google ?
Posté par Damien Caliste (site web personnel) . Évalué à 1.
M'enfin, il reste que mes recherches Google étaient toutes trop particulières avec des mots clefs comme netcdf-3, ...
Sinon, je me demande si les autotools ne pourrait pas gérer cela tous seuls sans avoir à écrire des scripts m4 particuliers pour chaque bibliothèque qu'on souhaite utiliser et qui pourrait être dans des répertoires différents de /usr/include et autre.
[^] # Re: google ?
Posté par alf . Évalué à 0.
Bah non, autoconf ne peut pas deviner de lui-même dans quels dossiers telle bibliothèque peut être placée, ni les quatre milliards de combinaisons possibles de flags pour le compilateur suivant les options et versions de ta bibliothèque...
Il faut créer un petit bout de script pour lui permettre de le faire, et c'est ce qui est dans le lien que je t'ai donné: le fichier m4 fourni permet à autoconf de gérer proprement la bibliothèque netcdf. Autoconf ne fait pas de la divination; il utilise simplement les scripts dont il dispose pour savoir comment gérer tous ce qu'on lui demande.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.