--- smage/trunk/include/multilib.sminc 2014/03/25 10:52:50 5461 +++ smage/branches/alx07x-unstable/include/multilib.sminc 2020/08/04 11:06:09 14483 @@ -7,6 +7,9 @@ # be verbose or nor (true|false} : ${MULTILIB_VERBOSE="true"} +# enter the abi srcdir as default setting +: ${MULTILIB_ENTER_SRCDIR="true"} + # multilib should call all dependant includes, which gets overridden sminclude mtools @@ -42,10 +45,10 @@ # the var ist decided with our common eval+echo magic if [[ -z ${SDEPEND} ]] then - SDEPEND="\$(eval echo \\\$EMUL_LINUX_32_SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')" + SDEPEND="$(marchsdepend EMUL_LINUX_32_SDEPEND)" else SDEPEND="${SDEPEND} - \$(eval echo \\\$EMUL_LINUX_32_SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')" + $(marchsdepend EMUL_LINUX_32_SDEPEND)" fi fi @@ -79,6 +82,15 @@ local orig_pkg_config_path="${PKG_CONFIG_PATH}" export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}" + # honor rust + case ${ARCH} in + # use native abi as RUST_TARGET + i686) export RUST_TARGET="${ARCH}-unknown-linux-gnu" ;; + # use i686 as RUST_TARGET for i{3,4,5}86 targets and on multilib-x86_64 target too + i*86|x86_64) export RUST_TARGET="i686-unknown-linux-gnu" ;; + *) die "unknown RUST_TARGET '${ARCH}'" ;; + esac + if [[ ${MULTILIB_VERBOSE} = true ]] then echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}" @@ -93,6 +105,7 @@ echo -e "${COLBLUE}*** ${COLGREEN} LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'" fi echo -e "${COLBLUE}*** ${COLGREEN} CHOST${COLDEFAULT}='${CHOST}'" + echo -e "${COLBLUE}*** ${COLGREEN} RUST_TARGET${COLDEFAULT}='${RUST_TARGET}'" echo -e "${COLBLUE}*** ${COLGREEN} SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'" echo -e "${COLBLUE}*** ${COLGREEN} PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'" fi @@ -113,9 +126,13 @@ fi # run any given command + if [[ ${MULTILIB_VERBOSE} = true ]] + then + echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'" + fi eval $@ || die - unset ABI CC CXX ABI_LIBDIR + unset ABI CC CXX ABI_LIBDIR RUST_TARGET # keep pkgconfig clean export PKG_CONFIG_PATH="${orig_pkg_config_path}" export LDFLAGS="${saved_ldflags}" @@ -143,6 +160,13 @@ local orig_pkg_config_path="${PKG_CONFIG_PATH}" export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}" + # honor rust + case ${ARCH} in + # use native abi as RUST_TARGET + x86_64) export RUST_TARGET="${ARCH}-unknown-linux-gnu" ;; + *) die "unknown RUST_TARGET '${ARCH}'" ;; + esac + if [[ ${MULTILIB_VERBOSE} = true ]] then echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}" @@ -157,14 +181,19 @@ echo -e "${COLBLUE}*** ${COLGREEN} LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'" fi echo -e "${COLBLUE}*** ${COLGREEN} CHOST${COLDEFAULT}='${CHOST}'" + echo -e "${COLBLUE}*** ${COLGREEN} RUST_TARGET${COLDEFAULT}='${RUST_TARGET}'" echo -e "${COLBLUE}*** ${COLGREEN} SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'" echo -e "${COLBLUE}*** ${COLGREEN} PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'" fi # run any given command + if [[ ${MULTILIB_VERBOSE} = true ]] + then + echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'" + fi eval $@ || die - unset ABI CC CXX ABI_LIBDIR + unset ABI CC CXX ABI_LIBDIR RUST_TARGET # keep pkgconfig clean export PKG_CONFIG_PATH="${orig_pkg_config_path}" export LDFLAGS="${saved_ldflags}" @@ -182,7 +211,10 @@ # export this for mpatch etc (to repect only-${abi}) export MULTILIB_ONLY_ABI=${abi} - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi abi-${abi} $@ || die # unset this is very important @@ -203,7 +235,10 @@ # export this for mpatch etc (to repect only-${abi}) export MULTILIB_ONLY_ABI=${abi} - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi abi-${abi} $@ || die # unset this is very important @@ -217,7 +252,10 @@ local abi for abi in ${MULTILIB_ABIS} do - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi abi-${abi} $@ || die done } @@ -272,117 +310,15 @@ for abi in ${abis_to_run} do - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi abi-${abi} oldmconfigure $@ || die done } fi -if [[ ! -z $(typeset -f cmake_configure) ]] -then - # rename the old one - old_cmake_configure=old$(typeset -f cmake_configure) - eval "${old_cmake_configure}" - -cmake_configure() -{ - local abi - local abis_to_run="${MULTILIB_ABIS}" - - # respect MULTILIB_ONLY_ABI variable - [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}" - - local saved_SRCDIR="${SRCDIR}" - for abi in ${abis_to_run} - do - cd ${BUILDDIR}/build-${abi} - SRCDIR="${saved_SRCDIR}-${abi}" - abi-${abi} oldcmake_configure $@ || die - done - # restore SRCDIR - SRCDIR="${saved_SRCDIR}" -} -fi - -if [[ ! -z $(typeset -f cmake_src_compile) ]] -then - # rename the old one - old_cmake_src_compile=old$(typeset -f cmake_src_compile) - eval "${old_cmake_src_compile}" - -cmake_src_compile() -{ - local abi - local abis_to_run="${MULTILIB_ABIS}" - - # respect MULTILIB_ONLY_ABI variable - [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}" - - for abi in ${abis_to_run} - do - # remove build dir if exist - [[ -d ${BUILDDIR}/build-${abi} ]] && rm -rf ${BUILDDIR}/build-${abi} - - # build outside of the source dir - install -d ${BUILDDIR}/build-${abi} || die - cd ${BUILDDIR}/build-${abi} - done - - cmake_configure || die - - for abi in ${abis_to_run} - do - cd ${BUILDDIR}/build-${abi} - abi-${abi} oldmmake $@ || die - done -} -fi - -if [[ ! -z $(typeset -f cmake_src_check) ]] -then - # rename the old one - old_cmake_src_check=old$(typeset -f cmake_src_check) - eval "${old_cmake_check}" - -cmake_src_check() -{ - local abi - local abis_to_run="${MULTILIB_ABIS}" - - # respect MULTILIB_ONLY_ABI variable - [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}" - - for abi in ${abis_to_run} - do - cd ${BUILDDIR}/build-${abi} - mmake -j1 -k check || die - done -} -fi - -if [[ ! -z $(typeset -f cmake_src_install) ]] -then - # rename the old one - old_cmake_src_install=old$(typeset -f cmake_src_install) - eval "${old_cmake_install}" - -cmake_src_install() -{ - local abi - local abis_to_run="${MULTILIB_ABIS}" - - # respect MULTILIB_ONLY_ABI variable - [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}" - - for abi in ${abis_to_run} - do - # install build outside of the source dir - cd ${BUILDDIR}/build-${abi} - abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die - done -} -fi - if [[ ! -z $(typeset -f munpack) ]] then # rename the old one @@ -423,7 +359,10 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi abi-${abi} oldmmake $@ || die done } @@ -446,7 +385,10 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi abi-${abi} oldminstall $@ || die done } @@ -463,7 +405,10 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi make DESTDIR=${BINDIR} $@ install || die done } @@ -485,7 +430,10 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi oldmpatch $@ || die done } @@ -508,7 +456,10 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi oldmlibtoolize $@ || die done } @@ -531,7 +482,10 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi oldmautoreconf $@ || die done } @@ -555,63 +509,11 @@ for abi in ${abis_to_run} do - cd ${SRCDIR}-${abi}/${SRCSUBDIR} + if [[ ${MULTILIB_ENTER_SRCDIR} = true ]] + then + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + fi oldminstalldocs $@ || die done } fi - -## -# multilib mbuild wrappers -## -multilib_src_prepare() -{ - munpack ${SRCFILE} || die -} - -multilib_src_compile() -{ - if [[ ! -z $(typeset -f cmake_src_compile) ]] - then - cmake_src_compile || die - else - mconfigure || die - mmake || die - fi -} - -multilib_src_check() -{ - if [[ ! -z $(typeset -f cmake_src_check) ]] - then - cmake_src_check || die - else - mmake -j1 -k check || die - fi -} - -multilib_src_install() -{ - if [[ ! -z $(typeset -f cmake_src_install) ]] - then - cmake_src_install || die - else - mmake DESTDIR=${BINDIR} install || die - fi - - local i - for abi in ${MULTILIB_ABIS} - do - cd ${SRCDIR}-${abi}/${SRCSUBDIR} - for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \ - FAQ LICENSE NEWS README TODO - do - if [ -f ${SRCDIR}-${abi}/${i} ] - then - minstalldocs ${i} || die - fi - done - done -} - -export_inherits multilib src_prepare src_compile src_check src_install