diff options
| -rw-r--r-- | meta/classes/siteconfig.bbclass | 31 | ||||
| -rw-r--r-- | meta/classes/siteinfo.bbclass | 7 | ||||
| -rwxr-xr-x | scripts/gen-site-config | 53 |
3 files changed, 91 insertions, 0 deletions
diff --git a/meta/classes/siteconfig.bbclass b/meta/classes/siteconfig.bbclass new file mode 100644 index 0000000000..5311653bb5 --- /dev/null +++ b/meta/classes/siteconfig.bbclass | |||
| @@ -0,0 +1,31 @@ | |||
| 1 | siteconfig_do_siteconfig() { | ||
| 2 | if [ ! -d ${FILE_DIRNAME}/site_config ]; then | ||
| 3 | exit 0 | ||
| 4 | fi | ||
| 5 | mkdir ${WORKDIR}/site_config | ||
| 6 | gen-site-config ${FILE_DIRNAME}/site_config \ | ||
| 7 | >${WORKDIR}/site_config/configure.ac | ||
| 8 | cd ${WORKDIR}/site_config | ||
| 9 | autoconf | ||
| 10 | CONFIG_SITE="" ./configure ${CONFIGUREOPTS} --cache-file ${PN}_cache | ||
| 11 | sed -n -e "/ac_cv_c_bigendian/p" -e "/ac_cv_sizeof_/p" \ | ||
| 12 | -e "/ac_cv_type_/p" -e "/ac_cv_header_/p" -e "/ac_cv_func_/p" \ | ||
| 13 | < ${PN}_cache > ${PN}_config | ||
| 14 | mkdir -p ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d | ||
| 15 | cp ${PN}_config ${SYSROOT_DESTDIR}${STAGING_DATADIR}/${TARGET_SYS}_config_site.d | ||
| 16 | } | ||
| 17 | |||
| 18 | # Ugly integration with sstate_task_postfunc for now. The normal package | ||
| 19 | # sysroot components must be installed in order to generate the cache, but | ||
| 20 | # the site cache must be generated before the staging archive is generated. | ||
| 21 | python sstate_task_postfunc () { | ||
| 22 | shared_state = sstate_state_fromvars(d) | ||
| 23 | sstate_install(shared_state, d) | ||
| 24 | if shared_state['name'] == 'populate-sysroot': | ||
| 25 | bb.build.exec_func('do_siteconfig', d) | ||
| 26 | sstate_clean(shared_state, d) | ||
| 27 | sstate_install(shared_state, d) | ||
| 28 | sstate_package(shared_state, d) | ||
| 29 | } | ||
| 30 | |||
| 31 | EXPORT_FUNCTIONS do_siteconfig | ||
diff --git a/meta/classes/siteinfo.bbclass b/meta/classes/siteinfo.bbclass index c4206c2d85..130fdc4cfb 100644 --- a/meta/classes/siteinfo.bbclass +++ b/meta/classes/siteinfo.bbclass | |||
| @@ -96,6 +96,13 @@ def siteinfo_get_files(d): | |||
| 96 | if os.path.exists(fname): | 96 | if os.path.exists(fname): |
| 97 | sitefiles += fname + " " | 97 | sitefiles += fname + " " |
| 98 | 98 | ||
| 99 | # Now check for siteconfig cache files | ||
| 100 | path_siteconfig = os.path.join(bb.data.getVar('STAGING_DATADIR', d, 1), bb.data.getVar('TARGET_SYS', d, 1) + "_config_site.d") | ||
| 101 | if os.path.isdir(path_siteconfig): | ||
| 102 | for i in os.listdir(path_siteconfig): | ||
| 103 | fname = os.path.join(path_siteconfig, i) | ||
| 104 | sitefiles += fname + " " | ||
| 105 | |||
| 99 | bb.debug(1, "SITE files " + sitefiles); | 106 | bb.debug(1, "SITE files " + sitefiles); |
| 100 | return sitefiles | 107 | return sitefiles |
| 101 | 108 | ||
diff --git a/scripts/gen-site-config b/scripts/gen-site-config new file mode 100755 index 0000000000..7da7a0bd8a --- /dev/null +++ b/scripts/gen-site-config | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | #! /bin/sh | ||
| 2 | # Copyright (c) 2005-2008 Wind River Systems, Inc. | ||
| 3 | # | ||
| 4 | # This program is free software; you can redistribute it and/or modify | ||
| 5 | # it under the terms of the GNU General Public License version 2 as | ||
| 6 | # published by the Free Software Foundation. | ||
| 7 | # | ||
| 8 | # This program is distributed in the hope that it will be useful, | ||
| 9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 11 | # See the GNU General Public License for more details. | ||
| 12 | # | ||
| 13 | # You should have received a copy of the GNU General Public License | ||
| 14 | # along with this program; if not, write to the Free Software | ||
| 15 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
| 16 | |||
| 17 | cat << EOF | ||
| 18 | AC_PREREQ(2.57) | ||
| 19 | AC_INIT([site_wide],[1.0.0]) | ||
| 20 | |||
| 21 | EOF | ||
| 22 | |||
| 23 | # Disable as endian is set in the default config | ||
| 24 | #echo AC_C_BIGENDIAN | ||
| 25 | #echo | ||
| 26 | |||
| 27 | if [ -e $1/types ] ; then | ||
| 28 | while read type ; do | ||
| 29 | echo "AC_CHECK_SIZEOF([$type])" | ||
| 30 | done < $1/types | ||
| 31 | |||
| 32 | echo | ||
| 33 | fi | ||
| 34 | |||
| 35 | if [ -e $1/funcs ]; then | ||
| 36 | while read func ; do | ||
| 37 | echo "AC_CHECK_FUNCS([$func])" | ||
| 38 | done < $1/funcs | ||
| 39 | |||
| 40 | echo | ||
| 41 | fi | ||
| 42 | |||
| 43 | if [ -e $1/headers ]; then | ||
| 44 | while read header ; do | ||
| 45 | echo "AC_CHECK_HEADERS([$header])" | ||
| 46 | done < $1/headers | ||
| 47 | |||
| 48 | echo | ||
| 49 | fi | ||
| 50 | |||
| 51 | cat << EOF | ||
| 52 | AC_OUTPUT | ||
| 53 | EOF | ||
