2010-09-28 3 views
7

Wie nutzen moderne Unternehmen ihre Projekte?Was verwenden Unternehmen, um ihre Binärdateien zu erstellen?

Insbesondere bei großen Projekten scheinen Makefiles nicht verwertbar genug zu sein, um skalierbar zu sein. Soweit ich das beurteilen kann, verwenden viele Unternehmen entweder interne Build-Systeme oder interne Skripte, die über bestehende Build-Systeme hinausgehen.

Verwenden große Projekte verwenden? Wird reine Ant, Maven, etc verwendet oder ist es mit einem Skript umwickelt?

+3

Wenn Sie denken, dass Makefiles nicht skalierbar sind, können Sie make nicht verwenden. Leider bedeutet dies, dass Sie in der Überzahl sind. Hier ist ein guter Grund für die richtige Verwendung von make: http://miller.emu.id.au/pmiller/books/rmch/ –

+1

Wie groß ist groß? Der Linux-Kernel, der noch benutzt wird, macht das letzte Mal, als ich ihn gebaut habe. So auch der Apache httpd Server. – JeremyP

Antwort

4

Eine Menge verwenden CMake in diesen Tagen, die Makefiles für verschiedene Plattformen automatisch generiert. Leider CMake hat seine eigene (seltsame) interne Sprache, weshalb ich persönlich SCons bevorzuge - alles, was es natürlich nicht tun kann, kann leicht hinzugefügt werden - schließlich ist es nur Python-Code. Werfen Sie einen Blick auf die list of OS projects using SCons. Viele von ihnen sind ziemlich große und nicht-triviale Multi-Plattform-Builds.

2

Wir verwendeten Intel-Compiler mit benutzerdefinierten SCons-Skripten, die bei meiner letzten Firma in Python geschrieben wurden. Die Entwicklung erfolgte in C++. Die von uns veröffentlichten Produkte waren riesige visuelle Softwarepakete.

SCons: „SCons ist ein Open-Source-Software Bau Werkzeug, die die nächsten Generation Build-Tool ist von SCons Denken als einen verbesserten, plattformübergreifende Ersatz für den klassischen Make-Dienstprogramm mit integrierten Funktionalität ähnlich wie autoconf./automake und Compiler-Caches wie ccache. Kurz gesagt, SCons ist ein einfacher, zuverlässiger und schneller Weg, um Software zu bauen. "

+0

Was meinen Sie mit "benutzerdefinierte SCons-Skripte?" –

+0

Da Sie eine benutzerdefinierte Build-Datei für Ihren Code hätten, hätten Sie für diesen Zweck ein benutzerdefiniertes SCons-Skript. – Martin

1

make und makefile ist so natürlich C wie ant-java

+0

Wie schreibt man ein Makefile für ein großes Projekt? Ein skalierbares, verwendbares Makefile? Am nächsten habe ich http://www.xs4all.nl/~evbergen/nonrecursive-make.html gesehen und das hat immer noch Probleme. –

+1

@Alex: Ich habe an einem großen Projekt (ein OS, mit begleitender JVM) gearbeitet, das make gemacht hat. Es war rekursiv auf der obersten Ebene, und dann entschied jede Komponente ad hoc, ob sie selbst groß genug war, dass rekursives Making problematisch wäre oder nicht. So werden einige Komponenten rekursiv erstellt, andere in ihrer eigenen Wurzel. Die JVM war der langsamste Teil, nicht zuletzt, weil sie mehrere Versionen nebeneinander aufbaute.Es verwendete einige ziemlich haarige Makefiles mit einem Skript, das 'make' sich selbst wickelte. Ich erinnere mich nicht an die Details, aber es war einfach genug, ein neues Verzeichnis hinzuzufügen und einen beliebigen Unterbaum zu erstellen. –

+0

Oh, und alle gängigen Java-Bibliotheksklassen wurden mit diesem Äquivalent von JNI optimiert, weshalb die JVM so groß war und auch, warum sie mit 'make' und dem Assembler anstatt' javac' erstellt wurden. –

0

Einige große Projekte (zum Beispiel Boost) für eine der Jams machen vermeiden.

2

Jedes Produkt, an dem ich in mehr als 10 Jahren bei Telekom-OEMs gearbeitet habe, hat make genutzt. Einige waren relativ klein, andere waren weit über 1M SLOC. Der größte Teil der Quelle war c, mit einer signifikanten Menge von C++. Die meisten verwendeten 3rd-Party-Quellen und alle die Anbieter versenden Makefiles mit ihren Produkten.

Denken Sie daran, dass das System, das Sie zum Erstellen Ihres Produkts verwenden, Software ist. Unabhängig davon, ob diese Build-Software in make, SCONs oder einer anderen Sprache/einem anderen System geschrieben wurde, müssen Sie die Sprache verstehen, die Sie verwenden, um die Software zu schreiben, die Ihr Produkt erstellt. Wenn Sie dies nicht tun, riskieren Sie die Einführung von Fehlern in Ihrem Produkt, die durch ein falsches Build-System verursacht werden.

+0

War es eine rohe Marke oder wurde ein Wrapper-Skript verwendet, um ein korrektes Makefile zu erstellen? –

+0

Es war alles rohe Marke. – bstpierre

+0

Ich sollte sagen * fast * jedes Produkt, an dem ich gearbeitet habe ... es gab ein Paar, das DOS-Batch-Dateien benutzte, aber ich versuche dieses unheilige Chaos aus meinem Gedächtnis zu entfernen. – bstpierre

Verwandte Themen