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 9333 by niro, Sat Nov 26 13:31:10 2011 UTC trunk/include/multilib.sminc revision 20987 by niro, Mon Mar 3 09:56:03 2014 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    # multilib should call all dependant includes, which gets overridden
11    sminclude mtools
12    
13  # do not define EMUL_LINUX_32 after inherit of multlib !!  # do not define EMUL_LINUX_32 after inherit of multlib !!
14  # it may break i*86 builds  # it may break i*86 builds
15    
# Line 66  abi-m32() Line 72  abi-m32()
72   export ABI_LIBDIR="lib"   export ABI_LIBDIR="lib"
73   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
74   then   then
75   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"   local saved_ldflags="${LDFLAGS}"
76     export LDFLAGS="${LDFLAGS} -L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
77   fi   fi
78   # keep pkgconfig clean   # keep pkgconfig clean
79   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
# Line 85  abi-m32() Line 92  abi-m32()
92   else   else
93   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
94   fi   fi
95     echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
96     echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
97   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
98   fi   fi
99    
# Line 96  abi-m32() Line 105  abi-m32()
105   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"
106   fi   fi
107   uname(){ linux32 uname $@; } && export -f uname   uname(){ linux32 uname $@; } && export -f uname
108   ORIG_CHOST="${CHOST}" && export CHOST="i686-pc-linux-gnu"   local orig_chost="${CHOST}" && export CHOST="i686-pc-linux-gnu"
109   fi   fi
110   if [[ ${MULTILIB_VERBOSE} = true ]]   if [[ ${MULTILIB_VERBOSE} = true ]]
111   then   then
# Line 106  abi-m32() Line 115  abi-m32()
115   # run any given command   # run any given command
116   eval $@ || die   eval $@ || die
117    
118   unset ABI CC CXX ABI_LIBDIR LDFLAGS   unset ABI CC CXX ABI_LIBDIR
119   # keep pkgconfig clean   # keep pkgconfig clean
120   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
121     export LDFLAGS="${saved_ldflags}"
122    
123   # restore original settings   # restore original settings
124   if [[ ${EMUL_LINUX_32} = true ]]   if [[ ${EMUL_LINUX_32} = true ]]
125   then   then
126   unset uname   unset uname
127   export CHOST="${ORIG_CHOST}" && unset ORIG_CHOST   export CHOST="${orig_chost}" && unset orig_chost
128   fi   fi
129  }  }
130    
# Line 126  abi-m64() Line 136  abi-m64()
136   export ABI_LIBDIR="lib64"   export ABI_LIBDIR="lib64"
137   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
138   then   then
139     local saved_ldflags="${LDFLAGS}"
140   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
141   fi   fi
142   # keep pkgconfig clean   # keep pkgconfig clean
# Line 146  abi-m64() Line 157  abi-m64()
157   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
158   fi   fi
159   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
160     echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
161   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"   echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
162   fi   fi
163    
164   # run any given command   # run any given command
165   eval $@ || die   eval $@ || die
166    
167   unset ABI CC CXX ABI_LIBDIR LDFLAGS   unset ABI CC CXX ABI_LIBDIR
168   # keep pkgconfig clean   # keep pkgconfig clean
169   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
170     export LDFLAGS="${saved_ldflags}"
171  }  }
172    
173  only-m32()  only-m32()
# Line 169  only-m32() Line 182  only-m32()
182   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
183   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
184    
185   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
186   abi-${abi} $@ || die   abi-${abi} $@ || die
187    
188   # unset this is very important   # unset this is very important
# Line 190  only-m64() Line 203  only-m64()
203   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
204   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
205    
206   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
207   abi-${abi} $@ || die   abi-${abi} $@ || die
208    
209   # unset this is very important   # unset this is very important
# Line 204  all-abis() Line 217  all-abis()
217   local abi   local abi
218   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
219   do   do
220   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
221   abi-${abi} $@ || die   abi-${abi} $@ || die
222   done   done
223  }  }
# Line 214  mabi() Line 227  mabi()
227   echo \${ABI}   echo \${ABI}
228  }  }
229    
230    mabi-cc()
231    {
232     echo "gcc -\${ABI}"
233    }
234    
235    mabi-cxx()
236    {
237     echo "g++ -\${ABI}"
238    }
239    
240    mabi-cflags()
241    {
242     echo "\${CFLAGS}"
243    }
244    
245    mabi-cxxflags()
246    {
247     echo "\${CXXFLAGS}"
248    }
249    
250    mabi-ldflags()
251    {
252     echo "\${LDFLAGS}"
253    }
254    
255  ##  ##
256  # multilib compile functions  # multilib compile functions
257  ##  ##
# Line 223  then Line 261  then
261   # rename the old one   # rename the old one
262   old_mconfigure=old$(typeset -f mconfigure)   old_mconfigure=old$(typeset -f mconfigure)
263   eval "${old_mconfigure}"   eval "${old_mconfigure}"
264  fi  
265  mconfigure()  mconfigure()
266  {  {
267   local abi   local abi
# Line 234  mconfigure() Line 272  mconfigure()
272    
273   for abi in ${abis_to_run}   for abi in ${abis_to_run}
274   do   do
275   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
276   abi-${abi} oldmconfigure $@ || die   abi-${abi} oldmconfigure $@ || die
277   done   done
278  }  }
279    fi
280    
281  if [[ ! -z $(typeset -f cmake_configure) ]]  if [[ ! -z $(typeset -f cmake_configure) ]]
282  then  then
283   # rename the old one   # rename the old one
284   old_cmake_configure=old$(typeset -f cmake_configure)   old_cmake_configure=old$(typeset -f cmake_configure)
285   eval "${old_cmake_configure}"   eval "${old_cmake_configure}"
286  fi  
287  cmake_configure()  cmake_configure()
288  {  {
289   local abi   local abi
# Line 256  cmake_configure() Line 295  cmake_configure()
295   local saved_SRCDIR="${SRCDIR}"   local saved_SRCDIR="${SRCDIR}"
296   for abi in ${abis_to_run}   for abi in ${abis_to_run}
297   do   do
298     cd ${BUILDDIR}/build-${abi}
299   SRCDIR="${saved_SRCDIR}-${abi}"   SRCDIR="${saved_SRCDIR}-${abi}"
  cd ${SRCDIR}  
300   abi-${abi} oldcmake_configure $@ || die   abi-${abi} oldcmake_configure $@ || die
301   done   done
302     # restore SRCDIR
303     SRCDIR="${saved_SRCDIR}"
304    }
305    fi
306    
307    if [[ ! -z $(typeset -f cmake_src_compile) ]]
308    then
309     # rename the old one
310     old_cmake_src_compile=old$(typeset -f cmake_src_compile)
311     eval "${old_cmake_src_compile}"
312    
313    cmake_src_compile()
314    {
315     local abi
316     local abis_to_run="${MULTILIB_ABIS}"
317    
318     # respect MULTILIB_ONLY_ABI variable
319     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
320    
321     for abi in ${abis_to_run}
322     do
323     # remove build dir if exist
324     [[ -d ${BUILDDIR}/build-${abi} ]] && rm -rf ${BUILDDIR}/build-${abi}
325    
326     # build outside of the source dir
327     install -d ${BUILDDIR}/build-${abi} || die
328     cd ${BUILDDIR}/build-${abi}
329     done
330    
331     cmake_configure || die
332    
333     for abi in ${abis_to_run}
334     do
335     cd ${BUILDDIR}/build-${abi}
336     abi-${abi} oldmmake $@ || die
337     done
338  }  }
339    fi
340    
341    if [[ ! -z $(typeset -f cmake_src_check) ]]
342    then
343     # rename the old one
344     old_cmake_src_check=old$(typeset -f cmake_src_check)
345     eval "${old_cmake_check}"
346    
347    cmake_src_check()
348    {
349     local abi
350     local abis_to_run="${MULTILIB_ABIS}"
351    
352     # respect MULTILIB_ONLY_ABI variable
353     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
354    
355     for abi in ${abis_to_run}
356     do
357     cd ${BUILDDIR}/build-${abi}
358     mmake -j1 -k check || die
359     done
360    }
361    fi
362    
363    if [[ ! -z $(typeset -f cmake_src_install) ]]
364    then
365     # rename the old one
366     old_cmake_src_install=old$(typeset -f cmake_src_install)
367     eval "${old_cmake_install}"
368    
369    cmake_src_install()
370    {
371     local abi
372     local abis_to_run="${MULTILIB_ABIS}"
373    
374     # respect MULTILIB_ONLY_ABI variable
375     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
376    
377     for abi in ${abis_to_run}
378     do
379     # install build outside of the source dir
380     cd ${BUILDDIR}/build-${abi}
381     abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die
382     done
383    }
384    fi
385    
386  if [[ ! -z $(typeset -f munpack) ]]  if [[ ! -z $(typeset -f munpack) ]]
387  then  then
388   # rename the old one   # rename the old one
389   old_munpack=old$(typeset -f munpack)   old_munpack=old$(typeset -f munpack)
390   eval "${old_munpack}"   eval "${old_munpack}"
391  fi  
392  munpack()  munpack()
393  {  {
394   local abi   local abi
# Line 279  munpack() Line 400  munpack()
400   for abi in ${abis_to_run}   for abi in ${abis_to_run}
401   do   do
402   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"
403   oldmunpack ${SRCFILE} || die   oldmunpack $@ || die
404   mv ${SRCDIR} ${SRCDIR}-${abi} || die   mv ${SRCDIR} ${SRCDIR}-${abi} || die
405   done   done
406  }  }
407    fi
408    
409  if [[ ! -z $(typeset -f mmake) ]]  if [[ ! -z $(typeset -f mmake) ]]
410  then  then
411   # rename the old one   # rename the old one
412   old_mmake=old$(typeset -f mmake)   old_mmake=old$(typeset -f mmake)
413   eval "${old_mmake}"   eval "${old_mmake}"
414  fi  
415  mmake()  mmake()
416  {  {
417   local abi   local abi
# Line 301  mmake() Line 423  mmake()
423   for abi in ${abis_to_run}   for abi in ${abis_to_run}
424   do   do
425   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
426   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
427   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
428   done   done
429  }  }
430    fi
431    
432  if [[ ! -z $(typeset -f minstall) ]]  if [[ ! -z $(typeset -f minstall) ]]
433  then  then
434   # rename the old one   # rename the old one
435   old_minstall=old$(typeset -f minstall)   old_minstall=old$(typeset -f minstall)
436   eval "${old_minstall}"   eval "${old_minstall}"
437  fi  
438  minstall()  minstall()
439  {  {
440   local abi   local abi
# Line 323  minstall() Line 446  minstall()
446   for abi in ${abis_to_run}   for abi in ${abis_to_run}
447   do   do
448   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
449   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
450   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
451   done   done
452  }  }
453    fi
454    
455  minstall_destdir()  minstall_destdir()
456  {  {
# Line 339  minstall_destdir() Line 463  minstall_destdir()
463   for abi in ${abis_to_run}   for abi in ${abis_to_run}
464   do   do
465   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
466   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
467   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
468   done   done
469  }  }
# Line 349  then Line 473  then
473   # rename the old one   # rename the old one
474   old_mpatch=old$(typeset -f mpatch)   old_mpatch=old$(typeset -f mpatch)
475   eval "${old_mpatch}"   eval "${old_mpatch}"
476  fi  
477  mpatch()  mpatch()
478  {  {
479   local abi   local abi
# Line 361  mpatch() Line 485  mpatch()
485   for abi in ${abis_to_run}   for abi in ${abis_to_run}
486   do   do
487   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
488   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
489   oldmpatch $@ || die   oldmpatch $@ || die
490   done   done
491  }  }
492    fi
493    
494  if [[ ! -z $(typeset -f mlibtoolize) ]]  if [[ ! -z $(typeset -f mlibtoolize) ]]
495  then  then
496   # rename the old one   # rename the old one
497   old_mlibtoolize=old$(typeset -f mlibtoolize)   old_mlibtoolize=old$(typeset -f mlibtoolize)
498   eval "${old_mlibtoolize}"   eval "${old_mlibtoolize}"
499  fi  
500  mlibtoolize()  mlibtoolize()
501  {  {
502   local abi   local abi
# Line 383  mlibtoolize() Line 508  mlibtoolize()
508   for abi in ${abis_to_run}   for abi in ${abis_to_run}
509   do   do
510   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
511   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
512   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
513   done   done
514  }  }
515    fi
516    
517    if [[ ! -z $(typeset -f mautoreconf) ]]
518    then
519     # rename the old one
520     old_mautoreconf=old$(typeset -f mautoreconf)
521     eval "${old_mautoreconf}"
522    
523    mautoreconf()
524    {
525     local abi
526     local abis_to_run="${MULTILIB_ABIS}"
527    
528     # respect MULTILIB_ONLY_ABI variable
529     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
530    
531     for abi in ${abis_to_run}
532     do
533     echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
534     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
535     oldmautoreconf $@ || die
536     done
537    }
538    fi
539    
540  if [[ ! -z $(typeset -f minstalldocs) ]]  if [[ ! -z $(typeset -f minstalldocs) ]]
541  then  then
542   # rename the old one   # rename the old one
543   old_minstalldocs=old$(typeset -f minstalldocs)   old_minstalldocs=old$(typeset -f minstalldocs)
544   eval "${old_minstalldocs}"   eval "${old_minstalldocs}"
545  fi  
546  minstalldocs()  minstalldocs()
547  {  {
548   local abi   local abi
549   local docfiles   local docfiles
  docfiles="$@"  
550    
551   local abis_to_run="${MULTILIB_ABIS}"   local abis_to_run="${MULTILIB_ABIS}"
552    
# Line 407  minstalldocs() Line 555  minstalldocs()
555    
556   for abi in ${abis_to_run}   for abi in ${abis_to_run}
557   do   do
558   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
559   if [ ! -d ${BINDIR}/usr/share/doc/${PNAME}-${PVER} ]   oldminstalldocs $@ || die
  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  
560   done   done
561  }  }
562    fi
563    
564  ##  ##
565  # multilib mbuild wrappers  # multilib mbuild wrappers
566  ##  ##
567  multilib_src_prepare()  multilib_src_prepare()
568  {  {
569   munpack   munpack ${SRCFILE} || die
570  }  }
571    
572  multilib_src_compile()  multilib_src_compile()
573  {  {
574   mconfigure   if [[ ! -z $(typeset -f cmake_src_compile) ]]
575   mmake   then
576     cmake_src_compile || die
577     else
578     mconfigure || die
579     mmake || die
580     fi
581    }
582    
583    multilib_src_check()
584    {
585     if [[ ! -z $(typeset -f cmake_src_check) ]]
586     then
587     cmake_src_check || die
588     else
589     mmake -j1 -k check || die
590     fi
591  }  }
592    
593  multilib_src_install()  multilib_src_install()
594  {  {
595   minstall_destdir   if [[ ! -z $(typeset -f cmake_src_install) ]]
596     then
597     cmake_src_install || die
598     else
599     mmake DESTDIR=${BINDIR} install || die
600     fi
601    
602   local i   local i
603   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
604   do   do
605   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
606   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
607   FAQ LICENSE NEWS README TODO   FAQ LICENSE NEWS README TODO
608   do   do
# Line 455  multilib_src_install() Line 614  multilib_src_install()
614   done   done
615  }  }
616    
617  export_inherits multilib src_prepare src_compile src_install  export_inherits multilib src_prepare src_compile src_check src_install

Legend:
Removed from v.9333  
changed lines
  Added in v.20987