Ich seh schon, hier scheiden sich wieder Delphisten und Make-Schubser mit vollkommen verschiedenen Grundauffassungen
Insofern ziehe ich das mit dem Gar-Nicht-Erst-Angewöhnen mal vorerst zurück.
Ich lege mal meine Programmierroutine dar, dann versteht ihr vllt. meinen Standpunkt.
Gewöhnlich benutze ich Kate als Codeeditor, weil er einen Vi-Mode besitzt, und daher sehr komfortabel zum Schreiben ist. Um den Buildvorgang zu starten drücke ich Shift+F9, das schubst dann "make clean && make build" an, denn natürlich habe ich für jedes Projekt eine Makefile, die den Vorgang automatisiert, d.h. alle Quelldateien durch den M4-Präprozessor pipet und dann an den Compiler weitergibt, der daraufhin Assemblercode ausspuckt, der dann von AS assembliert und von LD gelinkt wird, natürlich nicht, ohne eine Mapfile zu erstellen. Die Suchpfade werden dabei per -Fu an den Compiler übergeben.
Die Makefile sehe ich daher als genau den richtigen Ort für diese Pfadangaben. Will ich das Projekt mal woanders kompilieren, wo die Dependencies vielleicht woanders liegen, dann muss ich in dem Fall einfach nur die Makefile abwandeln, und nicht etwa in den Quellcode eingreifen
Letzteres erscheint für mich unvorstellbar, schließlich sollte der Quellcode nicht davon abhängen, wo ich mich befinde. Allein schon der Verzeichnis-Trenner würde hier ein unglaubliches Hindernis darstellen.
Delphi-Quellcode:
{$ifdef WINDOWS}
uses unit1 in '...\unit1.pas';
{$elseif}
uses unit1 in '.../unit1.pas';
{$endif}
Wie sähe das denn aus, gleich für die Uses-Klausel schon Betriebssysteme unterscheiden zu müssen?
Der Buildprozess muss sowieso individuell auf die einzelnen Ziele angepasst werden, also kann ich die Unterscheidung lieber dort einbringen. Quellcode und Umgebung sind für mich genauso selbstverständlich zu trennen wie Staat und Kirche. Und Umgebung schließt nicht nur Betriebssystem und Prozessortyp, sondern auch die Verzeichnisstruktur mit ein.
Zitat von
jaenicke:
Lazarus ist halt eher für kleine Hobby-Projekte ausgelegt wie man an solchen Sachen eindrucksvoll bewiesen bekommt...
Das Problem liegt woanders. Lazarus versucht, Entwicklergruppen mit vollkommen verschiedenen Gewohnheiten zusammenzubringen. Auf der einen Seite
RAD-gewohnte Delphianer, die Lazarus entweder über Freiheit, Kosten oder Plattformunabhängigkeit lockt, und auf der anderen Compilerschubser wie mich, die von grundherein hohe Priorität auf Plattformunabhängigkeit legen, und dabei auch bedenken, dass wahrscheinlich noch andere als sie selbst, das Projekt kompilieren wollen, ohne am Quelltext fummeln zu müssen.
Oder in kurz: RADler vs. Fummler. Völlig verschiedene Gewohnheiten, die entsprechend unter einen Hut zu kriegen sind. Hobby vs. Professionell macht hier weniger den Unterschied.
Ich hoffe, ich konnte meinen Standpunkt und meine Gründe verständlich machen
Frohe Ostertage!