Neues Makfile und Paktetbau. Grundsätzliche Frage(n).

  • Wenn ich es richtig verstanden habe ließt das neue Makefile nur noch die vdr.pc wo leider ohne den Patch oben die Defines zu den Patchen fehlt ....


    Jup, der Patch muss halt "#define USE_*" in einem passenden VDR Headerfile setzen, dann bekommt das Plugin es auch mit. Ferner ist es unnötig den mit "#ifdef USE_*" abschaltbar zu machen.


    Es macht ja bei Einzelpatches keinen Sinn das in die Make.config zu packen, das war ja nur bei Multipatches so üblich.


    BTW: Die Problematik wurde ja schon mal im "neues Makefile" Thread angesprochen und dann auch so geklärt.


    cu

  • Genau ... Zur Zeit benutzen wir (mld) noch mit den extpng und dort hatten wir das Problem ... Ich hoffe nur das der Patch oben nicht noch andere Probleme macht da alle Defines gesetzt werden ....


    Leider bin ich nicht so der Makefile Experte :wow :wand


    Haste mal ein link?

    ------
    Hardware: ASUS E35M1-I Deluxe, 4GB RAM, ATI on Board (fuer Kodi), TT S2-6400 FF, Samsung 500GB 2,5"
    VDR: MLD5

  • Genau ... Zur Zeit benutzen wir (mld) noch mit den extpng


    Ich hoffe, gerade da jetzt auch einige Patches überflüssig wurden, das die Patches zukünftig als Einzelpatches kommen. Dann fällt auch die Pflege der einzelnen Patches auch leichter.


    Haste mal ein link?


    Das war irgendwo in ner ewig langen Diskusion.


    Aber im Prinzip muss ja nur (für nen Multipatch) das was in der Make.config ist da bleiben (damit die Patches im vdr Quellcode aktiviert sind) und in der PLGCFG (muss halt dann auch in das vdr-dev damit die Pluginmakefiles sie einbinden) kommen dann nochmal die
    ---
    DEFINES += -DUSE_<patch a>
    DEFINES += -DUSE_<patch b>
    ...
    ---
    für alle (in der Make.config) aktivierten Patches. Dann bekommen die Plugins das über diesen Weg.


    cu

  • Somit ist das Problem gelöst es funktioniert mit den änderungen am Makefile.
    Jetzt werde ich das mit den

    Code
    DEFINES += -DUSE_<patch a>
    DEFINES += -DUSE_<patch b>

    noch ausprobieren


    Danke an alle


  • Eine Frage bleibt mir aber da noch. Ich installiere die PLGCFG (z.b.:/usr/include/vdr/plugin.conf) mit dem vdr-dev Paket. Das heißt alle Plugins die ich außerhalb des VDR baue greifen dann darauf zu. Aber was ist mit denen die ich mit dem VDR direkt baue.
    Die Datei existiert ja da noch nicht. Und wenn ich sie direkt im Verzeichnis angebe steht der Pfad in der vdr.pc?


    Oder sehe ich da was falsch.

  • Kannst Du das auch mal probieren?


    Diesen Wert in der Make.config aktivieren und anpassen.


    Code
    PLGCFG = $(VDRDIR)/Make.config

    ------
    Hardware: ASUS E35M1-I Deluxe, 4GB RAM, ATI on Board (fuer Kodi), TT S2-6400 FF, Samsung 500GB 2,5"
    VDR: MLD5

  • Aber dann sind die Patches im VDR Paket fehlerhaft, weil sie müssten "#define USE_*" im VDR Quellcode setzen damit so was gar nicht erst vorkommt.


    Also ich musste waehrend dieser ganzen Makefile-Odyssee schmerzlich lernen, dass diese Patch-Defines sehr wohl auch indirekt das Ergebnis des Bauens eines Plugins beeinflussen, welches die entsprechenden Patches gerade NICHT nutzt, bis hin zu Undefined Symbols beim Linken oder Segfaults zur Laufzeit. Der Hintergrund ist wohl der, dass manchmal diese Patches auch die Header (also die API) veraendern, und selbst wenn jene API-Funktionen vom Plugin nicht direkt aufgerufen werden, kommnt es oft vor dass sie trotzdem ueber mehrere Ecken an API-Aufrufen doch genutzt werden, also quasi versteckt sind. Also hoert meinen Rat, bei gepatchtem VDR, baut ALLE Plugins mit den ganzen Patch-Defines, wenn dann das Kompilieren erfolgreich geht, sollte der Rest in der Regel auch klappen...


    Just my 2 cents, Lucian

  • btw: so reicht natürlich auch

    ------
    Hardware: ASUS E35M1-I Deluxe, 4GB RAM, ATI on Board (fuer Kodi), TT S2-6400 FF, Samsung 500GB 2,5"
    VDR: MLD5

Jetzt mitmachen!

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