Forum: Compiler & IDEs aus *.h ins makefile


von Tobi (Gast)


Lesenswert?

Hi!

Ich möchte gerne aus einer c-header Datei "#defines" in das makefile
übernehmen. Ich hab schon gesucht, aber nicht gefunden, wie (und ob??)
das geht.

Probiert hab ich's, aber es kappt so nicht:

Hier z.B. das define BOOT_START
(in Memdef.h definiert: #define BOOT_START 0x7000)

Makefileauszug:

  ....

  include C:\AVR\Projects\Memdef.h

  ...
  ...

  # Place -I options here
  CINCS = -IBOOT_START=BOOT_START #Liegt hier der Fehler??

  ...
  ...

  LDFLAGS += -Wl,--section-start=.text=$(BOOT_START)

Fehlermeldung: missing argument(s) to option "--section-start"

Kann mir jemand helfen? Denn "andersrum" vom makefile in C gehts ja
auch!

VG Tobi

von OldBug (Gast)


Lesenswert?

Andersrum wirds wohl eher gehen.

Makefile:

[..]
BOOTSTART = 0x7000
[..]
# Place -D or -U options here
CDEFS = -DF_CPU=$(F_CPU)UL -DBOOTSTART=$(BOOTSTART)
[..]

Memdef.h:

#define BOOT_START (BOOTSTART)
[..]

Die Linkerflag-Zeile (wasn Wort :) musst Du Dir nochmal selber durch
den Kopf gehen lassen, da hab ich jetzt vorm Essen keine Lust mehr zu
;)

von Tobi (Gast)


Lesenswert?

Hi OldBug!

Vielen Dank, aber sorum bringts mir nicht viel. Ich hab 2 Makefiles
(Bootloader + Applikation), die aus EINER gemeinsamen Header-Datei
lesen sollen. (Dann müsste ich bei einer Änderung nur 1 Header-Datei
ändern und nicht 2 Makefiles)

von mthomas (Gast)


Lesenswert?

Aufbauend auf Oldbugs Vorschlag: eine "Makevariablen-Definitionsdatei"
erzeugen, diese mit include in die beiden makefiles einbinden.
Weitergabe der Werte wie oben skizziert. Damit muss nur eine Datei
veraendert werden, die in beiden "makes" genutzt werd.

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.