commit:     d25e172b16fa3c59f6868dc164bc6dcc801c4fc2
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 29 07:59:28 2019 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Jan 29 07:58:26 2020 +0000
URL:        https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=d25e172b

general-concepts/dependencies: Document BDEPEND

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 general-concepts/dependencies/text.xml | 48 ++++++++++++++++++++++++++++++++--
 1 file changed, 46 insertions(+), 2 deletions(-)

diff --git a/general-concepts/dependencies/text.xml 
b/general-concepts/dependencies/text.xml
index 32feff1..8deca1f 100644
--- a/general-concepts/dependencies/text.xml
+++ b/general-concepts/dependencies/text.xml
@@ -11,17 +11,61 @@ provided by <c>emerge</c>.
 </p>
 </body>
 
+<section>
+<title>CHOST vs CBUILD</title>
+<body>
+
+<p>
+In order to avoid ambiguity, we use the following terms to indicate different
+systems when cross-compiling:
+</p>
+
+<dl>
+  <dt>CBUILD</dt>
+  <dd>
+    The system on which the build is performed.  Dependencies that apply
+    to the CBUILD system can be executed during build time.  When
+    cross-compiling, they are not installed into the system being built.
+  </dd>
+
+  <dt>CHOST</dt>
+  <dd>
+    The system on which the package is going to be executed.  When
+    cross-compiling, dependencies applying to CHOST can not be executed.
+  </dd>
+</dl>
+
+<p>
+When not cross-compiling, CBUILD and CHOST have the same value and both classes
+of dependencies are merged.
+</p>
+
+</body>
+</section>
+
 <section>
 <title>Build Dependencies</title>
 <body>
 
 <p>
-The <c>DEPEND</c> ebuild variable should specify any dependencies which are
-required to unpack, patch, compile or install the package (but see
+Build dependencies are used to specify any dependencies that are required
+to unpack, patch, compile, test or install the package (but see
 <uri link="::general-concepts/dependencies#Implicit System Dependency"/> for
 exemptions).
 </p>
 
+<p>
+Starting with EAPI 7, build dependencies are split into two variables:
+<c>BDEPEND</c> and <c>DEPEND</c>. <c>BDEPEND</c> specifies dependencies
+applicable to CBUILD, i.e. programs that need to be executed during the build,
+e.g. <c>virtual/pkgconfig</c>. <c>DEPEND</c> specifies dependencies for CHOST,
+i.e. packages that need to be found on built system, e.g. libraries and 
headers.
+</p>
+
+<p>
+In earlier EAPIs, all build dependencies are placed in <c>DEPEND</c>.
+</p>
+
 </body>
 </section>
 

Reply via email to