Hallo,
In diesem Thread http://www.vdr-portal.de/board…-altem-makefile-sammlung/ gibt es zwar Makefiles für das Live Plugin, die aber DVBDIR nicht unterstützen. Oder habe ich etwas übersehen?
- Markus
Hallo,
In diesem Thread http://www.vdr-portal.de/board…-altem-makefile-sammlung/ gibt es zwar Makefiles für das Live Plugin, die aber DVBDIR nicht unterstützen. Oder habe ich etwas übersehen?
- Markus
Rein informativ, wozu bracht live das DVBDIR?
Hallo TheChief,
> Rein informativ, wozu bracht live das DVBDIR?
Nun, live Programme includen VDR Header, und die VDR Header includen dann die DVB Header. Z.B.:
ecppc edit_recording.ecpp
In file included from /usr/include/vdr/dvbdevice.h:13,
from /usr/include/vdr/menuitems.h:14,
from /usr/include/vdr/plugin.h:14,
from menu.ecpp:3:
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:27:3: error: invalid preprocessing directive #DVBDIR
- Markus
Das stelle ich eben für das Image-Plugin auch fest (hat bereits neues Makefile). Wie muss ich dem Plugin das DVBDIR korrekt übergeben?
Danke und Gruß,
Stefan
Hm, bei mir kompiliert live aber, mit gesetztem DVBDIR in der Make.config des VDR.
Oliver (UFO) gab mir den Tipp, folgendes vorzunehmen, um festzustellen, ob gegen die Header des Kernels kompiliert wird, nachdem ich die media_build_experimental installiert hatte:
Zitatvi /usr/include/linux/dvb/frontend.h
#error Versuch, gegen Kernel zu kompilieren
Bei einigen Plugins hagelt's dann Errors bzw. diese Meldung beim Kompilieren. Und das Image-Plugin kompiliert dann nicht mehr. Ich habe mir nun aber wie folgt geholfen:
vi image/Makefile
### The directory environment:
…
+DVBDIR = /usr/local/src/DVB/linux/include/uapi
…
### Includes and Defines (add further entries here):
-INCLUDES += -I$(VDRDIR)/include -I.
+INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR) -I.
vi image/liboutput/Makefile
### The directory environment:
-INCLUDES += -I$(VDRDIR)/include -I.
+INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR) -I.
Sollte aber, wenn das Makefile die cflags via pkg-config vom VDR übernimmt, nicht nötig sein. Steht da ja auch drin. Folglich sollte im Makefile ein anderes Problem sein.
Hallo Markus,
mit der INCLUDE-Zeile will das Image-Plugin dann auch gegen die Header des Kernels kompilieren, was aufgrund der eingefügten Zeile in frontend.h zum Abbruch führt.
Stefan
Sollte aber, wenn das Makefile die cflags via pkg-config vom VDR übernimmt, nicht nötig sein. Steht da ja auch drin. Folglich sollte im Makefile ein anderes Problem sein.
Hallo Mreimer,
Das funktioniert so für Regeln, in denen die CFLAGS oder CXXFLAGS verwendet werden, also z.B. für
. Bei anderen Regeln, also z.B.
funktioniert das nicht. Daher genügt es nicht, die Includes in CFLAGS und CXXFLAGS zu haben.
- Markus
Hallo Markus,
mit der INCLUDE-Zeile will das Image-Plugin dann auch gegen die Header des Kernels kompilieren, was aufgrund der eingefügten Zeile in frontend.h zum Abbruch führt.
Stefan
Hallo Stefan,
was gibt denn
aus, wenn Du es auf der Konsole eingibst? Wenn Du bei der Übersetzung und Installation von VDR DVBDIR korrekt gesetzt hast, sollte hier -I$(DVBDIR) ausgegeben werden.
- Markus
Doch, denn wenn es um VDR-Plugins geht, dann ist entweder CFLAGS oder CXXFLAGS immer zu verwenden. Deine "anderen Regeln" müssen also korrigiert werden.
Hallo Markus,
pkg-config --cflags-only-I vdr
-> -I/usr/local/src/DVB/linux/include/uapi
So wie im VDR-Make.config angegeben. Wie wird das nun an die Plugins übergeben?
Gruß,
Stefan
Alles anzeigen
Hallo Mreimer,
Das funktioniert so für Regeln, in denen die CFLAGS oder CXXFLAGS verwendet werden, also z.B. für
. Bei anderen Regeln, also z.B.
funktioniert das nicht. Daher genügt es nicht, die Includes in CFLAGS und CXXFLAGS zu haben.
- Markus
Was tut ihr?
Ich warte ja jetzt schon seit Donnerstag, dass mal jemand auf die Idee kommt einfach in einem Makefile von Klaus nachzuschauen.
Dann hättest du auch am Donnerstag schon posten können.
Ja. Das war ein Test. Ihr seid ALLE durchgefallen
Hallo Mreimer,
vielen Dank für Deinen Hinweis. Ich habe also in den Makefiles von Klaus Plugins geschaut, und da steht
Das wäre dann also ein Fehler in den Makefiles des live Plugin, da fehlt das $(CXXFLAGS) an dieser Stelle nämlich. Auch in dem hier plugins-mit-altem-makefile-sammlung auf Seite 3 geposteten Makefile.
- Markus
Im Zweifelsfall einfach solange das alte Makefile weiternutzen bis es im live-Repository ein neues gibt. Dafür hat Klaus ja die Rückwärtskompatibilität eingebaut.
Hab hier noch ein Problem mit der GIT Version vom live plugin mit den neuen Makefiles von hier. Compiliere ich innerhalb der Plugin Sourcen mit "make all", wird das Plugin anstandslos gebaut. Starte ich den Compilierungsvorgang vom VDR-Source-Verzeichnis mit "make clean clean-plugins && make -j2 all plugins", gibts einen Fehler da die Subplugins nicht gebaut werden:
g++: error: pages/libpages.a: Datei oder Verzeichnis nicht gefunden
g++: error: css/libcss.a: Datei oder Verzeichnis nicht gefunden
g++: error: javascript/libjavascript.a: Datei oder Verzeichnis nicht gefunden
make[1]: *** [libvdr-live.so] Fehler 1
Gibts da noch ein Trick für die "Make.config" oder die Makefiles von live?
Außerdem ist mir bei der Gelegenheit noch aufgefallen, dass die "vdr.pc" innerhalb des VDR-Source-Verzeichnis nach Änderungen der "Make.config" aktualisiert wird, nicht aber die "vdr.pc" in "/usr/lib/pkgconfig"? Gibts da einen Grund für?
Gruß
iNOB
Nimm das alte Makefile. Das andere habe ich in 5min hingezimmert, weil jeder nach den neuen Makefiles geschrieen hat. Gut zu wissen, dass es nicht funktioniert. Dann kann ich es ja löschen.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!