net-fs/openafs-kernel: remove vulnerable versions
[gentoo.git] / eclass / bsdmk.eclass
1 # Copyright 1999-2011 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Id$
4
5 # @ECLASS: bsdmk.eclass
6 # @MAINTAINER:
7 # Otavio R. Piske "AngusYoung" <angusyoung@gentoo.org>
8 # Diego Pettenò <flameeyes@gentoo.org>
9 # Benigno B. Junior <bbj@gentoo.org>
10 # @BLURB: Some functions for BSDmake
11
12 inherit toolchain-funcs portability flag-o-matic
13
14 EXPORT_FUNCTIONS src_compile src_install
15
16 RDEPEND=""
17 # this should actually be BDEPEND, but this works.
18 DEPEND="virtual/pmake"
19
20 ESED="/usr/bin/sed"
21
22 # @ECLASS-VARIABLE: mymakeopts
23 # @DESCRIPTION:
24 # Options for bsd-make
25
26 # @FUNCTION: append-opt
27 # @USAGE: < options >
28 # @DESCRIPTION:
29 # append options to enable or disable features
30 append-opt() {
31         mymakeopts="${mymakeopts} $@"
32 }
33
34 # @FUNCTION: mkmake
35 # @USAGE: [ options ]
36 # @DESCRIPTION:
37 # calls bsd-make command with the given options, passing ${mymakeopts} to
38 # enable ports to useflags bridge.
39 mkmake() {
40         [[ -z ${BMAKE} ]] && BMAKE="$(get_bmake)"
41
42         tc-export CC CXX LD RANLIB
43
44         ${BMAKE} ${MAKEOPTS} ${EXTRA_EMAKE} ${mymakeopts} NO_WERROR= STRIP= "$@"
45 }
46
47 # @FUNCTION: mkinstall
48 # @USAGE: [ options ]
49 # @DESCRIPTION:
50 # Calls "bsd-make install" with the given options, passing ${mamakeopts} to
51 # enable ports to useflags bridge
52 mkinstall() {
53         [[ -z ${BMAKE} ]] && BMAKE="$(get_bmake)"
54
55         # STRIP= will replace the default value of -s, leaving to portage the
56         # task of stripping executables.
57         ${BMAKE} ${mymakeopts} NO_WERROR= STRIP= MANSUBDIR= DESTDIR="${D}" "$@" install
58 }
59
60 # @FUNCTION: dummy_mk
61 # @USAGE: < dirnames >
62 # @DESCRIPTION:
63 # removes the specified subdirectories and creates a dummy makefile in them
64 # useful to remove the need for "minimal" patches
65 dummy_mk() {
66         for dir in $@; do
67                 [ -d ${dir} ] || ewarn "dummy_mk called on a non-existing directory: $dir"
68                 [ -f ${dir}/Makefile ] || ewarn "dummy_mk called on a directory without Makefile: $dir"
69                 echo ".include <bsd.lib.mk>" > ${dir}/Makefile
70         done
71 }
72
73 # @FUNCTION: bsdmk_src_compile
74 # @DESCRIPTION:
75 # The bsdmk src_compile function, which is exported
76 bsdmk_src_compile() {
77         mkmake "$@" || die "make failed"
78 }
79
80 # @FUNCTION: bsdmk_src_install
81 # @DESCRIPTION:
82 # The bsdmk src_install function, which is exported
83 bsdmk_src_install() {
84         mkinstall || die "install failed"
85 }