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>

Reply via email to