aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES9
-rw-r--r--Mk/Uses/fmake.mk39
2 files changed, 47 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index 0dc8122ed03e..994bfe6b1cf0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,8 +10,15 @@ in the release notes and/or placed into UPDATING.
All ports committers are allowed to commit to this file.
+20130620:
+AUTHOR:
+ * New USES: fmake
+
+ This uses will allow to build ports using the legacy FreeBSD make, for ports
+ not compatible with bmake
+
20130614:
-AUTHOR: bapt@FreeBSD.org
+AUTHOR: bapt@FreeBSD.org
* New macros to help dealing with ports that have options:
diff --git a/Mk/Uses/fmake.mk b/Mk/Uses/fmake.mk
new file mode 100644
index 000000000000..3eb07038b017
--- /dev/null
+++ b/Mk/Uses/fmake.mk
@@ -0,0 +1,39 @@
+# $FreeBSD$
+#
+# Provide support to use the legacy FreeBSD make
+#
+# MAINTAINER: portmgr@FreeBSD.org
+#
+# Feature: fmake
+# Usage: USES=fmake
+#
+
+.if !defined(_INCLUDE_USES_FMAKE_MK)
+_INCLUDE_USES_FMAKE_MK= yes
+
+.if defined(fmake_ARGS)
+IGNORE= Incorrect 'USES+= fmake:${fmake_ARGS}' fmake takes no arguments
+.endif
+
+.if defined(.PARSEDIR)
+FMAKE= ${LOCALBASE}/bin/fmake
+BUILD_DEPENDS+= ${FMAKE}:${PORTSDIR}/devel/fmake
+CONFIGURE_ENV+= MAKE=${FMAKE}
+
+.if !target(do-build)
+do-build:
+ @set -e ; (cd ${BUILD_WRKSRC}; if ! ${SETENV} ${MAKE_ENV} ${FMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${_MAKE_JOBS} ${MAKE_ARGS} ${ALL_TARGET}; then \
+ if [ -n "${BUILD_FAIL_MESSAGE}" ] ; then \
+ ${ECHO_MSG} "===> Compilation failed unexpectedly."; \
+ (${ECHO_CMD} ${BUILD_FAIL_MESSAGE}) | ${FMT} 75 79 ; \
+ fi; \
+ ${FALSE}; \
+ fi)
+.endif
+
+.if !target(do-install)
+do-install:
+ @set -e ; (cd ${INSTALL_WRKSRC} && ${SETENV} ${MAKE_ENV} ${FMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET})
+.endif
+.endif
+.endif