[oe] [PATCHv2][RFC] binconfig: use / instead empty prefix/exec_prefix in get_binconfig_mangle

Khem Raj raj.khem at gmail.com
Wed Nov 24 16:29:47 UTC 2010


seems fine to me.

On Tue, Nov 23, 2010 at 11:36 PM, Martin Jansa <martin.jansa at gmail.com> wrote:
> * 952e5e2b7a5c1deefc939594d40b81a71fb16a54 appends / in sed call,
>  but it breaks ie =/usr replacement ie in libmikmod
> * using at least / in SLASH_PREFIX/SLASH_EXEC_PREFIX is needed ie for micro
>  distribution where prefix/exec_prefix are empty (/usr collapsed to /)
> * prefix and exec_prefix are expanded only in shell environment (after
>  get_binconfig_mangle is returned so to check if it's empty we have to
>  pass them expanded as params)
> * don't push this patch it fixes libmikmod with !micro, but in micro
>  it's still broken, because libmikmod-config has empty 'prefix=' which
>  is the case when we normaly don't want to add OEPREFIX (whole point of
>  this patch), but in this case it's needed (let's just fix libmikmod.in)
> * thanks to GNUtoo!
> ---
>  classes/binconfig.bbclass |   14 ++++++++++----
>  1 files changed, 10 insertions(+), 4 deletions(-)
>
> diff --git a/classes/binconfig.bbclass b/classes/binconfig.bbclass
> index b3b2236..e462083 100644
> --- a/classes/binconfig.bbclass
> +++ b/classes/binconfig.bbclass
> @@ -1,15 +1,21 @@
>  FILES_${PN}-dev += "${bindir}/*-config"
>
>  # The namespaces can clash here hence the two step replace
> -def get_binconfig_mangle(d):
> +def get_binconfig_mangle(d, env_prefix, env_exec_prefix):
> +       SLASH_PREFIX = env_prefix
> +       if SLASH_PREFIX is "":
> +               SLASH_PREFIX = "/"
> +       SLASH_EXEC_PREFIX = env_exec_prefix
> +       if SLASH_EXEC_PREFIX is "":
> +               SLASH_EXEC_PREFIX = "/"
>        s = "-e ''"
>        if not bb.data.inherits_class('native', d):
>                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:=%s%s:=\\1OEPREFIX:'" % (optional_quote, SLASH_PREFIX)
> +               s += " -e 's:=%s%s:=\\1OEEXECPREFIX:'" % (optional_quote, SLASH_EXEC_PREFIX)
>                s += " -e 's:-L${libdir}:-LOELIBDIR:;'"
>                s += " -e 's:-I${includedir}:-IOEINCDIR:;'"
>                s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'"
> @@ -52,7 +58,7 @@ binconfig_sysroot_preprocess () {
>        for config in `find ${S} -name '${BINCONFIG_GLOB}'`; do
>                configname=`basename $config`
>                install -d ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}
> -               cat $config | sed ${@get_binconfig_mangle(d)} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
> +               cat $config | sed ${@get_binconfig_mangle(d, "${prefix}", "${exec_prefix}")} > ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
>                chmod u+x ${SYSROOT_DESTDIR}${STAGING_BINDIR_CROSS}/$configname
>        done
>  }
> --
> 1.7.3.2
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>




More information about the Openembedded-devel mailing list