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

Contents of /eclass/base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.58 - (hide annotations) (download)
Thu Sep 27 16:35:41 2012 UTC (23 months ago) by axs
Branch: MAIN
Changes since 1.57: +2 -2 lines
naive bump of all EAPI-specific checks in eclasses to permit EAPI=5 where EAPI=4 was previously allowed

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

  ViewVC Help
Powered by ViewVC 1.1.20