Question

Je suis en train d'écrire un fichier configure.ac tel que le script configure recherche un répertoire de la bibliothèque résultante contenant une bibliothèque statique donnée par exemple libquelquechose.a. Comment puis-je faire ceci? En ce moment, je l'ai juste vérifier un endroit avec:

AC_CHECK_FILE([/usr/local/lib/libsomething.a],[AC_SUBST(libsomething,"-L/usr/local/lib -lsomething")],[AC_SUBST(libcfitsio,'')])

Mais je veux essayer de trouver automatiquement. Et si la bibliothèque est pas dans l'un des emplacements par défaut, je voudrais configurer dire que la bibliothèque n'a pas été trouvé et qu'un emplacement personnalisé peut être spécifié avec --use-chose = chemin comme on le fait habituellement. Donc, je dois aussi alors vérifier si quelque chose --use-= chemin est fourni. Je suis assez nouveau à la création de fichiers de configurer et la documentation M4 n'est pas très facile à suivre, donc apprécierais toute aide.

Merci!

Était-ce utile?

La solution

La meilleure façon de comprendre cela est de regarder d'autres macros autoconf qui font quelque chose de similaire. les macros autoconf sont un amalgame de script shell Bourne et le code M4, donc ils peuvent littéralement résoudre tout problème calculable.

Voici un lien vers une macro j'ai écrit pour MySQL ++ qui fait cela: mysql ++. m4 .

Autres conseils

Il est pas la tâche de configurer pour rechercher bibliothèques sont installées. il ne doit se assurer qu'ils sont disponibles à l'éditeur de liens. Si l'utilisateur les a installés dans un autre endroit, il sait comment appeler ./configure CPPFLAGS=-I/the/location/include LDFLAGS=-L/the/location/lib afin que les outils trouveront la bibliothèque (ce qui est expliqué dans la sortie de --help de configure et dans le fichier standard INSTALL).

--with-package également et macros --enable-package ne sont pas censés être utilisés pour spécifier les chemins, contrairement à ce que beaucoup de macros tiers feront. GNU Normes de codification interdire explicitement cet usage:

  

Ne pas utiliser une option de --with à   spécifiez le nom de fichier à utiliser pour trouver   certains fichiers. C'est en dehors de la portée   de quelles options de --with sont pour.

CPPFLAGS et LDFLAGS sont déjà là pour résoudre le problème, alors pourquoi redévelopper et maintenir un autre mécanisme?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top