Quelle est la façon normale de traiter avec des emplacements de bibliothèque non standard dans un script autoconf?
-
09-09-2019 - |
Question
Je suis en train d'utiliser pour la première fois la autoconf GNU / automake toolchain, donc la réponse à ma question pourrait être triviale.
Le programme a besoin d'OpenGL / GLUT où les en-têtes et les bibliothèques sont installés dans un emplacement non standard. J'ai trouvé ces macros qui doivent faire toutes les vérifications pour moi. Je suis tout simplement l'appeler avec AX_CHECK_GLUT . Comment puis-je faire de la macro trouver les bibliothèques? Je cherche quelque chose comme
./ --with-GLUT-dir = / home / hanno / rassasiement
Plus généralement: Quelle est la façon normale de traiter avec des emplacements de bibliothèque non standard dans un script autoconf? Bien sûr, je peux jouer avec des variables de CPPFLAGS et LIBS, mais j'ai le sentiment que je manque quelque chose.
La solution
La façon dont les Autotools sont conçus, un auteur de paquet n'a rien à faire pour soutenir préalable installé dans des endroits non standard. La sortie de ./configure --help
comprend les lignes suivantes:
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
Par conséquent, si le programme d'installation a une condition préalable installé dans un endroit non standard, il devra émettre
./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib
Parce que CPPFLAGS
et LDFLAGS
sont utilisés par des contrôles de configure
et les règles de Makefile
, tout devrait fonctionner.
Certains auteurs de paquets comme pour offrir un --with-
package de =location
comme raccourci pour ce qui précède, mais ce qui est normalement pas le but de --with-
Options package . Ces options sont mieux utilisées pour spécifier si un package optionnel doit être utilisé ou comment doit être rempli une condition préalable .