Makefile, weitere Variableen in vdr.pc
-
-
kls, weil das ja von mir stammt, wäre das dann:
CodePREFIX ?= /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:
Code
Display More.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}" >> $@
(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
-
-
Ein paar weitere Kleinigkeiten sind noch drin, die kls hoffentlich nicht weiter stören.
Sehe ich das richtig:
- eigentlich geht es nur um die Einführung von
+ @echo "incdir=$(INCDIR)" >> $@ - VDRROOT statt PREFIX ist lediglich Geschmackssache und müsste nicht sein
- die Änderung
- @echo "bindir=$(BINDIR)" > $@
+ @echo "bindir=$(BINDIR)" >> $@
ist unnötig, weil die Reihenfolge keine Rolle spielt - wozu braucht es die Änderung
+ @echo "vdrrootdir=$(VDRROOT)" > $@ - 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? - die Änderung
- @-rm -rf $(LOCALEDIR) $(PODIR)/*.mo $(PODIR)/*.pot
+ @-rm -rf $(LOCALEDIR) $(PODIR)/*~ $(PODIR)/*.mo $(PODIR)/*.pot
löscht Backup-Dateien im po-Verzeichnis - OK.
- eigentlich geht es nur um die Einführung von
-
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 spieltEs 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.
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!