La directory build_dir
viene utilizzato per scompattare tutti gli archivi di origine e di compilarle in.
La directory staging_dir
è usato per "install" tutti i programmi compilati in, pronta sia per l'impiego nella costruzione di ulteriori pacchetti, o per preparare l'immagine del firmware.
ci sono tre aree sotto build_dir
:
build_dir/host
, per la compilazione di tutti gli strumenti che vengono eseguiti sul computer host (OpenWRT costruisce la propria versione di sed
e molti altri strumenti da fonte). Questa area verrà utilizzata per la compilazione di programmi eseguiti solo sul tuo host.
build_dir/toolchain...
per la compilazione del compilatore cross-C e dei componenti di libreria standard C che verranno utilizzati per creare i pacchetti. Quest'area verrà utilizzata per compilare programmi eseguiti solo sul tuo host (il compilatore cross C, ad esempio) e anche, librerie progettate per essere eseguite sulla destinazione a cui sono collegati, ad es. uClibc, libm, pthreads, ecc
build_dir/target...
per compilare i pacchetti attuali, e il kernel di Linux, per il sistema di destinazione
Sotto messa in scena, ci sono anche tre aree:
staging_dir/host
è una mini radice Linux con il proprio bin/
, lib/
, ecc. in cui sono installati gli strumenti host; il resto del sistema di build quindi antepone il suo PATH con le directory in quest'area
staging_dir/toolchain...
è una mini radice Linux con il proprio bin/
, lib/
, ecc. che contiene il compilatore incrociato C utilizzato per creare il resto del firmware. Puoi effettivamente usarlo per compilare programmi C semplici al di fuori di OpenWRT che possono essere caricati sul firmware. Il compilatore C potrebbe essere qualcosa del tipo: staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc
. Puoi vedere la versione della CPU, la libreria C e gcc codificati in essa; questo consente di costruire più obiettivi contemporaneamente nella stessa area.
staging_dir/target.../root-...
contiene le versioni '' installate su ogni pacchetto di destinazione di nuovo disposti con bin/
, lib/
, questo diventerà la directory radice reale che con qualche ritocco andranno zippato in immagine del firmware, qualcosa come root-ar71xx
. Ci sono alcuni altri file a staging_dir/target...
utilizzati principalmente per generare i pacchetti e pacchetti di sviluppo, ecc
dispiace la sua un po 'prolisso, questo è difficile da descrivere più succintamente.
Ottima domanda e risposte.+1 – Haswell