make und Parameter mitgeben

OP #2131826
Lesenswert?
• ▲
▼
Hallo, ich hab es schon mal vor einiger Zeit verwendet doch finde den 
Artikel nicht mehr.

Es geht darum, das ich im aktuellen Projekt zwei verschiedene SW-Stände 
führen will. RELEASED und test zB. Nun habe ich im Code mit #if RELEASE 
-> #endif den getesteten Code eingeklammert und ausserhalb des 
#if-Bereichs den neuen Code stehen.

Nun würde ich gerne beim make-Aufruf RELEASE mitübergeben oder nicht, je 
nachddem ob ich getesteten Code ins HEX schreiben will oder nicht. Mir 
ist bewusst das ich RELEASE you mit #define im Code setzen könnte, will 
es aber nicht. Die make Option -D funktioniert nicht, zumindest so wie 
ich sie bis jetzt ausprobiert habe.

Aktuell benutze ich Eclipse und AVR Plugin (neu für mich) und ändere den 
make-Aufruf im Project-Properties-Builder Settings-Build command:
Vielleicht ist auch das Schuld?!

Schon mal danke für eure Antworten.
Gast #2131926
Lesenswert?
• ▲
▼
Beim GNU make kann man Variablen direkt beim Aufruf setzen:
1
make RELEASED=1

Im Makefile kann man dann entsprechend darauf reagieren, die Zuweisung 
beim Aufruf überschreibt Zuweisungen im Makefile.
Gast #2131997
Lesenswert?
• ▲
▼
Daniel Ple schrieb:
> Die make Option -D funktioniert nicht, zumindest so wie
> ich sie bis jetzt ausprobiert habe.

Hm. Dann hast du da was falsch probiert. Ein -DRELEASE in den 
Compileroptionen funktioniert garantiert.


Daniel Ple schrieb:
> Aktuell benutze ich Eclipse und AVR Plugin (neu für mich) und ändere den
> make-Aufruf im Project-Properties-Builder Settings-Build command:
> Vielleicht ist auch das Schuld?!

Den Aufruf von make solltest du in Ruhe lassen. Alles, was make machen 
soll, steht im makefile. Das erstellt Eclipse zwar automatisch, du 
kannst aber in den settings unter C/C++ angeben, was mit drinstehen 
soll. Fügst du da unter Compiler/other option besagtes -DRELEASE hinzu, 
klappts auch mit dem makekfile.

Oliver
Gast #2133901
Lesenswert?
• ▲
▼
Daniel Ple schrieb:
> Nun würde ich gerne beim make-Aufruf RELEASE mitübergeben oder nicht, je
> nachddem ob ich getesteten Code ins HEX schreiben will oder nicht

Das wäre für mich das make target, also:

make release

oder

make debug

im Makefile jeweils ein entsprechendes Target einrichten, bei dem die 
passenden #defines beim Compileraufruf gesetzt werden. Nach dem Linken 
kann man dann auch gleich den Programmer starten.

MfG Klaus

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.