Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 29788 - (show annotations) (download)
Thu Oct 12 08:49:24 2017 UTC (6 years, 7 months ago) by niro
Original Path: trunk/include/multilib.sminc
File size: 16597 byte(s)
-added mninja() multilib wrapper and use it
1 # $Id$
2 # 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 !!
14 # it may break i*86 builds
15
16 # default ABIs to be build
17 case ${ARCH} in
18 x86_64)
19 : ${MULTILIB_ABIS="m32 m64"}
20 # default false
21 : ${EMUL_LINUX_32="false"}
22
23 # add linux32 to the dependencies
24 if [[ ${EMUL_LINUX_32} = true ]]
25 then
26 EMUL_LINUX_32_SDEPEND_x86_64=">= sys-apps/util-linux-2.19"
27 SPECIAL_VARS="${SPECIAL_VARS} EMUL_LINUX_32_SDEPEND_x86_64"
28 fi
29 ;;
30 i*86)
31 : ${MULTILIB_ABIS="m32"}
32 # always false
33 EMUL_LINUX_32="false"
34 ;;
35 esac
36
37 # add linux32 to the dependencies
38 if [[ ${EMUL_LINUX_32} = true ]]
39 then
40 # very dirty trick to get the dependencies right
41 # ; is the IFS, tr replaces ; with an crlfs
42 # the var ist decided with our common eval+echo magic
43 if [[ -z ${SDEPEND} ]]
44 then
45 SDEPEND="$(marchsdepend EMUL_LINUX_32_SDEPEND)"
46 else
47 SDEPEND="${SDEPEND}
48 $(marchsdepend EMUL_LINUX_32_SDEPEND)"
49 fi
50 fi
51
52 ##
53 # overide some defaults to respect ABI_LIBDIR
54 ##
55 mlibdir()
56 {
57 local libdir=lib
58 [[ ${ARCH} = x86_64 ]] && libdir=lib64
59 [[ -n ${ABI_LIBDIR} ]] && libdir="${ABI_LIBDIR}"
60
61 echo "${libdir}"
62 }
63
64 ##
65 # multilib abi changers
66 ##
67 abi-m32()
68 {
69 export ABI="m32"
70 export CC="gcc -${ABI}"
71 export CXX="g++ -${ABI}"
72 export ABI_LIBDIR="lib"
73 if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
74 then
75 local saved_ldflags="${LDFLAGS}"
76 export LDFLAGS="${LDFLAGS} -L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
77 fi
78 # 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 if [[ ${MULTILIB_VERBOSE} = true ]]
83 then
84 echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
85 echo -e "${COLBLUE}*** ${COLGREEN} ABI${COLDEFAULT}='${ABI}'"
86 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
99
100 # configure a linux32 emulated build
101 if [[ ${EMUL_LINUX_32} = true ]]
102 then
103 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
108 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
114
115 # run any given command
116 eval $@ || die
117
118 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
124 if [[ ${EMUL_LINUX_32} = true ]]
125 then
126 unset uname
127 export CHOST="${orig_chost}" && unset orig_chost
128 fi
129 }
130
131 abi-m64()
132 {
133 export ABI="m64"
134 export CC="gcc -${ABI}"
135 export CXX="g++ -${ABI}"
136 export ABI_LIBDIR="lib64"
137 if [[ ${EXPORT_ABI_LDFLAGS} != false ]]
138 then
139 local saved_ldflags="${LDFLAGS}"
140 export LDFLAGS="-L/${ABI_LIBDIR} -L/usr/${ABI_LIBDIR}"
141 fi
142 # 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 if [[ ${MULTILIB_VERBOSE} = true ]]
147 then
148 echo -e "${COLBLUE}*** ${COLGREEN}running with -${ABI} ABI${COLDEFAULT}"
149 echo -e "${COLBLUE}*** ${COLGREEN} ABI${COLDEFAULT}='${ABI}'"
150 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
163
164 # run any given command
165 eval $@ || die
166
167 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()
174 {
175 local abi=m32
176 local i
177
178 for i in ${MULTILIB_ABIS}
179 do
180 if [[ ${i} = ${abi} ]]
181 then
182 # export this for mpatch etc (to repect only-${abi})
183 export MULTILIB_ONLY_ABI=${abi}
184
185 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
186 abi-${abi} $@ || die
187
188 # unset this is very important
189 unset MULTILIB_ONLY_ABI
190 fi
191 done
192 }
193
194 only-m64()
195 {
196 local abi=m64
197 local i
198
199 for i in ${MULTILIB_ABIS}
200 do
201 if [[ ${i} = ${abi} ]]
202 then
203 # export this for mpatch etc (to repect only-${abi})
204 export MULTILIB_ONLY_ABI=${abi}
205
206 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
207 abi-${abi} $@ || die
208
209 # unset this is very important
210 unset MULTILIB_ONLY_ABI
211 fi
212 done
213 }
214
215 all-abis()
216 {
217 local abi
218 for abi in ${MULTILIB_ABIS}
219 do
220 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
221 abi-${abi} $@ || die
222 done
223 }
224
225 mabi()
226 {
227 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
257 ##
258
259 if [[ ! -z $(typeset -f mconfigure) ]]
260 then
261 # rename the old one
262 old_mconfigure=old$(typeset -f mconfigure)
263 eval "${old_mconfigure}"
264
265 mconfigure()
266 {
267 local abi
268 local abis_to_run="${MULTILIB_ABIS}"
269
270 # respect MULTILIB_ONLY_ABI variable
271 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
272
273 for abi in ${abis_to_run}
274 do
275 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
276 abi-${abi} oldmconfigure $@ || die
277 done
278 }
279 fi
280
281 if [[ ! -z $(typeset -f cmake_configure) ]]
282 then
283 # rename the old one
284 old_cmake_configure=old$(typeset -f cmake_configure)
285 eval "${old_cmake_configure}"
286
287 cmake_configure()
288 {
289 local abi
290 local abis_to_run="${MULTILIB_ABIS}"
291
292 # respect MULTILIB_ONLY_ABI variable
293 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
294
295 local saved_SRCDIR="${SRCDIR}"
296 for abi in ${abis_to_run}
297 do
298 SRCDIR="${saved_SRCDIR}-${abi}"
299 # 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
307 done
308 # restore SRCDIR
309 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 # honor inside and outside build-dir builds
364 if [ -d ${BUILDDIR}/build-${abi} ]
365 then
366 cd ${BUILDDIR}/build-${abi}
367 else
368 cd ${SRCDIR}-${abi}
369 fi
370 mmake -j1 -k check || die
371 done
372 }
373 fi
374
375 if [[ ! -z $(typeset -f cmake_src_install) ]]
376 then
377 # rename the old one
378 old_cmake_src_install=old$(typeset -f cmake_src_install)
379 eval "${old_cmake_install}"
380
381 cmake_src_install()
382 {
383 local abi
384 local abis_to_run="${MULTILIB_ABIS}"
385
386 # respect MULTILIB_ONLY_ABI variable
387 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
388
389 for abi in ${abis_to_run}
390 do
391 # honor inside and outside build-dir builds
392 if [ -d ${BUILDDIR}/build-${abi} ]
393 then
394 cd ${BUILDDIR}/build-${abi}
395 else
396 cd ${SRCDIR}-${abi}
397 fi
398 abi-${abi} oldmmake DESTDIR=${BINDIR} $@ install || die
399 done
400 }
401 fi
402
403 if [[ ! -z $(typeset -f mninja) ]]
404 then
405 # rename the old one
406 old_mninja=old$(typeset -f mninja)
407 eval "${old_mninja}"
408
409 mninja()
410 {
411 local abi
412 local abis_to_run="${MULTILIB_ABIS}"
413
414 # respect MULTILIB_ONLY_ABI variable
415 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
416
417 for abi in ${abis_to_run}
418 do
419 echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
420 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
421 abi-${abi} oldmninja $@ || die
422 done
423 }
424 fi
425
426 if [[ ! -z $(typeset -f meson_configure) ]]
427 then
428 # rename the old one
429 old_meson_configure=old$(typeset -f meson_configure)
430 eval "${old_meson_configure}"
431
432 meson_configure()
433 {
434 local abi
435 local abis_to_run="${MULTILIB_ABIS}"
436
437 # respect MULTILIB_ONLY_ABI variable
438 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
439
440 local saved_SRCDIR="${SRCDIR}"
441 for abi in ${abis_to_run}
442 do
443 SRCDIR="${saved_SRCDIR}-${abi}"
444 # honor inside and outside build-dir builds
445 if [ -d ${BUILDDIR}/build-${abi} ]
446 then
447 cd ${BUILDDIR}/build-${abi}
448 else
449 cd ${SRCDIR}
450 fi
451 abi-${abi} oldmeson_configure $@ || die
452 done
453 # restore SRCDIR
454 SRCDIR="${saved_SRCDIR}"
455 }
456 fi
457
458 if [[ ! -z $(typeset -f meson_src_compile) ]]
459 then
460 # rename the old one
461 old_meson_src_compile=old$(typeset -f meson_src_compile)
462 eval "${old_meson_src_compile}"
463
464 meson_src_compile()
465 {
466 local abi
467 local abis_to_run="${MULTILIB_ABIS}"
468
469 # respect MULTILIB_ONLY_ABI variable
470 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
471
472 for abi in ${abis_to_run}
473 do
474 # remove build dir if exist
475 [[ -d ${BUILDDIR}/build-${abi} ]] && rm -rf ${BUILDDIR}/build-${abi}
476
477 # build outside of the source dir
478 install -d ${BUILDDIR}/build-${abi} || die
479 cd ${BUILDDIR}/build-${abi}
480 done
481
482 meson_configure || die
483
484 for abi in ${abis_to_run}
485 do
486 cd ${BUILDDIR}/build-${abi}
487 abi-${abi} oldmninja $@ || die
488 done
489 }
490 fi
491
492 if [[ ! -z $(typeset -f meson_src_check) ]]
493 then
494 # rename the old one
495 old_meson_src_check=old$(typeset -f meson_src_check)
496 eval "${old_meson_check}"
497
498 meson_src_check()
499 {
500 local abi
501 local abis_to_run="${MULTILIB_ABIS}"
502
503 # respect MULTILIB_ONLY_ABI variable
504 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
505
506 for abi in ${abis_to_run}
507 do
508 # honor inside and outside build-dir builds
509 if [ -d ${BUILDDIR}/build-${abi} ]
510 then
511 cd ${BUILDDIR}/build-${abi}
512 else
513 cd ${SRCDIR}-${abi}
514 fi
515 meson test || die
516 done
517 }
518 fi
519
520 if [[ ! -z $(typeset -f meson_src_install) ]]
521 then
522 # rename the old one
523 old_meson_src_install=old$(typeset -f meson_src_install)
524 eval "${old_meson_install}"
525
526 meson_src_install()
527 {
528 local abi
529 local abis_to_run="${MULTILIB_ABIS}"
530
531 # respect MULTILIB_ONLY_ABI variable
532 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
533
534 for abi in ${abis_to_run}
535 do
536 # honor inside and outside build-dir builds
537 if [ -d ${BUILDDIR}/build-${abi} ]
538 then
539 cd ${BUILDDIR}/build-${abi}
540 else
541 cd ${SRCDIR}-${abi}
542 fi
543 abi-${abi} DESTDIR=${BINDIR} oldmninja $@ install || die
544 done
545 }
546 fi
547
548 if [[ ! -z $(typeset -f munpack) ]]
549 then
550 # rename the old one
551 old_munpack=old$(typeset -f munpack)
552 eval "${old_munpack}"
553
554 munpack()
555 {
556 local abi
557 local abis_to_run="${MULTILIB_ABIS}"
558
559 # respect MULTILIB_ONLY_ABI variable
560 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
561
562 for abi in ${abis_to_run}
563 do
564 echo -e "${COLBLUE}*** ${COLGREEN}unpacking for ABI -${abi}${COLDEFAULT}"
565 oldmunpack $@ || die
566 mv ${SRCDIR} ${SRCDIR}-${abi} || die
567 done
568 }
569 fi
570
571 if [[ ! -z $(typeset -f mmake) ]]
572 then
573 # rename the old one
574 old_mmake=old$(typeset -f mmake)
575 eval "${old_mmake}"
576
577 mmake()
578 {
579 local abi
580 local abis_to_run="${MULTILIB_ABIS}"
581
582 # respect MULTILIB_ONLY_ABI variable
583 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
584
585 for abi in ${abis_to_run}
586 do
587 echo -e "${COLBLUE}*** ${COLGREEN}compiling for ABI -${abi}${COLDEFAULT}"
588 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
589 abi-${abi} oldmmake $@ || die
590 done
591 }
592 fi
593
594 if [[ ! -z $(typeset -f minstall) ]]
595 then
596 # rename the old one
597 old_minstall=old$(typeset -f minstall)
598 eval "${old_minstall}"
599
600 minstall()
601 {
602 local abi
603 local abis_to_run="${MULTILIB_ABIS}"
604
605 # respect MULTILIB_ONLY_ABI variable
606 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
607
608 for abi in ${abis_to_run}
609 do
610 echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
611 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
612 abi-${abi} oldminstall $@ || die
613 done
614 }
615 fi
616
617 minstall_destdir()
618 {
619 local abi
620 local abis_to_run="${MULTILIB_ABIS}"
621
622 # respect MULTILIB_ONLY_ABI variable
623 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
624
625 for abi in ${abis_to_run}
626 do
627 echo -e "${COLBLUE}*** ${COLGREEN}installing for ABI -${abi}${COLDEFAULT}"
628 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
629 make DESTDIR=${BINDIR} $@ install || die
630 done
631 }
632
633 if [[ ! -z $(typeset -f mpatch) ]]
634 then
635 # rename the old one
636 old_mpatch=old$(typeset -f mpatch)
637 eval "${old_mpatch}"
638
639 mpatch()
640 {
641 local abi
642 local abis_to_run="${MULTILIB_ABIS}"
643
644 # respect MULTILIB_ONLY_ABI variable
645 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
646
647 for abi in ${abis_to_run}
648 do
649 echo -e "${COLBLUE}*** ${COLGREEN}appling patch for ABI -${abi}${COLDEFAULT}"
650 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
651 oldmpatch $@ || die
652 done
653 }
654 fi
655
656 if [[ ! -z $(typeset -f mlibtoolize) ]]
657 then
658 # rename the old one
659 old_mlibtoolize=old$(typeset -f mlibtoolize)
660 eval "${old_mlibtoolize}"
661
662 mlibtoolize()
663 {
664 local abi
665 local abis_to_run="${MULTILIB_ABIS}"
666
667 # respect MULTILIB_ONLY_ABI variable
668 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
669
670 for abi in ${abis_to_run}
671 do
672 echo -e "${COLBLUE}*** ${COLGREEN}running mlibtoolize for ABI -${abi}${COLDEFAULT}"
673 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
674 oldmlibtoolize $@ || die
675 done
676 }
677 fi
678
679 if [[ ! -z $(typeset -f mautoreconf) ]]
680 then
681 # rename the old one
682 old_mautoreconf=old$(typeset -f mautoreconf)
683 eval "${old_mautoreconf}"
684
685 mautoreconf()
686 {
687 local abi
688 local abis_to_run="${MULTILIB_ABIS}"
689
690 # respect MULTILIB_ONLY_ABI variable
691 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
692
693 for abi in ${abis_to_run}
694 do
695 echo -e "${COLBLUE}*** ${COLGREEN}running mautoreconf for ABI -${abi}${COLDEFAULT}"
696 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
697 oldmautoreconf $@ || die
698 done
699 }
700 fi
701
702 if [[ ! -z $(typeset -f minstalldocs) ]]
703 then
704 # rename the old one
705 old_minstalldocs=old$(typeset -f minstalldocs)
706 eval "${old_minstalldocs}"
707
708 minstalldocs()
709 {
710 local abi
711 local docfiles
712
713 local abis_to_run="${MULTILIB_ABIS}"
714
715 # respect MULTILIB_ONLY_ABI variable
716 [[ ! -z ${MULTILIB_ONLY_ABI} ]] && abis_to_run="${MULTILIB_ONLY_ABI}"
717
718 for abi in ${abis_to_run}
719 do
720 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
721 oldminstalldocs $@ || die
722 done
723 }
724 fi
725
726 ##
727 # multilib mbuild wrappers
728 ##
729 multilib_src_prepare()
730 {
731 munpack ${SRCFILE} || die
732 }
733
734 multilib_src_compile()
735 {
736 if [[ ! -z $(typeset -f cmake_src_compile) ]]
737 then
738 cmake_src_compile || die
739 else
740 mconfigure || die
741 mmake || die
742 fi
743 }
744
745 multilib_src_check()
746 {
747 if [[ ! -z $(typeset -f cmake_src_check) ]]
748 then
749 cmake_src_check || die
750 else
751 mmake -j1 -k check || die
752 fi
753 }
754
755 multilib_src_install()
756 {
757 if [[ ! -z $(typeset -f cmake_src_install) ]]
758 then
759 cmake_src_install || die
760 else
761 mmake DESTDIR=${BINDIR} install || die
762 fi
763
764 local i
765 for abi in ${MULTILIB_ABIS}
766 do
767 cd ${SRCDIR}-${abi}/${SRCSUBDIR}
768 for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
769 FAQ LICENSE NEWS README TODO
770 do
771 if [ -f ${SRCDIR}-${abi}/${i} ]
772 then
773 minstalldocs ${i} || die
774 fi
775 done
776 done
777 }
778
779 export_inherits multilib src_prepare src_compile src_check src_install