Magellan Linux

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

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

revision 11029 by niro, Sat Feb 11 19:33:40 2012 UTC revision 21293 by niro, Wed Jun 11 11:10:25 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  # multilib should call all dependant includes, which gets overridden
11  sminclude mtools cmake  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
# Line 69  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 88  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 99  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 109  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 129  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 149  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 172  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 193  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 207  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 217  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 226  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 237  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 260  cmake_configure() Line 296  cmake_configure()
296   for abi in ${abis_to_run}   for abi in ${abis_to_run}
297   do   do
298   SRCDIR="${saved_SRCDIR}-${abi}"   SRCDIR="${saved_SRCDIR}-${abi}"
299   cd ${SRCDIR}   # honor inside and outside build-dir builds
300     if [ -d ${BUILDDIR}/build-${abi} ]
301     then
302     cd ${BUILDDIR}/build-${abi}
303     else
304     cd ${SRCDIR}
305     fi
306   abi-${abi} oldcmake_configure $@ || die   abi-${abi} oldcmake_configure $@ || die
307   done   done
308   # restore SRCDIR   # restore SRCDIR
309   SRCDIR="${saved_SRCDIR}"   SRCDIR="${saved_SRCDIR}"
310  }  }
311    fi
312    
313    if [[ ! -z $(typeset -f cmake_src_compile) ]]
314    then
315     # rename the old one
316     old_cmake_src_compile=old$(typeset -f cmake_src_compile)
317     eval "${old_cmake_src_compile}"
318    
319    cmake_src_compile()
320    {
321     local abi
322     local abis_to_run="${MULTILIB_ABIS}"
323    
324     # respect MULTILIB_ONLY_ABI variable
325     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
326    
327     for abi in ${abis_to_run}
328     do
329     # remove build dir if exist
330     [[ -d ${BUILDDIR}/build-${abi} ]] && rm -rf ${BUILDDIR}/build-${abi}
331    
332     # build outside of the source dir
333     install -d ${BUILDDIR}/build-${abi} || die
334     cd ${BUILDDIR}/build-${abi}
335     done
336    
337     cmake_configure || die
338    
339     for abi in ${abis_to_run}
340     do
341     cd ${BUILDDIR}/build-${abi}
342     abi-${abi} oldmmake $@ || die
343     done
344    }
345    fi
346    
347    if [[ ! -z $(typeset -f cmake_src_check) ]]
348    then
349     # rename the old one
350     old_cmake_src_check=old$(typeset -f cmake_src_check)
351     eval "${old_cmake_check}"
352    
353    cmake_src_check()
354    {
355     local abi
356     local abis_to_run="${MULTILIB_ABIS}"
357    
358     # respect MULTILIB_ONLY_ABI variable
359     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
360    
361     for abi in ${abis_to_run}
362     do
363     cd ${BUILDDIR}/build-${abi}
364     mmake -j1 -k check || die
365     done
366    }
367    fi
368    
369    if [[ ! -z $(typeset -f cmake_src_install) ]]
370    then
371     # rename the old one
372     old_cmake_src_install=old$(typeset -f cmake_src_install)
373     eval "${old_cmake_install}"
374    
375    cmake_src_install()
376    {
377     local abi
378     local abis_to_run="${MULTILIB_ABIS}"
379    
380     # respect MULTILIB_ONLY_ABI variable
381     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
382    
383     for abi in ${abis_to_run}
384     do
385     # install build outside of the source dir
386     cd ${BUILDDIR}/build-${abi}
387     abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die
388     done
389    }
390    fi
391    
392  if [[ ! -z $(typeset -f munpack) ]]  if [[ ! -z $(typeset -f munpack) ]]
393  then  then
394   # rename the old one   # rename the old one
395   old_munpack=old$(typeset -f munpack)   old_munpack=old$(typeset -f munpack)
396   eval "${old_munpack}"   eval "${old_munpack}"
397  fi  
398  munpack()  munpack()
399  {  {
400   local abi   local abi
# Line 284  munpack() Line 406  munpack()
406   for abi in ${abis_to_run}   for abi in ${abis_to_run}
407   do   do
408   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"
409   oldmunpack ${SRCFILE} || die   oldmunpack $@ || die
410   mv ${SRCDIR} ${SRCDIR}-${abi} || die   mv ${SRCDIR} ${SRCDIR}-${abi} || die
411   done   done
412  }  }
413    fi
414    
415  if [[ ! -z $(typeset -f mmake) ]]  if [[ ! -z $(typeset -f mmake) ]]
416  then  then
417   # rename the old one   # rename the old one
418   old_mmake=old$(typeset -f mmake)   old_mmake=old$(typeset -f mmake)
419   eval "${old_mmake}"   eval "${old_mmake}"
420  fi  
421  mmake()  mmake()
422  {  {
423   local abi   local abi
# Line 306  mmake() Line 429  mmake()
429   for abi in ${abis_to_run}   for abi in ${abis_to_run}
430   do   do
431   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
432   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
433   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
434   done   done
435  }  }
436    fi
437    
438  if [[ ! -z $(typeset -f minstall) ]]  if [[ ! -z $(typeset -f minstall) ]]
439  then  then
440   # rename the old one   # rename the old one
441   old_minstall=old$(typeset -f minstall)   old_minstall=old$(typeset -f minstall)
442   eval "${old_minstall}"   eval "${old_minstall}"
443  fi  
444  minstall()  minstall()
445  {  {
446   local abi   local abi
# Line 328  minstall() Line 452  minstall()
452   for abi in ${abis_to_run}   for abi in ${abis_to_run}
453   do   do
454   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
455   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
456   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
457   done   done
458  }  }
459    fi
460    
461  minstall_destdir()  minstall_destdir()
462  {  {
# Line 344  minstall_destdir() Line 469  minstall_destdir()
469   for abi in ${abis_to_run}   for abi in ${abis_to_run}
470   do   do
471   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
472   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
473   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
474   done   done
475  }  }
# Line 354  then Line 479  then
479   # rename the old one   # rename the old one
480   old_mpatch=old$(typeset -f mpatch)   old_mpatch=old$(typeset -f mpatch)
481   eval "${old_mpatch}"   eval "${old_mpatch}"
482  fi  
483  mpatch()  mpatch()
484  {  {
485   local abi   local abi
# Line 366  mpatch() Line 491  mpatch()
491   for abi in ${abis_to_run}   for abi in ${abis_to_run}
492   do   do
493   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
494   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
495   oldmpatch $@ || die   oldmpatch $@ || die
496   done   done
497  }  }
498    fi
499    
500  if [[ ! -z $(typeset -f mlibtoolize) ]]  if [[ ! -z $(typeset -f mlibtoolize) ]]
501  then  then
502   # rename the old one   # rename the old one
503   old_mlibtoolize=old$(typeset -f mlibtoolize)   old_mlibtoolize=old$(typeset -f mlibtoolize)
504   eval "${old_mlibtoolize}"   eval "${old_mlibtoolize}"
505  fi  
506  mlibtoolize()  mlibtoolize()
507  {  {
508   local abi   local abi
# Line 388  mlibtoolize() Line 514  mlibtoolize()
514   for abi in ${abis_to_run}   for abi in ${abis_to_run}
515   do   do
516   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
517   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
518   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
519   done   done
520  }  }
521    fi
522    
523  if [[ ! -z $(typeset -f mautoreconf) ]]  if [[ ! -z $(typeset -f mautoreconf) ]]
524  then  then
525   # rename the old one   # rename the old one
526   old_mautoreconf=old$(typeset -f mautoreconf)   old_mautoreconf=old$(typeset -f mautoreconf)
527   eval "${old_mautoreconf}"   eval "${old_mautoreconf}"
528  fi  
529  mautoreconf()  mautoreconf()
530  {  {
531   local abi   local abi
# Line 410  mautoreconf() Line 537  mautoreconf()
537   for abi in ${abis_to_run}   for abi in ${abis_to_run}
538   do   do
539   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
540   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
541   oldmautoreconf $@ || die   oldmautoreconf $@ || die
542   done   done
543  }  }
544    fi
545    
546  if [[ ! -z $(typeset -f minstalldocs) ]]  if [[ ! -z $(typeset -f minstalldocs) ]]
547  then  then
548   # rename the old one   # rename the old one
549   old_minstalldocs=old$(typeset -f minstalldocs)   old_minstalldocs=old$(typeset -f minstalldocs)
550   eval "${old_minstalldocs}"   eval "${old_minstalldocs}"
551  fi  
552  minstalldocs()  minstalldocs()
553  {  {
554   local abi   local abi
# Line 433  minstalldocs() Line 561  minstalldocs()
561    
562   for abi in ${abis_to_run}   for abi in ${abis_to_run}
563   do   do
564   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
565   oldminstalldocs $@ || die   oldminstalldocs $@ || die
566   done   done
567  }  }
568    fi
569    
570  ##  ##
571  # multilib mbuild wrappers  # multilib mbuild wrappers
572  ##  ##
573  multilib_src_prepare()  multilib_src_prepare()
574  {  {
575   munpack   munpack ${SRCFILE} || die
576  }  }
577    
578  multilib_src_compile()  multilib_src_compile()
579  {  {
580   mconfigure   if [[ ! -z $(typeset -f cmake_src_compile) ]]
581   mmake   then
582     cmake_src_compile || die
583     else
584     mconfigure || die
585     mmake || die
586     fi
587  }  }
588    
589  multilib_src_check()  multilib_src_check()
590  {  {
591   mmake -j1 -k check || die   if [[ ! -z $(typeset -f cmake_src_check) ]]
592     then
593     cmake_src_check || die
594     else
595     mmake -j1 -k check || die
596     fi
597  }  }
598    
599  multilib_src_install()  multilib_src_install()
600  {  {
601   minstall_destdir   if [[ ! -z $(typeset -f cmake_src_install) ]]
602     then
603     cmake_src_install || die
604     else
605     mmake DESTDIR=${BINDIR} install || die
606     fi
607    
608   local i   local i
609   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
610   do   do
611   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
612   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
613   FAQ LICENSE NEWS README TODO   FAQ LICENSE NEWS README TODO
614   do   do

Legend:
Removed from v.11029  
changed lines
  Added in v.21293