From 7a40ea8fc358aa134ad86862591329f94d0f3718 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Fri, 8 Sep 2017 18:04:37 -0300 Subject: go.bbclass: Enable parallel build The parallel build is based on PARALLEL_MAKE variable but can be overriden setting the GO_PARALLEL_BUILD one. This change is based on the meta-golang[1] layer. Thanks to Matt Madison for his work on this. 1. https://github.com/madisongh/meta-golang Signed-off-by: Otavio Salvador Signed-off-by: Richard Purdie --- meta/classes/go.bbclass | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass index 720a504cd8..f64b07fd82 100644 --- a/meta/classes/go.bbclass +++ b/meta/classes/go.bbclass @@ -1,11 +1,31 @@ inherit goarch +def get_go_parallel_make(d): + pm = (d.getVar('PARALLEL_MAKE') or '').split() + # look for '-j' and throw other options (e.g. '-l') away + # because they might have a different meaning in golang + while pm: + opt = pm.pop(0) + if opt == '-j': + v = pm.pop(0) + elif opt.startswith('-j'): + v = opt[2:].strip() + else: + continue + + return '-p %d' % int(v) + + return "" + +GO_PARALLEL_BUILD ?= "${@get_go_parallel_make(d)}" + GOROOT_class-native = "${STAGING_LIBDIR_NATIVE}/go" GOROOT = "${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go" GOBIN_FINAL_class-native = "${GOROOT_FINAL}/bin" GOBIN_FINAL = "${GOROOT_FINAL}/${GO_BUILD_BINDIR}" export GOBUILDFLAGS ?= "-v" +GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} " export GOOS = "${TARGET_GOOS}" export GOARCH = "${TARGET_GOARCH}" -- cgit 1.2.3-korg