Magellan Linux

Diff of /trunk/include/multilib.sminc

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

branches/magellan-next/include/multilib.sminc revision 9334 by niro, Sat Nov 26 13:37:05 2011 UTC trunk/include/multilib.sminc revision 31848 by niro, Tue Dec 18 13:15:14 2018 UTC
# Line 1  Line 1 
1  # $Id$  # $Id$
2  # multilib abis  # multilib abis
3    
4    # tell the buildsystem that we are doing a multilib build
5    export MULTILIB_BUILD="true"
6    
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
14    sminclude mtools
15    
16  # do not define EMUL_LINUX_32 after inherit of multlib !!  # do not define EMUL_LINUX_32 after inherit of multlib !!
17  # it may break i*86 builds  # it may break i*86 builds
18    
# Line 36  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 66  abi-m32() Line 75  abi-m32()
75   export ABI_LIBDIR="lib"   export ABI_LIBDIR="lib"
76   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
77   then   then
78   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"   local saved_ldflags="${LDFLAGS}"
79     export LDFLAGS="${LDFLAGS} -L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
80   fi   fi
81   # keep pkgconfig clean   # keep pkgconfig clean
82   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
# Line 85  abi-m32() Line 95  abi-m32()
95   else   else
96   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
97   fi   fi
98     echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
99     echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
100   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
101   fi   fi
102    
# Line 96  abi-m32() Line 108  abi-m32()
108   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"
109   fi   fi
110   uname(){ linux32 uname $@; } && export -f uname   uname(){ linux32 uname $@; } && export -f uname
111   ORIG_CHOST="${CHOST}" && export CHOST="i686-pc-linux-gnu"   local orig_chost="${CHOST}" && export CHOST="i686-pc-linux-gnu"
112   fi   fi
113   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
114   then   then
# Line 104  abi-m32() Line 116  abi-m32()
116   fi   fi
117    
118   # run any given command   # run any given command
119     if [[ ${MULTILIB_VERBOSE} = true ]]
120     then
121     echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'"
122     fi
123   eval $@ || die   eval $@ || die
124    
125   unset ABI CC CXX ABI_LIBDIR LDFLAGS   unset ABI CC CXX ABI_LIBDIR
126   # keep pkgconfig clean   # keep pkgconfig clean
127   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
128     export LDFLAGS="${saved_ldflags}"
129    
130   # restore original settings   # restore original settings
131   if [[ ${EMUL_LINUX_32} = true ]]   if [[ ${EMUL_LINUX_32} = true ]]
132   then   then
133   unset uname   unset uname
134   export CHOST="${ORIG_CHOST}" && unset ORIG_CHOST   export CHOST="${orig_chost}" && unset orig_chost
135   fi   fi
136  }  }
137    
# Line 126  abi-m64() Line 143  abi-m64()
143   export ABI_LIBDIR="lib64"   export ABI_LIBDIR="lib64"
144   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
145   then   then
146     local saved_ldflags="${LDFLAGS}"
147   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
148   fi   fi
149   # keep pkgconfig clean   # keep pkgconfig clean
# Line 146  abi-m64() Line 164  abi-m64()
164   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
165   fi   fi
166   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
167     echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
168   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
169   fi   fi
170    
171   # run any given command   # run any given command
172     if [[ ${MULTILIB_VERBOSE} = true ]]
173     then
174     echo -e "${COLGREEN}Executing:${COLDEFAULT} '$@'"
175     fi
176   eval $@ || die   eval $@ || die
177    
178   unset ABI CC CXX ABI_LIBDIR LDFLAGS   unset ABI CC CXX ABI_LIBDIR
179   # keep pkgconfig clean   # keep pkgconfig clean
180   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
181     export LDFLAGS="${saved_ldflags}"
182  }  }
183    
184  only-m32()  only-m32()
# Line 169  only-m32() Line 193  only-m32()
193   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
194   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
195    
196   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
197     then
198     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
199     fi
200   abi-${abi} $@ || die   abi-${abi} $@ || die
201    
202   # unset this is very important   # unset this is very important
# Line 190  only-m64() Line 217  only-m64()
217   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
218   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
219    
220   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
221     then
222     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
223     fi
224   abi-${abi} $@ || die   abi-${abi} $@ || die
225    
226   # unset this is very important   # unset this is very important
# Line 204  all-abis() Line 234  all-abis()
234   local abi   local abi
235   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
236   do   do
237   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
238     then
239     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
240     fi
241   abi-${abi} $@ || die   abi-${abi} $@ || die
242   done   done
243  }  }
# Line 214  mabi() Line 247  mabi()
247   echo \${ABI}   echo \${ABI}
248  }  }
249    
250    mabi-cc()
251    {
252     echo "gcc -\${ABI}"
253    }
254    
255    mabi-cxx()
256    {
257     echo "g++ -\${ABI}"
258    }
259    
260    mabi-cflags()
261    {
262     echo "\${CFLAGS}"
263    }
264    
265    mabi-cxxflags()
266    {
267     echo "\${CXXFLAGS}"
268    }
269    
270    mabi-ldflags()
271    {
272     echo "\${LDFLAGS}"
273    }
274    
275  ##  ##
276  # multilib compile functions  # multilib compile functions
277  ##  ##
# Line 223  then Line 281  then
281   # rename the old one   # rename the old one
282   old_mconfigure=old$(typeset -f mconfigure)   old_mconfigure=old$(typeset -f mconfigure)
283   eval "${old_mconfigure}"   eval "${old_mconfigure}"
284  fi  
285  mconfigure()  mconfigure()
286  {  {
287   local abi   local abi
# Line 234  mconfigure() Line 292  mconfigure()
292    
293   for abi in ${abis_to_run}   for abi in ${abis_to_run}
294   do   do
295   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
296     then
297     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
298     fi
299   abi-${abi} oldmconfigure $@ || die   abi-${abi} oldmconfigure $@ || die
300   done   done
301  }  }
   
 if [[ ! -z $(typeset -f cmake_configure) ]]  
 then  
  # rename the old one  
  old_cmake_configure=old$(typeset -f cmake_configure)  
  eval "${old_cmake_configure}"  
302  fi  fi
 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}"  
  cd ${SRCDIR}  
  abi-${abi} oldcmake_configure $@ || die  
  done  
 }  
303    
304  if [[ ! -z $(typeset -f munpack) ]]  if [[ ! -z $(typeset -f munpack) ]]
305  then  then
306   # rename the old one   # rename the old one
307   old_munpack=old$(typeset -f munpack)   old_munpack=old$(typeset -f munpack)
308   eval "${old_munpack}"   eval "${old_munpack}"
309  fi  
310  munpack()  munpack()
311  {  {
312   local abi   local abi
# Line 279  munpack() Line 318  munpack()
318   for abi in ${abis_to_run}   for abi in ${abis_to_run}
319   do   do
320   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"
321   oldmunpack ${SRCFILE} || die   oldmunpack $@ || die
322   mv ${SRCDIR} ${SRCDIR}-${abi} || die   mv ${SRCDIR} ${SRCDIR}-${abi} || die
323   done   done
324  }  }
325    fi
326    
327  if [[ ! -z $(typeset -f mmake) ]]  if [[ ! -z $(typeset -f mmake) ]]
328  then  then
329   # rename the old one   # rename the old one
330   old_mmake=old$(typeset -f mmake)   old_mmake=old$(typeset -f mmake)
331   eval "${old_mmake}"   eval "${old_mmake}"
332  fi  
333  mmake()  mmake()
334  {  {
335   local abi   local abi
# Line 301  mmake() Line 341  mmake()
341   for abi in ${abis_to_run}   for abi in ${abis_to_run}
342   do   do
343   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
344   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
345     then
346     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
347     fi
348   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
349   done   done
350  }  }
351    fi
352    
353  if [[ ! -z $(typeset -f minstall) ]]  if [[ ! -z $(typeset -f minstall) ]]
354  then  then
355   # rename the old one   # rename the old one
356   old_minstall=old$(typeset -f minstall)   old_minstall=old$(typeset -f minstall)
357   eval "${old_minstall}"   eval "${old_minstall}"
358  fi  
359  minstall()  minstall()
360  {  {
361   local abi   local abi
# Line 323  minstall() Line 367  minstall()
367   for abi in ${abis_to_run}   for abi in ${abis_to_run}
368   do   do
369   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
370   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
371     then
372     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
373     fi
374   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
375   done   done
376  }  }
377    fi
378    
379  minstall_destdir()  minstall_destdir()
380  {  {
# Line 339  minstall_destdir() Line 387  minstall_destdir()
387   for abi in ${abis_to_run}   for abi in ${abis_to_run}
388   do   do
389   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
390   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
391     then
392     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
393     fi
394   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
395   done   done
396  }  }
# Line 349  then Line 400  then
400   # rename the old one   # rename the old one
401   old_mpatch=old$(typeset -f mpatch)   old_mpatch=old$(typeset -f mpatch)
402   eval "${old_mpatch}"   eval "${old_mpatch}"
403  fi  
404  mpatch()  mpatch()
405  {  {
406   local abi   local abi
# Line 361  mpatch() Line 412  mpatch()
412   for abi in ${abis_to_run}   for abi in ${abis_to_run}
413   do   do
414   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
415   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
416     then
417     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
418     fi
419   oldmpatch $@ || die   oldmpatch $@ || die
420   done   done
421  }  }
422    fi
423    
424  if [[ ! -z $(typeset -f mlibtoolize) ]]  if [[ ! -z $(typeset -f mlibtoolize) ]]
425  then  then
426   # rename the old one   # rename the old one
427   old_mlibtoolize=old$(typeset -f mlibtoolize)   old_mlibtoolize=old$(typeset -f mlibtoolize)
428   eval "${old_mlibtoolize}"   eval "${old_mlibtoolize}"
429  fi  
430  mlibtoolize()  mlibtoolize()
431  {  {
432   local abi   local abi
# Line 383  mlibtoolize() Line 438  mlibtoolize()
438   for abi in ${abis_to_run}   for abi in ${abis_to_run}
439   do   do
440   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
441   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
442     then
443     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
444     fi
445   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
446   done   done
447  }  }
448    fi
449    
450  if [[ ! -z $(typeset -f mautoreconf) ]]  if [[ ! -z $(typeset -f mautoreconf) ]]
451  then  then
452   # rename the old one   # rename the old one
453   old_mautoreconf=old$(typeset -f mautoreconf)   old_mautoreconf=old$(typeset -f mautoreconf)
454   eval "${old_mautoreconf}"   eval "${old_mautoreconf}"
455  fi  
456  mautoreconf()  mautoreconf()
457  {  {
458   local abi   local abi
# Line 405  mautoreconf() Line 464  mautoreconf()
464   for abi in ${abis_to_run}   for abi in ${abis_to_run}
465   do   do
466   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
467   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
468     then
469     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
470     fi
471   oldmautoreconf $@ || die   oldmautoreconf $@ || die
472   done   done
473  }  }
474    fi
475    
476  if [[ ! -z $(typeset -f minstalldocs) ]]  if [[ ! -z $(typeset -f minstalldocs) ]]
477  then  then
478   # rename the old one   # rename the old one
479   old_minstalldocs=old$(typeset -f minstalldocs)   old_minstalldocs=old$(typeset -f minstalldocs)
480   eval "${old_minstalldocs}"   eval "${old_minstalldocs}"
481  fi  
482  minstalldocs()  minstalldocs()
483  {  {
484   local abi   local abi
485   local docfiles   local docfiles
  docfiles="$@"  
486    
487   local abis_to_run="${MULTILIB_ABIS}"   local abis_to_run="${MULTILIB_ABIS}"
488    
# Line 429  minstalldocs() Line 491  minstalldocs()
491    
492   for abi in ${abis_to_run}   for abi in ${abis_to_run}
493   do   do
494   cd ${SRCDIR}-${abi}   if [[ ${MULTILIB_ENTER_SRCDIR} = true ]]
  if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]  
495   then   then
496   install -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} || die "creating doc dirs."   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
497   fi   fi
498     oldminstalldocs $@ || die
  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  
499   done   done
500  }  }
501    fi
 ##  
 # multilib mbuild wrappers  
 ##  
 multilib_src_prepare()  
 {  
  munpack  
 }  
   
 multilib_src_compile()  
 {  
  mconfigure  
  mmake  
 }  
   
 multilib_src_install()  
 {  
  minstall_destdir  
   
  local i  
  for abi in ${MULTILIB_ABIS}  
  do  
  cd ${SRCDIR}-${abi}  
  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_install  

Legend:
Removed from v.9334  
changed lines
  Added in v.31848