--- branches/magellan-next/include/multilib.sminc 2011/07/14 21:43:24 8334 +++ trunk/include/multilib.sminc 2014/02/19 12:23:44 20980 @@ -1,9 +1,15 @@ # $Id$ # multilib abis +# tell the buildsystem that we are doing a multilib build +export MULTILIB_BUILD="true" + # be verbose or nor (true|false} : ${MULTILIB_VERBOSE="true"} +# multilib should call all dependant includes, which gets overridden +sminclude mtools + # do not define EMUL_LINUX_32 after inherit of multlib !! # it may break i*86 builds @@ -66,7 +72,8 @@ export ABI_LIBDIR="lib" if [[ ${EXPORT_ABI_LDFLAGS} != false ]] then - export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}" + local saved_ldflags="${LDFLAGS}" + export LDFLAGS="${LDFLAGS} -L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}" fi # keep pkgconfig clean local orig_pkg_config_path="${PKG_CONFIG_PATH}" @@ -85,6 +92,8 @@ else echo -e "${COLBLUE}*** ${COLGREEN} LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'" fi + echo -e "${COLBLUE}*** ${COLGREEN} CHOST${COLDEFAULT}='${CHOST}'" + echo -e "${COLBLUE}*** ${COLGREEN} SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'" echo -e "${COLBLUE}*** ${COLGREEN} PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'" fi @@ -96,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 @@ -106,15 +115,16 @@ # run any given command eval $@ || die - unset ABI CC CXX ABI_LIBDIR LDFLAGS + unset ABI CC CXX ABI_LIBDIR # keep pkgconfig clean export PKG_CONFIG_PATH="${orig_pkg_config_path}" + export LDFLAGS="${saved_ldflags}" # restore original settings if [[ ${EMUL_LINUX_32} = true ]] then unset uname - export CHOST="${ORIG_CHOST}" && unset ORIG_CHOST + export CHOST="${orig_chost}" && unset orig_chost fi } @@ -126,6 +136,7 @@ export ABI_LIBDIR="lib64" if [[ ${EXPORT_ABI_LDFLAGS} != false ]] then + local saved_ldflags="${LDFLAGS}" export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}" fi # keep pkgconfig clean @@ -146,15 +157,17 @@ echo -e "${COLBLUE}*** ${COLGREEN} LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'" fi echo -e "${COLBLUE}*** ${COLGREEN} CHOST${COLDEFAULT}='${CHOST}'" + echo -e "${COLBLUE}*** ${COLGREEN} SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'" echo -e "${COLBLUE}*** ${COLGREEN} PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'" fi # run any given command eval $@ || die - unset ABI CC CXX ABI_LIBDIR LDFLAGS + unset ABI CC CXX ABI_LIBDIR # keep pkgconfig clean export PKG_CONFIG_PATH="${orig_pkg_config_path}" + export LDFLAGS="${saved_ldflags}" } only-m32() @@ -169,7 +182,7 @@ # export this for mpatch etc (to repect only-${abi}) export MULTILIB_ONLY_ABI=${abi} - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} abi-${abi} $@ || die # unset this is very important @@ -190,7 +203,7 @@ # export this for mpatch etc (to repect only-${abi}) export MULTILIB_ONLY_ABI=${abi} - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} abi-${abi} $@ || die # unset this is very important @@ -204,7 +217,7 @@ local abi for abi in ${MULTILIB_ABIS} do - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} abi-${abi} $@ || die done } @@ -214,6 +227,31 @@ echo \${ABI} } +mabi-cc() +{ + echo "gcc -\${ABI}" +} + +mabi-cxx() +{ + echo "g++ -\${ABI}" +} + +mabi-cflags() +{ + echo "\${CFLAGS}" +} + +mabi-cxxflags() +{ + echo "\${CXXFLAGS}" +} + +mabi-ldflags() +{ + echo "\${LDFLAGS}" +} + ## # multilib compile functions ## @@ -234,7 +272,7 @@ for abi in ${abis_to_run} do - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} abi-${abi} oldmconfigure $@ || die done } @@ -256,10 +294,88 @@ local saved_SRCDIR="${SRCDIR}" for abi in ${abis_to_run} do + cd ${BUILDDIR}/build-${abi} SRCDIR="${saved_SRCDIR}-${abi}" - cd ${SRCDIR} 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) ]] @@ -279,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 } @@ -301,7 +417,7 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} abi-${abi} oldmmake $@ || die done } @@ -323,7 +439,7 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} abi-${abi} oldminstall $@ || die done } @@ -339,7 +455,7 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} make DESTDIR=${BINDIR} $@ install || die done } @@ -361,7 +477,7 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} oldmpatch $@ || die done } @@ -383,16 +499,43 @@ for abi in ${abis_to_run} do echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}" - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} oldmlibtoolize $@ || die done } +if [[ ! -z $(typeset -f mautoreconf) ]] +then + # rename the old one + old_mautoreconf=old$(typeset -f mautoreconf) + eval "${old_mautoreconf}" +fi +mautoreconf() +{ + 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}running mautoreconf for ABI -${abi}${COLDEFAULT}" + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + oldmautoreconf $@ || die + done +} + +if [[ ! -z $(typeset -f minstalldocs) ]] +then + # rename the old one + old_minstalldocs=old$(typeset -f minstalldocs) + eval "${old_minstalldocs}" +fi minstalldocs() { local abi local docfiles - docfiles="$@" local abis_to_run="${MULTILIB_ABIS}" @@ -401,18 +544,8 @@ for abi in ${abis_to_run} do - cd ${SRCDIR}-${abi} - if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ] - then - install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs." - fi - - for i in ${docfiles} - do - cat ${SRCDIR}-${abi}/${i} | gzip -9c > ${SRCDIR}-${abi}/${i}.gz || die "gzipping docs." - install -m 0644 ${SRCDIR}-${abi}/${i}.gz \ - ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "coping docs." - done + cd ${SRCDIR}-${abi}/${SRCSUBDIR} + oldminstalldocs $@ || die done } @@ -421,23 +554,43 @@ ## 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() +{ + 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} do - cd ${SRCDIR}-${abi} + cd ${SRCDIR}-${abi}/${SRCSUBDIR} for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \ FAQ LICENSE NEWS README TODO do @@ -449,4 +602,4 @@ done } -export_inherits multilib src_prepare src_compile src_install +export_inherits multilib src_prepare src_compile src_check src_install