Hallo kls ,
könntest Du im Makefile folgendes ergänzen:
Also beim Target vdr.pc: ...
Vielen Dank, Markus
Hallo kls ,
könntest Du im Makefile folgendes ergänzen:
Also beim Target vdr.pc: ...
Vielen Dank, Markus
kls, weil das ja von mir stammt, wäre das dann:
PREFIX ?= /usr/local
VDRROOT ?= $(PREFIX)
BINDIR ?= $(VDRROOT)/bin
INCDIR ?= $(VDRROOT)/include
LIBDIR ?= $(VDRROOT)/lib/vdr
LOCDIR ?= $(VDRROOT)/share/locale
MANDIR ?= $(VDRROOT)/share/man
PCDIR ?= $(VDRROOT)/lib/pkgconfig
RESDIR ?= $(VDRROOT)/share/vdr
(Zeile 2, in den Zeilen danach ist PREFIX konsequenterweise durch VDRROOT ersetzt) sowie:
.PHONY: vdr.pc
vdr.pc:
@echo "vdrrootdir=$(VDRROOT)" > $@
@echo "bindir=$(BINDIR)" >> $@
@echo "incdir=$(INCDIR)" >> $@
@echo "mandir=$(MANDIR)" >> $@
@echo "videodir=$(VIDEODIR)" >> $@
@echo "configdir=$(CONFDIR)" >> $@
@echo "argsdir=$(ARGSDIR)" >> $@
@echo "cachedir=$(CACHEDIR)" >> $@
@echo "resdir=$(RESDIR)" >> $@
@echo "libdir=$(LIBDIR)" >> $@
@echo "locdir=$(LOCDIR)" >> $@
@echo "plgcfg=$(PLGCFG)" >> $@
@echo "apiversion=$(APIVERSION)" >> $@
@echo "cflags=$(CFLAGS) $(CDEFINES) $(CINCLUDES) $(HDRDIR)" >> $@
@echo "cxxflags=$(CXXFLAGS) $(CDEFINES) $(CINCLUDES) $(HDRDIR)" >> $@
@echo "" >> $@
@echo "Name: VDR" >> $@
@echo "Description: Video Disk Recorder" >> $@
@echo "URL: http://www.tvdr.de/" >> $@
@echo "Version: $(VDRVERSION)" >> $@
@echo "Cflags: \${cflags}" >> $@
Display More
(Zeilen 3 bis 5)
Ob du VDRROOT mit übernehmen magst, ist letztlich deine Entscheidung.
Viele Grüße
Stefan
Ist das denn eine schlaue Idee da zu drehen? Macht das nicht ein Makefile, das diese neuen Variablen nutzen will, automatisch inkompatibel zu allen bisherigen VDR-Versionen?
Die Makefiles können die alten Verfahren, sich diese Daten zu besorgen, als Fallback-Option ja noch immer drin lassen.
Das bedeutet dann, dass alle Plugins ihre Makefiles anpassen müssen.
don't fix it if it's not broken
don't fix it if it's not broken
Sic! Ich würde Makefiles nur anpassen, wenn sie wirklich "uralt" sind. Ich habe das für mich lokal gemacht, weil ich überall das "stille" Bauen haben wollte.
Das bedeutet dann, dass alle Plugins ihre Makefiles anpassen müssen.
don't fix it if it's not broken
Nein. Die Änderungen sind doch kompatibel. Es werden nur weitere Informationen bereitgestellt.
Bitte schickt mir einen Diff gegen das Makefile aus der aktuellen Version, wenn ihr euch auf eine Variante einigen könnt und keine Änderungen an den Makefiles der Plugins nötig sind.
SHofmann , ich denke, aus Sicht der Plugins sind unsere 2 Varianten identisch:
Plugins können sich die 2 weiteren Variablen
holen. Ob das nun prefix oder vdrrootdir heißt, ist mir egal.
ist im aktuellen VDR Makefile schon drin.
Magst Du Klaus ein Diff für Deine Variante schicken, oder soll ich ihm ein Diff für meine Variante schicken?
~ Markus
Ob das nun prefix oder vdrrootdir heißt, ist mir egal.
Da sich aus dem Präfix das Root-Verzeichnis der VDR-Installation ergibt, sollte es der Klarheit halber auch so benannt sein und fortan für alle weiteren Ableitungen genutzt werden.
ist im aktuellen VDR Makefile schon drin.
Stimmt, hatte ich im Diff übersehen.
Magst Du Klaus ein Diff für Deine Variante schicken, oder soll ich ihm ein Diff für meine Variante schicken?
Hier ist meine Arbeitsversion gegen die vom VDR 2.7.2:
Ein paar weitere Kleinigkeiten sind noch drin, die kls hoffentlich nicht weiter stören.
Viele Grüße
Stefan
kls , für mich ist das diff von Stefan OK.
Ein paar weitere Kleinigkeiten sind noch drin, die kls hoffentlich nicht weiter stören.
Sehe ich das richtig:
VDRROOT statt PREFIX ist lediglich Geschmackssache und müsste nicht sein
Ist aber logischer, weil damit das Root-Verzeichnis der VDR-Installation bestimmt wird. Dann sollte man das auch so nennen – und eben nicht nur PREFIX.
wozu braucht es die Änderung
+ @echo "vdrrootdir=$(VDRROOT)" > $@
Damit man das bei Bedarf bspw. auch in Skripten abfragen kann, weil man genau dort weitere Daten verankern möchte. Was stört dich an einer zusätzlichen, durchaus nützlichen Variable in der vdr.pc?
die Änderung
- @echo "bindir=$(BINDIR)" > $@
+ @echo "bindir=$(BINDIR)" >> $@
ist unnötig, weil die Reihenfolge keine Rolle spielt
Es ist halt ein Diff und eine gewisse logische Abfolge bzw. Systematik bin ich als Programmierer nun mal gewohnt.
die Änderung
+ echo; echo "*** Plugin $$i:";\
zeigt nur an, welches Plugin gerade installiert wird. Betrifft mich nicht, da ich die install Targets nicht nutze,
aber dennoch: muss da eine zusätzliche Leerzeile sein?
Das gliedert die Ausgabe nach Plugins und macht sie übersichtlicher.
Ich hab's so übernommen wie in vdr-2.7.2-makefile.diff.txt.
Wenn wir gerade beim Makefile sind.
Gibt es einen Ort für die Make.config dass man die nicht jedesmal in den src Ordner kopieren muss?
Ich behalte gerne je VDR release einen separaten Ordner mit allen Plugins, so dass man mal zur Vergangenheit komplett zurück springen kann.
Zu dieser "Vergangenheit" gehört dann aber doch auch das damals verwendete Make.config ;-).
Danke. Zum Thema VDRROOT wollte ich noch ergänzen, dass das auch deswegen eingefügt habe, weil ich den kompletten VDR unterhalb von /usr/local/vdr installiere und vdr ein symbolischer Link auf die aktuelle Installation ist. Damit kann ich in Windeseile zwischen Produktiv- und Testversionen hin- und herschalten, ohne mir die Produktivumgebung kaputt zu machen. Deshalb steht an dieser Stelle lokal bei mir folgendes:
Klar, das hätte man auch über das Präfix lösen können, wäre nach meinem Programmiergefühl im Grunde genommen aber eine semantische Ungenauigkeit gewesen.
Hier noch der Patch für das Template:
… falls du das nicht eh schon dort eingepflegt hattest.
Was DVBDIR betrifft, bin ich mir nicht sicher, was hier heutzutage die richtige Referenz ist. Werden DVB-Treiber noch immer aus /usr/src/v4l-dvb heraus gebaut? Zumindest der Treiber für die TT S2-6400 wird neuerdings wohl hauptsächlich per DKMS und den Patches von S:oren (liege ich da richtig?) gebaut.
Zu dieser "Vergangenheit" gehört dann aber doch auch das damals verwendete Make.config ;-).
for me: static const char** Make.config
falls du das nicht eh schon dort eingepflegt hattest.
Hatte ich nicht, danke.
Don’t have an account yet? Register yourself now and be a part of our community!