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?
-Wa ist eine Compileroption, die das, was nach dem , steht, an den Assembler weiterreicht. Das $ ist make-Magie, was zu Problemen führt, wenn der Compiler mit nicht-C Dateien gefüttert wird (*.S, *.cpp, *.sx, *.c++, *.C, ...)
http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/Assembler-Options.html#Assembler-Options http://www.cs.utah.edu/dept/old/texinfo/as/as.html#SEC9 http://www.gnu.org/software/make/manual/make.html#Automatic-Variables http://www.google.de Oliver
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?
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.
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.
Ok, Frage: kann man das umschreiben oder ganz weglassen? Das stammt aus dem Standard Makefile hier aus dem GCC Tutorial. Bisher hat es immer funktioniert. Hat jemand vielleicht ein einfacheres Makefile, welches ich als Basis verwenden kann? Bin leider kein Make Experte
Markus B. schrieb: > Ok, Frage: kann man das umschreiben oder ganz weglassen? Wenn du es weglässt, wird das .lst-File nicht mehr generiert. Wenn dich das nicht weiter stört, lass es weg.
Rolf Magnus schrieb: > Wenn du es weglässt, wird das .lst-File nicht mehr generiert. Wenn dich > das nicht weiter stört, lass es weg. Achso, würde mich im Moment nicht stören. Danke
Hier mal das erste Ergebnis meines Gebastels http://www.elektronik-projekt.de/thread.php?threadid=6888 Die fragliche Zeile hab ich noch weg gelassen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.