[1] Archiv / MLD 3.x / Development / Wie Kompilieren In Einem Unterverzeichnis?
 

Offline wino

  • Expert Member
  • *****
  • Posts: 919
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« on: June 01, 2012, 18:07:35 »
Kann mir bitte jemand sagen wie der Code für das Addon aussehen müsste, wo in einem Unterverzeichnis des Plugins kompiliert werden soll und das Ergebnis nach /usr/bin installiert gehört.

Das bisherige Makefile:
Code: [Select]
src_url = projects.vdr-developer.org/git/vdr-plugin-xmltv2vdr.git/snapshot/vdr-plugin-xmltv2vdr-master.tar.gz
include ../vdr/Makefile.plugin
deps := libxml2-dev libsqlite3-dev libpcre3-dev libzip-dev libenca-dev libcurl4-gnutls-dev libxslt1-dev

all: ../vdr $(package).$(suffix)

clean: plugin_clean

$(data):  $(plugin)

src/$(pluginname): src/vdr-plugin-$(pluginname)-$(version)

src/vdr-plugin-$(pluginname)-$(version): src/$(pluginname).tgz
rm -rf $@
tar xf $^ -C src
mv src/vdr-plugin-$(pluginname)-* src/$(pluginname)-$(version)
ln -fns $(@F) src/$(pluginname)
$(MAKE) patch src_path=$@

src/$(pluginname).tgz:
$(MAKE) -f ../Makefile.getfile file=$@ version=$(version) url='$(src_url)'
Kompiliert soll in src/$(pluginname)/dist/epgdata2xmltv werden, die Binärdatei nach /usr/bin und epgdata2xmltv.dist als epgdata2xmltv nach /var/lib/epgsources.

MfG
wino

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #1 on: June 03, 2012, 13:20:02 »
Hi,

Du musst die $(data) regel so erweitern, das die auch von den anderen Dateien die gebaut werden sollen abhängt und dann dafür Regeln bauen, z.B. so:

Code: [Select]
$(data):  $(plugin) $(data)/usr/bin/NAME_DER_BIN_DATEI


$(data)/usr/bin/NAME_DER_BIN_DATEI: src/$(pluginname)/dist/epgdata2xmltv/NAME_DER_BIN_DATEI
    mkdir -p $(@D)
    cp $^ $@

src/$(pluginname)/dist/epgdata2xmltv/NAME_DER_BIN_DATEI:
    $(MAKE) -C $(@D)

« Last Edit: June 03, 2012, 13:20:39 by clausmuus »
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline wino

  • Expert Member
  • *****
  • Posts: 919
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #2 on: June 03, 2012, 15:21:39 »
Hallo Claus,

danke für Deine Hilfe. Nach dem gezeigten Muster gilt das auch für einzelne Dateien die umkopiert werden sollen? In dem Fall epgdata2xmltv.dist nach $(data)/var/lib/epgsources/epgdata2xmltv:  

MfG
wino

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #3 on: June 03, 2012, 15:53:52 »
Wenn die einfach nur kopiert werden muss, ohne zuvor per make gebaut zu werden, schreibst DUden Kopierbefehl einfach in die Zeile nach der $(data): Regel (per Tabulator eingerückt, wie alle Anweisungen).

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline wino

  • Expert Member
  • *****
  • Posts: 919
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #4 on: June 03, 2012, 16:12:17 »
Das Makefile sieht nun so aus.
Code: [Select]
src_url = projects.vdr-developer.org/git/vdr-plugin-xmltv2vdr.git/snapshot/vdr-plugin-xmltv2vdr-master.tar.gz
include ../vdr/Makefile.plugin
deps := libxml2-dev libsqlite3-dev libpcre3-dev libzip-dev libenca-dev libcurl4-gnutls-dev libxslt1-dev

all: ../vdr $(package).$(suffix)

clean: plugin_clean

$(data): $(plugin) $(data)/usr/bin/epgdata2xmltv

src/$(pluginname): src/vdr-plugin-$(pluginname)-$(version)

$(data)/usr/bin/epgdata2xmltv: src/$(pluginname)/dist/epgdata2xmltv/epgdata2xmltv
   mkdir -p $(@D)
   cp $^ $@

src/$(pluginname)/dist/epgdata2xmltv/epgdata2xmltv:
   $(MAKE) -C $(@D)

src/vdr-plugin-$(pluginname)-$(version): src/$(pluginname).tgz
rm -rf $@
tar xf $^ -C src
mv src/vdr-plugin-$(pluginname)-* src/$(pluginname)-$(version)
ln -fns $(@F) src/$(pluginname)
$(MAKE) patch src_path=$@

src/$(pluginname).tgz:
$(MAKE) -f ../Makefile.getfile file=$@ version=$(version) url='$(src_url)'
Bringt leider noch eine Fehlermeldung.
Makefile:14: *** Fehlendes Begrenzungszeichen.  Schluss.
Zeile 14 wäre mkdir -p $(@D)

MfG
wino

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #5 on: June 04, 2012, 12:58:04 »
Du hast aber schon zum Einrücken nen TAB verwendet? Es in Makefiles wichtig, das nicht per Space eingerückt wird. Das hat unterschiedliche Bedeutungen.

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline wino

  • Expert Member
  • *****
  • Posts: 919
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #6 on: June 04, 2012, 14:54:52 »
Das mit dem notwendigen TAB habe ich schon gelesen und angewendet. Nur hatte ein TAB nicht genügt. Erst bei setzen des zweiten TABs.

Jedenfalls Danke, es funktioniert jetzt und etwas dazugelernt habe ich auch.

MfG
wino

Offline wino

  • Expert Member
  • *****
  • Posts: 919
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #7 on: June 04, 2012, 15:26:22 »
Hier noch das Makefile für MLD-4. Kann auch nach Umstellung für die MLD-3 genutzt werden.

MfG
wino

EDIT:Wegen der Formatierung wollte ich eigentlich die Datei als .tar.gz hochladen. Ging leider nicht. Weder als .tgz, tar.gz oder .zip.  
« Last Edit: June 04, 2012, 15:30:58 by wino »

Offline P3f

  • Administrator
  • Expert Member
  • ********
  • Posts: 1461
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #8 on: June 21, 2012, 21:47:29 »
Hi,

irgendwie ist mir die Erstellung von den Makefile noch nicht verständlich, gibt es eigentlich irgendwo ein HowTO?

Ich muß vor dem Make vom Addon etwas verschieben, wenn ich das Makefile wie folgt erstelle (unter MLD-3) dann wird der Source von dem git aus projects.vdr-developer.org geladen, allerdings muß dann noch etwas umkopiert werden und das halt vor dem eigentlichen Make.

So sieht das Makefile im Moment aus (ist wirklich standard!)
Code: [Select]
include ../vdr/Makefile.plugin


all: ../vdr $(modul).$(suffix)

clean: plugin_clean

$(modul): $(plugin)

Ich denke das da noch eine Regel erzeugt werden muß, aber ich weiß nicht wie man die erstellt.

Könnt ihr einem "blinden" helfen?

Danke,

Pit
----------------------------------------------------------------------
VDR 1:(MLD 6.5-64), ZOTAC ION ITX F-E, 1GB 1033, ATRIC-Einschalter, ImonLCD, Cinergy S2 HD
VDR 2 MLD 5.4-BPI: BananaPI | 16 GB SD-Card | MLD 5.3 in Entwicklung
MLD-WTK: WeTek-Play | 8 GB MicroSD-Card | MLD 5.3 als SatIP-Server

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #9 on: June 21, 2012, 22:21:16 »
Wenn ich Dich richtig verstanden habe, willst Du die Plugin Sourcen nach dem herunterladen noch ein wenig verändern.
Dafür kannst Du entweden nen patch erstellen und im src Verzeichnis ablegen, oder in Deinem Fall wohl eher eigene Regeln schreiben wie die Sourcen geladen und entpackt werden sollen. Nen Beispiel hierfür findest Du im xineliboutput Addon. Interessant für die ist die Regel "src/xineliboutput-$(version):" Wichtig ist auch das am Anfang vom Makefile die src_url angegeben ist, da diese benötigt wird um die Versionsnummer zu bestimmen.
Es ist nicht vorgesehen, das nach dem Runterladen und vor dem Kompilieren lediglich ein Befehl zwischen geschoben wird.

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline P3f

  • Administrator
  • Expert Member
  • ********
  • Posts: 1461
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #10 on: June 21, 2012, 22:40:46 »
Hi Claus,

Da habe ich mich wohl falsch ausgedrückt. Ich dachte eher an das Channel Manager-Plugin von VDR-Developer.org. In dem GIT ist leider die Sourcein einem weiteren Verzeichnis. Wenn ich also das Makefile Aufrufe, dann wird es auch geladen und korrekt mit dem letzten Aktualisierten Datum verlinkt. Nur ist halt das Sourceverzeichnis noch darunter. Sobald ich dieses dann manuell eins höher schiebe, dann wird auch das Addon komplett gebaut.

Von der Funktion herfinde ich das Plugin eigentlich positiv und wollte es gerne installierbar haben, daher meine Anfrage.

Du kennst bestimmt einen Weg...

Danke,

Pit



Link
« Last Edit: June 21, 2012, 22:41:16 by P3f »
----------------------------------------------------------------------
VDR 1:(MLD 6.5-64), ZOTAC ION ITX F-E, 1GB 1033, ATRIC-Einschalter, ImonLCD, Cinergy S2 HD
VDR 2 MLD 5.4-BPI: BananaPI | 16 GB SD-Card | MLD 5.3 in Entwicklung
MLD-WTK: WeTek-Play | 8 GB MicroSD-Card | MLD 5.3 als SatIP-Server

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #11 on: June 22, 2012, 12:40:44 »
Ja, so in der Art hatte ich das auch verstanden. Genau dafür passt meine Anleitung auch. Das muss wie beim xineliboutput gemacht werden, nur dass nach dem auspacken des tar Archives noch nen verschieben eingefügt wird.
Falls erforderlich gebe ich Dir auch nen genaueres Beispiel.

Claus
« Last Edit: June 22, 2012, 12:42:04 by clausmuus »
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

Offline P3f

  • Administrator
  • Expert Member
  • ********
  • Posts: 1461
    • View Profile
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #12 on: June 22, 2012, 22:14:20 »
So, nun habe ich das auch verstanden....

Das Addon "Kanal-Manager" habe ich nun auch hochgeladen.

Danke, für die Erklärungen. :rolleyes:

Pit
----------------------------------------------------------------------
VDR 1:(MLD 6.5-64), ZOTAC ION ITX F-E, 1GB 1033, ATRIC-Einschalter, ImonLCD, Cinergy S2 HD
VDR 2 MLD 5.4-BPI: BananaPI | 16 GB SD-Card | MLD 5.3 in Entwicklung
MLD-WTK: WeTek-Play | 8 GB MicroSD-Card | MLD 5.3 als SatIP-Server

Offline clausmuus

  • Administrator
  • Expert Member
  • ********
  • Posts: 20313
    • View Profile
    • ClausMuus.de
Wie Kompilieren In Einem Unterverzeichnis?
« Reply #13 on: June 22, 2012, 22:52:29 »
Hi,

sieht gut aus. Wie ich so bin, hab ich trotzdem ne Kleinigkeit geändert :)

Claus
MLD 5.5 - Raspberry PI - 7" Touch TFT - Squeeze Play
MLD 5.5 - lirc yaUsbIR - OctopusNet - XFX GeForce 9300 mit Intel E3200 - 2GB RAM - 12TB HDD - Lian Li PC-C37B - Samsung LE40A559

[1] Archiv / MLD 3.x / Development / Wie Kompilieren In Einem Unterverzeichnis?
 



Users Online Users Online

0 Members and 1 Guest are viewing this topic.