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

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