geht das „relativ“ einfach … oder ist das eher gewagt? <inkl. 1Lösung>
edit2: wie von @tcatm weiter unten angemerkt … wäre der einfache weg bspw.
make package/gluon-respondd/compile
make package/gluon-respondd/install
edit1: nicht ganz befriedigende Antwort : in den make_log die ich generiere steht der package name ja ziemlich deutlich …
mit einem grep -r gluon-foo-name make_160606_logfile |grep make bekomme ich den Mammut befehl … bisserl overkill, but at least it gives me what i want…
steht doch da … aber ich drösel das mal auf … das ist genau der Buildbefehl wie er für das Paket benutzt wurde …
(bekommt man wenn man mit seinem make zusätzlich v=99 | tee make_logdatei anfügt.)
unter der vorraussetzung das gluon im Verzeichnis /media/freifunk/firmware/gluon liegt und die komplette buildumgebung darin liegt,
man gehe in das gewünschte Packet Verzeichnis und ändere seinen kram …
# Setzen von Variablen ...
# man beachte das dort schon die buildumgebung (make download) von ar71xx-generic liegt
CFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/usr/include -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/include -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include "
# noch mehr variablen ...
CXXFLAGS="-Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float -mips16 -minterlink-mips16 -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/usr/include -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/include -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/include -I/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/include "
# noch mehr Variablen ....
LDFLAGS="-L/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/usr/lib -L/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/lib -L/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/usr/lib -L/media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/lib "
# der eigentliche buildbefehl ... eigentlich in 1 Zeile .. für Klarheit aber hier mal aufgedröselt
# und soweit bekannt kommentiert.
# empfehle dazu auch die MAN pages http://linux.die.net/man/1/make
make # ja, starte den c mompiler entsprechend der Makefile
-j1 # benutze genau einen Prozessor
-C /media/freifunk/firmware/gluon/build/ar71xx-generic/openwrt/build_dir/target-mips_34kc_uClibc-0.9.33.2_gluon-ar71xx-generic/gluon-respondd/.
# -C Zielverzeichnis
AR="mips-openwrt-linux-uclibc-gcc-ar"
# AR ? gerne jemand erklären, es ist der verwendete gcc compiler, zum. ein Teil
AS="mips-openwrt-linux-uclibc-gcc -c -Os -pipe -mno-branch-likely -mips32r2 -mtune=34kc -fno-caller-saves -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -msoft-float"
# das ist der konkrete compile mit ein batzen Variablen gesetzt
LD=mips-openwrt-linux-uclibc-ld
# das müsste der Linker sein
NM="mips-openwrt-linux-uclibc-gcc-nm"
# "list symbols of object files" = Zwischenstufe zum programm .o
CC="mips-openwrt-linux-uclibc-gcc"
# nochmal der compiler in c
GCC="mips-openwrt-linux-uclibc-gcc"
# nochmal der compiler
CXX="mips-openwrt-linux-uclibc-g++"
# gnu c++ compiler
RANLIB="mips-openwrt-linux-uclibc-gcc-ranlib"
# ranblib?
STRIP=mips-openwrt-linux-uclibc-strip
# irgendwas um programme KLEIN zu bekommen ?
OBJCOPY=mips-openwrt-linux-uclibc-objcopy
# irgendwas um die object files
OBJDUMP=mips-openwrt-linux-uclibc-objdump
# irgendwas um die object files
SIZE=mips-openwrt-linux-uclibc-size
CROSS="mips-openwrt-linux-uclibc-"
ARCH="mips"
Letztendlich schein mir das hier viel doppelt und dreifach deklariert wird, (weil das ja ineinander verschachteltes Bauen ist) … vermutlich braucht man vieles nur im „spezialfall“ - oder wenn man debugflags gesetzt hat.
ich vermute das ein Teil der gesetzten Umgebungsvariablen ausreicht. (achtung ungeprüft)
Ich denke so ists ein wenig übersichtlicher … wenn man schonmal was davon gehört hat wie C (und derivate) funktioniert
randbemerkung: das baut euch NICHT die Firmware … nur (falls änderungen akut sind) das Paket und hinterlegt es in der Buildumgebung! Ich brauchte das weil ich das kompilierte respondd brauchte - und das nicht immer neu in der Firmware kompilieren wollte.
und damit ists auch ein unvollständiger Erklärbär geworden, und die Ausgangsfrage dahingehend beantwortet …
„ja es ist möglich , aber du musst nen sackvoll umgebungsvariablen setzen, dann kannst du ‚einfach‘ make in irgendeinem Paketfolder ausführen“