Archiv > Development

Wie Kompilieren In Einem Unterverzeichnis?

(1/3) > >>

wino:
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: ---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)'
--- End code ---
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

clausmuus:
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: ---$(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)


--- End code ---

wino:
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

clausmuus:
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

wino:
Das Makefile sieht nun so aus.
--- Code: ---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)'
--- End code ---
Bringt leider noch eine Fehlermeldung.
Makefile:14: *** Fehlendes Begrenzungszeichen.  Schluss.
Zeile 14 wäre mkdir -p $(@D)

MfG
wino

Navigation

[0] Message Index

[#] Next page

Go to full version