Plugins mit altem Makefile - Sammlung

  • Fortsetzung: Neue Makefiles, Teil 2


    Das PKGBUILD ist für das alte Makefile ausgelegt. Wenn du einfach alles so lässt wie ich es ins Repo gepusht habe funktioniert es.


    Stimmt, danke - ich hatte noch ein verhunztes VDR-Paket beim ersten Bauen in der VM installiert und dachte daher, dass es nicht klappt...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Mir fällt aber gerade auf, dass in den von shofmann geposteten Makefiles die Install-Routine für die Zusatzdateien fehlt. Im Fall von live müsste das "live"-Verzeichnis ins Resourcedirectory kopiert werden. Ein gut umgesetztes Beispiel dafür ist skinnopacity und tvguide.


    Oops, das habe ich wohl übersehen... und gen_version_suffix.h ist mir auch entfleucht... :wand Da muss ich meine Makefiles wohl nochmals durchsehen. Fällt auch gar nicht auf, wenn alles schon am richtigen Platz ist...


    Mir fällt gerade auf, dass es bei live im README heißt:


    Zitat

    In order to work correctly you must copy the subdirectory 'live' from
    the source distribution to the directory where the vdr plugins look
    for their configuration files. The pure VDR default for this config
    directory is: /video/plugins, but this depends also from the
    parameters -c or -v (see 'vdr --help' for details).


    cp -a <live-src-dir>/live <plugin-config-dir>/plugins


    Aber ich stimme zu, das sollte heutzutage automatisch gehen. Anbei die Archive mit den modifizierte Makefiles.


    Stefan

  • Neue Makefiles für svdrpservice, remotetimers, remoteosd, svdrposd und epgsync liegen auf http://vdr.schmirler.de. Neue Versionen der Plugins mit den neuen Makefiles folgen in den nächsten Wochen.


    Bislang includieren epgsync und die remote*-Plugins "../svdrpservice/svdrpservice.h". Dadurch funktioniert das Kompilieren nur, wenn die svdrpservice-Sourcen an entsprechender Stelle liegen. Ab der nächsten Version werden die Plugins eine Kopie von svdrpservice.h enthalten.

  • Moin!


    Bislang includieren epgsync und die remote*-Plugins "../svdrpservice/svdrpservice.h". Dadurch funktioniert das Kompilieren nur, wenn die svdrpservice-Sourcen an entsprechender Stelle liegen. Ab der nächsten Version werden die Plugins eine Kopie von svdrpservice.h enthalten.


    Das ist auch so ein Fall, der mal "standardisiert" werden sollte. :)


    Ich wäre dafür, die Header von Plugins unter /usr/include/vdr/<pluginname>/ abzulegen...


    Lars.

  • Moin!


    Direkt in das include-Verzeichnis des vdr geht nicht, da sich die Namen zu sehr überschneiden. Außerdem wird das dann schnell unübersichtlich...


    Lars.

  • Ich finde hier die Idee mit dem Kopieren doch besser. Abhängigkeiten zwischen Plugins sind so eine Sache und die Service-Schnittstelle lässt ja auch eine Version mit übermitteln. Die Plugins dürfen also ggf. durchaus veraltete .h-Dateien nutzen, weil dann auch eine alte Version übermittelt wird und das "Zielplugin" so ggf. reagieren kann.

  • Hat aber den Nachteil, dass du dabei wieder massiv Probleme bei denjenigen bekommst, die Plugins im VDRDIR bauen. Erst wenn der Header installiert wurde bauen dann die davon abhängigen Plugins. Beim "make plugins" wird aber nie installiert.

  • Moin!


    Wie funktioniert es denn mit den vdr-Includes? Im Plugin gebe ich z.B. an "<vdr/device.h>". Ich hab gerade keinen Linux-Rechner zur Hand, deshalb kann ich nicht nachsehen.
    Im vdr-Source wird doch ein include-Verzeichnis erstellt, ist darunter noch ein Verzeichnis "vdr", in dem die Header abgelegt werden?
    Also müsste dann da noch ein Unterverzeichnis pro Plugin (nur für die, die überhaupt Header installieren wollen) angelegt werden.


    Heißt das nicht eigentlich, dass die Plugin-Makefiles ein Target "include-dir" brauchen?


    Lars.

  • Ist das jetzt eine Antwort auf die Frage?!


    Das Target "install-includes" vom VDR legt das Includedir an, das sind aber blos Symlinks. Erst "install-includes" kopiert die Includes an die richtige Stelle.


    Wenn man das machen wollte bräuchte man ein "install-includes" Target im Plugin. Das Problem ist, dass bei einem normalen "make plugins" nie irgendein "install"-Target aufgerufen wird. Also würde auch nie eine Headerfile an der richtigen Stelle landen.

  • Klar macht es das. In deinem Fall müsste das RESDIR /etc/vdr sein. Das Unterverzeichnis "plugins" packt der VDR dann selber noch dazu.

    Scheint aber nicht für alle Plugins zu gelten, z. B. markad legt seine
    Dateien nicht unter $RESDIR/plugins ab. Da fehlt insgesamt noch ein
    bisjen Einheit.

  • Scheint aber nicht für alle Plugins zu gelten, z. B. markad legt seine
    Dateien nicht unter $RESDIR/plugins ab. Da fehlt insgesamt noch ein
    bisjen Einheit.


    Du meinst die logos? Die werden vom markad Plugin doch gar nicht benutzt. Die werden vom markad Kommandozeilenprogram genutzt.


    cu

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!