aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-05-04 01:41:49 -0400
committerMike Frysinger <vapier@gentoo.org>2015-05-04 01:43:37 -0400
commit2b0ccc8c94bc07934c2f4b66054765003e26ee9f (patch)
treef7083b47ed2ba1b9ac47b12a41b764d57bb5ffa0
parentbintree.populate: binhost connection failure triggers TypeError (bug 532784) (diff)
downloadportage-2b0ccc8c94bc07934c2f4b66054765003e26ee9f.tar.gz
portage-2b0ccc8c94bc07934c2f4b66054765003e26ee9f.tar.bz2
portage-2b0ccc8c94bc07934c2f4b66054765003e26ee9f.zip
emake: refresh comments/docs/style
The comments for this code is woefully out of date. The man page too has not been updated in a long time to reflect the latest behavior.
-rwxr-xr-xbin/ebuild-helpers/emake28
-rw-r--r--man/ebuild.522
2 files changed, 31 insertions, 19 deletions
diff --git a/bin/ebuild-helpers/emake b/bin/ebuild-helpers/emake
index 4618053bf..2a3c2f09e 100755
--- a/bin/ebuild-helpers/emake
+++ b/bin/ebuild-helpers/emake
@@ -1,19 +1,23 @@
#!/bin/bash
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
-# emake: Supplies some default parameters to GNU make. At the moment the
-# only parameter supplied is -jN, where N is a number of
-# parallel processes that should be ideal for the running host
-# (e.g. on a single-CPU machine, N=2). The MAKEOPTS variable
-# is set in make.globals. We don't source make.globals
-# here because emake is only called from an ebuild.
+# emake: Run make and automatically pass along flags set in the env. We support
+# MAKEOPTS & EXTRA_EMAKE which allows the user to customize behavior (such as
+# parallel builds and load limiting). The latter overrides the ebuild and thus
+# should be used with caution (more a debugging knob).
+#
+# With newer EAPIs, we also automatically fail the build if make itself fails.
source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
-if [[ $PORTAGE_QUIET != 1 ]] ; then
+cmd=(
+ ${MAKE:-make} ${MAKEOPTS} "$@" ${EXTRA_EMAKE}
+)
+
+if [[ ${PORTAGE_QUIET} != 1 ]] ; then
(
- for arg in ${MAKE:-make} $MAKEOPTS "$@" $EXTRA_EMAKE ; do
+ for arg in "${cmd[@]}" ; do
[[ ${arg} == *" "* ]] \
&& printf "'%s' " "${arg}" \
|| printf "%s " "${arg}"
@@ -22,7 +26,7 @@ if [[ $PORTAGE_QUIET != 1 ]] ; then
) >&2
fi
-${MAKE:-make} ${MAKEOPTS} "$@" ${EXTRA_EMAKE}
+"${cmd[@]}"
ret=$?
-[[ $ret -ne 0 ]] && __helpers_die "${0##*/} failed"
-exit $ret
+[[ ${ret} -ne 0 ]] && __helpers_die "${0##*/} failed"
+exit ${ret}
diff --git a/man/ebuild.5 b/man/ebuild.5
index 7049f1727..6a27cc527 100644
--- a/man/ebuild.5
+++ b/man/ebuild.5
@@ -1189,16 +1189,24 @@ string \fIdisable\-silent\-rules\fR occurs in the output
of \fIconfigure \-\-help\fR.
.TP
.B emake\fR \fI[make options]
-This is used as a replacement for make. Performs 'make ${MAKEOPTS}
-\fImake options\fR' (as set in make.globals), default is MAKEOPTS="\-j2".
+This must be used in place of `make` in ebuilds. Performs `${MAKE:-make}
+${MAKEOPTS} \fImake options\fR ${EXTRA_EMAKE}`, and calls `die` automatically
+starting with \fBEAPI 4\fR.
+
+The \fBMAKEOPTS\fR variable is set by the user so they can enable features such
+as parallel builds; see \fBmake.conf\fR(5) for more details.
+
+The \fBEXTRA_EMAKE\fR knob is portage feature so developers can override things
+while debugging ebuilds; it is not part of any EAPI specification.
.B ***WARNING***
.br
-if you are going to use \fBemake\fR, make sure your build is happy with
-parallel makes (make \-j2). It should be tested thoroughly as parallel
-makes are notorious for failing _sometimes_ but not always. If you determine
-that your package fails to build in parallel, and you are unable to resolve
-the issue, then you should run '\fBemake\fR \-j1' instead of 'make'.
+You must make sure your build is happy with parallel makes (make \-j2). It
+should be tested thoroughly as parallel makes are notorious for failing
+_sometimes_ but not always. If you determine that your package fails to build
+in parallel, and you are unable to resolve the issue, then you should run
+`\fBemake\fR \-j1` explicitly. This is a last resort however as it can
+significantly slow down builds on systems with lots of processors.
.SS "Install:"
.TP