Axel Rühl wrote:
> Wozu dient denn der 'clean' Befehl dann eigentlich, wenn er nicht
> benötigt wird.
Eben zum Aufräumen, wie der Name ja eigentlich sagt. Die Idee dahinter
ist, dass man hinter dem "clean"-Target im Makefile alle Aktionen
anordnet, die vorgenommen werden müssen, um sämtliche im Build-Prozess
generierten Dateien wieder zu löschen, d. h. man kehrt zum Zustand
vor dem Beginn des Compilierens zurück.
Zuweilen nimmt man an einem Projekt auch mal Änderungen vor, die im
Makefile nicht als Abhängigkeit erfasst worden sind. Denkbar ist
beispielsweise in unserem Zusammenhang, dass man den Zielprozessor
vom ursprünglich angedachten ATmega88 auf einen ATmega168 hochgedreht
hat. Damit sind alle bereits existierenden Objektdateien hinfällig.
Nun könnte man loslegen und alle Objektdateien noch vom Makefile
abhängig machen, damit sie nach jeder Änderung des Makefiles automatisch
neu gebaut werden. Das lohnt aber eigentlich nicht, da diese Änderung
praktisch einmalig innerhalb der Lebenszeit des Projekts war. Dann
bietet es sich als Krücke an, dass man vor dem nächsten "make" eben
mal schnell ein "make clean" reinwirft, um von vorn anzufangen.