xf86-video-omapfb: pandora: handle cycle/forcer events better
[openembedded.git] / classes / binconfig.bbclass
index bf15ebc..b3b2236 100644 (file)
@@ -1,36 +1,58 @@
-inherit base
+FILES_${PN}-dev += "${bindir}/*-config"
 
 # The namespaces can clash here hence the two step replace
 def get_binconfig_mangle(d):
-       import bb.data
        s = "-e ''"
        if not bb.data.inherits_class('native', d):
-               s += " -e 's:=${libdir}:=OELIBDIR:;'"
-               s += " -e 's:=${includedir}:=OEINCDIR:;'"
-               s += " -e 's:=${datadir}:=OEDATADIR:'"
-               s += " -e 's:=${prefix}:=OEPREFIX:'"
-               s += " -e 's:=${exec_prefix}:=OEEXECPREFIX:'"
+               optional_quote = r"\(\"\?\)"
+               s += " -e 's:=%s${libdir}:=\\1OELIBDIR:;'" % optional_quote
+               s += " -e 's:=%s${includedir}:=\\1OEINCDIR:;'" % optional_quote
+               s += " -e 's:=%s${datadir}:=\\1OEDATADIR:'" % optional_quote
+               s += " -e 's:=%s${prefix}/:=\\1OEPREFIX/:'" % optional_quote
+               s += " -e 's:=%s${exec_prefix}/:=\\1OEEXECPREFIX/:'" % optional_quote
                s += " -e 's:-L${libdir}:-LOELIBDIR:;'"
                s += " -e 's:-I${includedir}:-IOEINCDIR:;'"
                s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'"
                s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'"
                s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'"
-               s += " -e 's:OEPREFIX:${STAGING_LIBDIR}/..:'"
-               s += " -e 's:OEEXECPREFIX:${STAGING_LIBDIR}/..:'"
+               s += " -e 's:OEPREFIX:${STAGING_DIR_HOST}${prefix}:'"
+               s += " -e 's:OEEXECPREFIX:${STAGING_DIR_HOST}${exec_prefix}:'"
+               s += " -e 's:-I${WORKDIR}:-I${STAGING_INCDIR}:'"
+               s += " -e 's:-L${WORKDIR}:-L${STAGING_LIBDIR}:'"
+               if bb.data.getVar("OE_BINCONFIG_EXTRA_MANGLE", d):
+                   s += bb.data.getVar("OE_BINCONFIG_EXTRA_MANGLE", d)
        return s
 
-# Native package configurations go in ${BINDIR}/<name>-config-native to prevent a collision with cross packages
-def is_native(d):
-       import bb.data
-       return ["","-native"][bb.data.inherits_class('native', d)]
-
 BINCONFIG_GLOB ?= "*-config"
 
-do_stage_append() {
+PACKAGE_PREPROCESS_FUNCS += "binconfig_package_preprocess"
+
+binconfig_package_preprocess () {
+       for config in `find ${PKGD} -name '${BINCONFIG_GLOB}'`; do
+               sed -i \
+                   -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ 
+                   -e 's:${STAGING_INCDIR}:${includedir}:g;' \
+                   -e 's:${STAGING_DATADIR}:${datadir}:' \
+                   -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
+                    $config
+       done
+       for lafile in `find ${PKGD} -name "*.la"` ; do
+               sed -i \
+                   -e 's:${STAGING_LIBDIR}:${libdir}:g;' \
+                   -e 's:${STAGING_INCDIR}:${includedir}:g;' \
+                   -e 's:${STAGING_DATADIR}:${datadir}:' \
+                   -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \
+                   $lafile
+       done        
+}
+
+SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess"
+
+binconfig_sysroot_preprocess () {
        for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
-               configname=`basename $config`${@is_native(d)}
-               install -d ${STAGING_BINDIR}
-               cat $config | sed ${@get_binconfig_mangle(d)} > ${STAGING_BINDIR}/$configname
-               chmod u+x ${STAGING_BINDIR}/$configname
+               configname=`basename $config`
+               install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
+               cat $config | sed ${@get_binconfig_mangle(d)} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
+               chmod u+x ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
        done
 }