Forum: Compiler & IDEs makefile in die dependencys


von Stefan Kleinwort (Gast)


Lesenswert?

Hallo,

ist es möglich, die mcu-Option direkt im Source (h-file) anzugeben
statt im Makefile?

Bei meinem Projekt wird entweder der mega16 oder der mega32 verwendet,
je nachdem ob ein Display dranhängt oder nicht. Da wäre es schön, nur
eine Änderung im Header-File machen zu müssen.

Danke, Stefan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> ist es möglich, die mcu-Option direkt im Source (h-file) anzugeben
> statt im Makefile?

Nein, der Compiler benötigt das -mmcu=, um die entsprechenden Aufrufe
der Toolchain (Assembler, interner Compiler, Linker) zusammenzubauen.

von Rolf Magnus (Gast)


Lesenswert?

> Bei meinem Projekt wird entweder der mega16 oder der mega32
> verwendet, je nachdem ob ein Display dranhängt oder nicht. Da wäre
> es schön, nur eine Änderung im Header-File machen zu müssen.

Mach doch zwei Targets in deinem Makefile, eins für den mega16 und eins
für den mega32. Dann brauchst du gar keine Änderungen.

von Stefan Kleinwort (Gast)


Lesenswert?

Danke erstmal.

Ich wühle mich gerade durch die Makefile-Beschreibung. 2 Targets
anzulegen für die unterschiedlichen Atmegas habe ich schon hinbekommen.
Jetzt probiere ich noch, wie ein automatisches clean möglich ist, wenn
das Target gewechselt wird.

Viele Grüße, Stefan

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

foo_m32.elf: foo_m32.o $(OTHER_OBJS)
  $(CC) -o $@ $(LDFLAGS) foo_m32.o $(OTHER_OBJS)

foo_m64.elf: foo_m64.o $(OTHER_OBJS)
  $(CC) -o $@ $(LDFLAGS) foo_m64.o $(OTHER_OBJS)

foo_m32.o: foo.c
  $(CC) $(CFLAGS) -mmcu=atmega32 -o foo_m32.o -c foo.c

foo_m64.o: foo.c
  $(CC) $(CFLAGS) -mmcu=atmega64 -o foo_m64.o -c foo.c

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
Noch kein Account? Hier anmelden.