www.mikrocontroller.net

Forum: Compiler & IDEs Frage zu make


Autor: A. Füßer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi *!

Leider kenn ich mich mit make (AVRGCC) nicht aus. Gibts ne Möglichkeit 
grundsätzlich alle unter "src" aufgeführten Dateien (im makefile) neu 
übersetzen zu lassen?

Danke,
 André Füßer
--
http://www.canathome.de - Hausautomation mit AVR + CAN

Autor: Lanius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, gibt es.

du must nur die Regeln ändern...

make hat aber ne besch... syntax, wenn du keine Make-Hilfe hast, besorg 
dir am besten eine für GCC.
Bei mir war eine Windows-Hilfe mit im bin-Ordner.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme an du verwendest das (schon fast zum Standard gewordene) 
gcctest-makefile? Wenn du die Dependencies am Ende der Datei weglässt 
wird immer alles neu übersetzt.

MfG
Andreas

Autor: A. Füßer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Andreas,

ich verwende das gcc-makefile, am Ende steht:
----------
#compiler flags
  CPFLAGS  = -g -O2 -Wall -Wstrict-prototypes -Wa,-ahlms=$(<:.c=.lst)

#linker flags
  LDFLAGS = -Wl,-Map=$(TRG).map,--cref

########### you should not need to change the following line 
#############
include $(AVR)/include/make2

###### dependecies, add any dependencies you need here 
###################

$(TRG).o : $(TRG).c
----------
wenn ich jetzt die letzte Zeile auskommentiere, dann ändert sich 
nichts. Was mache ich falsch?

@Lanius: Danke für den Tip, aber in der Hilfe seh ich vor lauter Bäumen 
den Wald nimmer...

Hintergrund: Ich benutze für mehrere Projekte die gleichen Includefiles, 
ab und zu ändern die sich. Wenn ich dann ein anderes Projekt kompilieren 
will, das noch mit einem alten inc. gebunden wurde, eine neuere Version 
des inc.files aber schon fertig compiliert vorliegt, dann wird das nix, 
d.h. die alte Chose wird/bleibt dazugebunden. Deshalb will ich immer 
alle neuübersetzen, richtig so?

Danke,
 André.

--
http://www.canathome.de - Hausautomation mit AVR + CAN

Autor: Lanius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>@Lanius: Danke für den Tip, aber in der Hilfe seh ich vor lauter Bäumen den Wald 
nimmer...

mehr sehe ich da leider auch nicht, hab auch im Netz keine bessere Hilfe 
gefunden :(
make mag ja praktisch sein, aber bis man da durchsteigt kann man 10 
batch-dateien schreiben.

Mein Makfile für 8051 und SDCC läuft jetzt zwar, aber über eine bessere 
Beschreibung der Syntax würde ich mich echt freuen

Autor: Michael Schänzler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Gibts ne Möglichkeit grundsätzlich alle unter "src" aufgeführten Dateien (im 
makefile) neu übersetzen zu lassen?

Einfache, aber nicht wirklich elegante Lösung: make clean, make.

Wenn die Projekte alle miteinander zusammenhängen, ist es besser ein 
globales Makefile zu benutzen, das die entsprechenden dependencies 
enthält. Ist es für Can@home?

Die Syntax von Make ist aber wirklich ziemlich obskur, meine absolute 
Lieblingsfehlermeldung ist:

*** missing separator (did you mean TAB instead of 8 spaces?)

Michael
-------
http://www.avr-lcd.de

Autor: Jonas Diemer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Also für GNU make (das auch beim avr-gcc verwendet wird), gibt es ne 
anleitung:

http://cip.physik.uni-wuerzburg.de/virtualmanuals/...

die is recht komplett, und es gibt auch ne gute intro (Wenn man wenig 
zeit hat) :

http://cip.physik.uni-wuerzburg.de/virtualmanuals/...


dazu muss man natürlich auch wissen, wie man mit avr-gcc umgeht :-)

Autor: A. Füßer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Einfache, aber nicht wirklich elegante Lösung: make clean, make.

so mach ichs jetzt. Und noch einen schönen Button in Ultraedit 
integriert und fertig is. Aber was ist daran nicht elegant? (weil es den 
Sinn von make ad absurdum führt?)

>Wenn die Projekte alle miteinander zusammenhängen, ist es besser ein globales 
Makefile zu benutzen, das die entsprechenden dependencies enthält. Ist es für 
Can@home?

Für was sollte es sonst sein? :-)
Globales Makefile ist mir zu aufwendig. Ich pflege lieber pro Projekt 
ein makefile - das erscheint mir einfacher.

Danke für Hilfe,
 André.

--
CAN@home - http://www.CANathome.de - Hausautomation mit AVR + CAN

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.