Wie erstelle ich ein Konfigurationsskript?

79

Dies mag nach einer sehr allgemeinen Frage klingen, aber hier geht es weiter.

Ich habe eine Verpflichtung einen Configure - Skript für meine Anwendung zu erstellen, das Ergebnis dieses configure wäre ein erzeugt werden makefile(Grund configure, make, make install). Meine Frage ist, wo fange ich damit an? Gibt es ein Beispiel, dem ich folgen kann?

Godzilla
quelle
1
books.google.com/…
William Pursell
6
Beziehen Sie sich auf Autoconf ?
Chrisaycock
So habe ich mit Autotools angefangen -> Autobook .
Shawn Chin
Vielleicht beziehen Sie sich auf das Video-Intro dwheeler.com/autotools und das Buch freesoftwaremagazine.com/books/…
Jichao

Antworten:

78

Um das Standard-Skript "configure" zu erstellen, benötigen Sie die automatische Konfiguration von GNU. Möglicherweise benötigen Sie auch GNU automake und libtool.

Es gibt jede Menge Dokumentation und Anleitungen. Google für so etwas wie "autoconf automake howto". Die gute Dokumentation finden Sie auf den offiziellen Handbuchseiten:

Autoconf erstellt Ihr Konfigurationsskript ausgehend von der Datei "configure.ac". Die Datei "Makefile.am" weist automake an, wie Sie Ihr Makefile mithilfe der Konfigurationszeichenfolge erstellen. Libtool wird benötigt, um die Handhabung von Bibliotheken um Ihren Code herum zu vereinfachen.

Sie können eine configure.ac-Datei von Hand erstellen oder den "Autoscan" -Helfer verwenden, der Ihnen dabei helfen kann, etwas Halbautomatisches für Sie zu erstellen.

Dann, wenn Sie bereit sind, wird dieser die Magie tun:

autoreconf -i
dAm2K
quelle
Dies wird auch von unix.stackexchange.com/questions/18673/… vorgeschlagen
Trevor Boyd Smith
GNU-Dokumente implizieren, dass es andere Tools zum Konfigurieren von Skripten geben könnte: gnu.org/prep/standards/html_node/Makefile-Conventions.html . Gibt es solche anderen Tools (außer natürlich dem Handbuch)?
Evan Benn
3

Manchmal wird ein Softwareprodukt ohne Konfigurationsskript ausgeliefert. Suchen Sie nach einem autogen.sh-Skript. es wird wahrscheinlich laufen:

aclocal || die "aclocal failed"
automake --add-missing --force-missing --copy --foreign || die "automake failed"
autoreconf || die "autoreconf failed"
Alan Jürgensen
quelle