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 ... 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. * 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.
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).
Es ist deine Aufgabe als Entwickler, dafür zu sorgen, dass ein Makefile das tut, was Du willst, dass es tut.
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?
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. Ralf