2010-03-04 24 views
10

Etre parfaitement satisfait de Makefiles à l'ancienne, je suis à la recherche d'une alternative simple à libtool. Je ne veux pas passer à automake, et je continue à rencontrer des problèmes avec libtool quand j'essaie de l'utiliser directement. La dernière en date est 'les propriétés de hardcode non supportées', et j'en ai marre du manque de documentation complète qui me dit ce qui ne va pas cette fois ...Alternative libtool simple?

Je veux seulement compiler un tas de fichiers .o avec les bons drapeaux, puis les lier dans une bibliothèque partagée, de sorte qu'elle fonctionne sur autant de plates-formes que possible. Y a-t-il quelque chose qui ne fait que cela et ne me force pas à changer tous mes autres outils en même temps?

+3

Comment l'utilisation d'automake implique-t-elle que vous devez changer tous vos outils? Écrire vos propres fichiers makefiles signifie que vous devez inclure manuellement le support pour un * lot * de choses que automake fait automatiquement pour vous. Quand je suis passé à l'automake, une seule chose a changé: mes Makefiles de 150 lignes sont devenus des Makefile.ams à 10 lignes. Tous les autres outils sont restés les mêmes. –

Répondre

3

Il ya jlibtool (qui n'a rien à voir avec java).

Il est écrit en C, et peut simplement être livré avec votre source.

Il était à l'origine un apache project, mais celui qui travaillait là autour de 2004.

semble de abandonné a été repris par FreeRADIUS responsable du projet Alan Dekok, qui a modernisé le code et fixé quelques questions tatillonne. Nous l'utilisons pour le projet FreeRADIUS (> = 3.0.0) pour faire tout le lien de compilation.

6

Je ne sais pas si cela correspondrait à votre flux de travail, mais je vous recommande de regarder CMake. Il fonctionne sur Windows, Linux et Mac et ne devrait pas vous obliger à changer vos autres outils. Vous devrez cependant juger de son adéquation.

+0

Je connais CMake, mais c'est un peu plus que ce que je cherchais. Je ne veux pas passer mon système Makefile à autre chose, je veux juste un outil que je dis: "donnez-moi les drapeaux du compilateur afin que je puisse compiler ces n fichiers pour une utilisation dans une bibliothèque partagée, puis donnez-moi le commandes pour les lier ensemble ". –

3

Étant donné votre description dans le commentaire à la réponse de Milliams,

Je veux juste un outil que je dis: « donnez-moi les drapeaux du compilateur afin que je puisse compiler ces n fichiers pour une utilisation dans une bibliothèque partagée , puis donnez-moi les commandes pour les lier ensemble ",

alors libtool pourrait bien être l'outil le plus simple pour ce travail. Je ne connais pas d'autre alternative.

Vous avez raison de dire que la documentation sur l'utilisation de libtool avec des fichiers makefiles est quasiment inexistante, mais libtool n'exige pas de passer à automake. Les bibliothèques multi-plateformes sont difficiles, et le prix à payer pour ces bibliothèques est libtool. (Ou peut-être le prix réduit est libtool + automake + autoconf ou CMake ou Jam.)

+0

J'avais peur de cette réponse ... Y at-il peut-être quelqu'un qui sait quelle est la méthode recommandée pour configurer libtool dans configure.in, sans le faire par automake? (c'est-à-dire en utilisant juste autoconf, pas automake). –