I am new to bitbake. I am going through the user manual for learning and I got a doubt in the section quoted below
3.5.3. Passing Information Into the Build Task Environment
When running a task, BitBake tightly controls the execution environment of the build tasks to make sure unwanted contamination from the build machine cannot influence the build. Consequently, if you do want something to get passed into the build task environment, you must take these two steps:
Tell BitBake to load what you want from the environment into the datastore. You can do so through the
BB_ENV_EXTRAWHITEvariable. For example, assume you want to prevent the build system from accessing your$HOME/.ccachedirectory. The following command tells BitBake to loadCCACHE_DIRfrom the environment into the datastore:export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR"Tell BitBake to export what you have loaded into the datastore to the task environment of every running task. Loading something from the environment into the datastore (previous step) only makes it available in the datastore. To export it to the task environment of every running task, use a command similar to the following in your local configuration file local.conf or your distribution configuration file:
export CCACHE_DIR
It says from external environment i have to load necessary values to datastore and from there export to task environment.
As per my understanding it is something like from my PC i have load in necessary data to a structure called datastore and that should be loaded in bitbake environment for it to get processed by bitbake.
But i am not able to get a clear overview.
Can you explain me (if possible with example) what are external environment variables, internal environment variable and datastore?