diff options
Diffstat (limited to 'classes')
118 files changed, 4892 insertions, 1367 deletions
diff --git a/classes/.mtn2git_empty b/classes/.mtn2git_empty deleted file mode 100644 index e69de29bb2..0000000000 --- a/classes/.mtn2git_empty +++ /dev/null diff --git a/classes/angstrom.bbclass b/classes/angstrom.bbclass new file mode 100644 index 0000000000..4a810a638a --- /dev/null +++ b/classes/angstrom.bbclass @@ -0,0 +1,19 @@ +# anonymous support class for angstrom +# +# Features: +# +# * blacklist handling, set ANGSTROM_BLACKLIST_pn-blah = "message" +# + +python () { + import bb + + blacklist = bb.data.getVar("ANGSTROM_BLACKLIST", d, 1) + pkgnm = bb.data.getVar("PN", d, 1) + + if blacklist: + bb.note("Angstrom DOES NOT support %s because %s" % (pkgnm, blacklist)) + raise bb.parse.SkipPackage("Angstrom DOES NOT support %s because %s" % (pkgnm, blacklist)) + +} + diff --git a/classes/autotools.bbclass b/classes/autotools.bbclass index 4f3e0b1c4d..1ea4b6f1d0 100644 --- a/classes/autotools.bbclass +++ b/classes/autotools.bbclass @@ -1,8 +1,7 @@ -inherit base +# use autotools_stage_all for native packages +AUTOTOOLS_NATIVE_STAGE_INSTALL = "1" def autotools_dep_prepend(d): - import bb; - if bb.data.getVar('INHIBIT_AUTOTOOLS_DEPS', d, 1): return '' @@ -24,12 +23,15 @@ def autotools_dep_prepend(d): return deps + 'gnu-config-native ' EXTRA_OEMAKE = "" + DEPENDS_prepend = "${@autotools_dep_prepend(d)}" +DEPENDS_virtclass-native_prepend = "${@autotools_dep_prepend(d)}" +DEPENDS_virtclass-nativesdk_prepend = "${@autotools_dep_prepend(d)}" + acpaths = "default" EXTRA_AUTORECONF = "--exclude=autopoint" def autotools_set_crosscompiling(d): - import bb if not bb.data.inherits_class('native', d): return " cross_compiling=yes" return "" @@ -112,7 +114,7 @@ autotools_do_configure() { else CONFIGURE_AC=configure.ac fi - if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then + if grep "^[[:space:]]*AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then : do nothing -- we still have an old unmodified configure.ac else @@ -120,19 +122,19 @@ autotools_do_configure() { echo "no" | glib-gettextize --force --copy fi fi - if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then + mkdir -p m4 + if grep "^[[:space:]]*[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then oenote Executing intltoolize --copy --force --automake intltoolize --copy --force --automake fi oenote Executing autoreconf --verbose --install --force ${EXTRA_AUTORECONF} $acpaths - mkdir -p m4 autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || oefatal "autoreconf execution failed." cd $olddir fi ;; esac if [ -e ${S}/configure ]; then - oe_runconf + oe_runconf $@ else oenote "nothing to configure" fi @@ -140,13 +142,22 @@ autotools_do_configure() { autotools_do_install() { oe_runmake 'DESTDIR=${D}' install +} - for i in `find ${D} -name "*.la"` ; do \ - sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i - sed -i -e s:${D}::g $i - sed -i -e 's:-I${WORKDIR}\S*: :g' $i - sed -i -e 's:-L${WORKDIR}\S*: :g' $i - done +PACKAGE_PREPROCESS_FUNCS += "autotools_prepackage_lamangler" + +autotools_prepackage_lamangler () { + for i in `find ${PKGD} -name "*.la"` ; do \ + sed -i -e '/^dependency_libs=/s,${WORKDIR}[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),${libdir}/\1,g' $i + sed -i -e s:${CROSS_DIR}/${HOST_SYS}::g $i + sed -i -e s:${CROSS_DIR}::g $i + sed -i -e s:${STAGING_LIBDIR}:${libdir}:g $i + sed -i -e s:${STAGING_DIR_HOST}::g $i + sed -i -e s:${STAGING_DIR}::g $i + sed -i -e s:${S}::g $i + sed -i -e s:${T}::g $i + sed -i -e s:${D}::g $i + done } STAGE_TEMP="${WORKDIR}/temp-staging" @@ -162,6 +173,14 @@ autotools_stage_includes() { fi } +autotools_stage_dir() { + sysroot_stage_dir $1 ${STAGE_TEMP_PREFIX}$2 +} + +autotools_stage_libdir() { + sysroot_stage_libdir $1 ${STAGE_TEMP_PREFIX}$2 +} + autotools_stage_all() { if [ "${INHIBIT_AUTO_STAGE}" = "1" ] then @@ -170,27 +189,11 @@ autotools_stage_all() { rm -rf ${STAGE_TEMP} mkdir -p ${STAGE_TEMP} oe_runmake DESTDIR="${STAGE_TEMP}" install - if [ -d ${STAGE_TEMP}/${includedir} ]; then - cp -fpPR ${STAGE_TEMP}/${includedir}/* ${STAGING_INCDIR} - fi - if [ -d ${STAGE_TEMP}/${libdir} ] - then - find ${STAGE_TEMP}/${libdir} -name '*.la' -exec sed -i s,installed=yes,installed=no, {} \; - - for i in ${STAGE_TEMP}/${libdir}/*.la - do - if [ ! -f "$i" ]; then - cp -fpPR ${STAGE_TEMP}/${libdir}/* ${STAGING_LIBDIR} - break - fi - oe_libinstall -so $(basename $i .la) ${STAGING_LIBDIR} - done - fi - if [ -d ${STAGE_TEMP}/${datadir}/aclocal ]; then - install -d ${STAGING_DATADIR}/aclocal - cp -fpPR ${STAGE_TEMP}/${datadir}/aclocal/* ${STAGING_DATADIR}/aclocal - fi + rm -rf ${STAGE_TEMP}/${mandir} || true + rm -rf ${STAGE_TEMP}/${infodir} || true + sysroot_stage_dirs ${STAGE_TEMP} ${STAGE_TEMP_PREFIX} rm -rf ${STAGE_TEMP} } EXPORT_FUNCTIONS do_configure do_install + diff --git a/classes/autotools_stage.bbclass b/classes/autotools_stage.bbclass new file mode 100644 index 0000000000..ff0f4cd880 --- /dev/null +++ b/classes/autotools_stage.bbclass @@ -0,0 +1,5 @@ +inherit autotools + +do_stage () { + autotools_stage_all +} diff --git a/classes/base.bbclass b/classes/base.bbclass index c2ce508538..e6cfeccc46 100644 --- a/classes/base.bbclass +++ b/classes/base.bbclass @@ -10,18 +10,97 @@ def base_path_join(a, *p): path += '/' + b return path +def base_path_relative(src, dest): + """ Return a relative path from src to dest. + + >>> base_path_relative("/usr/bin", "/tmp/foo/bar") |
