Wäre es nicht besser, das Pattern im zweiten find so zu formulieren, dass es zu PLUGINS.html passt?
Also "lib$$i-*.so".
Dann würde es aber doch die eigentliche Plugin-Library nicht mehr kopieren, oder übersehe ich da was?
Klaus
Wäre es nicht besser, das Pattern im zweiten find so zu formulieren, dass es zu PLUGINS.html passt?
Also "lib$$i-*.so".
Dann würde es aber doch die eigentliche Plugin-Library nicht mehr kopieren, oder übersehe ich da was?
Klaus
Ah, ich war durch das diff verwirrt, das sah nach zwei Schleifen aus...
Äh ja, dann müsste man zwei "find"s machen. Ich würde das schöner finden, weil dann wirklich nur das kopiert wird, was kopiert werden soll und nicht irgendwelche anderen libs, die da noch so rumliegen.
(cd $(PLUGINDIR)/src/$$i; for l in `find -name libvdr-*.so` `find -name lib$$i-*.so`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
Lars.
Ah, ich war durch das diff verwirrt, das sah nach zwei Schleifen aus...
Äh ja, dann müsste man zwei "find"s machen. Ich würde das schöner finden, weil dann wirklich nur das kopiert wird, was kopiert werden soll und nicht irgendwelche anderen libs, die da noch so rumliegen.
Was sollen denn in einem Plugin-Source-Verzeichnis für Libs "noch so rumliegen"?
Klaus
Was sollen denn in einem Plugin-Source-Verzeichnis für Libs "noch so rumliegen"?
Manche Plugins (ich kenne eins von meinen) erstellen noch nebenbei kleine Libs und Progrämmchen, die nichts mit dem Plugin zu tun haben, sondern nur durch "make install" installiert werden.
Entweder werden sie vom Plugin gebraucht (d.h. aufgerufen) oder sie helfen, mit dem Plugin zu kommunizieren.
Lars.
Manche Plugins (ich kenne eins von meinen) erstellen noch nebenbei kleine Libs und Progrämmchen, die nichts mit dem Plugin zu tun haben, sondern nur durch "make install" installiert werden.
Entweder werden sie vom Plugin gebraucht (d.h. aufgerufen) oder sie helfen, mit dem Plugin zu kommunizieren.
Es kann einfach um's Verrecken nicht *einfach* bleiben...
Wie wär's dann hiermit?
--- Makefile 2013/02/24 10:40:23 2.53
+++ Makefile 2013/03/11 14:57:24
@@ -220,7 +220,7 @@
INCLUDES="-I$(CWD)/include"\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" || failed="$$failed $$i";\
if [ -n "$(LCLBLD)" ] ; then\
- (cd $(PLUGINDIR)/src/$$i; for l in libvdr-*.so; do install $$l $(LIBDIR)/$$l.$(APIVERSION); done);\
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$l-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
if [ -d $(PLUGINDIR)/src/$$i/po ]; then\
for l in `ls $(PLUGINDIR)/src/$$i/po/*.mo`; do\
install -D -m644 $$l $(LOCDIR)/`basename $$l | cut -d. -f1`/LC_MESSAGES/vdr-$$i.mo;\
Alles anzeigen
Die Hochkommas um die Patterns hatte ich auch noch vergessen...
Klaus
Sieht super aus. Aber muss da nicht $$i (also "ih", nicht "el") in dem zweiten Pattern stehen?
Lars.
Sieht super aus. Aber muss da nicht $$i (also "ih", nicht "el") in dem zweiten Pattern stehen?
Ja, stimmt. Schon erstaunlich, was man auf den letzten Metern noch alles falsch machen kann...
Also hier nochmal korrigiert, der Vollständigkeit halber:
--- Makefile 2013/02/24 10:40:23 2.53
+++ Makefile 2013/03/11 15:01:01 2.54
@@ -220,7 +220,7 @@
INCLUDES="-I$(CWD)/include"\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" || failed="$$failed $$i";\
if [ -n "$(LCLBLD)" ] ; then\
- (cd $(PLUGINDIR)/src/$$i; for l in libvdr-*.so; do install $$l $(LIBDIR)/$$l.$(APIVERSION); done);\
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
if [ -d $(PLUGINDIR)/src/$$i/po ]; then\
for l in `ls $(PLUGINDIR)/src/$$i/po/*.mo`; do\
install -D -m644 $$l $(LOCDIR)/`basename $$l | cut -d. -f1`/LC_MESSAGES/vdr-$$i.mo;\
Alles anzeigen
Klaus
Moin!
Ich sehe jetzt kein Problem mehr, kann jetzt aber nicht testen. Ich probier's nachher mal mit meinen Plugins.
Lars.
Moin!
Wenn die libvdr-*.so-Dateien in Unterverzeichnissen liegen (Beispiel streamdev), funktioniert's noch nicht.
Hier eine Korrektur:
diff --git a/Makefile b/Makefile
index 913173b..f6f91cb 100644
--- a/Makefile
+++ b/Makefile
@@ -220,7 +220,7 @@ plugins: include-dir vdr.pc
INCLUDES="-I$(CWD)/include"\
$(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" || failed="$$failed $$i";\
if [ -n "$(LCLBLD)" ] ; then\
- (cd $(PLUGINDIR)/src/$$i; for l in libvdr-*.so; do install $$l $(LIBDIR)/$$l.$(APIVERSION); done);\
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
if [ -d $(PLUGINDIR)/src/$$i/po ]; then\
for l in `ls $(PLUGINDIR)/src/$$i/po/*.mo`; do\
install -D -m644 $$l $(LOCDIR)/`basename $$l | cut -d. -f1`/LC_MESSAGES/vdr-$$i.mo;\
Alles anzeigen
Da ist hinten "basename" dazugekommen.
Lars.
Wenn die libvdr-*.so-Dateien in Unterverzeichnissen liegen (Beispiel streamdev), funktioniert's noch nicht.
Hier eine Korrektur:DiffAlles anzeigendiff --git a/Makefile b/Makefile index 913173b..f6f91cb 100644 --- a/Makefile +++ b/Makefile @@ -220,7 +220,7 @@ plugins: include-dir vdr.pc INCLUDES="-I$(CWD)/include"\ $(MAKE) --no-print-directory -C "$(PLUGINDIR)/src/$$i" VDRDIR="$(CWD)" || failed="$$failed $$i";\ if [ -n "$(LCLBLD)" ] ; then\ - (cd $(PLUGINDIR)/src/$$i; for l in libvdr-*.so; do install $$l $(LIBDIR)/$$l.$(APIVERSION); done);\ + (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\ if [ -d $(PLUGINDIR)/src/$$i/po ]; then\ for l in `ls $(PLUGINDIR)/src/$$i/po/*.mo`; do\ install -D -m644 $$l $(LOCDIR)/`basename $$l | cut -d. -f1`/LC_MESSAGES/vdr-$$i.mo;\
Da ist hinten "basename" dazugekommen.
Isr das nicht genau das Gleiche, was ich gepostet hatte?
Zumindest sehe ich keinen Unterschied...
Klaus
Da ist hinten "basename" dazugekommen.
Beim install muss das Verzeichnis von $l weggeschnitten werden.
Sonst landet die lib bei streamdev in LIBDIR/client/libvdr-streamdev-client.so.1.7.40
Suche nach basename im diff. Ist ja bald Ostern...
Lars
Beim install muss das Verzeichnis von $l weggeschnitten werden.
Sonst landet die lib bei streamdev in LIBDIR/client/libvdr-streamdev-client.so.1.7.40
Suche nach basename im diff. Ist ja bald Ostern...
Ich nehme also die '+' Zeile von hier
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
und die '+' Zeile von hier
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
und lege sie direkt übereinander
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
+ (cd $(PLUGINDIR)/src/$$i; for l in `find -name 'libvdr-*.so' -o -name 'lib$$i-*.so'`; do install $$l $(LIBDIR)/`basename $$l`.$(APIVERSION); done);\
Aber so sehr ich auch suche, ich finde keinen Unterschied.
Insbesondere kommt "basename" in beiden Diffs gleichermaßen vor.
Klaus
Moin!
Na, dann ist die Lösung ja ganz einfach: ich hab's beim ersten Mal übersehen... Sorry!
Lars.
Wegen devstatus: [...] Ansonsten schreibe ich den Entwickler selbst an. In der Hoffnung, dass ich es nach VDR-Developer schieben darf.
Ja, devstatus-plugin darf gerne nach VDR-Developer umziehen. Ich freue mich, daß er offenbar noch nützlich ist.
Gruss,
... Walter
Ich bin mir nicht sicher, ob es bereits hier besprochen wurde, aber ich frage es trotzdem:
Was ist nun der beste Weg ein Plugin unter aelteren Version kompilierbar zu machen? Mit der neuen Makefile kompilierte es nicht mehr unter 1.6.x
Soll man alte und neue Makefiles ausliefern oder laesst sich es mit einer Makefile nur realisieren?
Gruss,
Lado
Was ist nun der beste Weg ein Plugin unter aelteren Version kompilierbar zu machen? Mit der neuen Makefile kompilierte es nicht mehr unter 1.6.x
Wenn du ne passende vdr.pc für den 1.6er Quellcode erstellst dann baut das neue Makefile auch mit dem 1.6er. Musst dann nur die *.so manuell kopieren.
Ich persönlich finde es am besten wenn das alte Makefile den Pluginquellcodes noch ne Weile beiliegt. Aber viele Pluginauthoren sind ja leider dazu übergegengen das alte komplett rauszuwerfen.
Wobei mich sowas nur noch max. 2 Monate nerven wird, weil spätestens dann bin ich auch mal endlich vom 1.6er weg
cu
Wollte mal fragen ob schon jemand ein neues Makefile für graphtft zur Verfügung hat?
Danke im Voraus
... still some "old" plugins updated for the upcoming version 2.0.0
Ciao
Gianni
Moin!
Ist "rotor" nicht durch "rotorng" abgelöst?
Lars.
Das mit den Makefiles ist ja nett gemeint. Das hilft aber alles nichts, wenn hinter dem Plugin kein Entwickler mehr steht.
Und das glaube ich bei allen fünf nicht der Fall.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!