summaryrefslogtreecommitdiff
path: root/Mk
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-04-08 15:05:48 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-04-08 15:05:48 +0000
commit8157e9f8001110ec707b895aa362d7abc4f5c948 (patch)
tree81627af7b0f0c701d807cb8a4046a4740517b9f9 /Mk
parent671d1d9bd194a574d3933765d1cc084536ad8e91 (diff)
downloadfreebsd-ports-8157e9f8001110ec707b895aa362d7abc4f5c948.zip
Add a new USES=waf to handle the waf building system, allowing to factorise code
Plug waf into MAKE_CMD and CONFIGURE_CMD so the regular defined targets can be reused Always define _MAKE_JOBS so that when bsd.port.mk will stop overwritting _MAKE_JOBS when parallel jobs are disabled we can enforce -j1 (which is needed to really disable parallelisation with waf WAF_CMD has been created to allow one to override the location of the waf script relatively to WRKSRC CONFIGURE_TARGET is by default defined to "configure" ALL_TARGET is by default defined to "build" INSTALL_TARGET is by default defined to "install" USES=waf is by default stagedir safe
Diffstat (limited to 'Mk')
-rw-r--r--Mk/Uses/waf.mk49
1 files changed, 49 insertions, 0 deletions
diff --git a/Mk/Uses/waf.mk b/Mk/Uses/waf.mk
new file mode 100644
index 000000000000..3c81f462472d
--- /dev/null
+++ b/Mk/Uses/waf.mk
@@ -0,0 +1,49 @@
+# $FreeBSD$
+#
+# Provide support to use the waf building system
+#
+# Feature: waf
+# Usage: USES=waf
+#
+# It implies USES=python:build automatically is no USES=python has been
+# specified yet
+#
+# WAF_CMD can be specified in the ports if the waf script is not
+# in WRKSRC/waf
+# CONFIGURE_TARGET default to 'configure'
+# ALL_TARGET default to 'build'
+# INSTALL_TARGET= default to 'install'
+
+.if !defined(_INCLUDE_USES_WAF_MK)
+_INCLUDE_USES_WAF_MK= yes
+
+.if !empty(waf_ARGS)
+IGNORE= Incorrect 'USES+= waf:${waf_ARGS}' waf takes no arguments
+.endif
+
+.if !${USES:Mpython*}
+python_ARGS= 2,build
+.include "${USESDIR}/python.mk"
+.endif
+
+MAKEFILE= #
+MAKE_FLAGS= #
+ALL_TARGET= #
+HAS_CONFIGURE= yes
+WAF_CMD?= ./waf
+
+CONFIGURE_TARGET?= configure
+ALL_TARGET?= build
+INSTALL_TARGET?= install
+
+CONFIGURE_CMD= ${PYTHON_CMD} ${WAF_CMD} ${CONFIGURE_TARGET}
+MAKE_CMD= ${PYTHON_CMD} ${WAF_CMD}
+CONFIGURE_ARGS+= --prefix=${PREFIX} \
+ ${_MAKE_JOBS}
+
+DESTDIRNAME= --destdir
+
+# Set a minimal job of 1
+_MAKE_JOBS= -j${MAKE_JOBS_NUMVER}
+
+.endif