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