Was ist die normale Art und Weise mit Nicht-Standard-Bibliothek Stellen in einem autoconf-Skript zu tun?
-
09-09-2019 - |
Frage
Ich versuche, das GNU autoconf / autoWerkzeugKette zum ersten Mal zu verwenden, so dass die Antwort auf meine Frage vielleicht trivial sein.
Das Programm benötigt OpenGL / GLUT, wo die Header und Bibliotheken in einem Nicht-Standard-Standort installiert sind. Ich fand diese Makros, die alles tun, für mich die Überprüfung sollte. Ich rufe sie einfach mit AX_CHECK_GLUT . Wie mache ich das Makro die Bibliotheken finden? Ich bin auf der Suche nach so etwas wie
./ configure --with-glut-dir = / home / hanno / glut
Generell: Was ist die normale Art und Weise des Umgangs mit Nicht-Standard-Bibliothek Stellen in einem autoconf-Skript? Natürlich kann ich mit CPPFLAGS und LIBS Variablen spielen, um, aber ich habe das Gefühl, dass ich etwas fehle.
Lösung
Die Art und Weise der Autotools entworfen sind, ein Paket Autor hat noch nichts zu tun Voraussetzung in Nicht-Standard-Standorten installiert zu unterstützen. Die Ausgabe von ./configure --help
enthält die folgenden Zeilen:
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>
Deshalb, wenn das Installationsprogramm eine Voraussetzung in einem Nicht-Standard-Standort installiert ist, wird er erlassen
./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib
Da CPPFLAGS
und LDFLAGS
verwendet werden, durch configure
Kontrollen und Makefile
Regeln, sollte alles funktionieren.
Einige Paketautoren gerne eine --with-
bieten Paket =location
Option als Abkürzung für die oben, aber das ist normalerweise nicht der Zweck der --with-
Paket Optionen. Diese Optionen sind besser genutzt angeben, ob ein optionales Paket verwendet werden soll oder wie eine Voraussetzung erfüllt werden sollte.