Let me try to answer that. for example, you have a package of X, Y and Z. Let X depend on Y and Y depends on package Z.
If you make "bitbake default-image-name" and you build it as a scratch (this means that not a single package was created before that is required for the default image name). So, bitbake now creates a dependency tree (you can see the dependency tree on "bitbake -g PACKAGE_NAME".). The first package Z will be built, then Y, and then finally package X.
Now let's say that you made some changes to the source code of X, and you do a βbeatbot Xβ without increasing the PR number in the recipe file X (x.bb), the beatbox does not compile the changes again. I want to say that the beatbox just checks the package version and version (PV and PR). Here we have the same package version (PV) and the same Revision (PR) package, so the beatbox does not compile package X again.
To compile package X after some modification, you need to apply the changes as a patch. To do this, patch the changes (for example, change.diff or change.patch), add an entry to the X.bb file (see, for example, another recipe file). then increase the PR number in X.bb.
Now "bitbake X" will build package X again.
Here, when we increased the PR for X, we will only build package X. Here, bitbake will check the dependent packages Y and Z that are already built and have the same PR number, it will simply use the already built package Y and Z.
If we rebuilt package Y (you can clear the bitback package -c clear package_name if you don't want to increase the PR number), package X will not be built by default, even if it depends on Y.
I hope for this help.
source share