Magellan Linux

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

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

trunk/core/include/multilib.sminc revision 307 by niro, Mon Dec 22 11:33:39 2008 UTC trunk/include/multilib.sminc revision 11547 by niro, Mon Mar 12 21:05:18 2012 UTC
# Line 1  Line 1 
1  # $Header: /magellan-cvs/smage/include/multilib.sminc,v 1.33 2007-11-13 15:49:09 niro Exp $  # $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 14  case ${ARCH} in Line 23  case ${ARCH} in
23   # add linux32 to the dependencies   # add linux32 to the dependencies
24   if [[ ${EMUL_LINUX_32} = true ]]   if [[ ${EMUL_LINUX_32} = true ]]
25   then   then
26   EMUL_LINUX_32_SDEPENDS_x86_64=">= dev-util/linux32-1"   EMUL_LINUX_32_SDEPEND_x86_64=">= sys-apps/util-linux-2.19"
27   SPECIAL_VARS="${SPECIAL_VARS} EMUL_LINUX_32_SDEPENDS_x86_64"   SPECIAL_VARS="${SPECIAL_VARS} EMUL_LINUX_32_SDEPEND_x86_64"
28   fi   fi
29   ;;   ;;
30   i*86)   i*86)
# Line 33  then Line 42  then
42   # the var ist decided with our common eval+echo magic   # the var ist decided with our common eval+echo magic
43   if [[ -z ${SDEPEND} ]]   if [[ -z ${SDEPEND} ]]
44   then   then
45   SDEPEND="\$(eval echo \\\$EMUL_LINUX_32_SDEPENDS_\${ARCH/i*86/x86} | tr ';' '\n')"   SDEPEND="\$(eval echo \\\$EMUL_LINUX_32_SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')"
46   else   else
47   SDEPEND="${SDEPEND}   SDEPEND="${SDEPEND}
48   \$(eval echo \\\$EMUL_LINUX_32_SDEPENDS_\${ARCH/i*86/x86} | tr ';' '\n')"   \$(eval echo \\\$EMUL_LINUX_32_SDEPEND_\${ARCH/i*86/x86} | tr ';' '\n')"
49   fi   fi
50  fi  fi
51    
# 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   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig"   # keep pkgconfig clean
79     local orig_pkg_config_path="${PKG_CONFIG_PATH}"
80     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"   ORIG_CHOST="${CHOST}" && export CHOST="i686-pc-linux-gnu"
109   fi   fi
110   echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"   if [[ ${MULTILIB_VERBOSE} = true ]]
111     then
112     echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
113     fi
114    
115   # run any given command   # run any given command
116   eval $@ || die   eval $@ || die
117    
118   unset ABI CC CXX ABI_LIBDIR LDFLAGS PKG_CONFIG_PATH   unset ABI CC CXX ABI_LIBDIR
119     # keep pkgconfig clean
120     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 ]]
# Line 110  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   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig"   # keep pkgconfig clean
143     local orig_pkg_config_path="${PKG_CONFIG_PATH}"
144     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 PKG_CONFIG_PATH   unset ABI CC CXX ABI_LIBDIR
168     # keep pkgconfig clean
169     export PKG_CONFIG_PATH="${orig_pkg_config_path}"
170     export LDFLAGS="${saved_ldflags}"
171  }  }
172    
173  only-m32()  only-m32()
# Line 146  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 167  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 181  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  }  }
224    
225    mabi()
226    {
227     echo \${ABI}
228    }
229    
230  ##  ##
231  # multilib compile functions  # multilib compile functions
232  ##  ##
233    
234  # rename the old one  if [[ ! -z $(typeset -f mconfigure) ]]
235  old_mconfigure=old$(typeset -f mconfigure)  then
236  eval ${old_mconfigure}   # rename the old one
237     old_mconfigure=old$(typeset -f mconfigure)
238     eval "${old_mconfigure}"
239    fi
240  mconfigure()  mconfigure()
241  {  {
242   local abi   local abi
# Line 203  mconfigure() Line 247  mconfigure()
247    
248   for abi in ${abis_to_run}   for abi in ${abis_to_run}
249   do   do
250   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
251   abi-${abi} oldmconfigure $@ || die   abi-${abi} oldmconfigure $@ || die
252   done   done
253  }  }
254    
255  # rename the old one  if [[ ! -z $(typeset -f cmake_configure) ]]
256  old_munpack=old$(typeset -f munpack)  then
257  eval "${old_munpack}"   # rename the old one
258     old_cmake_configure=old$(typeset -f cmake_configure)
259     eval "${old_cmake_configure}"
260    fi
261    cmake_configure()
262    {
263     local abi
264     local abis_to_run="${MULTILIB_ABIS}"
265    
266     # respect MULTILIB_ONLY_ABI variable
267     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
268    
269     local saved_SRCDIR="${SRCDIR}"
270     for abi in ${abis_to_run}
271     do
272     SRCDIR="${saved_SRCDIR}-${abi}"
273     cd ${SRCDIR}/${SRCSUBDIR}
274     abi-${abi} oldcmake_configure $@ || die
275     done
276     # restore SRCDIR
277     SRCDIR="${saved_SRCDIR}"
278    }
279    
280    if [[ ! -z $(typeset -f munpack) ]]
281    then
282     # rename the old one
283     old_munpack=old$(typeset -f munpack)
284     eval "${old_munpack}"
285    fi
286  munpack()  munpack()
287  {  {
288   local abi   local abi
# Line 227  munpack() Line 299  munpack()
299   done   done
300  }  }
301    
302  # rename the old one  if [[ ! -z $(typeset -f mmake) ]]
303  old_mmake=old$(typeset -f mmake)  then
304  eval "${old_mmake}"   # rename the old one
305     old_mmake=old$(typeset -f mmake)
306     eval "${old_mmake}"
307    fi
308  mmake()  mmake()
309  {  {
310   local abi   local abi
# Line 241  mmake() Line 316  mmake()
316   for abi in ${abis_to_run}   for abi in ${abis_to_run}
317   do   do
318   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
319   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
320   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
321   done   done
322  }  }
323    
324  # rename the old one  if [[ ! -z $(typeset -f minstall) ]]
325  old_minstall=old$(typeset -f minstall)  then
326  eval "${old_minstall}"   # rename the old one
327     old_minstall=old$(typeset -f minstall)
328     eval "${old_minstall}"
329    fi
330  minstall()  minstall()
331  {  {
332   local abi   local abi
# Line 260  minstall() Line 338  minstall()
338   for abi in ${abis_to_run}   for abi in ${abis_to_run}
339   do   do
340   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
341   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
342   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
343   done   done
344  }  }
# Line 276  minstall_destdir() Line 354  minstall_destdir()
354   for abi in ${abis_to_run}   for abi in ${abis_to_run}
355   do   do
356   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
357   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
358   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
359   done   done
360  }  }
361    
362  # rename the old one  if [[ ! -z $(typeset -f mpatch) ]]
363  old_mpatch=old$(typeset -f mpatch)  then
364  eval "${old_mpatch}"   # rename the old one
365     old_mpatch=old$(typeset -f mpatch)
366     eval "${old_mpatch}"
367    fi
368  mpatch()  mpatch()
369  {  {
370   local abi   local abi
# Line 295  mpatch() Line 376  mpatch()
376   for abi in ${abis_to_run}   for abi in ${abis_to_run}
377   do   do
378   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
379   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
380   oldmpatch $@ || die   oldmpatch $@ || die
381   done   done
382  }  }
383    
384  # rename the old one  if [[ ! -z $(typeset -f mlibtoolize) ]]
385  old_mlibtoolize=old$(typeset -f mlibtoolize)  then
386  eval "${old_mlibtoolize}"   # rename the old one
387     old_mlibtoolize=old$(typeset -f mlibtoolize)
388     eval "${old_mlibtoolize}"
389    fi
390  mlibtoolize()  mlibtoolize()
391  {  {
392   local abi   local abi
# Line 314  mlibtoolize() Line 398  mlibtoolize()
398   for abi in ${abis_to_run}   for abi in ${abis_to_run}
399   do   do
400   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
401   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
402   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
403   done   done
404  }  }
405    
406    if [[ ! -z $(typeset -f mautoreconf) ]]
407    then
408     # rename the old one
409     old_mautoreconf=old$(typeset -f mautoreconf)
410     eval "${old_mautoreconf}"
411    fi
412    mautoreconf()
413    {
414     local abi
415     local abis_to_run="${MULTILIB_ABIS}"
416    
417     # respect MULTILIB_ONLY_ABI variable
418     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
419    
420     for abi in ${abis_to_run}
421     do
422     echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
423     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
424     oldmautoreconf $@ || die
425     done
426    }
427    
428    if [[ ! -z $(typeset -f minstalldocs) ]]
429    then
430     # rename the old one
431     old_minstalldocs=old$(typeset -f minstalldocs)
432     eval "${old_minstalldocs}"
433    fi
434  minstalldocs()  minstalldocs()
435  {  {
436   local abi   local abi
437   local docfiles   local docfiles
  docfiles="$@"  
438    
439   local abis_to_run="${MULTILIB_ABIS}"   local abis_to_run="${MULTILIB_ABIS}"
440    
# Line 332  minstalldocs() Line 443  minstalldocs()
443    
444   for abi in ${abis_to_run}   for abi in ${abis_to_run}
445   do   do
446   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
447   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  
448   done   done
449  }  }
450    
# Line 361  multilib_src_compile() Line 462  multilib_src_compile()
462   mmake   mmake
463  }  }
464    
465    multilib_src_check()
466    {
467     mmake -j1 -k check || die
468    }
469    
470  multilib_src_install()  multilib_src_install()
471  {  {
472   minstall_destdir   minstall_destdir
# Line 368  multilib_src_install() Line 474  multilib_src_install()
474   local i   local i
475   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
476   do   do
477   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
478   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
479   FAQ LICENSE NEWS README TODO   FAQ LICENSE NEWS README TODO
480   do   do
# Line 380  multilib_src_install() Line 486  multilib_src_install()
486   done   done
487  }  }
488    
489  export_inherits multilib src_prepare src_compile src_install  export_inherits multilib src_prepare src_compile src_check src_install

Legend:
Removed from v.307  
changed lines
  Added in v.11547