Diskussion:Neutrino-MP Entwicklungsumgebung: Unterschied zwischen den Versionen

Aus TuxBoxWIKI
Zur Navigation springen Zur Suche springen
Zeile 5: Zeile 5:
Exemplarisch wird hier mal der unfsd und die Makros / Umgebungsvariablen erklärt. Hier der Quellcode der Datei ~/buildsystem-cs/make/unfsd.mk:
Exemplarisch wird hier mal der unfsd und die Makros / Umgebungsvariablen erklärt. Hier der Quellcode der Datei ~/buildsystem-cs/make/unfsd.mk:


  298 $(D)/unfsd: $(D)/libflex $(D)/portmap $(ARCHIVE)/unfs3-$(UNFS3-VER).tar.gz
$(D)/unfsd: $(D)/libflex $(D)/portmap $(ARCHIVE)/unfs3-$(UNFS3-VER).tar.gz
  299        $(UNTAR)/unfs3-$(UNFS3-VER).tar.gz
        $(UNTAR)/unfs3-$(UNFS3-VER).tar.gz
  300        cd $(BUILD_TMP)/unfs3-$(UNFS3-VER) && \
        cd $(BUILD_TMP)/unfs3-$(UNFS3-VER) && \
  301                $(CONFIGURE) --build=$(BUILD) --host=$(TARGET) --target=$(TARGET) \
                $(CONFIGURE) --build=$(BUILD) --host=$(TARGET) --target=$(TARGET) \
  302                        --prefix= --mandir=/.remove && \
                        --prefix= --mandir=/.remove && \
  303                $(MAKE) && \
                $(MAKE) && \
  304                $(MAKE) install DESTDIR=$(TARGETPREFIX)
                $(MAKE) install DESTDIR=$(TARGETPREFIX)
  305        rm -f -r $(TARGETPREFIX)/.remove
        rm -f -r $(TARGETPREFIX)/.remove
  306        rm -rf $(PKGPREFIX)
        rm -rf $(PKGPREFIX)
  307        mkdir -p $(PKGPREFIX)/sbin
        mkdir -p $(PKGPREFIX)/sbin
  308        install -m 755 -D $(SCRIPTS)/nfsd.init $(TARGETPREFIX)/etc/init.d/nfsd
        install -m 755 -D $(SCRIPTS)/nfsd.init $(TARGETPREFIX)/etc/init.d/nfsd
  309        install -m 755 -D $(SCRIPTS)/nfsd.init $(PKGPREFIX)/etc/init.d/nfsd
        install -m 755 -D $(SCRIPTS)/nfsd.init $(PKGPREFIX)/etc/init.d/nfsd
  310        ln -s nfsd $(PKGPREFIX)/etc/init.d/S99nfsd # needs to start after modules are loaded
        ln -s nfsd $(PKGPREFIX)/etc/init.d/S99nfsd # needs to start after modules are loaded
  311        ln -s nfsd $(PKGPREFIX)/etc/init.d/K01nfsd
        ln -s nfsd $(PKGPREFIX)/etc/init.d/K01nfsd
  312        cp -a $(TARGETPREFIX)/sbin/{unfsd,portmap} $(PKGPREFIX)/sbin
        cp -a $(TARGETPREFIX)/sbin/{unfsd,portmap} $(PKGPREFIX)/sbin
  313        $(OPKG_SH) $(CONTROL_DIR)/unfsd
        $(OPKG_SH) $(CONTROL_DIR)/unfsd
  314        $(REMOVE)/unfs3-$(UNFS3-VER) $(PKGPREFIX)
        $(REMOVE)/unfs3-$(UNFS3-VER) $(PKGPREFIX)
  315        touch $@
        touch $@


Dabei bedeuten:
Dabei bedeuten:
$(BASE_DIR) = da wo das Buildsystem hin installiert ist, also ~/cs-neutrino zum Beispiel.
$(BASE_DIR) = da wo das Buildsystem hin installiert ist, also ~/cs-neutrino zum Beispiel.
$(PKGPREFIX) = $(BASE_DIR)/build_tmp/pkg das Verzeichnis, in dem die Dateien für das Paket liegen
$(CONTROL_DIR) = $(BASE_DIR)/pkgs/control : Paketinformationen
$(TARGETPREFIX) = $(BASE_DIR)/root : hier installiert "make install" die Binärdateien
$(SCRIPTS) = $(BASE_DIR)/scripts/target : hier liegen Skripte wie zum Beispiel in /etc/init.d/


$(PKGPREFIX) = $(BASE_DIR)/build_tmp/pkg das Verzeichnis, in dem die Dateien für das Paket liegen


$(CONTROL_DIR) = $(BASE_DIR)/pkgs/control : Paketinformationen
Was dabei passiert:  


$(TARGETPREFIX) = $(BASE_DIR)/root : hier installiert "make install" die Binärdateien
Das Sourcepaket wird also nach build_tmp entpackt und kompiliert.


$(SCRIPTS) = $(BASE_DIR)/scripts/target : hier liegen Skripte wie zum Beispiel in /etc/init.d/
Dann wird es nach cs-neutrino/root "installiert".  


"$(TARGETPREFIX)/.remove" Dorthin wurde die Doku gebaut, die nimmt natürlich zu viel Platz und muss weg


298-303: Das Sourcepaket wird also nach build_tmp entpackt und kompiliert.
"rm -rf $(PKGPREFIX)" löscht das temporäre Paketverzeichnis


304: Dann wird es nach cs-neutrino/root "installiert".
"mkdir -p $(PKGPREFIX)/sbin" erstellt ein temporäres Paketverzeichnis ("-p" erstellt /sbin gleich mit)


305: $(TARGETPREFIX)/.remove Dorthin wurde die Doku gebaut, die nimmt natürlich zu viel Platz und muss weg
"install -m 755 -D $(SCRIPTS)/nfsd.init $(TARGETPREFIX) bzw. $(PKGPREFIX)/etc/init.d/nfsd" kopieren das init-skript sowohl in das root-fs als auch in das temporäre Paketverzeichnis


306: löscht das temporäre Paketverzeichnis
"ln -s nfsd $(PKGPREFIX)/etc..." legen symbolische Links im temporären Paketverzeichnis an


307: erstellt ein temporäres Paketverzeichnis ("-p" erstellt /sbin gleich mit ohne meckern)
"cp -a $(TARGETPREFIX)/sbin/{unfsd,portmap} $(PKGPREFIX)/sbin" kopiert die Binaries ins temporäre Paketverzeichnis


308+309: kopieren das init-skript sowohl in das root-fs als auch in das temporäre Paketverzeichnis
"$(OPKG_SH) $(CONTROL_DIR)/unfsd" endlich wird das Paket gebaut.
 
310+311: legen symbolische Links im temporären Paketverzeichnis an
 
312: kopiert die binaries ins temporäre Paketverzeichnis
 
313: endlich wird das Paket gebaut.


Der Rest ist Aufräumen.
Der Rest ist Aufräumen.


Also macht opkg.sh alles in ein ar-Archive, was in $(PKGPREFIX) ist (plus control.tar.gz) ?
Also macht opkg.sh alles in ein ar-Archive, was in $(PKGPREFIX) ist (plus control.tar.gz) ?
opkg.sh braucht ein paar Umgebungsvariablen, deswegen wird es als $(OPKG_SH) aufgerufen, da werden die alle gesetzt. opkg.sh checkt auch gleich, ob es das paket schon gibt, und ob das neue paket identisch zum alten wäre (dann wird einfach das alte behalten). Wenn es sich unterscheidet, dann wird die Releasenummer hochgezählt und es neu eingepackt, das Alte wird weggesichert.
opkg.sh braucht ein paar Umgebungsvariablen, deswegen wird es als $(OPKG_SH) aufgerufen, da werden die alle gesetzt. opkg.sh checkt auch gleich, ob es das paket schon gibt, und ob das neue paket identisch zum alten wäre (dann wird einfach das alte behalten). Wenn es sich unterscheidet, dann wird die Releasenummer hochgezählt und es neu eingepackt, das Alte wird weggesichert.


=====[[Kategorie:TuxboxWIKI_Weblinks]]Weitere Informationen zu dem Begriff '''"{{PAGENAME}}"''' findet Ihr unter:=====
=====[[Kategorie:TuxboxWIKI_Weblinks]]Weitere Informationen zu dem Begriff '''"{{PAGENAME}}"''' findet Ihr unter:=====

Version vom 17. Mai 2011, 14:40 Uhr

@naicheben -- dbt 09:47, 17. Mai 2011 (CEST)

@Dbt: Schau mal drüber und lösche oder verschiebe es, wenns hier nicht hin passt. (naicheben)

Exemplarisch wird hier mal der unfsd und die Makros / Umgebungsvariablen erklärt. Hier der Quellcode der Datei ~/buildsystem-cs/make/unfsd.mk:

$(D)/unfsd: $(D)/libflex $(D)/portmap $(ARCHIVE)/unfs3-$(UNFS3-VER).tar.gz
        $(UNTAR)/unfs3-$(UNFS3-VER).tar.gz
        cd $(BUILD_TMP)/unfs3-$(UNFS3-VER) && \
                $(CONFIGURE) --build=$(BUILD) --host=$(TARGET) --target=$(TARGET) \
                        --prefix= --mandir=/.remove && \
                $(MAKE) && \
                $(MAKE) install DESTDIR=$(TARGETPREFIX)
        rm -f -r $(TARGETPREFIX)/.remove
        rm -rf $(PKGPREFIX)
        mkdir -p $(PKGPREFIX)/sbin
        install -m 755 -D $(SCRIPTS)/nfsd.init $(TARGETPREFIX)/etc/init.d/nfsd
        install -m 755 -D $(SCRIPTS)/nfsd.init $(PKGPREFIX)/etc/init.d/nfsd
        ln -s nfsd $(PKGPREFIX)/etc/init.d/S99nfsd # needs to start after modules are loaded
        ln -s nfsd $(PKGPREFIX)/etc/init.d/K01nfsd
        cp -a $(TARGETPREFIX)/sbin/{unfsd,portmap} $(PKGPREFIX)/sbin
        $(OPKG_SH) $(CONTROL_DIR)/unfsd
        $(REMOVE)/unfs3-$(UNFS3-VER) $(PKGPREFIX)
        touch $@

Dabei bedeuten:

$(BASE_DIR) = da wo das Buildsystem hin installiert ist, also ~/cs-neutrino zum Beispiel.
$(PKGPREFIX) = $(BASE_DIR)/build_tmp/pkg das Verzeichnis, in dem die Dateien für das Paket liegen
$(CONTROL_DIR) = $(BASE_DIR)/pkgs/control : Paketinformationen
$(TARGETPREFIX) = $(BASE_DIR)/root : hier installiert "make install" die Binärdateien
$(SCRIPTS) = $(BASE_DIR)/scripts/target : hier liegen Skripte wie zum Beispiel in /etc/init.d/


Was dabei passiert:

Das Sourcepaket wird also nach build_tmp entpackt und kompiliert.

Dann wird es nach cs-neutrino/root "installiert".

"$(TARGETPREFIX)/.remove" Dorthin wurde die Doku gebaut, die nimmt natürlich zu viel Platz und muss weg

"rm -rf $(PKGPREFIX)" löscht das temporäre Paketverzeichnis

"mkdir -p $(PKGPREFIX)/sbin" erstellt ein temporäres Paketverzeichnis ("-p" erstellt /sbin gleich mit)

"install -m 755 -D $(SCRIPTS)/nfsd.init $(TARGETPREFIX) bzw. $(PKGPREFIX)/etc/init.d/nfsd" kopieren das init-skript sowohl in das root-fs als auch in das temporäre Paketverzeichnis

"ln -s nfsd $(PKGPREFIX)/etc..." legen symbolische Links im temporären Paketverzeichnis an

"cp -a $(TARGETPREFIX)/sbin/{unfsd,portmap} $(PKGPREFIX)/sbin" kopiert die Binaries ins temporäre Paketverzeichnis

"$(OPKG_SH) $(CONTROL_DIR)/unfsd" endlich wird das Paket gebaut.

Der Rest ist Aufräumen.

Also macht opkg.sh alles in ein ar-Archive, was in $(PKGPREFIX) ist (plus control.tar.gz) ? opkg.sh braucht ein paar Umgebungsvariablen, deswegen wird es als $(OPKG_SH) aufgerufen, da werden die alle gesetzt. opkg.sh checkt auch gleich, ob es das paket schon gibt, und ob das neue paket identisch zum alten wäre (dann wird einfach das alte behalten). Wenn es sich unterscheidet, dann wird die Releasenummer hochgezählt und es neu eingepackt, das Alte wird weggesichert.

Weitere Informationen zu dem Begriff "Neutrino-MP Entwicklungsumgebung" findet Ihr unter:

Re: @naicheben -- 217.5.231.249 09:51, 17. Mai 2011 (CEST)

Ja, sollte eher als Ergänzung in OPKG, oder? Hatte nicht gesehen, dass es ein Template war, sorry

Re: Re: @naicheben -- dbt 10:00, 17. Mai 2011 (CEST)

Das muss man erst mal formatieren, Zeilennumnmern usw. rausnehmen. Ich weiß nicht genau wo das hin sollte nehme an hier: NeutrinoHD:seifesBuildsystem:OPKG-SystemInstall

Re: Re: @naicheben -- dbt 10:02, 17. Mai 2011 (CEST)

Im Zweifelsfall immer erst mal in die Disskussion rein, da kann nix passieren oder im Board was dazu aufmachen