Forum: Compiler & IDEs Makefile Frage - Pfade umwandeln?


von Michael Z. (incunabulum)


Lesenswert?

Moin!

für ein kleines Projekt möchte ich versuchen, einen Teil des Codes 
separat auszulagern. Eine Bubliothek geht leider nicht, da ich dynamisch 
konfigurieren muss. Inzwischen kann ich sowhl Projekt-Code wie auch 
externen Code kompilieren, scheiter aber noch beim Linken.

Mein Makefile ist abgeleitet von MFile. Was ich nun bräuchte wäre im 
Linker-Build-Step, dass in einer "Array-Variable" mit Pfadangaben nur 
noch der Dateiname + ein festes Prefix vorhanden ist.

Also:
Die Variable sieht in etwa so aus:
1
.obj/main.o .obj/control/PcData.o .obj/control/PcStrings.o .obj/../xxx/libavr/drivers/lcds/DogSpi.o obj/../xxx/libavr/drivers/sensors/PressSensors.o etc. pp.
Daraus werden soll:
1
<prefix>/main.o <prefix>/PcData.o <prefix>/PcStrings.o <prefix>/DogSpi.o etc. pp.
Der zugehörige Buildstep sieht so aus:
1
# Link: create ELF output file from object files.
2
SECONDARY : $(TARGET).elf
3
.PRECIOUS : $(OBJ)
4
%.elf: $(OBJ)
5
  @echo
6
  @echo $(MSG_LINKING) $@
7
  $(CC) $(ALL_CFLAGS) $^ --output $(BUILDDIR)/$@ $(LDFLAGS)

$^ bzw. $(OBJ) muss ich in diesem Fall konvertieren. Nur wie??? Ich such 
mir schon nen Wolf, komm da aber irgendwie nicht weiter....

Danke & cu, Michael


von Michael Z. (incunabulum)


Lesenswert?

Nun ja,

nach einigen Stunden probieren bringt manchmal allein ein Post hier die 
Lösung :-)

Mit VPATH kann man, vergleichbar dem EXTRAINCLUDEDIR für header files, 
zusätzliche Pfade für den gcc angeben. Und damit klappt auch alles, wie 
ich es will :-)

cu, mz

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.