ANT vs Make



  • Hi,
    ich wollte ob es sinnvoll ist C++ Projekte über ANT bauen zu lassen oder ob man doch auf das gute alte Make zurück greifen sollte.

    Es gibt ja die ANT erweiterung ANT-Contrib mit der man Tasks zum compilieren und linken von C++ Code erstellen kann. Allerdings ist das letzte Update laut SF.net auch schon wieder ein gutes Jahr alt (entweder fallen gelassen oder einfach schon seit einem Jahr ausgereift, wobei die Aktivität und Downloadzahlen eher auf zweiteres hin deuten).

    Was meint ihr? Kann man schon guten gewissens sein Buildkonzept mit ANT realisieren oder sollte man doch bei Make bleiben? Was mich etwas stuzig macht ist die Tatsache dass man über ANT in Verbindung mit C++ nicht viel findet, scheint also als ob das ganze keinen großen Anklang in der öffentlichkeit findet. Obwohl ANT doch eigentlich ein super Tool ist und doch um einiges kompfortabler bzw. leichter zu handhaben als Make.

    Ich stelle mir die Frage auch deshalb weil ich evtl. eine Buildmaschine aufsetzen muss welche Output für verschiedene Systeme erzeugen soll. Gerade hier wäre ANT in meinen Augen von Vorteil da es Plattformunabhängig ist und man das Configfile (build.xml) nur minimal anpassen müsste.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ich mag f7.



  • Zu ANT kann ich nix sagen, weil ich es noch nie verwendet habe.
    Aber ich kann dir für deine Anforderungen Bakefile oder Scons ans Herz legen. Für letzteres muss man ein wenig Python können, für ersteres reicht es, wenn man weiss wie ein XML-File auszusehen hat. 😉
    Ich persönlich favorisiere allerdings Bakefile. Ganz einfach deshalb, weil es dir native Projektdateien und/oder Makefiles ausgeben kann.
    Hdh
    rya.



  • Warum willst du ein für Java konzipiertes Tool für C++ benutzen? Wir haben hier auch Ant für Java im Einsatz, würde aber nie auf die Idee kommen es in C++ einzusetzen. Weil es absolut keine C++-Ambitionen zeigt. (was auch völlig legitim ist)

    Es gibt andere leistungsfähige Tools für C++, ich benutze Boost Build v2 (BBV2). Vorallem ist es in der Praxis eingesetzt... halt mit Boost. Und Boost ist nicht gerade klein. 😃 Auch Adobe Source Library und andere Inhouse-Projekte benutzen es. Ich persönlich setze es auch ein.. wenn auch eher in kleineren Projekten. Einziger Nachteil bei BBv2 ist wohl, das die Script-Sprache eine eigene ist. Auch wenn sie eher einfach zu lernen ist.

    SCons wollte ich mir auch mal anschauen. Bei SCons sehe ich den Vorteil, das es zum Scripten Python benutzt und man somit keine Nischen-Sprache lernen muß. Aber von SCons gibts irgendwie keine 1.0 Version... das macht mir psychologisch immer etwas Probleme. 😉

    Make habe ich dagegen nie gemocht... dafür gibts einfach bessere Alternativen.



  • Wer braucht denn bei den heutigen IDEs noch makefiles? 😕



  • Meinst du wirklich makefiles von make? Oder überhaupt Build-Scripts?

    Build-Scripts braucht man. Eine IDE kann natürlich aus den Projekt-Settings ein solches Script bauen. Dann muß man nichts per Hand scripten. Richtig. Aber ich muß trotzdem ein Script nehmen können (ob make, ant, bbv2, scons oder was weiß ich) und es ohne IDE ausführen können. Z.B. weil ich Nightlybuilds oder Test-Fälle fahren will. Das wird z.B. auf einem Build-Server zu bestimmten Zeiten ausgeführt. Da wäre eine IDE nicht hilfreich.
    Manchmal muß man auch jemand anderem das Projekt zum Bauen geben können, der keine oder nicht die gleiche IDE hat. Dem gebe ich das Script und er kann trotzdem bauen.

    MSVC z.B. kann in der Konsole bauen, in dem es einfach die Projektdateien als Script benutzt. Funktioniert wunderbar! Ein Kommando in die Konsole absetzen, dann vielleicht noch angeben, das man nur release haben will, und im Hintergrund wird gebaut, ohne IDE.

    Also, Scripte sind nötig. Welche Typen, hängt dann nur noch von den Anforderungen und Geschmack ab.





  • hmmmm schrieb:

    Wer braucht denn bei den heutigen IDEs noch makefiles? 😕

    Artikel über Ant im C++-Magazin schrieb:

    Sämtliche Source-Dateien liegen auf einem CVS-Server[2], die neueste Version ist natürlich vor dem Build von dort zu beziehen. Danach soll der eigentliche Build-Prozess von statten gehen. Wird dieser korrekt beendet sollen automatisierte Tests am Ergebnis durchgeführt werden (Kurzfassung der Ergebnisse per Mail an den Projektleiter). Zu guter Letzt soll die computergenerierte Entwickler-Dokumentation erneuert werden und der fertige Build mit der richtigen Build-Nummer auf einen Web-Server geladen werden.

    MfG SideWinder



  • Wer braucht denn bei den heutigen IDEs noch makefiles?

    Bitte korrigieren wenn etwas davon nicht stimmt, aber mMn liegt der Anwendungsbereich solcher Build-Systeme vor allem in der Programmierung von Bibliotheken. Programme kann man einfach Binär ausliefern und ist das "Problem" los.
    Je breiter dann das Publikum (v.a. im OpenSource-Bereich, siehe wxWidgets (Bakefile)), desto mehr versch. Compiler werden benutzt. Klar kann man vorraussetzen, dass jeder an einen MinGW drankommt um die Lib zu benutzen, aber die meisten wollen doch lieber Ihre IDE inkl. Compiler verwenden, die sie gewohnt sind. Und leider Gottes hat man sich hier auf kein allgemeines Format geinigt, nichtmal unter Windows. Die Visual Studio Libs kann man meistens nicht mit Borland oder MinGW verwenden, daher muss man sich die extra bauen. Ist der Code noch XPlatform, steigert das noch das Problem.
    Und genau dafür sind solche Build-System goldrichtig. Man schreibt ein Script und daraus werden dann die Makefiles/IDE-Projekte für die jeweilige Platform generiert (Bakefile) oder das Script ruft den Compiler selber auf. (Jam als Bsp., von Boost)
    rya.



  • Danke erst mal für die vielen Antworten. Ich hab jetzt mal SCons ausprobiert und ich muss sagen ich bin hellauf begeistert! Gerade die Tatsache dass die "Configfiles" eigentlich Pythonscripten sind (und auch als solche interpretiert werden) eröffnet einem völlig neue Möglichkeiten.

    Gut, die Einarbeitung hat mich jetzt schon einige Stunden in Anspruch genommen (wobei ich dazu sagen muss dass ich mir erst mal einiges an Python Stuff reinziehen musste), aber wenn man erst einmal den Dreh raus hat ist SCons ein sehr mächtiges Tool.

    Super danke 🙂 👍


Anmelden zum Antworten