Question

Je travaille sur un projet écrit en C, en utilisant les AutoTools, qui produit une bibliothèque statique. Je fournis également une interface Python à l'API C dans le contexte du même projet. Je n'ai eu l'autorisation que récemment pour introduire Libtool dans le projet, afin de pouvoir fournir des bibliothèques statiques et dynamiques de manière portable. Jusqu'à présent, je produisais le module partagé Python à l'aide des Distutils et je liais le module Python à la bibliothèque statique C du projet. Encore une fois, c'est parce que je n'ai pas été autorisé à introduire des bibliothèques Libtool / partagées dans l'écuation. Maintenant que je veux mettre Libtool, je suis confronté aux deux scénarios problématiques suivants:

  1. Si je continue de produire le module partagé Python à l'aide des Distutiles, puisque les Distutiles et les AutoTools ne se parlent pas, je dois dire aux Distutils à quel bibliothèque C à relier. Jusqu'à présent, je ne peux penser à aucune façon de le faire, mais l'analyse du fichier .la pour obtenir le nom et le chemin de la bibliothèque que Libtool a pu produire. Libtool fournit-il des informations concernant le type de bibliothèque qu'il a pu produire sur un système?

  2. Si je déplace la production de module Python vers Automake, c'est bien, jusqu'à ce que j'atteigne le processus d'installation. Je n'ai pas l'idée de dire à Libtool que je veux mon module Python ailleurs, mais le dossier lib, c'est-à-dire 'lib / python2.5 / site-packages / myproject'. J'ai essayé de simplement copier la bibliothèque dans le Makefile, mais cela ne fonctionnait pas correctement car la bibliothèque avait le mauvais RPATH (celui de la construction et non celui de l'installation). Pourquoi est-ce que je le veux là? Parce que là j'ai aussi les emballages .py. Alors, existe-t-il un moyen de dire à Libtool d'installer mon module ailleurs et de définir correctement le RPATH?

Je suppose que je cherche juste une solution élégante, ou peut-être que la solution est là et c'est simple mais je ne peux pas le voir car je ne suis pas assez expérimenté. De l'aide ?

PS préférerait l'option 2, si je pouvais le faire fonctionner, car de cette façon, je n'aurais pas à transmettre des informations des AutoTools aux Distutils.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top