--- trunk/include/multilib.sminc 2012/04/18 21:46:01 11828 +++ trunk/include/multilib.sminc 2014/02/19 12:10:12 20978 @@ -105,7 +105,7 @@ echo -e "${COLBLUE}*** ${COLGREEN} EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'" fi uname(){ linux32 uname $@; } && export -f uname - ORIG_CHOST="${CHOST}" && export CHOST="i686-pc-linux-gnu" + local orig_chost="${CHOST}" && export CHOST="i686-pc-linux-gnu" fi if [[ ${MULTILIB_VERBOSE} = true ]] then @@ -124,7 +124,7 @@ if [[ ${EMUL_LINUX_32} = true ]] then unset uname - export CHOST="${ORIG_CHOST}" && unset ORIG_CHOST + export CHOST="${orig_chost}" && unset orig_chost fi } @@ -229,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}" } ## @@ -294,14 +294,90 @@ local saved_SRCDIR="${SRCDIR}" for abi in ${abis_to_run} do + cd ${BUILDDIR}/build-${abi} SRCDIR="${saved_SRCDIR}-${abi}" - cd ${SRCDIR}/${SRCSUBDIR} abi-${abi} oldcmake_configure $@ || die done # restore SRCDIR SRCDIR="${saved_SRCDIR}" } +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}" +fi +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 +} + +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}" +fi +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 +} + +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}" +fi +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 +} + if [[ ! -z $(typeset -f munpack) ]] then # rename the old one @@ -319,7 +395,7 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}" - oldmunpack ${SRCFILE} || die + oldmunpack $@ || die mv ${SRCDIR} ${SRCDIR}-${abi} || die done } @@ -478,23 +554,38 @@ ## multilib_src_prepare() { - munpack + 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_compile || die + else + mmake DESTDIR=${BINDIR} install || die + fi local i for abi in ${MULTILIB_ABIS}