classes/binconfig.bbclass: Fix namespace clash if you compile in /usr or friends
authorRichard Purdie <rpurdie@rpsys.net>
Sun, 6 Feb 2005 22:30:30 +0000 (22:30 +0000)
committerRichard Purdie <rpurdie@rpsys.net>
Sun, 6 Feb 2005 22:30:30 +0000 (22:30 +0000)
BKrev: 42069a8624BK350E1xrDCQmGxx2tWA

classes/binconfig.bbclass

index e69de29..7011004 100644 (file)
@@ -0,0 +1,31 @@
+inherit base
+
+# 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:'"
+               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}/..:'"
+       return s
+
+def is_native(d):
+       import bb.data
+       return ["","-native"][bb.data.inherits_class('native', d)]
+
+do_stage_append() {
+       for config in `find ${S} -name '*-config'`; 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
+       done
+}