On Wed, 2004-10-13 at 20:56, Lothar Behrens wrote:
Hi,
ist ja schon lustig, worüber diskutiert wird, wenn einer eine technische Frage zu make stellt. <Seufz/>
Es gibt so viele Makefiles, deren Entwickler glaubten, cleverer zu sein, als Generationen von Entwicklern vor ihnen ...
Ack. Ich habe aber nicht vor mit meinen makefiles automake in den Schatten zu stellen :-) Mein Ziel ist nur, mit einem ähnlichen Ansatz mir das schreiben neuer makefiles zu ersparen. Ich hatte ein Tool gefunden, das dies für meinen Compiler (Watcom unter Windows) tut. Ich hatte überlegt, automake wenigstens mal anzusehen. Nur schien mir das für einen 'Anfänger' bei makefiles zu schwierig. Die Überlegung war ja auch, unter beiden Platformen das gleiche Make System zu haben. MKMK tut dies für mich und damit bin ich zufrieden. Ich habe bis jetzt leider auch nur Kontakt mit einem Entwickler aus Atlanta, der sich dazu Äussern konnte. Das reicht aber nicht um mein Make System zu wechseln (gut oder schlecht).
Anders ausgedrückt: Ich halte den Versuch manuell portable Makefiles schreiben zu wollen, für "im Ansatz verfehlt", für "zum Scheitern verurteilt" und für Selbstüberschätzung.
Meine sind nicht ganz automatisch, aber ich arbeite daran :-)
* Wenn schon manuell, dann ganz richtig proprietär. Also wenn schon proprietär unter Linux, dann echtes gnumake. * Wenn portabel, dann unter Verwendung von Tools. Ich empfehle automake, in erster Linie deshalb, weil es ein weit verbreitetes Framework zur Erstellung von portablen Makefiles ist, die auf einer Vielzahl von Plattformen funktionieren.
auch unter Windows (automake) ?
Zum Thema:
Wenn einer ein make dist ausführt, kennt Er/Sie diese Vorgehensweise eigentlich, oder ?
Wenn jemand gewaltsam eine make variable überschreibt - selber schuld. Nein, das ist Bestandteil der Arbeitsweise von make (Ein Feature).
Natürlich. Nur sollte der Nutzer auch wissen was dann passiert. Ich kann zwar eine Liste von Targets auf 'leer' überprüfen und geeignet reagieren. Mein Make System ist noch nicht 'Boilerplate'
Es ist deine Aufgabe als Entwickler, dafür zu sorgen, dass ein Makefile das tut, was Du willst, dass es tut.
Klar
Ich teste schlieslich nicht den Misbrauch meiner makefiles. Oder sollte ich das ? Es liegt in deinem Ermessen festzulegen, was deine Makefiles tun sollen.
Willst Du einen "simplen Hack", der "für Dich tut", oder willst Du eine komplexe Infrastruktur, die in unterschiedlichsten Umgebungen von vielen Entwicklern und Benutzern genutzt wird?
Nicht nur für mich alleine, nur das Testen ist mit ein paar weiteren Testern sicher einfacher.
Da meine Software ein Framework zur Softwareentwicklung ist, halte ich ein make dist als Ansatz für die Distribution für sinnvoll.
Der Benutzer meiner Distribution muss nur sein eigenes Werk einklinken und er hat am Ende eine saubere Distribution.
Sehe ich da etwas völlig falsch ? Ja. Grundsätzlich ist "dist" ein x-beliebiges make-Target. Was es genau tut, liegt im Ermessen des Entwicklers und wird von ihm festgelegt.
Für GNU-kompatible Pakete ist das Verhalten von "make dist" in den GNU-Standards beschrieben (Vgl. info standards). Automake-basierte Makefiles implementieren das Verhalten wie es in den GNU-Standards beschrieben wird.
Nicht-GNU-Pakete kennen "make dist" üblicherweise nicht.
Standart hin oder her, ich werde vielleicht später mal schauen, ob
ich mein Make System dem Standart anpassen muss und wie viel.
Ich habe mit meiner Variante jedenfalls folgende Möglichkeiten:
Ein Makesystem (aufruf mit make)
Windows (MSC/Watcom/
Ralf
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-programming-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-programming-help@suse.com
---- My home: www.lollisoft.de ----------------------------- Lothar Behrens | Independent: lothar.behrens@gmx.de Rosmarinstr 3 | My public project: 40235 Düsseldorf | http://sourceforge.net/projects/lbdmf | -> Need comments, please visit :-)