Archiv > Development
Wie Kompilieren In Einem Unterverzeichnis?
			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