/[gentoo-x86]/eclass/base.eclass
Gentoo

Contents of /eclass/base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.49 - (hide annotations) (download)
Tue Feb 2 10:20:25 2010 UTC (4 years, 10 months ago) by scarabeus
Branch: MAIN
Changes since 1.48: +2 -2 lines
Remove wrong -r argument from dodoc call.

1 pva 1.34 # Copyright 1999-2008 Gentoo Foundation
2 vapier 1.18 # Distributed under the terms of the GNU General Public License v2
3 scarabeus 1.49 # $Header: /var/cvsroot/gentoo-x86/eclass/base.eclass,v 1.48 2010/01/24 13:43:26 scarabeus Exp $
4 pva 1.34
5     # @ECLASS: base.eclass
6     # @MAINTAINER:
7 scarabeus 1.41 # QA Team <qa@gentoo.org>
8 vapier 1.20 #
9 pva 1.34 # Original author Dan Armak <danarmak@gentoo.org>
10     # @BLURB: The base eclass defines some default functions and variables.
11     # @DESCRIPTION:
12     # The base eclass defines some default functions and variables. Nearly
13     # everything else inherits from here.
14 vapier 1.18
15 flameeyes 1.29 inherit eutils
16    
17 scarabeus 1.41 BASE_EXPF="src_unpack src_compile src_install"
18 loki_val 1.35 case "${EAPI:-0}" in
19 scarabeus 1.44 2|3|4) BASE_EXPF+=" src_prepare src_configure" ;;
20 scarabeus 1.41 *) ;;
21 loki_val 1.35 esac
22    
23 scarabeus 1.41 EXPORT_FUNCTIONS ${BASE_EXPF}
24    
25     # @ECLASS-VARIABLE: DOCS
26     # @DESCRIPTION:
27     # Array containing documents passed to dodoc command.
28 scarabeus 1.42 #
29     # DOCS=( "${S}/doc/document.txt" "${S}/doc/doc_folder/" )
30 scarabeus 1.41
31     # @ECLASS-VARIABLE: HTML_DOCS
32     # @DESCRIPTION:
33     # Array containing documents passed to dohtml command.
34 scarabeus 1.42 #
35     # HTML_DOCS=( "${S}/doc/document.html" "${S}/doc/html_folder/" )
36 scarabeus 1.41
37     # @ECLASS-VARIABLE: PATCHES
38     # @DESCRIPTION:
39     # PATCHES array variable containing all various patches to be applied.
40     # This variable is expected to be defined in global scope of ebuild.
41     # Make sure to specify the full path. This variable is utilised in
42     # src_unpack/src_prepare phase based on EAPI.
43 scarabeus 1.42 #
44 scarabeus 1.41 # NOTE: if using patches folders with special file suffixes you have to
45     # define one additional variable EPATCH_SUFFIX="something"
46 scarabeus 1.42 #
47     # PATCHES=( "${FILESDIR}/mypatch.patch" "${FILESDIR}/patches_folder/" )
48 scarabeus 1.41
49 danarmak 1.1
50 pva 1.34 # @FUNCTION: base_src_unpack
51     # @DESCRIPTION:
52 scarabeus 1.41 # The base src_unpack function, which is exported.
53     # Calls also src_prepare with eapi older than 2.
54 danarmak 1.1 base_src_unpack() {
55 scarabeus 1.41 debug-print-function $FUNCNAME "$@"
56 danarmak 1.6
57 scarabeus 1.41 pushd "${WORKDIR}" > /dev/null
58    
59     [[ -n "${A}" ]] && unpack ${A}
60     has src_prepare ${BASE_EXPF} || base_src_prepare
61 loki_val 1.35
62 scarabeus 1.41 popd > /dev/null
63 loki_val 1.35 }
64    
65     # @FUNCTION: base_src_prepare
66     # @DESCRIPTION:
67 scarabeus 1.41 # The base src_prepare function, which is exported
68     # EAPI is greater or equal to 2.
69 loki_val 1.35 base_src_prepare() {
70     debug-print-function $FUNCNAME "$@"
71 scarabeus 1.41 debug-print "$FUNCNAME: PATCHES=$PATCHES"
72 danarmak 1.6
73 scarabeus 1.48 local patches_failed=0
74    
75 scarabeus 1.41 pushd "${S}" > /dev/null
76     if [[ "$(declare -p PATCHES 2>/dev/null 2>&1)" == "declare -a"* ]]; then
77     for x in "${PATCHES[@]}"; do
78     debug-print "$FUNCNAME: applying patch from ${x}"
79     if [[ -d "${x}" ]]; then
80     # Use standardized names and locations with bulk patching
81     # Patch directory is ${WORKDIR}/patch
82     # See epatch() in eutils.eclass for more documentation
83     EPATCH_SUFFIX=${EPATCH_SUFFIX:=patch}
84    
85     # in order to preserve normal EPATCH_SOURCE value that can
86     # be used other way than with base eclass store in local
87     # variable and restore later
88     oldval=${EPATCH_SOURCE}
89     EPATCH_SOURCE=${x}
90     epatch
91     EPATCH_SOURCE=${oldval}
92 scarabeus 1.46 elif [[ -f "${x}" ]]; then
93     epatch "${x}"
94 spatz 1.45 else
95 scarabeus 1.47 ewarn "QA: File or directory \"${x}\" does not exist."
96     ewarn "QA: Check your PATCHES array or add missing file/directory."
97 scarabeus 1.48 patches_failed=1
98 mr_bones_ 1.36 fi
99 scarabeus 1.41 done
100 scarabeus 1.48 [[ ${patches_failed} -eq 1 ]] && die "Some patches failed. See above messages."
101 scarabeus 1.41 else
102     for x in ${PATCHES}; do
103     debug-print "$FUNCNAME: patching from ${x}"
104     epatch "${x}"
105     done
106     fi
107 danarmak 1.6
108 scarabeus 1.41 # Apply user patches
109     debug-print "$FUNCNAME: applying user patches"
110     epatch_user
111 swegener 1.27
112 scarabeus 1.41 popd > /dev/null
113 danarmak 1.1 }
114    
115 loki_val 1.35 # @FUNCTION: base_src_configure
116     # @DESCRIPTION:
117 scarabeus 1.41 # The base src_configure function, which is exported when
118 scarabeus 1.42 # EAPI is greater or equal to 2. Runs basic econf. Here the PATCHES array is
119     # evaluated.
120 loki_val 1.35 base_src_configure() {
121     debug-print-function $FUNCNAME "$@"
122    
123 scarabeus 1.41 # there is no pushd ${S} so we can override its place where to run
124     [[ -x ${ECONF_SOURCE:-.}/configure ]] && econf
125 loki_val 1.35 }
126    
127 pva 1.34 # @FUNCTION: base_src_compile
128     # @DESCRIPTION:
129 scarabeus 1.41 # The base src_compile function, calls src_configure with
130     # EAPI older than 2.
131 danarmak 1.1 base_src_compile() {
132 loki_val 1.35 debug-print-function $FUNCNAME "$@"
133    
134 scarabeus 1.41 has src_configure ${BASE_EXPF} || base_src_configure
135     base_src_make $@
136 loki_val 1.35 }
137    
138 scarabeus 1.41 # @FUNCTION: base_src_make
139     # @DESCRIPTION:
140     # Actual function that runs emake command.
141 scarabeus 1.39 base_src_make() {
142 mr_bones_ 1.40 debug-print-function $FUNCNAME "$@"
143 scarabeus 1.41
144     if [[ -f Makefile || -f GNUmakefile || -f makefile ]]; then
145     emake $@ || die "died running emake, $FUNCNAME:make"
146     fi
147 scarabeus 1.39 }
148    
149 scarabeus 1.41 # @FUNCTION: base_src_install
150 loki_val 1.35 # @DESCRIPTION:
151 scarabeus 1.41 # The base src_install function. Runs make install and
152     # installs documents and html documents from DOCS and HTML_DOCS
153     # arrays.
154     base_src_install() {
155 loki_val 1.35 debug-print-function $FUNCNAME "$@"
156 danarmak 1.6
157 scarabeus 1.41 emake DESTDIR="${D}" $@ install || die "died running make install, $FUNCNAME:make"
158     base_src_install_docs
159 danarmak 1.1 }
160    
161 scarabeus 1.41 # @FUNCTION: base_src_install_docs
162 pva 1.34 # @DESCRIPTION:
163 scarabeus 1.41 # Actual function that install documentation from
164     # DOCS and HTML_DOCS arrays.
165     base_src_install_docs() {
166 loki_val 1.35 debug-print-function $FUNCNAME "$@"
167 danarmak 1.6
168 scarabeus 1.41 local x
169 danarmak 1.12
170 scarabeus 1.41 pushd "${S}" > /dev/null
171 danarmak 1.4
172 scarabeus 1.41 if [[ "$(declare -p DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then
173     for x in "${DOCS[@]}"; do
174     debug-print "$FUNCNAME: docs: creating document from ${x}"
175 scarabeus 1.49 dodoc "${x}" || die "dodoc failed"
176 scarabeus 1.41 done
177     fi
178     if [[ "$(declare -p HTML_DOCS 2>/dev/null 2>&1)" == "declare -a"* ]]; then
179     for x in "${HTML_DOCS[@]}"; do
180     debug-print "$FUNCNAME: docs: creating html document from ${x}"
181     dohtml -r "${x}" || die "dohtml failed"
182     done
183     fi
184 danarmak 1.6
185 scarabeus 1.41 popd > /dev/null
186 danarmak 1.1 }

  ViewVC Help
Powered by ViewVC 1.1.20