2010-03-04 8 views
10

Da ich mit alten Makefiles vollkommen zufrieden bin, suche ich nach einer einfachen Alternative zu libtool. Ich möchte nicht auf automake umsteigen, und ich bekomme immer wieder Probleme mit libtool, wenn ich versuche, es direkt zu benutzen. Die neueste ist "nicht unterstützte Hardcode-Eigenschaften", und ich habe genug von der fehlenden Dokumentation, die mir gerade sagt, was diesmal falsch ist ...Einfache Libtool Alternative?

Ich möchte nur eine Reihe von .o-Dateien mit kompilieren die richtigen Flags und verknüpfen Sie sie dann in einer gemeinsamen Bibliothek, so dass es auf so vielen Plattformen wie möglich funktioniert. Gibt es etwas da draußen, das genau das tut und mich nicht dazu zwingt, alle meine anderen Werkzeuge gleichzeitig zu wechseln?

+3

Wie bedeutet die Verwendung von Automake, dass Sie alle Ihre Werkzeuge wechseln müssen? Das Schreiben eigener Makefiles bedeutet, dass Sie manuell Unterstützung für eine Menge von Sachen, die automake automatisch für Sie erledigt, einbinden müssen. Als ich zu automake wechselte, änderte sich nur eines: meine Makefiles mit einer Länge von 150 Zeilen wurden weit mehr als 10 Zeilen Makefile.ams. Alle anderen Werkzeuge blieben gleich. –

Antwort

3

Es gibt jlibtool (was nichts mit Java zu tun hat).

Es ist in C geschrieben und kann nur mit Ihrer Quelle gebündelt werden.

Es war ursprünglich ein apache project, aber es gibt wer arbeitete scheint es aufgegeben von rund 2004

Es wurde von Freeradius Projektmaintainer Alan Dekok übernommen, die den Code modernisiert und einige nagende Probleme behoben. Wir verwenden es für das FreeRADIUS-Projekt (> = 3.0.0), um die gesamte Build-Zeit-Verknüpfung durchzuführen.

6

Ich bin mir nicht sicher, ob es zu Ihrem Workflow passen würde, aber ich würde empfehlen, auf CMake zu schauen. Es funktioniert unter Windows, Linux und Mac und sollte Sie nicht zwingen, Ihre anderen Tools zu ändern. Sie müssen seine Eignung jedoch selbst beurteilen.

+0

Ich bin bewusst CMake, aber das ist ein bisschen mehr als das, was ich gesucht habe. Ich möchte nicht mein Makefile-System zu etwas anderem wechseln, ich will nur ein Werkzeug, das ich sage: "Gib mir die Compiler-Flags, so dass ich diese n Dateien für die Verwendung in einer gemeinsam genutzten Bibliothek kompilieren kann, und dann geben Sie mir die Befehle, um sie miteinander zu verbinden ". –

3

Ihre Beschreibung in der Anmerkung zu Milliams' Antwort,

ich nur ein Werkzeug will, dass ich sagen: „Gib mir den Compiler-Flags, so dass ich diese n-Dateien für die Verwendung in einer gemeinsam genutzten Bibliothek kompiliere und dann geben Sie mir die Befehle, um sie miteinander zu verknüpfen ",

dann kann Libtool durchaus das einfachste Werkzeug für den Job sein. Ich kenne keine andere Alternative.

Sie haben recht, dass die Dokumentation für die Verwendung von libtool mit einfachen Makefiles praktisch nicht existiert, aber libtool erfordert sicherlich nicht, dass Sie zu automake wechseln. Cross-Plattform-Bibliotheken sind schwierig, und der Preis, den Sie dafür bezahlen müssen, ist libtool. (Oder vielleicht ist der Rabattpreis libtool + automake + autoconf oder CMake oder Jam.)

+0

Ich hatte Angst vor dieser Antwort ... Gibt es vielleicht irgendjemanden, der weiß, was der empfohlene Weg ist, libtool in configure.in einzurichten, ohne dies durch automake zu tun? (d.h. nur autoconf verwenden, nicht automake). –

Verwandte Themen