Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Dec 2013 17:43:41 +0100
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        John Marino <marino@FreeBSD.org>
Cc:        svn-ports-head@freebsd.org, svn-ports-all@freebsd.org, ports-committers@freebsd.org
Subject:   Re: svn commit: r337822 - head/math/parmetis
Message-ID:  <20131228174341.77deb435@kalimero.tijl.coosemans.org>
In-Reply-To: <201312272256.rBRMuojP063283@svn.freebsd.org>
References:  <201312272256.rBRMuojP063283@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--MP_/6AES7HZ7WN04gaD8pA6G06j
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Fri, 27 Dec 2013 22:56:50 +0000 (UTC) John Marino wrote:
> Author: marino
> Date: Fri Dec 27 22:56:50 2013
> New Revision: 337822
> URL: http://svnweb.freebsd.org/changeset/ports/337822
> 
> Log:
>   math/parmetis: Unbreak on FreeBSD 10+
>   
>   ParMetis requires both cmake and gmake.  Apparently gmake sets ${MAKE}
>   to value of "make" if undefined, and this causes the bmake to be launched
>   for subdirectories rather than gmake.  That's the cause of the build
>   failure for FreeBSD 10+.  The eventual fix using MAKE_ARGS took me hours
>   to figure out, this drove me crazy!

gmake does set MAKE correctly.  You can test that with a simple
Makefile like:

all:
	@echo ${MAKE}

The problem is that the code Makefile runs "make -C $(BUILDDIR) $@
$(MAKEFLAGS)".  MAKEFLAGS is not meant to be passed on the command
line like that because it doesn't contain command line flags.  It only
contains single letters so "d" instead of "-d".
Bmake sets this to "w" when it calls gmake like gmake does for its own
submakes to get Entering/Leaving messages.  This happens in do-build
with USES=gmake.

With the attached patch the port still builds for me.
--MP_/6AES7HZ7WN04gaD8pA6G06j
Content-Type: text/x-patch
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename=parmetis.patch

Index: Makefile
===================================================================
--- Makefile	(revision 337860)
+++ Makefile	(working copy)
@@ -22,7 +22,6 @@ OPENMPI_DESC=	Use openmpi instead of mpi
 
 USES=		cmake gmake
 
-MAKE_ARGS+=	MAKEFLAGS=MAKE=${GMAKE}
 PLIST_FILES=	include/parmetis/metis.h \
 		include/parmetis/parmetis.h \
 		lib/parmetis/libmetis.a \
@@ -47,7 +46,8 @@ MPICC=		${LOCALBASE}/bin/mpicc
 post-patch:
 	@${REINPLACE_CMD} -e \
 		's|BUILDDIR =.*|BUILDDIR = build| ; \
-		 s|make -C|${MAKE_CMD} -C|' ${WRKSRC}/Makefile
+		 s|make -C|$$(MAKE) -C| ; \
+		 s|$$(MAKEFLAGS)||' ${WRKSRC}/Makefile
 	@${REINPLACE_CMD} -e \
 		's|"-O3"|""|' ${WRKSRC}/metis/GKlib/GKlibSystem.cmake
 

--MP_/6AES7HZ7WN04gaD8pA6G06j--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20131228174341.77deb435>