From c3269e20bf1c9475997b4f12219c52c203f7666f Mon Sep 17 00:00:00 2001 From: Jeff Polk Date: Fri, 3 Sep 2010 11:25:38 -0600 Subject: siteinfo: add SITECONFIG_SYSROOTCACHE definition in place of hard-coded path siteconfig: use SITECONFIG_SYSROOTCACHE and use sstate-interceptfuncs Use the new sstate-interceptfuncs functionality to interpose do_siteconfig between the sstate_install and package. Signed-off-by: Jeff Polk --- meta/classes/siteconfig.bbclass | 36 +++++++++++++++++------------------- meta/classes/siteinfo.bbclass | 4 ++-- 2 files changed, 19 insertions(+), 21 deletions(-) (limited to 'meta') diff --git a/meta/classes/siteconfig.bbclass b/meta/classes/siteconfig.bbclass index 5311653bb5..2694f65de2 100644 --- a/meta/classes/siteconfig.bbclass +++ b/meta/classes/siteconfig.bbclass @@ -1,7 +1,16 @@ -siteconfig_do_siteconfig() { - if [ ! -d ${FILE_DIRNAME}/site_config ]; then - exit 0 - fi +python siteconfig_do_siteconfig () { + shared_state = sstate_state_fromvars(d) + if shared_state['name'] != 'populate-sysroot': + return + if not os.path.isdir(os.path.join(bb.data.getVar('FILE_DIRNAME', d, 1), 'site_config')): + bb.debug(1, "No site_config directory, skipping do_siteconfig") + return + bb.build.exec_func('do_siteconfig_gencache', d) + sstate_clean(shared_state, d) + sstate_install(shared_state, d) +} + +siteconfig_do_siteconfig_gencache () { mkdir ${WORKDIR}/site_config gen-site-config ${FILE_DIRNAME}/site_config \ >${WORKDIR}/site_config/configure.ac @@ -11,21 +20,10 @@ siteconfig_do_siteconfig() { 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 + mkdir -p ${SYSROOT_DESTDIR}${SITECONFIG_SYSROOTCACHE} + cp ${PN}_config ${SYSROOT_DESTDIR}${SITECONFIG_SYSROOTCACHE} } -# 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) -} +do_populate_sysroot[sstate-interceptfuncs] += "do_siteconfig " -EXPORT_FUNCTIONS do_siteconfig +EXPORT_FUNCTIONS do_siteconfig do_siteconfig_gencache diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass index 130fdc4cfb..df29097fb8 100644 --- a/meta/classes/siteinfo.bbclass +++ b/meta/classes/siteinfo.bbclass @@ -97,7 +97,7 @@ def siteinfo_get_files(d): sitefiles += fname + " " # Now check for siteconfig cache files - path_siteconfig = os.path.join(bb.data.getVar('STAGING_DATADIR', d, 1), bb.data.getVar('TARGET_SYS', d, 1) + "_config_site.d") + path_siteconfig = bb.data.getVar('SITECONFIG_SYSROOTCACHE', d, 1) if os.path.isdir(path_siteconfig): for i in os.listdir(path_siteconfig): fname = os.path.join(path_siteconfig, i) @@ -127,5 +127,5 @@ def siteinfo_get_bits(d): # SITEINFO_ENDIANESS = "${@siteinfo_get_endianess(d)}" SITEINFO_BITS = "${@siteinfo_get_bits(d)}" - +SITECONFIG_SYSROOTCACHE = "${STAGING_DATADIR}/${TARGET_SYS}_config_site.d" -- cgit v1.2.3