Hallo, zusammen, ich habe mir gerade den AVR-GCC unter Linux installiert. Ich habe die Dateien von der savannah-Seite genommen und die Patches ausgeführt sowie die Dateien selbst kompiliert. Jetzt habe ich mir mit dem mfile-Tool von Jörg Wunsch ein Makefile erstellt. Allerdings bekomme ich immer die Fehlermeldung: "Makefile:194: *** Recursive variable 'CFLAGS' references itself (eventually). Stop." Ich hatte bei einem Freund das ganze mit WinAVR ausprobiert und dort geht es. Ich benutze GNU Make 3.80 und die Zeile 194 ist: "$(CC) -c $(ALL_CFLAGS) $< -o $@". ALL_CFLAGS ist: "ALL_CFLAGS= -mmcu=$(MCU) -I. $(CFLAGS)" Was läuft da schief?
Sorry, das Problem hatte ich in meinen Quellen schon eine Weile repariert, aber vergessen, das Archiv auf dem Webserver zu aktualisieren. Vermutlich bist Du wohl der erste, der Mfile unter Unix benutzt. :-) Zieh's Dir bitte nochmal, jetzt sollte das klappen. > Ich hatte bei einem Freund das ganze mit WinAVR ausprobiert und dort > geht es. Ja, das makefile_template im Zip-Archiv für WinAVR unterscheidet sich ein wenig vom Template im .tar.gz-Archiv für Unix. Letzteres sollte insbesondere mit allen drei Unix-make-Dialekten (SysV, GNU, BSD) zurechtkommen (ist bei WinAVR uninteressant, da dort eh ein GNU make dabei ist und sonst nix), außerdem ist der ganze AVR-Studio- Kompatibilitäts-Message-Müll rausgeflogen.
Danke für die prompte Antwort! Vermutlich sind die Linuxer/Unixer im Gegensatz zu den Windows-Benutzern so versiert und daran gewöhnt, dass sie die makefiles selber schreiben können. Ich als Umsteiger bin da wohl die Ausnahme. Aber einiges habe ich immerhin schon verstanden... ;) Danke nochmal, auch für das Tool!
Ich hoffe, ich nerve jetzt nicht, aber ich bekomme immer noch denselben Fehler. Ich habe das Archiv von: http://www.sax.de/~joerg/mfile/ heruntergeladen und entpackt. In der Datei mfile.tcl habe ich in der ersten Zeile den Kommandointerpreter geändert auf "#!/usr/bin/wish", ausgeführt wird das Programm dann auch. Ich mache meine Eingaben und das Makefile wird erstellt. Das Makefile kopiere ich dann in mein Sourceverzeichnis (Zum Testen ist da nur ein "main.c" drin) und rufe "make" auf. Dann erscheint der Fehler. Bin ich jetzt einfach nur blind oder muss ich noch etwas Anderes beachten?
> In der Datei mfile.tcl habe ich in der ersten Zeile den > Kommandointerpreter geändert auf "#!/usr/bin/wish", ausgeführt wird > das Programm dann auch. Ja, mit der tixwish sieht's ein bißchen netter aus, aber die normale wish vom Tk tut's genauso, ich habe keine Besonderheiten von tix benutzt. > Ich mache meine Eingaben und das Makefile wird erstellt. Hast Du das makefile_template passend installiert (z. B. nach /usr/local/share/mfile, siehe README)? Sieht mir so aus, als hättest Du noch das alte template. Das neue erkennst Du an dieser Zeile: CFLAGS = $(CDEBUG) $(CDEFS) $(CINCS) -O$(OPT) $(CWARN) $(CSTANDARD) $(CEXTRA) Das fehlerhafte hat versucht, die CFLAGS rekursiv zusammenzubauen -- ein fataler Denkfehler meinerseits. > Vermutlich sind die Linuxer/Unixer im Gegensatz zu den > Windows-Benutzern so versiert und daran gewöhnt, dass sie die > makefiles selber schreiben können. Im Prinzip schon, eher als der typische Win-User bestimmt. Nichtsdestotrotz fand ich mfile am Ende auch für mich selbst ganz praktisch, weil ich zuvor für jedes kleine Spiel-Projektchen immer erst ein ähnliches Makefile eines anderen Projekts als Template zusammengekramt habe. Jedesmal alles von Grund auf zu schreiben, ist bei den vielen Kleinigkeiten, an die man bei einem µC so denken muß, auch ein bissel aufwendig.
Asche auf mein Haupt: Ich hatte noch die env-Variable gesetzt und darum griff Dein Programm noch auf die alte Version zu, die ich noch zum ersten Test in einem temp-Verzeichnis hatte... Jetzt kann ich endlich ins Bett, schön dämlich sowas... Dankeschön nochmal für die Hilfe!
Ich habe mir das Teil auch runtergeladen und es funktioniert auch soweit, allerdings ist noch ein kleiner Fehler im avrdude-Teil drin, derselbe wie mit den CFLAGS. Vielleicht änderst Du das noch ;)
Tust ja mächtig geheim... Wahrscheinlich ist Dir gar nicht klar, daß der Anonymizer, den Du benutzt, nur 20 Meter von dem Server entfernt steht, von dem Du Mfile geholt hast. :-) Danke für den Hinweis aber. Den avrdude-Teil habe ich mit Mfile-generierten Makefiles in der Tat noch nicht getestet. Ich habe das Archiv nochmal aktualisiert. Das betrifft nur das .tar.gz File, Benutzer des (WinAVR-) ZIP-Archivs müssen das also nicht nochmal holen.
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.