--- trunk/include/multilib.sminc 2012/11/02 10:45:29 13972 +++ trunk/include/multilib.sminc 2017/10/12 08:49:24 29788 @@ -42,10 +42,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 @@ -98,7 +98,6 @@ fi # configure a linux32 emulated build - local linux32 if [[ ${EMUL_LINUX_32} = true ]] then if [[ ${MULTILIB_VERBOSE} = true ]] @@ -107,7 +106,6 @@ fi uname(){ linux32 uname $@; } && export -f uname local orig_chost="${CHOST}" && export CHOST="i686-pc-linux-gnu" - linux32="linux32" fi if [[ ${MULTILIB_VERBOSE} = true ]] then @@ -115,7 +113,7 @@ fi # run any given command - eval ${linux32} $@ || die + eval $@ || die unset ABI CC CXX ABI_LIBDIR # keep pkgconfig clean @@ -127,7 +125,6 @@ then unset uname export CHOST="${orig_chost}" && unset orig_chost - unset linux32 fi } @@ -232,27 +229,27 @@ mabi-cc() { - echo "\"gcc -\${ABI}\"" + echo "gcc -\${ABI}" } mabi-cxx() { - echo "\"g++ -\${ABI}\"" + echo "g++ -\${ABI}" } mabi-cflags() { - echo "\"\${CFLAGS}\"" + echo "\${CFLAGS}" } mabi-cxxflags() { - echo "\"\${CXXFLAGS}\"" + echo "\${CXXFLAGS}" } mabi-ldflags() { - echo "\"\${LDFLAGS}\"" + echo "\${LDFLAGS}" } ## @@ -264,7 +261,7 @@ # rename the old one old_mconfigure=old$(typeset -f mconfigure) eval "${old_mconfigure}" -fi + mconfigure() { local abi @@ -279,13 +276,14 @@ 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}" -fi + cmake_configure() { local abi @@ -298,19 +296,261 @@ for abi in ${abis_to_run} do SRCDIR="${saved_SRCDIR}-${abi}" - cd ${SRCDIR}/${SRCSUBDIR} + # honor inside and outside build-dir builds + if [ -d ${BUILDDIR}/build-${abi} ] + then + cd ${BUILDDIR}/build-${abi} + else + cd ${SRCDIR} + fi 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 + # honor inside and outside build-dir builds + if [ -d ${BUILDDIR}/build-${abi} ] + then + cd ${BUILDDIR}/build-${abi} + else + cd ${SRCDIR}-${abi} + fi + 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 + # honor inside and outside build-dir builds + if [ -d ${BUILDDIR}/build-${abi} ] + then + cd ${BUILDDIR}/build-${abi} + else + cd ${SRCDIR}-${abi} + fi + abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die + done +} +fi + +if [[ ! -z $(typeset -f mninja) ]] +then + # rename the old one + old_mninja=old$(typeset -f mninja) + eval "${old_mninja}" + +mninja() +{ + 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 + echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}" + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + abi-${abi} oldmninja $@ || die + done +} +fi + +if [[ ! -z $(typeset -f meson_configure) ]] +then + # rename the old one + old_meson_configure=old$(typeset -f meson_configure) + eval "${old_meson_configure}" + +meson_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 + SRCDIR="${saved_SRCDIR}-${abi}" + # honor inside and outside build-dir builds + if [ -d ${BUILDDIR}/build-${abi} ] + then + cd ${BUILDDIR}/build-${abi} + else + cd ${SRCDIR} + fi + abi-${abi} oldmeson_configure $@ || die + done + # restore SRCDIR + SRCDIR="${saved_SRCDIR}" +} +fi + +if [[ ! -z $(typeset -f meson_src_compile) ]] +then + # rename the old one + old_meson_src_compile=old$(typeset -f meson_src_compile) + eval "${old_meson_src_compile}" + +meson_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 + + meson_configure || die + + for abi in ${abis_to_run} + do + cd ${BUILDDIR}/build-${abi} + abi-${abi} oldmninja $@ || die + done +} +fi + +if [[ ! -z $(typeset -f meson_src_check) ]] +then + # rename the old one + old_meson_src_check=old$(typeset -f meson_src_check) + eval "${old_meson_check}" + +meson_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 + # honor inside and outside build-dir builds + if [ -d ${BUILDDIR}/build-${abi} ] + then + cd ${BUILDDIR}/build-${abi} + else + cd ${SRCDIR}-${abi} + fi + meson test || die + done +} +fi + +if [[ ! -z $(typeset -f meson_src_install) ]] +then + # rename the old one + old_meson_src_install=old$(typeset -f meson_src_install) + eval "${old_meson_install}" + +meson_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 + # honor inside and outside build-dir builds + if [ -d ${BUILDDIR}/build-${abi} ] + then + cd ${BUILDDIR}/build-${abi} + else + cd ${SRCDIR}-${abi} + fi + abi-${abi} DESTDIR=${BINDIR} oldmninja $@ install || die + done +} +fi if [[ ! -z $(typeset -f munpack) ]] then # rename the old one old_munpack=old$(typeset -f munpack) eval "${old_munpack}" -fi + munpack() { local abi @@ -326,13 +566,14 @@ mv ${SRCDIR} ${SRCDIR}-${abi} || die done } +fi if [[ ! -z $(typeset -f mmake) ]] then # rename the old one old_mmake=old$(typeset -f mmake) eval "${old_mmake}" -fi + mmake() { local abi @@ -348,13 +589,14 @@ abi-${abi} oldmmake $@ || die done } +fi if [[ ! -z $(typeset -f minstall) ]] then # rename the old one old_minstall=old$(typeset -f minstall) eval "${old_minstall}" -fi + minstall() { local abi @@ -370,6 +612,7 @@ abi-${abi} oldminstall $@ || die done } +fi minstall_destdir() { @@ -392,7 +635,7 @@ # rename the old one old_mpatch=old$(typeset -f mpatch) eval "${old_mpatch}" -fi + mpatch() { local abi @@ -408,13 +651,14 @@ oldmpatch $@ || die done } +fi if [[ ! -z $(typeset -f mlibtoolize) ]] then # rename the old one old_mlibtoolize=old$(typeset -f mlibtoolize) eval "${old_mlibtoolize}" -fi + mlibtoolize() { local abi @@ -430,13 +674,14 @@ oldmlibtoolize $@ || die done } +fi if [[ ! -z $(typeset -f mautoreconf) ]] then # rename the old one old_mautoreconf=old$(typeset -f mautoreconf) eval "${old_mautoreconf}" -fi + mautoreconf() { local abi @@ -452,13 +697,14 @@ oldmautoreconf $@ || die done } +fi if [[ ! -z $(typeset -f minstalldocs) ]] then # rename the old one old_minstalldocs=old$(typeset -f minstalldocs) eval "${old_minstalldocs}" -fi + minstalldocs() { local abi @@ -475,29 +721,45 @@ oldminstalldocs $@ || die done } +fi ## # multilib mbuild wrappers ## multilib_src_prepare() { - munpack ${SRCFILE} + munpack ${SRCFILE} || die } multilib_src_compile() { - mconfigure - mmake + if [[ ! -z $(typeset -f cmake_src_compile) ]] + then + cmake_src_compile || die + else + mconfigure || die + mmake || die + fi } multilib_src_check() { - mmake -j1 -k check || die + if [[ ! -z $(typeset -f cmake_src_check) ]] + then + cmake_src_check || die + else + mmake -j1 -k check || die + fi } multilib_src_install() { - minstall_destdir + 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}