Im Anhang ist der nächste Patch.
Jetzt mit LCLBLD=1 ob das so noch gewünscht war, weiß ich nicht. Ich hatte damit schon angefangen, drum ist es jetzt erstmal drin.
Mal schauen wie viel/wenig jetzt wieder funktioniert.
Im Anhang ist der nächste Patch.
Jetzt mit LCLBLD=1 ob das so noch gewünscht war, weiß ich nicht. Ich hatte damit schon angefangen, drum ist es jetzt erstmal drin.
Mal schauen wie viel/wenig jetzt wieder funktioniert.
Hier nochmal ein Patch. Jetzt funktioniert das Installieren von den VDR-eigenen Sprachdateien auch.
Ich sehe im Moment keine Probleme mehr. Ihr?
Ich weiß nicht ob das offiziell als Problem definiert ist...
Aber bei Plugins die mehere Plugins bauen oder Subplugins nutzen sehe ich Probleme. Hast du das mal mit epgsearch und LCLBLD=1 getestet?
Wobei die meisten Plugins bei dieser Art von build (LCLBLD=1) eh nicht funktionieren (weil sie mehr als lib und mo brauchen) und der VDR dann eh nicht startet. Daher die Frage ob das jetzt überhaut nen Problem ist oder nicht?
cu
Hier nochmal ein Patch. Jetzt funktioniert das Installieren von den VDR-eigenen Sprachdateien auch.
Ich sehe im Moment keine Probleme mehr. Ihr?
Ich muß DVBDIR setzen. Da das beim compilieren nicht per -I$(DVBDIR) übergeben wird, gibts schon Fehler beim ersten File:
g++ -g -O3 -Wall -D__user= -D_KERNEL_STRUCT_NAMES= -D__u8=uint8_t -fPIC -Werror=overloaded-virtual -Wno-parentheses -fPIC -c -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DREMOTE_KBD -DLIRC_DEVICE=\"/var/run/lirc/lircd\" -DVIDEODIR=\"/video\" -DCONFDIR=\"/video\" -DCACHEDIR=\"/video\" -DRESDIR=\"/video\" -DPLUGINDIR=\"/usr/local/lib/vdr\" -DLOCDIR=\"/usr/src/vdr-1.7.35-test4/locale\" -I/usr/include/freetype2 audio.c
In file included from audio.c:12:
dvbdevice.h:18:2: error: #error VDR requires Linux DVB driver API version 5.3 or higher!
make: *** [audio.o] Fehler 1
Unabhängig davon, halte ich den Schalter für local Build falsch. Ein normales 'make' muß ausreichen, damit das Programm und alle zum laufen des Programms notwendige Dateien innerhalb des Source- bzw. Build-Verzeichnisses abgelegt werden. Teile der Variablen sind fixe Parameter für den VDR, wie z.B. LIBDIR und LOCDIR. Die dürfen sich für einen Build zum Testen (local Build) und einen Build für eine Installation nicht ändern. Genaugenommen muß ein Makefile alles neu bauen, wenn sich eine Konfigurationsdatei ändert.
Es sollten alle konfigurierbaren Parameter, auch wenn per Default auskommentiert, in der Make.config.template verbleiben (DVBDIR).
Gruß
e9hack
Mal eine kurze Anmerkung zu DVBDIR: wenn man den Hinweis von UFO befolgt, und in original Kernelsources # error in frontend.h einträgt, sieht man sehr schnell wo das richtige -I überall fehlt. Ich glaube das von newplugin erzeugte plugin-Makefile sollte an MAKEDEP dringend(!) Angepasst werden. Da kann Copperhead nämlich durchreichen was er will, im MAKEDEP kann es nicht ankommen.
Ich habe als Notlösung -I...uapi mit in CXX und CC eingebaut - und selbst das rennt bei vielen Plugins in die Wand, weil bei DEPMOD g++ anstatt $(CXX) stteht.
Gruß, Ingo
Ich nutzt seit langer Zeit schon immer die neuste vdr-version.
Da ich die 1.7.34 verpasst habe habe ich mit der 1.7.35 begonnen.
Ich bin allerdings erst einmal richtig erschrocken, da kein einziges Plugin mehr funktioniert.
Auch das "make install" will nimmer, bzw. es kopiert die Plugins + Zubehört nicht an den richtigen Stelle.
zum Glück kann man das noch händisch kopieren.
Warum ich hier eigentlich Post ist ein Verständnis Problem.
Es gibt jetzt eine Patch für die "Makefile" Datei.
Macht das denn überhaupt Sinn? Ich vermute mal das kls nicht mehr zurück schwenken wird.
Wäre es da nicht sinnvoller die Plugins zu überarbeiten damit die mit der neuen Struktur funktioniert? Anstatt sich am Makefile auszutoben?
So das es am schluss wieder alles ohne Patchen funktioniert?
Hier nochmal ein Patch. Jetzt funktioniert das Installieren von den VDR-eigenen Sprachdateien auch.
Ich sehe im Moment keine Probleme mehr. Ihr?
Hab nur mal schnell quergelesen (momentan keine Zeit zum testen).
Das hier ist dir wohl versehentlich ins VDR-Makefile reingerutscht:
- xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=VDR --package-version=$(VDRVERSION) --msgid-bugs-address='<vdr-bugs@tvdr.de>' -o $@ `ls $^`
+ xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`
Klaus
Ich glaube, die Patches die Copperhead hier postet, sind die Testfälle für die nächste Version - also immer fleißig testen. Am besten auch Leute, die media_build_experimental als dvb-Treiber benutzen...
Gruß, Ingo
Wäre es da nicht sinnvoller die Plugins zu überarbeiten damit die mit der neuen Struktur funktioniert? Anstatt sich am Makefile auszutoben?
So das es am schluss wieder alles ohne Patchen funktioniert?
Erstmal muss die Makefilesache fertig sein, DANN kann man die Plugins anpassen. Aktuell macht es noch keinen Sinn da jetzt wild an den Plugins rumzufummeln solange die Makefilesache sich ständig ändert.
Bleibe einfach bei deinem aktuellen funktionierenden Softwarestand und warte ab, das wird sich dann schon regeln.
cu
Zu DVBAPI: Ich verstehe immernoch nicht, warum das nötig ist. Was passiert denn wenn der VDR gegen die Kernel-Header gebaut wird? Es ist doch nicht so, als würde sich stündlich die API ändern. Ich habe das vor einiger Zeit selbst mal getestet und das läuft problemlos.
Das ist meiner Meinung nach eine Altlast, die aus der Zeit stammt, wo HDTV noch neu war. Da wurde ja noch recht viel an der API gebastelt.
kls: Ja, das soll da nicht sein. Ist jetzt erstmal auch nicht schlimm, aber im finalen Patch muss es dann natürlich wieder richtig.
e9hack: Tolle Idee. Ich lade dich hiermit herzlich dazu ein, es selbst als Patch umzusetzen. Ich bastle jetzt schon seit Stunden am Makefile rum und das was du machen willst geht schlicht nicht.
Zu DVBAPI: Ich verstehe immernoch nicht, warum das nötig ist. Was passiert denn wenn der VDR gegen die Kernel-Header gebaut wird? Es ist doch nicht so, als würde sich stündlich die API ändern. Ich habe das vor einiger Zeit selbst mal getestet und das läuft problemlos.
...wenn man einen halbwegs aktuellen Kern hat, hast Du heute um 18:55 recht. Aber für alle die alte Kerne mit neuen dvb-Treibern benutzen, und auch weil wir nicht wisden ob und wann sich in den Headern etwas ändert, sollte man die Möglichkeit haben, gegen die RICHTIGEN Header zu bauen, die zu den Treibern gehören, die man benutzt. Ich halte das für keine Altlast, sondern für eine nachhaltige Notwendigkeit, wenn man ein zukunftssicheres Konzept verfolgt.
Gruß, Ingo
Bis in die Plugins sollte es aber kommen. Es landet zumindest in der vdr.pc über die cflags cxxflags.
Vielleicht sollte man hier etwas weiter gehen und statt.
Das allgemein üblichere
benutzen.
Dann könnten die Includes einzeln behandelt werden.
e9hack: Tolle Idee. Ich lade dich hiermit herzlich dazu ein, es selbst als Patch umzusetzen. Ich bastle jetzt schon seit Stunden am Makefile rum und das was du machen willst geht schlicht nicht.
Habe ich doch, mußt nur mal den Thread lesen. Ich habe auch versucht zu beschreiben, was das Build-System/Makefile alles können sollte.
Gruß
e9hack
Alles anzeigenBis in die Plugins sollte es aber kommen. Es landet zumindest in der vdr.pc über die cflags cxxflags.
Vielleicht sollte man hier etwas weiter gehen und statt.
Das allgemein üblichere
benutzen.
Dann könnten die Includes einzeln behandelt werden.
Auf meinem gentoo (aktuell) gibts kein --includes, sondern --cflags-only-I.
Das Problem bei v10 ist, dass -I/bla/uapi gar nicht in vdr.pc landet. Ich glaube deshalb bricht der build bei 9ehack auch wegen der alten kernel-api ab, aber das ist nur Spekulatius - ich kenne sein System nicht.
Ich kann jedenfalls nur mit den Kernel-Headern bauen. Habe 7,8,9 ausgelassen, deshalb kann ich Dir leider nicht sagen, wenn es nicht mehr in vdr.pv und im compiler-Aufruf verschwunden ist. (ja, in Make.config habe ich DVBDIR nachgezogen)
Gruß, Ingo
Das landet schon in der vdr.pc.
Über die CINCLUDES.
Bei mir leider nicht. vdr-1.7.35 aus git mit makefilefix10 gepatched:
ingo@rock /usr/local/src/VDR $ cat Make.config
#
# User defined Makefile options for the Video Disk Recorder
#
# Copy this file to 'Make.config' and change the parameters as necessary.
#
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Make.config.template 2.14 2012/12/28 09:55:22 kls Exp $
### The C compiler and options:
CC = gcc
CFLAGS = -g -O3 -Wall
CXX = g++
CXXFLAGS = $(CFLAGS) -Werror=overloaded-virtual -Wno-parentheses
# Use 'make M32=1 ...' to build a 32-bit version of VDR on a 64-bit machine:
ifdef M32
CFLAGS += -m32
endif
#Fallback for plugins with old makefiles
ifdef PLUGIN
CFLAGS += -fPIC
CXXFLAGS += -fPIC
LIBDIR = ../../lib
endif
### The directory environment:
LCLBLD=1
ifdef LCLBLD
CWD = $(shell pwd)
INCDIR = $(CWD)/include
LOCDIR = $(CWD)/locale
LSIDIR = $(CWD)/libsi
PLUGINDIR = $(CWD)/PLUGINS
LIBDIR ?= $(PLUGINDIR)/lib
VIDEODIR = /video
CONFDIR = $(VIDEODIR)
CACHEDIR = $(VIDEODIR)
RESDIR = $(VIDEODIR)
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
MANDIR = $(PREFIX)/share/man
PCDIR = $(PREFIX)/lib/pkgconfig
endif
DVBDIR = /usr/local/src/media_build_experimental/linux/include/uapi
# Use this if you want to have a central place where you configure compile time
# parameters for plugins:
#PLGCFG = /etc/vdr/plugins.conf
### The remote control:
LIRC_DEVICE = /var/run/lirc/lircd
## Define if you want vdr to not run as root
#VDR_USER = vdr
ingo@rock /usr/local/src/VDR $ make clean include-dir vdr.pc
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
/usr/include/linux/dvb/frontend.h:26:3: error: #error Wrong DVBDIR
make: *** Deleting file `.dependencies'
ingo@rock /usr/local/src/VDR $ cat vdr.pc
bindir=/usr/local/bin
mandir=/usr/local/share/man
configdir=/video
videodir=/video
cachedir=/video
resdir=/video
libdir=/usr/local/lib/vdr
locdir=/usr/local/src/vdr/locale
plgcfg=
apiversion=1.7.35
cflags=-g -O3 -Wall -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/local/src/vdr/include
cxxflags=-g -O3 -Wall -fPIC -Werror=overloaded-virtual -Wno-parentheses -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/local/src/vdr/include
Name: VDR
Description: Video Disk Recorder
URL: http://www.tvdr.de/
Version: 1.7.35
Cflags: ${cflags}
Alles anzeigen
Sorry. Ist aber so.
Gruß, Ingo
Wenn ich mir noch etwas wünschen darf (ja, ich weiss, Du hast - mit Recht - die Schnauze von von Sonderlocken). Ich fände es gut sowas in Make.config zu haben:
#remove Comment to get Debug information
#GDB_DEBUG = 1
ifdef GDB_DEBUG
CFLAGS += -g -ggdb -O0
CXXFLAGS += -ggdb -O0
LDFLAGS += -g -ggdb -O0
endif
Gruß, Ingo
Unabhängig davon, halte ich den Schalter für local Build falsch. Ein normales 'make' muß ausreichen, damit das Programm und alle zum laufen des Programms notwendige Dateien innerhalb des Source- bzw. Build-Verzeichnisses abgelegt werden. Teile der Variablen sind fixe Parameter für den VDR, wie z.B. LIBDIR und LOCDIR. Die dürfen sich für einen Build zum Testen (local Build) und einen Build für eine Installation nicht ändern. Genaugenommen muß ein Makefile alles neu bauen, wenn sich eine Konfigurationsdatei ändert.
Kein "Makefile-System" kann jeden erdenklichen Fall von externer Einflussnahme erkennen. Spätestens wenn Variablen von außen kommen (Environment, Parameter an "make") ist es vorbei mit automatischem Erkennen. Ein "make clean" nach Umkonfigurieren ist also nie verkehrt.
In Zeile 66 fehlt +. LCLBLD schmeißt den DVBDIR include weg. Mit += gehts. V10 gefällt mir!
Gruß, Ingo
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!