Domanda

Sto cercando di usare GNU autoconf / automake toolchain per la prima volta, quindi la risposta alla mia domanda potrebbe essere banale.

Il programma ha bisogno di OpenGL / GLUT in cui le intestazioni e le librerie sono installati in una posizione non standard. Ho trovato queste macro che dovrebbero fare tutto il controllo per me. Sto semplicemente chiamando con AX_CHECK_GLUT . Come faccio a fare la macro trovare le librerie? Sto cercando qualcosa di simile

  

./ configure --with-sovrabbondanza-dir = / home / Hanno / sovrabbondanza

Più in generale: Qual è il modo normale di trattare con posizioni delle librerie non standard in uno script autoconf? Naturalmente, posso giocare con CPPFLAGS e LIBS variabili, ma ho la sensazione che mi manca qualcosa.

È stato utile?

Soluzione

Il modo in cui sono progettati Autotools, un pacchetto autore non deve fare nulla per sostenere prerequisito installati in luoghi non standard. L'uscita del ./configure --help comprende le seguenti linee:

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>

Di conseguenza, se il programma di installazione ha un prerequisito installato in una posizione non standard, dovrà emettere

./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib

A causa CPPFLAGS e LDFLAGS sono utilizzati da controlli e regole configure Makefile, tutto dovrebbe funzionare.

Alcuni autori pacchetto come per offrire un --with- pacchetto =location come abbreviazione di quanto sopra, ma questo di solito non è lo scopo di --with- pacchetto Opzioni. Queste opzioni sono utilizzate al meglio per specificare se un pacchetto opzionale dovrebbe essere usato , o come un prerequisito deve essere soddisfatta .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top