[avr-gcc] Was macht "CFLAGS += -Wa,-adhlns=$(<:.c=.lst) "?

OP #2276374
Lesenswert?

Hi, ich bastle gerade ein wenig an Anjuta und versuche, dass Makefile 
dafür anzupassen. Ich habe aber ein Problem mit der Zeile


  CFLAGS += -Wa,-adhlns=$(<:.c=.lst)

Genauer gesagt mit dem Teil ab dem Komma. Sobald ich den Teil im 
Makefile habe spuckt Anjuta beim Laden eine Meldung aus, dass Projekt 
sei falsch gebaut oder sowas ähnliches.

Was macht der Teil genau und kann man das eventuell umschreiben?
#2276393
Lesenswert?

Die automatische Variable $< ist in make mit der ersten Abhängigkeit der 
aktuellen Build Rule belegt, das ist generell die Quelldatei.

Dann gibt es noch Substitutionen der Form $(var:.x=.y), das nimmt die 
Variable var und ersetzt die Endung .x durch .y.

In der verwendeten Kombination wird also der Name der Quelldatei 
genommen und die Endung .c durch .lst ersetzt. Soweit zum Makefile, was 
ist das Problem denn genau?
OP #2276404
Lesenswert?

Andreas B. schrieb:
> was ist das Problem denn genau?

Das kann ich leider nicht genau sagen. Ich versuche mich gerade daran, 
für Anjuta einen Project Wizard für den avr-gcc zu basteln. Aber sobald 
ich diese Zeile einbaue spuckt er einen Fehler aus, wenn das Projekt 
geladen wird. Aber die einzige Aussage der Fehlermeldung ist

"Falsch gebautes Projekt"

Auch die Konsole spuckt nicht mehr Informationen aus.

Anjuta verwendet an der Stelle Autogen. Ein Makefile Template wird mit 
Autogen bearbeitet. Eventuell stört sich Autogen an einer Zeichenfolge, 
die Autogen selbst verwendet.
#2276409
Lesenswert?

Bisschen Vorsicht mit solchen Ersetzungen. Wenn die Zeile mal irgendwo 
auftaucht, wo es nicht exakt .c heisst, dann wird nichts ersetzt und das 
Listing bügelt den Quellcode weg.

Weniger riskant ist es, wenn man bei solchen Ersetzungen vom Zielfile 
statt vom Quellfile ausgeht.

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