It's ugly and fragile, but it's less work for me when I ask people to build a new bootstrapper for lang/ghc (on i386). (And I guess we'll need new boostrappers in a few months).
I'm not yet changing BIN_VER, because the current port should still be built with ghc-6.12.3.20101121. But I'd like to switch to a new BIN_VER when the next update to MODGHC_VER happens. ok? Index: Makefile =================================================================== RCS file: /cvs/ports/lang/ghc/Makefile,v retrieving revision 1.57 diff -u -p -r1.57 Makefile --- Makefile 23 Jul 2011 16:38:54 -0000 1.57 +++ Makefile 23 Aug 2011 19:59:49 -0000 @@ -140,4 +140,42 @@ do-regress: ${MAKE_PROGRAM} ${MAKE_FLAGS} \ PYTHON="${MODPY_BIN}" + +# Create a bootstrapper. This compiles a stripped-down version of +# ghc and creates a `bindist', i.e. a tarball with binaries that +# can be used for bootstrapping. +# You have to install gtar in order to run this target! +bootstrap: patch + cd ${WRKDIR} && rm -rf bin + + echo HSCOLOUR_SRCS=NO > ${WRKSRC}/mk/build.mk + echo GhcLibHcOpts=-O -fgenerics -fasm >> ${WRKSRC}/mk/build.mk + echo GhcStage1HcOpts=-O -fasm >> ${WRKSRC}/mk/build.mk + echo GhcStage2HcOpts=-O -fasm >> ${WRKSRC}/mk/build.mk + echo SplitObjs=NO >> ${WRKSRC}/mk/build.mk + echo GhcLibWays=v >> ${WRKSRC}/mk/build.mk + echo GhcRTSWays= >> ${WRKSRC}/mk/build.mk + echo GhcWithInterpreter=NO >> ${WRKSRC}/mk/build.mk + echo INTEGER_LIBRARY=integer-simple >> ${WRKSRC}/mk/build.mk + echo SRC_CC_OPTS+=-g -O0 >> ${WRKSRC}/mk/build.mk + echo HADDOCK_DOCS=NO >> ${WRKSRC}/mk/build.mk + echo LATEX_DOCS=NO >> ${WRKSRC}/mk/build.mk + echo BUILD_DOCBOOK_HTML=NO >> ${WRKSRC}/mk/build.mk + echo BUILD_DOCBOOK_PDF=NO >> ${WRKSRC}/mk/build.mk + echo BUILD_DOCBOOK_PS=NO >> ${WRKSRC}/mk/build.mk + echo GhcWithSMP=NO >> ${WRKSRC}/mk/build.mk + echo INSTALL_BIN_OPTS=-s >> ${WRKSRC}/mk/build.mk + + echo 20110821 > ${WRKSRC}/VERSION_DATE + + env CONFIGURE_ENV=RELEASE=NO ${MAKE} configure + + env MAKE_ENV="AUTOCONF_VERSION=2.61 AUTOMAKE_VERSION=1.4" \ + ${MAKE} build ALL_TARGET="all binary-dist" \ + + cd ${WRKSRC} && \ + pre=ghc-${MODGHC_VER}.$$(cat VERSION_DATE) && \ + suf=unknown-openbsd.tar.bz2 && \ + mv "$$pre-x86_64-$$suf" "$$pre-amd64-$$suf" || true + .include <bsd.port.mk>