Magellan Linux

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

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

branches/magellan-next/include/multilib.sminc revision 6654 by niro, Tue Sep 14 16:46:32 2010 UTC trunk/include/multilib.sminc revision 13972 by niro, Fri Nov 2 10:45:29 2012 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 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_SDEPEND_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_SDEPEND_x86_64"   SPECIAL_VARS="${SPECIAL_VARS} EMUL_LINUX_32_SDEPEND_x86_64"
28   fi   fi
29   ;;   ;;
# 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     local linux32
102   if [[ ${EMUL_LINUX_32} = true ]]   if [[ ${EMUL_LINUX_32} = true ]]
103   then   then
104   echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"   if [[ ${MULTILIB_VERBOSE} = true ]]
105     then
106     echo -e "${COLBLUE}*** ${COLGREEN}  EMUL_LINUX_32${COLDEFAULT}='${EMUL_LINUX_32}'"
107     fi
108   uname(){ linux32 uname $@; } && export -f uname   uname(){ linux32 uname $@; } && export -f uname
109   ORIG_CHOST="${CHOST}" && export CHOST="i686-pc-linux-gnu"   local orig_chost="${CHOST}" && export CHOST="i686-pc-linux-gnu"
110     linux32="linux32"
111     fi
112     if [[ ${MULTILIB_VERBOSE} = true ]]
113     then
114     echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
115   fi   fi
  echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"  
116    
117   # run any given command   # run any given command
118   eval $@ || die   eval ${linux32} $@ || die
119    
120   unset ABI CC CXX ABI_LIBDIR LDFLAGS   unset ABI CC CXX ABI_LIBDIR
121   # keep pkgconfig clean   # keep pkgconfig clean
122   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
123     export LDFLAGS="${saved_ldflags}"
124    
125   # restore original settings   # restore original settings
126   if [[ ${EMUL_LINUX_32} = true ]]   if [[ ${EMUL_LINUX_32} = true ]]
127   then   then
128   unset uname   unset uname
129   export CHOST="${ORIG_CHOST}" && unset ORIG_CHOST   export CHOST="${orig_chost}" && unset orig_chost
130     unset linux32
131   fi   fi
132  }  }
133    
# Line 114  abi-m64() Line 139  abi-m64()
139   export ABI_LIBDIR="lib64"   export ABI_LIBDIR="lib64"
140   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]   if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
141   then   then
142     local saved_ldflags="${LDFLAGS}"
143   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"   export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
144   fi   fi
145   # keep pkgconfig clean   # keep pkgconfig clean
146   local orig_pkg_config_path="${PKG_CONFIG_PATH}"   local orig_pkg_config_path="${PKG_CONFIG_PATH}"
147   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"   export PKG_CONFIG_PATH="/usr/${ABI_LIBDIR}/pkgconfig:${PKG_CONFIG_PATH}"
148    
149   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 ]]  
150   then   then
151   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${LDFLAGS}'"   echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
152   else   echo -e "${COLBLUE}*** ${COLGREEN}  ABI${COLDEFAULT}='${ABI}'"
153   echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"   echo -e "${COLBLUE}*** ${COLGREEN}  CC${COLDEFAULT}='${CC}'"
154     echo -e "${COLBLUE}*** ${COLGREEN}  CXX${COLDEFAULT}='${CXX}'"
155     echo -e "${COLBLUE}*** ${COLGREEN}  ABI_LIBDIR${COLDEFAULT}='${ABI_LIBDIR}'"
156     if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
157     then
158     echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${LDFLAGS}'"
159     else
160     echo -e "${COLBLUE}*** ${COLGREEN}  LDFLAGS${COLDEFAULT}='${COLYELLOW}not exported${COLDEFAULT}'"
161     fi
162     echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"
163     echo -e "${COLBLUE}*** ${COLGREEN}  SRCDIR${COLDEFAULT}='${SRCDIR}/${SRCSUBDIR}'"
164     echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"
165   fi   fi
  echo -e "${COLBLUE}*** ${COLGREEN}  CHOST${COLDEFAULT}='${CHOST}'"  
  echo -e "${COLBLUE}*** ${COLGREEN}  PKG_CONFIG_PATH${COLDEFAULT}='${PKG_CONFIG_PATH}'"  
166    
167   # run any given command   # run any given command
168   eval $@ || die   eval $@ || die
169    
170   unset ABI CC CXX ABI_LIBDIR LDFLAGS   unset ABI CC CXX ABI_LIBDIR
171   # keep pkgconfig clean   # keep pkgconfig clean
172   export PKG_CONFIG_PATH="${orig_pkg_config_path}"   export PKG_CONFIG_PATH="${orig_pkg_config_path}"
173     export LDFLAGS="${saved_ldflags}"
174  }  }
175    
176  only-m32()  only-m32()
# Line 154  only-m32() Line 185  only-m32()
185   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
186   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
187    
188   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
189   abi-${abi} $@ || die   abi-${abi} $@ || die
190    
191   # unset this is very important   # unset this is very important
# Line 175  only-m64() Line 206  only-m64()
206   # export this for mpatch etc (to repect only-${abi})   # export this for mpatch etc (to repect only-${abi})
207   export MULTILIB_ONLY_ABI=${abi}   export MULTILIB_ONLY_ABI=${abi}
208    
209   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
210   abi-${abi} $@ || die   abi-${abi} $@ || die
211    
212   # unset this is very important   # unset this is very important
# Line 189  all-abis() Line 220  all-abis()
220   local abi   local abi
221   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
222   do   do
223   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
224   abi-${abi} $@ || die   abi-${abi} $@ || die
225   done   done
226  }  }
# Line 199  mabi() Line 230  mabi()
230   echo \${ABI}   echo \${ABI}
231  }  }
232    
233    mabi-cc()
234    {
235     echo "\"gcc -\${ABI}\""
236    }
237    
238    mabi-cxx()
239    {
240     echo "\"g++ -\${ABI}\""
241    }
242    
243    mabi-cflags()
244    {
245     echo "\"\${CFLAGS}\""
246    }
247    
248    mabi-cxxflags()
249    {
250     echo "\"\${CXXFLAGS}\""
251    }
252    
253    mabi-ldflags()
254    {
255     echo "\"\${LDFLAGS}\""
256    }
257    
258  ##  ##
259  # multilib compile functions  # multilib compile functions
260  ##  ##
# Line 219  mconfigure() Line 275  mconfigure()
275    
276   for abi in ${abis_to_run}   for abi in ${abis_to_run}
277   do   do
278   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
279   abi-${abi} oldmconfigure $@ || die   abi-${abi} oldmconfigure $@ || die
280   done   done
281  }  }
# Line 242  cmake_configure() Line 298  cmake_configure()
298   for abi in ${abis_to_run}   for abi in ${abis_to_run}
299   do   do
300   SRCDIR="${saved_SRCDIR}-${abi}"   SRCDIR="${saved_SRCDIR}-${abi}"
301   cd ${SRCDIR}   cd ${SRCDIR}/${SRCSUBDIR}
302   abi-${abi} oldcmake_configure $@ || die   abi-${abi} oldcmake_configure $@ || die
303   done   done
304     # restore SRCDIR
305     SRCDIR="${saved_SRCDIR}"
306  }  }
307    
308  if [[ ! -z $(typeset -f munpack) ]]  if [[ ! -z $(typeset -f munpack) ]]
# Line 264  munpack() Line 322  munpack()
322   for abi in ${abis_to_run}   for abi in ${abis_to_run}
323   do   do
324   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"
325   oldmunpack ${SRCFILE} || die   oldmunpack $@ || die
326   mv ${SRCDIR} ${SRCDIR}-${abi} || die   mv ${SRCDIR} ${SRCDIR}-${abi} || die
327   done   done
328  }  }
# Line 286  mmake() Line 344  mmake()
344   for abi in ${abis_to_run}   for abi in ${abis_to_run}
345   do   do
346   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
347   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
348   abi-${abi} oldmmake $@ || die   abi-${abi} oldmmake $@ || die
349   done   done
350  }  }
# Line 308  minstall() Line 366  minstall()
366   for abi in ${abis_to_run}   for abi in ${abis_to_run}
367   do   do
368   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
369   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
370   abi-${abi} oldminstall $@ || die   abi-${abi} oldminstall $@ || die
371   done   done
372  }  }
# Line 324  minstall_destdir() Line 382  minstall_destdir()
382   for abi in ${abis_to_run}   for abi in ${abis_to_run}
383   do   do
384   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
385   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
386   make DESTDIR=${BINDIR} $@ install || die   make DESTDIR=${BINDIR} $@ install || die
387   done   done
388  }  }
# Line 346  mpatch() Line 404  mpatch()
404   for abi in ${abis_to_run}   for abi in ${abis_to_run}
405   do   do
406   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
407   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
408   oldmpatch $@ || die   oldmpatch $@ || die
409   done   done
410  }  }
# Line 368  mlibtoolize() Line 426  mlibtoolize()
426   for abi in ${abis_to_run}   for abi in ${abis_to_run}
427   do   do
428   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"   echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
429   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
430   oldmlibtoolize $@ || die   oldmlibtoolize $@ || die
431   done   done
432  }  }
433    
434    if [[ ! -z $(typeset -f mautoreconf) ]]
435    then
436     # rename the old one
437     old_mautoreconf=old$(typeset -f mautoreconf)
438     eval "${old_mautoreconf}"
439    fi
440    mautoreconf()
441    {
442     local abi
443     local abis_to_run="${MULTILIB_ABIS}"
444    
445     # respect MULTILIB_ONLY_ABI variable
446     [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
447    
448     for abi in ${abis_to_run}
449     do
450     echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
451     cd ${SRCDIR}-${abi}/${SRCSUBDIR}
452     oldmautoreconf $@ || die
453     done
454    }
455    
456    if [[ ! -z $(typeset -f minstalldocs) ]]
457    then
458     # rename the old one
459     old_minstalldocs=old$(typeset -f minstalldocs)
460     eval "${old_minstalldocs}"
461    fi
462  minstalldocs()  minstalldocs()
463  {  {
464   local abi   local abi
465   local docfiles   local docfiles
  docfiles="$@"  
466    
467   local abis_to_run="${MULTILIB_ABIS}"   local abis_to_run="${MULTILIB_ABIS}"
468    
# Line 386  minstalldocs() Line 471  minstalldocs()
471    
472   for abi in ${abis_to_run}   for abi in ${abis_to_run}
473   do   do
474   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
475   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  
476   done   done
477  }  }
478    
# Line 406  minstalldocs() Line 481  minstalldocs()
481  ##  ##
482  multilib_src_prepare()  multilib_src_prepare()
483  {  {
484   munpack   munpack ${SRCFILE}
485  }  }
486    
487  multilib_src_compile()  multilib_src_compile()
# Line 415  multilib_src_compile() Line 490  multilib_src_compile()
490   mmake   mmake
491  }  }
492    
493    multilib_src_check()
494    {
495     mmake -j1 -k check || die
496    }
497    
498  multilib_src_install()  multilib_src_install()
499  {  {
500   minstall_destdir   minstall_destdir
# Line 422  multilib_src_install() Line 502  multilib_src_install()
502   local i   local i
503   for abi in ${MULTILIB_ABIS}   for abi in ${MULTILIB_ABIS}
504   do   do
505   cd ${SRCDIR}-${abi}   cd ${SRCDIR}-${abi}/${SRCSUBDIR}
506   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
507   FAQ LICENSE NEWS README TODO   FAQ LICENSE NEWS README TODO
508   do   do
# Line 434  multilib_src_install() Line 514  multilib_src_install()
514   done   done
515  }  }
516    
517  export_inherits multilib src_prepare src_compile src_install  export_inherits multilib src_prepare src_compile src_check src_install

Legend:
Removed from v.6654  
changed lines
  Added in v.13972