Ich verstehe nicht was du meinst? /usr/include ist standardmäßig included.
Ich bin mir nicht sicher, ob ich das alles wirklich schon bis ins letzte Detail verstanden habe. Aber nehmen wir doch einmal mein MList-Makefile als Beispiel, das seinerseits auf dem Makefile des Demo-Plugins Hello basiert. Ganz oben holt sich das Makefile ein paar Verzeichnisse aus vdr.pc:
PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc))
LIBDIR = $(call PKGCFG,libdir)
LOCDIR = $(call PKGCFG,locdir)
Weiter unter können dann gegebenenfalls zusätzliche Include-Verzeichnisse ergänzt werden:
### Includes and Defines (add further entries here):
INCLUDES +=
Wo aber bekommt das Makefile die Referenz auf die VDR-Include-Dateien her, wenn man es von außerhalb des VDR-Baums (also nicht über make im VDR-Verzeichnis) kompilieren und installieren möchte? Dieser Use Case ist ja genau das, was die Package Builder explizit wollen und was die ganze Makefile-Umstellung ja erst in Gang gesetzt hat...
Normalerweise speist das VDR-Makefile das VDR-Include-Verzeichnis als Environment-Variable in das untergeordnete Makefile ein, sodass es dort schon von Anfang an in INCLUDES enthalten ist. Das Makefile selbst kümmert sich deshalb bislang nicht darum. Ich frage mich also, wie das Makefile diese Informationen erhält, wenn es separat aufgerufen wird und nicht durch das VDR-Makefile. Derzeit muss man den Verweis auf das VDR-Include-Verzeichnis vorab per Environment-Variable übergeben, denn als Parameter des Make-Aufrufs müsste man sonst über die Direktive override die Modifikation der so übergebenen INCLUDES zulassen, was die Makefiles aber generell nicht tun.
Deshalb meine Frage, ob das VDR-Inlcude-Verzeichnis nicht ebenfalls in vdr.,pc hinterlegt und von den Makefiles von dort ausgelesen werden müsste. Dies wäre umso wichtiger, wenn es sich eben nicht – wie ich geschrieben hatte – unter /usr/include bzw. /usr/local/include liegt. Was bei mir der Fall ist, denn damit ich schnell zwischen VDR-Verisonen hin- und herschalten kann, liegt alles, was eine VDR-Instanz betrifft, vollständig innerhalb eines Verzeichnisbaums unter /usr/local – auch deren Include-Files.
Ist meine Frage damit verständlich geworden?
Und haben wir diesbezüglich noch Handlungsbedarf?
Danke & Grüße
Stefan