Wie verstehe ich eine Makefile?

OP (Firma: ---) #1537154
Lesenswert?

hi,

ich bin ein ganz neuer microcontrollerbesitzer und verstehe nicht was 
die makefile genau ist. Als Betriebssystem habe ich Linux (Ubuntu 9.10).

Jetzt die Fragen:

Muss man, wenn man ein Programm in dem Microcontroller übertragen will 
immer eine neue Makefile schreiben oder ist für jedes Programm die 
Makefile gleich?

Muss man dann unter Linux das Programm und die Makefile in einen Ordner 
und dann in das Verzeichnis wechseln und make eingeben, um eine 
hex-Datei tz kriegen?

Danke für jede Antwort
Gast #1537197
Lesenswert?

Kennst du schon die folgenden Artikel?

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Exkurs_Makefiles
http://www.mikrocontroller.net/articles/Beispiel_Makefile

Es ist möglich sich ein universellen Makefile zu schreiben, welches für 
viele Programme gleich funktioniert. Wenn Projekte dann weitere 
Quelldateien oder Einstellungen (Taktrate, Optimierung...) brauchen, 
kann man das universelle Makefile dann anpassen.

Ich mache das oft so - ein generisches Makefile für den aktuell 
benutzten µC. Ein fester Dateiname für die Quellcodedatei. Das wird dann 
in den aktuellen Projektordner kopiert. Ich halte pro Projekt alles 
zusammen gehörende, selbstgeschriebene in einem eigenen Ordner.
Gast #1538495
Lesenswert?

Für einen Mikrokontroller tut es normal auch ein Batch File zum Aufrufen 
des Compilers. Make hat natürlich ein paar Vorteile.

Titel: Make
Autor: Helmut Herold
Verlag: Addison-Wesley
ISBN: 3-8273-2095-X

ist eine sehr nette Einführung mit vielen Geheimtricks von Make und 
MakeMake beschreiben. Eigene Suffixregeln sind für Mikrocontroller 
abseits von Linux durchaus mal nützlich. Man sollte aber nicht meinen, 
daß man die Tiefen des Tools nur mal so durchlesen kann. Ansonsten 
natürlich die Original Doku von GNU in Englisch
Gast #1551908
Lesenswert?

das ./ haben schlaue Leute in Linux eingeführt, damit böse Buben nicht 
auf die Idee kommen, ein Skript mit gleichem Namen als irgend ein häufig 
verwendeten Kommandozeilenbefehl zu schreiben, welcher dann 
versehentlich ausgeführt wird. Aber da stolpern halt Viele ...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren