Domanda

Lavoro su un progetto scritto in C, usando Autotools, che produce una libreria statica. Sto anche fornendo un'interfaccia Python all'API C nel contesto dello stesso progetto. Fino a poco tempo fa non avevo il permesso di introdurre Libtool nel progetto, al fine di fornire librerie statiche e dinamiche in modo portatile. Finora, produrrei il modulo condiviso Python usando i distUTILS e collegherei il modulo Python alla libreria statica C del progetto. Ancora una volta, questo perché non mi è stato permesso di introdurre biblioteche libtool/condivise nell'ecuazione. Ora che voglio mettere Libtool, sto affrontando i seguenti due scenari problematici:

  1. Se continuo a produrre il modulo condiviso Python usando i distUTILI, poiché i distutils e gli autotool non parlano tra loro, devo dire ai distUTILS a quale libreria C a cui collegare. Finora non riesco a pensare a un modo di farlo, ma analizzare il file .la per ottenere il nome e il percorso della biblioteca che Libtool è stato in grado di produrre. Libtool fornisce informazioni per quanto riguarda il tipo di biblioteca che era in grado di produrre su un sistema?

  2. Se sposta la produzione di moduli Python su Automake, va bene, fino a quando non raggiungo il processo di installazione. Non ho idea di come dire a Libtool, voglio il mio modulo Python da qualche altra parte ma la cartella lib, cioè lib/python2.5/site-packages/myproject '. Ho provato a copiare la biblioteca nel makefile, tuttavia non ha funzionato correttamente poiché la biblioteca aveva l'RPATH sbagliato (quello della build e non quello dell'installazione). Perché lo voglio lì? Perché lì ho anche gli involucri .py. Quindi, c'è un modo per dire a Libtool di installare il mio modulo da qualche altra parte e impostare correttamente l'RPATH?

Immagino che sto solo cercando una soluzione elegante, o forse la soluzione è lì ed è semplice ma non riesco a vederlo perché non ho abbastanza esperienza. Qualsiasi aiuto ?

PS preferirebbe l'opzione 2, se potessi farlo funzionare, poiché in questo modo non dovrei passare informazioni dagli autotool ai distutils.

Nessuna soluzione corretta

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