Makefile, weitere Variableen in vdr.pc

  • Hallo kls ,


    könntest Du im Makefile folgendes ergänzen:

    Code
    @echo "prefix=$(PREFIX)" >> $@
    @echo "incdir=$(INCDIR)" >> $@


    Also beim Target vdr.pc: ...


    Vielen Dank, Markus

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • kls, weil das ja von mir stammt, wäre das dann:

    Code
    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:

    (Zeilen 3 bis 5)


    Ob du VDRROOT mit übernehmen magst, ist letztlich deine Entscheidung.


    Viele Grüße

    Stefan

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.3 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinenigmang, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

    Edited 3 times, last by shofmann ().

  • Die Makefiles können die alten Verfahren, sich diese Daten zu besorgen, als Fallback-Option ja noch immer drin lassen.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.3 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinenigmang, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • 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.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.3 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinenigmang, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • 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.

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • shofmann , ich denke, aus Sicht der Plugins sind unsere 2 Varianten identisch:

    Plugins können sich die 2 weiteren Variablen

    Code
    prefix
    incdir

    holen. Ob das nun prefix oder vdrrootdir heißt, ist mir egal.

    Code
    @echo "bindir=$(BINDIR)" > $@

    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

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • 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

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.3 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinenigmang, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • 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.
  • 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.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.3 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinenigmang, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

  • Ich hätte halt gerne prefix. Ob

    Code
        @echo "prefix=$(PREFIX)" >> $@

    Oder

    Code
    VDRROOT   ?= $(PREFIX)
    ...
        @echo "vdrrootdir=$(VDRROOT)" > $@

    ist mir egal.

    Client1: ASUS P5QC, Dual Core 3G, Cine S2, Ext. Board von TBE, Xubuntu 20.04, VDR 2.6x

    Client2: RPI3

    Server: RPI4, Sundtek SkyTV Dual 2x

  • 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.

  • 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:

    Code
    VDRROOT   = $(PREFIX)/vdr

    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.

    Hardware: Antec NSK2480, Asus P8B75-M LX, Intel Core i5-3570T, 4 GB RAM, NVIDIA GT610, TT-Premium S2-6400, 128 GB SSD, 14 TB HDD, Pioneer BDR-207EBK
    Software: Ubuntu 22.04 LTS mit Kernel 6.8 und VDR 2.7.3 (mit offiziellen und eigenen Patches)
    Plugins: devstatus, dvbhddevice, dvd, dvdswitch, epgsearch, extrecmenu, recsearch, femon, live, markad, mlist, osdteletext, remote, screenshot, skinenigmang, skinnopacity, streamdev, systeminfo, undelete, xineliboutput
    Addons: VDR Convert 0.1.0 (angepasst)

    Edited once, last by shofmann ().

  • Zu dieser "Vergangenheit" gehört dann aber doch auch das damals verwendete Make.config ;-).

    for me: static const char** Make.config

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!