This is for Haskell people only ;-) Use ${MAKE_ENV} in ghc.mod.mk where it's used in other ports. This allows tweaks like symlinking /bin/sh to ${WRKDIR}/bin/bash and watching a port like devel/darcs failing on make regress (because it needs a real bash).
Let MODGHC_SETUP_CONF_ENV default to be empty. The only port that makes uses of this variable for now is graphics/hs-GLUT (also included in the diff below). I could use CONFIGURE_ENV for this, but some Haskell ports are using a combination of the Cabal stuff (i.e. ./Setup.lhs) and autoconf, so I stick to MODGHC_SETUP_CONF_ENV for now. A rebuild of all Haskell ports survived on my machine (including ports no man except me has ever seen before). I'd appreciate some comments. Ciao, Kili Index: lang/ghc/ghc.port.mk =================================================================== RCS file: /cvs/ports/lang/ghc/ghc.port.mk,v retrieving revision 1.8 diff -u -p -r1.8 ghc.port.mk --- lang/ghc/ghc.port.mk 6 May 2010 20:00:19 -0000 1.8 +++ lang/ghc/ghc.port.mk 24 May 2010 20:13:36 -0000 @@ -47,7 +47,7 @@ SUBST_VARS += DISTNAME MODGHC_HACKAGE_ MODGHC_SETUP_SCRIPT ?= Setup.lhs Setup.hs MODGHC_SETUP_PROG ?= ${WRKSRC}/Setup MODGHC_SETUP_CONF_ARGS ?= -MODGHC_SETUP_CONF_ENV ?= HOME=${PORTHOME} PATH=${PATH} +MODGHC_SETUP_CONF_ENV ?= . if ${MODGHC_BUILD:L:Mhaddock} BUILD_DEPENDS += ::devel/haddock @@ -64,7 +64,7 @@ MODCABAL_configure = \ -o ${MODGHC_SETUP_PROG} "$$s" && \ break; \ done && \ - cd ${WRKBUILD} && exec ${SETENV} ${MODGHC_SETUP_CONF_ENV} \ + cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} ${MODGHC_SETUP_CONF_ENV} \ ${MODGHC_SETUP_PROG} \ configure -g -O --prefix=${PREFIX} \ ${MODGHC_SETUP_CONF_ARGS} @@ -73,7 +73,7 @@ CONFIGURE_STYLE += CABAL . if !target(do-build) do-build: - @cd ${WRKBUILD} && exec ${SETENV} ${MODGHC_SETUP_CONF_ENV} \ + @cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \ ${MODGHC_SETUP_PROG} build . if ${MODGHC_BUILD:L:Mhaddock} @cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \ @@ -89,7 +89,7 @@ do-build: . if !target(do-install) do-install: - @cd ${WRKBUILD} && exec ${SETENV} ${MODGHC_SETUP_CONF_ENV} \ + @cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \ ${MODGHC_SETUP_PROG} copy --destdir=${DESTDIR} . if ${MODGHC_BUILD:L:Mregister} @${INSTALL_SCRIPT} ${WRKBUILD}/register.sh ${PREFIX}/lib/${DISTNAME} @@ -99,7 +99,7 @@ do-install: . if !target(do-regress) do-regress: - @cd ${WRKBUILD} && exec ${SETENV} ${MODGHC_SETUP_CONF_ENV} \ + @cd ${WRKBUILD} && exec ${SETENV} ${MAKE_ENV} \ ${MODGHC_SETUP_PROG} test . endif . endif Index: graphics/hs-GLUT/Makefile =================================================================== RCS file: /cvs/ports/graphics/hs-GLUT/Makefile,v retrieving revision 1.3 diff -u -p -r1.3 Makefile --- graphics/hs-GLUT/Makefile 19 May 2010 15:58:21 -0000 1.3 +++ graphics/hs-GLUT/Makefile 24 May 2010 20:13:36 -0000 @@ -28,9 +28,7 @@ BUILD_DEPENDS = ${RUN_DEPENDS} USE_X11 = Yes -# XXX improve ghc.port.mk to avoid this uglyness MODGHC_SETUP_CONF_ENV = CPPFLAGS=-I${LOCALBASE}/include \ - LDFLAGS=-L${LOCALBASE}/lib \ - HOME=${PORTHOME} PATH=${PATH} + LDFLAGS=-L${LOCALBASE}/lib .include <bsd.port.mk>