1# 2# Copyright OpenEmbedded Contributors 3# 4# SPDX-License-Identifier: MIT 5# 6 7FILES:${PN}-dev += "${bindir}/*-config" 8 9# The namespaces can clash here hence the two step replace 10def get_binconfig_mangle(d): 11 s = "-e ''" 12 if not bb.data.inherits_class('native', d): 13 optional_quote = r"\(\"\?\)" 14 s += " -e 's:=%s${base_libdir}:=\\1OEBASELIBDIR:;'" % optional_quote 15 s += " -e 's:=%s${libdir}:=\\1OELIBDIR:;'" % optional_quote 16 s += " -e 's:=%s${includedir}:=\\1OEINCDIR:;'" % optional_quote 17 s += " -e 's:=%s${datadir}:=\\1OEDATADIR:'" % optional_quote 18 s += " -e 's:=%s${prefix}/:=\\1OEPREFIX/:'" % optional_quote 19 s += " -e 's:=%s${exec_prefix}/:=\\1OEEXECPREFIX/:'" % optional_quote 20 s += " -e 's:-L${libdir}:-LOELIBDIR:;'" 21 s += " -e 's:-I${includedir}:-IOEINCDIR:;'" 22 s += " -e 's:-L${WORKDIR}:-LOELIBDIR:'" 23 s += " -e 's:-I${WORKDIR}:-IOEINCDIR:'" 24 s += " -e 's:OEBASELIBDIR:${STAGING_BASELIBDIR}:;'" 25 s += " -e 's:OELIBDIR:${STAGING_LIBDIR}:;'" 26 s += " -e 's:OEINCDIR:${STAGING_INCDIR}:;'" 27 s += " -e 's:OEDATADIR:${STAGING_DATADIR}:'" 28 s += " -e 's:OEPREFIX:${STAGING_DIR_HOST}${prefix}:'" 29 s += " -e 's:OEEXECPREFIX:${STAGING_DIR_HOST}${exec_prefix}:'" 30 if d.getVar("OE_BINCONFIG_EXTRA_MANGLE", False): 31 s += d.getVar("OE_BINCONFIG_EXTRA_MANGLE") 32 33 return s 34 35BINCONFIG_GLOB ?= "*-config" 36 37PACKAGE_PREPROCESS_FUNCS += "binconfig_package_preprocess" 38 39binconfig_package_preprocess () { 40 for config in `find ${PKGD} -type f -name '${BINCONFIG_GLOB}'`; do 41 sed -i \ 42 -e 's:${STAGING_BASELIBDIR}:${base_libdir}:g;' \ 43 -e 's:${STAGING_LIBDIR}:${libdir}:g;' \ 44 -e 's:${STAGING_INCDIR}:${includedir}:g;' \ 45 -e 's:${STAGING_DATADIR}:${datadir}:' \ 46 -e 's:${STAGING_DIR_HOST}${prefix}:${prefix}:' \ 47 $config 48 done 49} 50 51SYSROOT_PREPROCESS_FUNCS += "binconfig_sysroot_preprocess" 52 53binconfig_sysroot_preprocess () { 54 for config in `find ${S} -type f -name '${BINCONFIG_GLOB}'` `find ${B} -type f -name '${BINCONFIG_GLOB}'`; do 55 configname=`basename $config` 56 install -d ${SYSROOT_DESTDIR}${bindir_crossscripts} 57 sed ${@get_binconfig_mangle(d)} $config > ${SYSROOT_DESTDIR}${bindir_crossscripts}/$configname 58 chmod u+x ${SYSROOT_DESTDIR}${bindir_crossscripts}/$configname 59 done 60} 61