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 7554 by niro, Thu May 26 21:09:09 2011 UTC trunk/include/multilib.sminc revision 20977 by niro, Wed Feb 19 11:32:53 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}
8    : ${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 63  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}"
80   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
81    
82   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"   if [[ ${MULTILIB_VERBOSE} = true ]]
  echo -e "${COLBLUE}*** ${COLGREEN}  ABI${COLDEFAULT}='${ABI}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  CC${COLDEFAULT}='${CC}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  CXX${COLDEFAULT}='${CXX}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  ABI_LIBDIR${COLDEFAULT}='${ABI_LIBDIR}'"  
  if [[ ${EXPORT_ABI_LDFLAGS} != false ]]  
83   then   then
84   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${LDFLAGS}'"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
85   else   echo -e "${COLBLUE}*** ${COLGREEN}  ABI${COLDEFAULT}='${ABI}'"
86   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CC${COLDEFAULT}='${CC}'"
87     echo -e "${COLBLUE}*** ${COLGREEN}  CXX${COLDEFAULT}='${CXX}'"
88     echo -e "${COLBLUE}*** ${COLGREEN}  ABI_LIBDIR${COLDEFAULT}='${ABI_LIBDIR}'"
89     if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
90     then
91     echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${LDFLAGS}'"
92     else
93     echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
94     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}'"
98   fi   fi
  echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"  
99    
100   # configure a linux32 emulated build   # configure a linux32 emulated build
101   if [[ ${EMUL_LINUX_32} = true ]]   if [[ ${EMUL_LINUX_32} = true ]]
102   then   then
103   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"   if [[ ${MULTILIB_VERBOSE} = true ]]
104     then
105     echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"
106     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
110     if [[ ${MULTILIB_VERBOSE} = true ]]
111     then
112     echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
113   fi   fi
  echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"  
114    
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 114  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
143   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
144   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
145    
146   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"   if [[ ${MULTILIB_VERBOSE} = true ]]
  echo -e "${COLBLUE}*** ${COLGREEN}  ABI${COLDEFAULT}='${ABI}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  CC${COLDEFAULT}='${CC}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  CXX${COLDEFAULT}='${CXX}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  ABI_LIBDIR${COLDEFAULT}='${ABI_LIBDIR}'"  
  if [[ ${EXPORT_ABI_LDFLAGS} != false ]]  
147   then   then
148   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${LDFLAGS}'"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
149   else   echo -e "${COLBLUE}*** ${COLGREEN}  ABI${COLDEFAULT}='${ABI}'"
150   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CC${COLDEFAULT}='${CC}'"
151     echo -e "${COLBLUE}*** ${COLGREEN}  CXX${COLDEFAULT}='${CXX}'"
152     echo -e "${COLBLUE}*** ${COLGREEN}  ABI_LIBDIR${COLDEFAULT}='${ABI_LIBDIR}'"
153     if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
154     then
155     echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${LDFLAGS}'"
156     else
157     echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
158     fi
159     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}'"
162   fi   fi
  echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"  
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 154  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 175  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 189  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 199  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 219  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  }  }
# Line 241  cmake_configure() Line 294  cmake_configure()
294   local saved_SRCDIR="${SRCDIR}"   local saved_SRCDIR="${SRCDIR}"
295   for abi in ${abis_to_run}   for abi in ${abis_to_run}
296   do   do
297     cd ${BUILDDIR}/build-${abi}
298   SRCDIR="${saved_SRCDIR}-${abi}"   SRCDIR="${saved_SRCDIR}-${abi}"
  cd ${SRCDIR}  
299   abi-${abi} oldcmake_configure $@ || die   abi-${abi} oldcmake_configure $@ || die
300   done   done
301     # restore SRCDIR
302     SRCDIR="${saved_SRCDIR}"
303    }
304    
305    if [[ ! -z $(typeset -f cmake_src_compile) ]]
306    then
307     # rename the old one
308     old_cmake_src_compile=old$(typeset -f cmake_src_compile)
309     eval "${old_cmake_src_compile}"
310    fi
311    cmake_src_compile()
312    {
313     local abi
314     local abis_to_run="${MULTILIB_ABIS}"
315    
316     # respect MULTILIB_ONLY_ABI variable
317     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
318    
319     for abi in ${abis_to_run}
320     do
321     # remove build dir if exist
322     [[ -d ${BUILDDIR}/build-${abi} ]] && rm -rf ${BUILDDIR}/build-${abi}
323    
324     # build outside of the source dir
325     install -d ${BUILDDIR}/build-${abi} || die
326     cd ${BUILDDIR}/build-${abi}
327     done
328    
329     cmake_configure || die
330    
331     for abi in ${abis_to_run}
332     do
333     cd ${BUILDDIR}/build-${abi}
334     abi-${abi} oldmmake $@ || die
335     done
336    }
337    
338    if [[ ! -z $(typeset -f cmake_src_install) ]]
339    then
340     # rename the old one
341     old_cmake_src_install=old$(typeset -f cmake_src_install)
342     eval "${old_cmake_install}"
343    fi
344    cmake_src_install()
345    {
346     local abi
347     local abis_to_run="${MULTILIB_ABIS}"
348    
349     # respect MULTILIB_ONLY_ABI variable
350     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
351    
352     for abi in ${abis_to_run}
353     do
354     # install build outside of the source dir
355     cd ${BUILDDIR}/build-${abi}
356     abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die
357     done
358  }  }
359    
360  if [[ ! -z $(typeset -f munpack) ]]  if [[ ! -z $(typeset -f munpack) ]]
# Line 264  munpack() Line 374  munpack()
374   for abi in ${abis_to_run}   for abi in ${abis_to_run}
375   do   do
376   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"
377   oldmunpack ${SRCFILE} || die   oldmunpack $@ || die
378   mv ${SRCDIR} ${SRCDIR}-${abi} || die   mv ${SRCDIR} ${SRCDIR}-${abi} || die
379   done   done
380  }  }
# Line 286  mmake() Line 396  mmake()
396   for abi in ${abis_to_run}   for abi in ${abis_to_run}
397   do   do
398   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
399   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
400   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
401   done   done
402  }  }
# Line 308  minstall() Line 418  minstall()
418   for abi in ${abis_to_run}   for abi in ${abis_to_run}
419   do   do
420   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
421   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
422   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
423   done   done
424  }  }
# Line 324  minstall_destdir() Line 434  minstall_destdir()
434   for abi in ${abis_to_run}   for abi in ${abis_to_run}
435   do   do
436   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
437   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
438   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
439   done   done
440  }  }
# Line 346  mpatch() Line 456  mpatch()
456   for abi in ${abis_to_run}   for abi in ${abis_to_run}
457   do   do
458   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
459   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
460   oldmpatch $@ || die   oldmpatch $@ || die
461   done   done
462  }  }
# Line 368  mlibtoolize() Line 478  mlibtoolize()
478   for abi in ${abis_to_run}   for abi in ${abis_to_run}
479   do   do
480   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
481   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
482   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
483   done   done
484  }  }
485    
486    if [[ ! -z $(typeset -f mautoreconf) ]]
487    then
488     # rename the old one
489     old_mautoreconf=old$(typeset -f mautoreconf)
490     eval "${old_mautoreconf}"
491    fi
492    mautoreconf()
493    {
494     local abi
495     local abis_to_run="${MULTILIB_ABIS}"
496    
497     # respect MULTILIB_ONLY_ABI variable
498     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
499    
500     for abi in ${abis_to_run}
501     do
502     echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
503     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
504     oldmautoreconf $@ || die
505     done
506    }
507    
508    if [[ ! -z $(typeset -f minstalldocs) ]]
509    then
510     # rename the old one
511     old_minstalldocs=old$(typeset -f minstalldocs)
512     eval "${old_minstalldocs}"
513    fi
514  minstalldocs()  minstalldocs()
515  {  {
516   local abi   local abi
517   local docfiles   local docfiles
  docfiles="$@"  
518    
519   local abis_to_run="${MULTILIB_ABIS}"   local abis_to_run="${MULTILIB_ABIS}"
520    
# Line 386  minstalldocs() Line 523  minstalldocs()
523    
524   for abi in ${abis_to_run}   for abi in ${abis_to_run}
525   do   do
526   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
527   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  
528   done   done
529  }  }
530    
# Line 406  minstalldocs() Line 533  minstalldocs()
533  ##  ##
534  multilib_src_prepare()  multilib_src_prepare()
535  {  {
536   munpack   munpack ${SRCFILE} || die
537  }  }
538    
539  multilib_src_compile()  multilib_src_compile()
540  {  {
541   mconfigure   if [[ ! -z $(typeset -f cmake_src_compile) ]]
542   mmake   then
543     cmake_src_compile || die
544     else
545     mconfigure || die
546     mmake || die
547     fi
548    }
549    
550    multilib_src_check()
551    {
552     if [[ ! -z $(typeset -f cmake_src_check) ]]
553     then
554     cmake_src_check || die
555     else
556     mmake -j1 -k check || die
557     fi
558  }  }
559    
560  multilib_src_install()  multilib_src_install()
561  {  {
562   minstall_destdir   if [[ ! -z $(typeset -f cmake_src_install) ]]
563     then
564     cmake_src_compile || die
565     else
566     mmake DESTDIR=${BINDIR} install || die
567     fi
568    
569   local i   local i
570   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
571   do   do
572   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
573   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
574   FAQ LICENSE NEWS README TODO   FAQ LICENSE NEWS README TODO
575   do   do
# Line 434  multilib_src_install() Line 581  multilib_src_install()
581   done   done
582  }  }
583    
584  export_inherits multilib src_prepare src_compile src_install  export_inherits multilib src_prepare src_compile src_check src_install

Legend:
Removed from v.7554  
changed lines
  Added in v.20977