Atmel Studio: Compilieren von Varianten und Post-Build-Macros

Gast #3305696
Lesenswert?
• ▲
▼
hallo Experten,

ich plage mich mit folgendem Problem
(Atmel Studio 6.0, 6.1, 5.0, avr_gcc, avr32_gcc):

Ich erzeuge aus einem Quellcode mehrere Varianten.
Dazu setze ich
-- erstens einen Macro #define VARIANTE_SPEZIAL_1 oder so in einer 
zentralen Include.Datei.
--zweitens: Das Feld Artifact Name in den Properties des Projektes auf 
einen passenden Namen, z.b. OutputSpezial_1
Diese beiden Schritte muss ich immer parallel machen.
Einen Weg, das ganze auf einen Macro oder ein #define zu reduzieren habe 
ich nicht gefunden.
OK, nicht optimal, aber damit kann ich leben.

Der Compiler compiliert brav und erzeugt die richtige 
OutputSpezial_1.elf und ggf. auch eine OutputSpezial_1.hex, .lss etc.

So weit, so gut.

Nun möchte ich zusätzlich eine BIN-Datei erzeugen, die ich meinem 
Bootloader zum Fraß vorwerden kann.
Kein Problem, denke ich, dafür gibts das Post-Build-Event.
Und da gibts auch noch die wunderbaren Macros, z.B $(OutputFile).
Leider enthält $(OutputFile) immer den erstmalig vergebenen Artifact 
Name. Wie auch immer ich den ändere, es bleibt dabei.
Wenn ich genauer hinschaue, habe ich jetzt aber zwei Macros 
$(OutputFile).
Einer mit dem ursprünglichen Namen, und einer mit dem gewünschten (wie 
Artifact)
Wenn ich noch genauer hinschaue, kann ich sehen, dass die beiden auch in 
der Projektdatei enthalten sind.
Ich kann sie auch editieren, dann erhalte ich das gewünschte Ergebnis. 
Natürlich nur bis zur nächsten Änderung. Wenn ich den "falschen" Macro 
lösche, ist der Output-Filename leer, ich generiere also ".elf" etc,
obwohl der richtige Macro in der Projektdatei drin steht, aber offenbar 
zu weit hinten.
Ist das ein Bug oder ein Feature? Hat jemand eine Lösung dazu? D.h. eine 
Variable. mit der ich die Output-Dateien sowohl beim Make als auch beim 
Postbuild festlegen kann? Am besten noch mit seinem #define-Macro 
verbunden.

Einen erfolgreichen Tag
Hartmut

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.