Wie hat eine Makefile für alle Files auszusehen?
-
Ich möchte eine makefile haben, die alle .cpps im aktuellen Ordner kompiliert (wenn sie älter als die .exes sind).
Miene bisherige sieht so aus:
# == Compiler settings == # To change the compiler, just edit the following # lines to your specific compiler commands. COMPILER = gcc OUTPUT_COMMAND = -o .SUFFIXES: .exe .cpp #Build rule from .cpp to .exe .cpp.exe: $COMPILER $< OUTPUT_COMMAND all: Const.exeUnd so rufe ich es auf:
g++ make makefile
aber ich bekomme immer nur
makefile: no such file or directory ausgegeben, obwohl ich im richtigen Verzeichnis bin und die Datei auch einfach nur makefile heißt, ohne Endung.In der makefile würde ich jetzt hinter all all die Files eingeben, die kompiliert werden sollten.
Was mache ich in der makefile alles falsch, bzw. gibt es irgendeine makefile, die gnadenlos jede (zu alte) File kompiliert, ohne, dass man alles eintragen muss?

-
Da ist sehr viel falsch, du solltest dich nochmal mit den Grundlagen von Makefiles beschäftigen. Die gröbsten Fehler:
- Dein Makefile ist intern inkonsistent und selbst wenn es funktionieren würde, wären die Kommandos Blödsinn
- Make ist ein eigenständiges Programm und hat mit dem Compiler nix zu tun. Man ruft es gewöhnlich einfach mittels 'make' auf und es wird dann das Makefile im aktuellen Verzeichnis verarbeitet.
- Du willst die cpp kompilieren, wenn sie älter als die exes sind? Wozu soll das gut sein? Ich bin nichtmal sicher, ob make das überhaupt kann.
-
SeppJ schrieb:
Da ist sehr viel falsch, du solltest dich nochmal mit den Grundlagen von Makefiles beschäftigen. Die gröbsten Fehler:
- Dein Makefile ist intern inkonsistent und selbst wenn es funktionieren würde, wären die Kommandos Blödsinn
- Make ist ein eigenständiges Programm und hat mit dem Compiler nix zu tun. Man ruft es gewöhnlich einfach mittels 'make' auf und es wird dann das Makefile im aktuellen Verzeichnis verarbeitet.
- Du willst die cpp kompilieren, wenn sie älter als die exes sind? Wozu soll das gut sein? Ich bin nichtmal sicher, ob make das überhaupt kann.
- Ich meinte natürlich umgekehrt.
Und wie hätte nun ein makefile auszusehen, das einfach alle Dateien in einem Ordner kompiliert? Das ist erst einmal das einzige Anwendungsgebiet, das ich brauche, deswegen habe ich mich auch dagegen entschieden, mich länger mit makefiles auseinanderzusetzen - sondern erst dann, wenn ich wirklich einen anderen Verwendungszweck finden sollte.
-
Dann guck dir mal das ultimative Makefile an. Das ist für die meisten einfachen Zwecke gut geeignet.