On Monday, December 17, 2012 06:09:52 PM Federico Calboli wrote:
> Andando un pezzo per volta, pare che per fare fungere il tutto in un utente
> quello che sia (e ha da fungere Linux/OSX/Win) si ha da fare un makevars.
> Ok, fino a qui ci si sta. Il problema e` che so che nel makevars si deve
> specificare donde cippa siano GSL e cose belle. Ora io so che per GSL (per
> esempio) ho da fa:
>
> LIB_GSL=/path/to/gsl/installation/
> PKG_LIBS=-lgsl -lgslcblas -L${LIB_GSL}/lib
> PKG_CPPFLAGS=-I$(LIB_GSL)/include
Per quanto riguarda Linux, il problema va riformulato in funzione della
fatidica domanda ... quale GSL ? Se ad esempio è la GSL installata con RPM o
deb, la risposta è facile:
PKG_LIBS=-lgsl -lgslcblas
PKG_CPPFLAGS=
perchè la libreria deve stare dove stanno le altre, in /usr/lib o in
/usr/lib64, che è il posto dove -l sa di doverle cercare.
Se invece è una versione di GSL installata in ~miocugino/gsl, evidentemente
non si può sapere e bisogna indicarlo
LIB_GSL=~miocugino/gsl
PKG_LIBS=-lgsl -lgslcblas -L${LIB_GSL}/lib
PKG_CPPFLAGS=-I$(LIB_GSL)/include
potrebbe anche esserci come parte dell'installazione di GSL uno script di
shell, gsl-config, le cui opzioni corrispondono a quello che ti serve, ovvero
PKG_LIBS=$(gsl-config --libs)
PKG_CPPFLAGS=$(gsl-config --cflags)
ma perché ciò sia utile occorre che gsl-config sia in una directory che fa
parte del PATH, e nel caso di ~miocugino non è detto.
Segnalo che ho parlato di "installazione", cioè mio cugino deve aver eseguito
la fatidica combinazione "configure && make && make install" con successo. Il
valore giusto per LIB_GSL è sempre una directory tale che
${LIB_GSL}/lib/libgsl.so
corrisponda alla libreria dinamica che ti interessa (di solito è un symlink).
Per quanto riguarda Mac OSX, fornisco iSuggerimenti solo a fronte di un i30%
sugli iUtili.
Sulle piattaforme legacy che sottopongono a inutili vessazioni l'acquirente
LIB_GSL probabilmente comincia con C: e ha le barre all'indietro.
Davide Bolcioni
--
There is no place like /home.
|