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>