- OE編譯大致順序:
do_setscene
do_fetch
do_unpack
do_patch
do_configure
do_qa_configure
do_compile
do_stage
do_install
do_package
do_populate_staging
do_package_write_deb
do_package_write
do_distribute_sources
do_qa_staging
do_build
do_rebuild
- 基本上每種動作都可以添加其_append,_prepend操作:
do_configure_prepend ()
do_compile_prepend ()
python do_compile_prepend ()
do_stage_prepend()
do_install_prepend()
do_package_prepend()
python populate_packages_prepend ()
帶有python的函數,其函數內容是使用python定義的,否則使用shell 語法定義。 - do_compile這些函數都是在openembedded的classes中定義的,在bitbake中沒有對這些進行定義。這說明,bitbake只是oe更底層的一個工具,oe是基於bitbake架構來完成的。
- stuff/openembedded/classes:
base.bbclass oe_runmake就是在這里定義的,所有的其他bbclass可能都是繼承於本base的
autotools.bbclass autotools_do_configure
image.bbclass 可以看出image是集成與rootfs的 - 導出了這個函數,子類就可以調用這些函數了(猜測,只有導出,子類才可以調用):
EXPORT_FUNCTIONS do_compile do_install do_stage do_configure - 通過addtask的方式來調整各個task之間的順序:
addtask sizecheck before do_install after do_compile - MIRRORS_prepend () ,可以用來修改本bb的mirror