2014-09-25 9 views
13

Sono confuso su build_dir e staging_dir in openroot buildroot. A cosa servono?openwrt buildroot build_dir e staging_dir

Ci sono feeds in openwrt. Immaginerei di costruire un'immagine. Selezionerai i pacchetti che vuoi in menuconfig e usa make per costruirlo.

I pacchetti vengono prelevati da feeds e quindi compilati in build_dir?

Quindi a cosa serve lo standard staging_dir?

+0

Ottima domanda e risposte.+1 – Haswell

risposta

27

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.

+0

Hai ragione sui soldi! Grazie mille! – dudeking

+0

sarebbe estremamente utile menzionare anche le variabili Makefile corrispondenti per ogni tipo di percorso. Grazie –

Problemi correlati