Magellan Linux

Diff of /trunk/include/multilib.sminc

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

revision 21293 by niro, Wed Jun 11 11:10:25 2014 UTC revision 33339 by niro, Wed Jul 12 20:17:12 2023 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 the abi srcdir as default setting
11    : ${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
15    
# Line 42  then Line 45  then
45   # the var ist decided with our common eval+echo magic   # the var ist decided with our common eval+echo magic
46   if [[ -z ${SDEPEND} ]]   if [[ -z ${SDEPEND} ]]
47   then   then
48   SDEPEND="\$(eval echo \\\$EMUL_LINUX_32_SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')"   SDEPEND="$(marchsdepend EMUL_LINUX_32_SDEPEND)"
49   else   else
50   SDEPEND="${SDEPEND}   SDEPEND="${SDEPEND}
51   \$(eval echo \\\$EMUL_LINUX_32_SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')"   $(marchsdepend EMUL_LINUX_32_SDEPEND)"
52   fi   fi
53  fi  fi
54    
# Line 54  fi Line 57  fi
57  ##  ##
58  mlibdir()  mlibdir()
59  {  {
60   local libdir=lib   local libdir="${ABI_DEFAULT_LIBDIR}"
61   [[ ${ARCH} = x86_64 ]] && libdir=lib64   [[ ${ARCH} = i686 ]] && libdir="${ABI_X86_LIBDIR}"
62     [[ ${ARCH} = x86_64 ]] && libdir="${ABI_X86_64_LIBDIR}"
63   [[ -n ${ABI_LIBDIR} ]] && libdir="${ABI_LIBDIR}"   [[ -n ${ABI_LIBDIR} ]] && libdir="${ABI_LIBDIR}"
64    
65   echo "${libdir}"   echo "${libdir}"
# Line 69  abi-m32() Line 73  abi-m32()
73   export ABI="m32"   export ABI="m32"
74   export CC="gcc -${ABI}"   export CC="gcc -${ABI}"
75   export CXX="g++ -${ABI}"   export CXX="g++ -${ABI}"
76   export ABI_LIBDIR="lib"   export ABI_LIBDIR="${ABI_X86_LIBDIR}"
77   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
78   then   then
79   local saved_ldflags="${LDFLAGS}"   local saved_ldflags="${LDFLAGS}"
# Line 79  abi-m32() Line 83  abi-m32()
83   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
84   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
85    
86     # honor rust
87     case ${ARCH} in
88     # use native abi as RUST_TARGET
89     i686) export RUST_TARGET="${ARCH}-unknown-linux-gnu" ;;
90     # use i686 as RUST_TARGET for i{3,4,5}86 targets and on multilib-x86_64 target too
91     i*86|x86_64) export RUST_TARGET="i686-unknown-linux-gnu" ;;
92     *)  die "unknown RUST_TARGET '${ARCH}'" ;;
93     esac
94    
95   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
96   then   then
97   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
# Line 93  abi-m32() Line 106  abi-m32()
106   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
107   fi   fi
108   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
109     echo -e "${COLBLUE}*** ${COLGREEN}  RUST_TARGET${COLDEFAULT}='${RUST_TARGET}'"
110   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
111   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
112   fi   fi
# Line 105  abi-m32() Line 119  abi-m32()
119   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"
120   fi   fi
121   uname(){ linux32 uname $@; } && export -f uname   uname(){ linux32 uname $@; } && export -f uname
122   local orig_chost="${CHOST}" && export CHOST="i686-pc-linux-gnu"   local orig_chost="${CHOST}" && export CHOST="${ABI_X86_CHOST}"
123   fi   fi
124   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
125   then   then
# Line 113  abi-m32() Line 127  abi-m32()
127   fi   fi
128    
129   # run any given command   # run any given command
130     if [[ ${MULTILIB_VERBOSE} = true ]]
131     then
132     echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'"
133     fi
134   eval $@ || die   eval $@ || die
135    
136   unset ABI CC CXX ABI_LIBDIR   unset ABI CC CXX ABI_LIBDIR RUST_TARGET
137   # keep pkgconfig clean   # keep pkgconfig clean
138   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
139   export LDFLAGS="${saved_ldflags}"   export LDFLAGS="${saved_ldflags}"
# Line 133  abi-m64() Line 151  abi-m64()
151   export ABI="m64"   export ABI="m64"
152   export CC="gcc -${ABI}"   export CC="gcc -${ABI}"
153   export CXX="g++ -${ABI}"   export CXX="g++ -${ABI}"
154   export ABI_LIBDIR="lib64"   export ABI_LIBDIR="${ABI_X86_64_LIBDIR}"
155   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
156   then   then
157   local saved_ldflags="${LDFLAGS}"   local saved_ldflags="${LDFLAGS}"
# Line 143  abi-m64() Line 161  abi-m64()
161   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
162   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
163    
164     # honor rust
165     case ${ARCH} in
166     # use native abi as RUST_TARGET
167     x86_64) export RUST_TARGET="${ARCH}-unknown-linux-gnu" ;;
168     *)  die "unknown RUST_TARGET '${ARCH}'" ;;
169     esac
170    
171   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
172   then   then
173   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
# Line 157  abi-m64() Line 182  abi-m64()
182   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
183   fi   fi
184   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
185     echo -e "${COLBLUE}*** ${COLGREEN}  RUST_TARGET${COLDEFAULT}='${RUST_TARGET}'"
186   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"   echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
187   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
188   fi   fi
189    
190   # run any given command   # run any given command
191     if [[ ${MULTILIB_VERBOSE} = true ]]
192     then
193     echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'"
194     fi
195   eval $@ || die   eval $@ || die
196    
197   unset ABI CC CXX ABI_LIBDIR   unset ABI CC CXX ABI_LIBDIR RUST_TARGET
198   # keep pkgconfig clean   # keep pkgconfig clean
199   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
200   export LDFLAGS="${saved_ldflags}"   export LDFLAGS="${saved_ldflags}"
# Line 182  only-m32() Line 212  only-m32()
212   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
213   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
214    
215   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
216     then
217     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
218     fi
219   abi-${abi} $@ || die   abi-${abi} $@ || die
220    
221   # unset this is very important   # unset this is very important
# Line 203  only-m64() Line 236  only-m64()
236   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
237   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
238    
239   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
240     then
241     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
242     fi
243   abi-${abi} $@ || die   abi-${abi} $@ || die
244    
245   # unset this is very important   # unset this is very important
# Line 217  all-abis() Line 253  all-abis()
253   local abi   local abi
254   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
255   do   do
256   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
257     then
258     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
259     fi
260   abi-${abi} $@ || die   abi-${abi} $@ || die
261   done   done
262  }  }
# Line 272  mconfigure() Line 311  mconfigure()
311    
312   for abi in ${abis_to_run}   for abi in ${abis_to_run}
313   do   do
314   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} ]  
315   then   then
316   cd ${BUILDDIR}/build-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
  else  
  cd ${SRCDIR}  
317   fi   fi
318   abi-${abi} oldcmake_configure $@ || die   abi-${abi} oldmconfigure $@ || 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  
319   done   done
320  }  }
321  fi  fi
# Line 429  mmake() Line 360  mmake()
360   for abi in ${abis_to_run}   for abi in ${abis_to_run}
361   do   do
362   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
363   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
364     then
365     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
366     fi
367   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
368   done   done
369  }  }
# Line 452  minstall() Line 386  minstall()
386   for abi in ${abis_to_run}   for abi in ${abis_to_run}
387   do   do
388   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
389   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
390     then
391     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
392     fi
393   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
394   done   done
395  }  }
# Line 469  minstall_destdir() Line 406  minstall_destdir()
406   for abi in ${abis_to_run}   for abi in ${abis_to_run}
407   do   do
408   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
409   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
410     then
411     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
412     fi
413   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
414   done   done
415  }  }
# Line 491  mpatch() Line 431  mpatch()
431   for abi in ${abis_to_run}   for abi in ${abis_to_run}
432   do   do
433   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
434   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
435     then
436     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
437     fi
438   oldmpatch $@ || die   oldmpatch $@ || die
439   done   done
440  }  }
# Line 514  mlibtoolize() Line 457  mlibtoolize()
457   for abi in ${abis_to_run}   for abi in ${abis_to_run}
458   do   do
459   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
460   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
461     then
462     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
463     fi
464   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
465   done   done
466  }  }
# Line 537  mautoreconf() Line 483  mautoreconf()
483   for abi in ${abis_to_run}   for abi in ${abis_to_run}
484   do   do
485   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
486   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
487     then
488     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
489     fi
490   oldmautoreconf $@ || die   oldmautoreconf $@ || die
491   done   done
492  }  }
# Line 561  minstalldocs() Line 510  minstalldocs()
510    
511   for abi in ${abis_to_run}   for abi in ${abis_to_run}
512   do   do
513   cd ${SRCDIR}-${abi}/${SRCSUBDIR}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
514     then
515     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
516     fi
517   oldminstalldocs $@ || die   oldminstalldocs $@ || die
518   done   done
519  }  }
520  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.21293  
changed lines
  Added in v.33339