aboutsummaryrefslogtreecommitdiffstats
path: root/Mk
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2015-04-08 23:05:48 +0800
committerbapt <bapt@FreeBSD.org>2015-04-08 23:05:48 +0800
commit11557d3b1ca381824ecc50f020623ed56d4ce36a (patch)
tree81627af7b0f0c701d807cb8a4046a4740517b9f9 /Mk
parent1ed12c409b16770d2cb109c7a67bf65ef1a3f27b (diff)
downloadfreebsd-ports-gnome-11557d3b1ca381824ecc50f020623ed56d4ce36a.tar.gz
freebsd-ports-gnome-11557d3b1ca381824ecc50f020623ed56d4ce36a.tar.zst
freebsd-ports-gnome-11557d3b1ca381824ecc50f020623ed56d4ce36a.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