summaryrefslogtreecommitdiff
path: root/meta/classes/waf.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/waf.bbclass')
-rw-r--r--meta/classes/waf.bbclass40
1 files changed, 40 insertions, 0 deletions
diff --git a/meta/classes/waf.bbclass b/meta/classes/waf.bbclass
new file mode 100644
index 0000000000..c4698e910a
--- /dev/null
+++ b/meta/classes/waf.bbclass
@@ -0,0 +1,40 @@
+# avoids build breaks when using no-static-libs.inc
+DISABLE_STATIC = ""
+
+EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}"
+
+def get_waf_parallel_make(d):
+ pm = d.getVar('PARALLEL_MAKE')
+ if pm:
+ # look for '-j' and throw other options (e.g. '-l') away
+ # because they might have different meaning in bjam
+ pm = pm.split()
+ while pm:
+ v = None
+ opt = pm.pop(0)
+ if opt == '-j':
+ v = pm.pop(0)
+ elif opt.startswith('-j'):
+ v = opt[2:].strip()
+ else:
+ v = None
+
+ if v:
+ v = min(64, int(v))
+ return '-j' + str(v)
+
+ return ""
+
+waf_do_configure() {
+ ${S}/waf configure --prefix=${prefix} ${EXTRA_OECONF}
+}
+
+waf_do_compile() {
+ ${S}/waf build ${@get_waf_parallel_make(d)}
+}
+
+waf_do_install() {
+ ${S}/waf install --destdir=${D}
+}
+
+EXPORT_FUNCTIONS do_configure do_compile do_install