Eigenes Plugin compilieren

Games, Plugins, Utils, Tools, 3rdParty, etc...
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Eigenes Plugin compilieren

Beitrag von flasher »

Hallo, schlagt mich aber ich habe keinen Plan.

Ich habe mir ein Plugin geschrieben.
Das Plugin liegt nun unter /apps/tuxbox/plugins/flasher

In der Makefile.am unter plugins/ habe ich den Ordner hinzugefügt.
Der Pluginordner (flasher) enthällt auch eine eigene Makefile.am

Jetz dachte ich, dass ein make plugins reichen würde.
Leider falsch gedacht.

Könnte mir jemanden den Weg zum eigenen Plugin kurz erklären?

Danke und Gruß
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

rm ../apps/tuxbox/plugins/config.status
rm .deps/plugins
make .deps/plugins
flasher
Developer
Beiträge: 467
Registriert: Dienstag 15. Juli 2003, 10:58

Beitrag von flasher »

Danke!
cs_4711
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 10. Juli 2009, 00:48

Re: Eigenes Plugin compilieren

Beitrag von cs_4711 »

Hallo zusammen,
ist ja schon älter der Thread aber trifft mein Problem genau,

Ordner unter plugins erstellt. Eine makefile.am im neuen Ordner erstellt. Im plugin Verzeichnis configure.ac geändert, die makefile.am geändert.

rm ../apps/tuxbox/plugins/config.status (ok)
rm .deps/plugins (gibt es nicht im Verzeichnis)
make .deps/plugins (keine Regel um ...)

Habe die Anleitung aus der wiki genommen.

Helft mit bitte auf die Sprünge
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

Die obige Anleitung war wohl für oldmake, mit newmake
funktioniert das nicht mehr. Damit ich Dir besser helfen
kann, poste bitte Deinen Patch für configure/Makefile.am
cs_4711
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 10. Juli 2009, 00:48

Re: Eigenes Plugin compilieren

Beitrag von cs_4711 »

Hi,
hier ist die makefile.am die in plugins/test liegt
AM_CPPFLAGS = \
@FREETYPE_CFLAGS@ \
-I$(top_srcdir)/include

noinst_LTLIBRARIES = test.la

testplugin_la_SOURCES = test.c

if BOXTYPE_DREAMBOX
lockfb_la_CFLAGS = -DOLDFT
endif

lockfb_la_LIBADD = \
@FREETYPE_LIBS@

lockfb_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version

install-exec-local:
install -d $(DESTDIR)$(PLUGINDIR)
install -d $(DESTDIR)$(CONFIGDIR)
install -d $(DESTDIR)$(CONFIGDIR)/test
$(LIBTOOL) --mode=install install test.la $(DESTDIR)$(PLUGINDIR)
Hier der Teil der configure.ac
vncviewer/Makefile
vncviewer/rfb/Makefile
test/Makefile mein Eintrag
pip/Makefile
mosaic/Makefile
Hier die makefile.am im Ordner plugins
AUTOMAKE_OPTIONS = gnu

if BOXTYPE_DREAMBOX
SUBDIRS = \
include tuxmail tuxtxt tuxcom tuxcal fx2 vncviewer enigma pip mosaic test
else
SUBDIRS = \
include tuxmail tuxtxt tuxcom tuxcal fx2 vncviewer enigma pluginx test
endif

pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = \
tuxbox-plugins.pc

rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

So wie ich es sehe, musst Du für Dein Plugin noch make targets
in cdk/make/plugins.mk (Format selbsterklärend) anlegen,
da "make plugins" nur eine vordefinierte Liste von Plugins
kompiliert. Der Rest Deiner Patches ist schon in Ordnung.
cs_4711
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 10. Juli 2009, 00:48

Re: Eigenes Plugin compilieren

Beitrag von cs_4711 »

Danke probier ich gleich mal aus,
Melde dann obs geht.
cs_4711
Neugieriger
Neugieriger
Beiträge: 9
Registriert: Freitag 10. Juli 2009, 00:48

Re: Eigenes Plugin compilieren

Beitrag von cs_4711 »

Danke hat geklappt, hab dabei gleich was über die makefile struktur gelernt :)
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Vorsichtig frage ich mal. Muss der Ordner make in cdk schon existieren oder muss ich den selbst anlegen den ich habe den nicht und wie schon erwähnt wie im wiki beschriebn geht es nicht mehr. Jedoch hatte ich damals auch newmake genutz und mit der Wiki Anleitung gebaut die angeblich an oldmake sich orientiert.

Liegt der Sinn der umstellung darin eigene Plugins explizit zu bauen und nicht immer alles ?


Martin
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

MPC823 hat geschrieben:Muss der Ordner make in cdk schon existieren
Ja.
Erstelle bitte ein leeres Verzeichnis, dort rufst Du folgenden Befehl auf:

Code: Alles auswählen

cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z9 co -f -P .
Dann findet sich dort ein Ordner cdk/make mit den besagten Dateien.
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Konnte das Problem daran liegen das ich mich beim auschecken an die Anleitung im http://wiki.tuxbox.org/wiki/index ... tellen#CVSWiki gehalten habe ?
CVS

cvs -d anoncvs@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox -z3 co -P .

Für ein Update der Quellen, diesen Befehl verwenden:

cvs -z3 -d anoncvs@cvs.tuxbox-cvs.sourceforge.net:/cvs/tuxbox up -dP .

Hinweis: Es ist durchaus sinnvoll wegen des Traffics möglichst nur ein Update zu machen, als jedesmal komplett auszuchecken!
Gruss Martin
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Wie wäre den der Vorschlag das CVS zu erweitern :

Ein Testplugin das als Vorlage für eigene Plugins verwendet werden kann mit eigenenem Zweig BSP "make userplugins" das dann auf belieben erweitert werden kann.

Das Testplugin um eine Gui zu "malen" habe ich schon fast fertig

Martin
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

Die Zahl neuer Plugins in den letzten Monaten/Jahren ist nicht
allzu groß gewesen. Ehrlich gesagt sehe ich den Sinn für ein
Beispielplugin nicht, da die bestehenden Plugins genügend
Anschauungsmaterial liefern. Außerdem können Plugins sich
bzgl. der Abhängigkeiten und damit einhergehender
Besonderheiten so voneinander unterscheiden, dass ein
Beispiel nicht ausreichen wird, um die Implementierung
besser zu erklären als die bereits vorhandenen Plugins.

Dein CVS-checkout-Befehl ist richtig, das Verzeichnis
cdk/make/ muss also bei Dir auf der Platte sein.
Suche mal global nach der Datei plugins.mk.
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Gut da war wohl gestern der Wald dem Baum im Weg. Bin da wohl ein wenig ins straucheln gekommen.

Aber ein update als Howto fürs wiki wäre trotzdem nicht schlecht sagen ich mal . Zuminest wäre ein Hinweis das es mit Newmake nicht mehr so geht sicherlich Sinnvoll.

Gehen tuts bei mir immer noch nicht liegt aber vermutlich daran das ich makemässig sehr unbedarft bin.

Ich versuche mal step by step das nochmal zu machen und poste dann hier was ich gemacht habe wenns recht ist .

Martin
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

MPC823 hat geschrieben:wie im wiki beschriebn geht es nicht mehr.
Welche Wiki-Seite meinst Du genau?
Was genau geht nicht mehr?

Wenn Du eine allgemeine Kompilieranleitung haben möchtest,
dann schau auch mal hier vorbei:
http://forum.tuxbox-cvs.sourceforge.net ... 05#p364805

newmake ist mittlerweile CVS HEAD geworden, alle Anleitungen
für newmake gelten weiterhin, bis auf den CVS-checkout-Befehl.
Dessen richtige Variante ist hier im Thread bereits gepostet
worden und dürfte somit als Fehlerquelle auf Deiner Seite
wegfallen.

Ach ja, ich bin ehrlicherweise faul, was das Schreiben von
Dokus angeht, mein VMWare-Howto ist die Ausnahme.
Wenn jemand möchte, kann der Inhalt des Howtos gerne
ins Wiki übernommen werden, mir fehlt dazu die Motivation ;)
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Ich meinte die Seite im Wiki Tutorial http://wiki.tuxbox.org/wiki/index ... s:Tutorial und so klappt es ja nicht mehr bzw kann es nicht mehr gehen.


Martin
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Was ich nun gemacht habe. Wie im Wiki beschrieben das müsste noch gleich sein

1) in ...../tuxbox/apps/tuxbox/plugins/ ein ordner test1 angelegt
2) dort vier Dateien abgespeichert
a)testplugin.cfg

Code: Alles auswählen

type=2
name=Testplugin
desc=Test zur Pluginerstellung
needfb=0
needlcd=0
needrc=0
needoffsets=0
b)testplugin.h

Code: Alles auswählen

include "stdio.h"
#include "plugin.h"
c)testplugin.c

Code: Alles auswählen

#include "testplugin.h"

void plugin_exec(PluginParam *par)
{
	printf("Hallo Welt\n");
	return;
}
d)Makefile.am

Code: Alles auswählen

AM_CPPFLAGS = \
@FREETYPE_CFLAGS@ \
-I$(top_srcdir)/include

noinst_LTLIBRARIES = testplugin.la

testplugin_la_SOURCES = testplugin.c

if BOXTYPE_DREAMBOX
testplugin_la_CFLAGS = -DOLDFT

endif

testplugin_la_LIBADD = \
	@FREETYPE_LIBS@

testplugin_la_LDFLAGS = -rpath $(PLUGINDIR) -module -avoid-version

install-exec-local:
	install -d $(DESTDIR)$(PLUGINDIR)
	install -d $(DESTDIR)$(CONFIGDIR)
	install -d $(DESTDIR)$(CONFIGDIR)/testplugin
	$(LIBTOOL) --mode=install install testplugin.la $(DESTDIR)$(PLUGINDIR)
	install -m 0644 $(srcdir)/testplugin.cfg $(DESTDIR)$(PLUGINDIR)
3) im Verzeichnis ...../tuxbox/apps/tuxbox/plugins die Dateien editiert

a) :configure.ac :

Code: Alles auswählen

vncviewer/rfb/Makefile
[color=#FF0000]test1/Makefile [/color]
dvbsub/Makefile
b:) Makefile.am

Code: Alles auswählen

AUTOMAKE_OPTIONS = gnu

SUBDIRS = \
	include tuxmail tuxtxt tuxcom tuxcal tuxclock fx2 vncviewer enigma [color=#FF0000]test1[/color]

if BOXTYPE_DREAMBOX

4)in ...../tuxbox/cdk/make die Datei plugins.mk editiert

Code: Alles auswählen

tuxmail: libfreetype $(appsdir)/tuxbox/plugins/config.status
	$(MAKE) -C $(appsdir)/tuxbox/plugins/tuxmail all install

if TARGETRULESET_FLASH
flash-tuxmail: libfreetype $(appsdir)/tuxbox/plugins/config.status | $(flashprefix)/root
	$(MAKE) -C $(appsdir)/tuxbox/plugins/tuxmail all install prefix=$(flashprefix)/root
	@FLASHROOTDIR_MODIFIED@
endif

[color=#FF0000]plugins-user: test1

test1: $(appsdir)/tuxbox/plugins/config.status
	$(MAKE) -C $(appsdir)/tuxbox/plugins/test1 all install

if TARGETRULESET_FLASH
flash-test1: $(appsdir)/tuxbox/plugins/config.status | $(flashprefix)/root
	$(MAKE) -C $(appsdir)/tuxbox/plugins/test1 all install prefix=$(flashprefix)/root
	@FLASHROOTDIR_MODIFIED@
endif[/color]

pluginx: $(appsdir)/tuxbox/plugins/config.status
	$(MAKE) -C $(appsdir)/tuxbox/plugins/pluginx all install

i
5) autogen und configure neu aufgerufen

6) make plugins-user

dann kommt
martin@Mac-Mini:~/dbox-neutrino/tuxbox/cdk$ make plugins-user
make -C /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1 all install
make[1]: Entering directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make[1]: *** Keine Regel, um »all« zu erstellen. Schluss.
make[1]: Leaving directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make: *** [test1] Fehler 2
Ich hatte ja auch keine Regel all im Makefile eingetragen ich dachte/glaubte all macht dann einfach "all" (Glauben heißt nicht wissen) :gruebel:

so weit gehts nun

Martin
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

MPC823 hat geschrieben:5) autogen und configure neu aufgerufen
apps/tuxbox/plugins/config.status vorher gelöscht, ein
clean-target aufgerufen oder, noch besser, in ein leeres
Verzeichnis den CVS-Code kopiert, Deine Patches eingespielt
und dann erst autogen.sh && cdk/configure aufgerufen?
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Muss ich clean target unbedingt machen und wenn ja welches der clean targets wäre gerade noch ausreichend (minimales löschen) ?

ohne das clean bekomme ich nun
make -C /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1 all install
make[1]: Entering directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make[1]: *** Keine Regel vorhanden, um das Target »testplugin.c«,
benötigt von »testplugin_la-testplugin.lo«, zu erstellen. Schluss.
make[1]: Leaving directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make: *** [test1] Fehler 2
martin@Mac-Mini:~/dbox-neutrino/tuxbox/cdk$
Martin

P.S Vielen dank für Deine Hilfe Rhabarber
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: Eigenes Plugin compilieren

Beitrag von rhabarber1848 »

Probier das:

rm /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/config.status
make test1
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Gleiches Problem
[quote][make -C /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1 all install
make[1]: Entering directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make[1]: *** Keine Regel vorhanden, um das Target »testplugin.c«,
benötigt von »testplugin_la-testplugin.lo«, zu erstellen. Schluss.
make[1]: Leaving directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make: *** [test1] Fehler 2
martin@Mac-Mini:~/dbox-neutrino/tuxbox/cdk$

/quote]

was ja schon mal zeigt das die Änderum in plugins.mk vermutlich richtig wären
hannebamb(el)
Foren-Moderator
Beiträge: 297
Registriert: Montag 11. Oktober 2004, 14:51

Re: Eigenes Plugin compilieren

Beitrag von hannebamb(el) »

MPC823 hat geschrieben:Gleiches Problem
[make -C /home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1 all install
make[1]: Entering directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make[1]: *** Keine Regel vorhanden, um das Target »testplugin.c«,
benötigt von »testplugin_la-testplugin.lo«, zu erstellen. Schluss.
make[1]: Leaving directory `/home/martin/dbox-neutrino/tuxbox/apps/tuxbox/plugins/test1'
make: *** [test1] Fehler 2
martin@Mac-Mini:~/dbox-neutrino/tuxbox/cdk$

/quote]

was ja schon mal zeigt das die Änderum in plugins.mk vermutlich richtig wären
Hi Martin,
bist du sicher, daß die testplugin.c _genau so_ existiert ?
Nicht das da ein Typo drin ist ?
Sonst sieht das gut aus
MPC823
Erleuchteter
Erleuchteter
Beiträge: 448
Registriert: Samstag 26. November 2005, 00:35

Re: Eigenes Plugin compilieren

Beitrag von MPC823 »

Also ich habe es nun mir 4 mal angeschaut und auch nach längerer Pause sehe ich keinen Fehler bezüglich buchstaben oder gross und klein mich wundert es echt

kann es sein das es probleme gibt weil ich das testplugin im ordner test1 habe oder evenetuell mit unicode utf8

Also im augenblick dreht sich alles.


Martin