Magellan Linux

Diff of /branches/R11-unstable/include/multilib.sminc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/include/multilib.sminc revision 29792 by niro, Thu Oct 12 11:37:16 2017 UTC branches/R11-unstable/include/multilib.sminc revision 32899 by niro, Mon Apr 29 14:06:55 2019 UTC
# Line 7  export MULTILIB_BUILD="true" Line 7  export MULTILIB_BUILD="true"
7  # be verbose or nor (true|false}  # be verbose or nor (true|false}
8  : ${MULTILIB_VERBOSE="true"}  : ${MULTILIB_VERBOSE="true"}
9    
10  # enter SRCDIR of each abi an abi runs  # enter the abi srcdir as default setting
11  : ${ABI_DO_NOT_ENTER_SRCDIR="true"}  : ${MULTILIB_ENTER_SRCDIR="true"}
12    
13  # multilib should call all dependant includes, which gets overridden  # multilib should call all dependant includes, which gets overridden
14  sminclude mtools  sminclude mtools
# Line 82  abi-m32() Line 82  abi-m32()
82   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
83   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
84    
85     # honor rust
86     case ${ARCH} in
87     # use native abi as RUST_TARGET
88     i686) export RUST_TARGET="${ARCH}-unknown-linux-gnu" ;;
89     # use i686 as RUST_TARGET for i{3,4,5}86 targets and on multilib-x86_64 target too
90     i*86|x86_64) export RUST_TARGET="i686-unknown-linux-gnu" ;;
91     *)  die "unknown RUST_TARGET '${ARCH}'" ;;
92     esac
93    
94   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
95   then   then
96   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
# Line 96  abi-m32() Line 105  abi-m32()
105   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
106   fi   fi
107   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
108     echo -e "${COLBLUE}*** ${COLGREEN}  RUST_TARGET${COLDEFAULT}='${RUST_TARGET}'"
109   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
110   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
111   fi   fi
# Line 116  abi-m32() Line 126  abi-m32()
126   fi   fi
127    
128   # run any given command   # run any given command
129     if [[ ${MULTILIB_VERBOSE} = true ]]
130     then
131     echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'"
132     fi
133   eval $@ || die   eval $@ || die
134    
135   unset ABI CC CXX ABI_LIBDIR   unset ABI CC CXX ABI_LIBDIR RUST_TARGET
136   # keep pkgconfig clean   # keep pkgconfig clean
137   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
138   export LDFLAGS="${saved_ldflags}"   export LDFLAGS="${saved_ldflags}"
# Line 146  abi-m64() Line 160  abi-m64()
160   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
161   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
162    
163     # honor rust
164     case ${ARCH} in
165     # use native abi as RUST_TARGET
166     x86_64) export RUST_TARGET="${ARCH}-unknown-linux-gnu" ;;
167     *)  die "unknown RUST_TARGET '${ARCH}'" ;;
168     esac
169    
170   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
171   then   then
172   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
# Line 160  abi-m64() Line 181  abi-m64()
181   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
182   fi   fi
183   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
184     echo -e "${COLBLUE}*** ${COLGREEN}  RUST_TARGET${COLDEFAULT}='${RUST_TARGET}'"
185   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
186   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
187   fi   fi
188    
189   # run any given command   # run any given command
190     if [[ ${MULTILIB_VERBOSE} = true ]]
191     then
192     echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'"
193     fi
194   eval $@ || die   eval $@ || die
195    
196   unset ABI CC CXX ABI_LIBDIR   unset ABI CC CXX ABI_LIBDIR RUST_TARGET
197   # keep pkgconfig clean   # keep pkgconfig clean
198   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
199   export LDFLAGS="${saved_ldflags}"   export LDFLAGS="${saved_ldflags}"
# Line 185  only-m32() Line 211  only-m32()
211   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
212   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
213    
214   if [[ ${ABI_DO_NOT_ENTER_SRCDIR} != true ]]   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
215   then   then
216   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
217   fi   fi
# Line 209  only-m64() Line 235  only-m64()
235   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
236   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
237    
238   if [[ ${ABI_DO_NOT_ENTER_SRCDIR} != true ]]   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
239   then   then
240   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
241   fi   fi
# Line 226  all-abis() Line 252  all-abis()
252   local abi   local abi
253   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
254   do   do
255   if [[ ${ABI_DO_NOT_ENTER_SRCDIR} != true ]]   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
256   then   then
257   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
258   fi   fi
# Line 284  mconfigure() Line 310  mconfigure()
310    
311   for abi in ${abis_to_run}   for abi in ${abis_to_run}
312   do   do
313   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
  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  
  SRCDIR="${saved_SRCDIR}-${abi}"  
  # honor inside and outside build-dir builds  
  if [ -d ${BUILDDIR}/build-${abi} ]  
314   then   then
315   cd ${BUILDDIR}/build-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
  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}  
316   fi   fi
317   abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die   abi-${abi} oldmconfigure $@ || die
318   done   done
319  }  }
320  fi  fi
# Line 452  mmake() Line 359  mmake()
359   for abi in ${abis_to_run}   for abi in ${abis_to_run}
360   do   do
361   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
362   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
363     then
364     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
365     fi
366   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
367   done   done
368  }  }
# Line 475  minstall() Line 385  minstall()
385   for abi in ${abis_to_run}   for abi in ${abis_to_run}
386   do   do
387   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
388   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
389     then
390     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
391     fi
392   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
393   done   done
394  }  }
# Line 492  minstall_destdir() Line 405  minstall_destdir()
405   for abi in ${abis_to_run}   for abi in ${abis_to_run}
406   do   do
407   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
408   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
409     then
410     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
411     fi
412   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
413   done   done
414  }  }
# Line 514  mpatch() Line 430  mpatch()
430   for abi in ${abis_to_run}   for abi in ${abis_to_run}
431   do   do
432   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
433   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
434     then
435     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
436     fi
437   oldmpatch $@ || die   oldmpatch $@ || die
438   done   done
439  }  }
# Line 537  mlibtoolize() Line 456  mlibtoolize()
456   for abi in ${abis_to_run}   for abi in ${abis_to_run}
457   do   do
458   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
459   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
460     then
461     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
462     fi
463   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
464   done   done
465  }  }
# Line 560  mautoreconf() Line 482  mautoreconf()
482   for abi in ${abis_to_run}   for abi in ${abis_to_run}
483   do   do
484   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
485   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
486     then
487     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
488     fi
489   oldmautoreconf $@ || die   oldmautoreconf $@ || die
490   done   done
491  }  }
# Line 584  minstalldocs() Line 509  minstalldocs()
509    
510   for abi in ${abis_to_run}   for abi in ${abis_to_run}
511   do   do
512   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
513     then
514     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
515     fi
516   oldminstalldocs $@ || die   oldminstalldocs $@ || die
517   done   done
518  }  }
519  fi  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  

Legend:
Removed from v.29792  
changed lines
  Added in v.32899