mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
siteconfig: generate configuration data caches for autoconf
siteinfo: Use configuration caches when available
Generate cached configuration data for autoconf for the package
based on a list of header, types, and functions to eliminate the
need for all subesequent package builds to do the actual tests
via the cross compiler and sysroot. The cache files are
stored in the sysroot in ${STAGING_DATADIR}/${TARGET_SYS}_config_site.d.
Siteinfo appends any files it finds in that directory to the normal
CONFIG_SITE. All of the cache values set the variables only if not
already set so they may be overridden by any of the normal site files.
Signed-off-by: Jeff Polk <jeff.polk@windriver.com>
This commit is contained in:
committed by
Richard Purdie
parent
d6c45f0f11
commit
d2febcce2b
@@ -0,0 +1,31 @@
|
||||
siteconfig_do_siteconfig() {
|
||||
if [ ! -d ${FILE_DIRNAME}/site_config ]; then
|
||||
exit 0
|
||||
fi
|
||||
mkdir ${WORKDIR}/site_config
|
||||
gen-site-config ${FILE_DIRNAME}/site_config \
|
||||
>${WORKDIR}/site_config/configure.ac
|
||||
cd ${WORKDIR}/site_config
|
||||
autoconf
|
||||
CONFIG_SITE="" ./configure ${CONFIGUREOPTS} --cache-file ${PN}_cache
|
||||
sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \
|
||||
-e "/ac_cv_type_/p" -e "/ac_cv_header_/p" -e "/ac_cv_func_/p" \
|
||||
< ${PN}_cache > ${PN}_config
|
||||
mkdir -p ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d
|
||||
cp ${PN}_config ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d
|
||||
}
|
||||
|
||||
# Ugly integration with sstate_task_postfunc for now. The normal package
|
||||
# sysroot components must be installed in order to generate the cache, but
|
||||
# the site cache must be generated before the staging archive is generated.
|
||||
python sstate_task_postfunc () {
|
||||
shared_state = sstate_state_fromvars(d)
|
||||
sstate_install(shared_state, d)
|
||||
if shared_state['name'] == 'populate-sysroot':
|
||||
bb.build.exec_func('do_siteconfig', d)
|
||||
sstate_clean(shared_state, d)
|
||||
sstate_install(shared_state, d)
|
||||
sstate_package(shared_state, d)
|
||||
}
|
||||
|
||||
EXPORT_FUNCTIONS do_siteconfig
|
||||
Reference in New Issue
Block a user