wip/ghc TODO
============
+* Send hunks #3 and #4 of patch-aclocal.m4 to the upstream.
+* Send patch-configure.ac to the upstream.
+* Send patch-libraries-integer-gmp_configure.ac to the upstream.
+* Send patch-rules_hs-suffix-rules-srcdir.mk to the upstream.
+* Modify configure.ac and rules/build-package-data.mk to allow
+ ``--with-curses-{includes,libraries}`` to be passed to the top-level
+ ``configure``, and send a patch to the upstream.
+* Explain about files/bootstrap-main.c and files/capi-wrappers-*.c
+ in this guide, and fix the upstream to throw them away.
* Build more bootstrapping HC archives to support more platforms.
-
---------------------------
How to build an HC archive
--------------------------
Build some configuration files::
$ cd ghc-{VERSION}-target
- $ ln -s /bin/pwd utils/ghc-pwd/ghc-pwd
$ ./configure --enable-hc-boot
$ echo "INTEGER_LIBRARY = integer-simple" > mk/build.mk
$ gmake bootstrapping-files
Copy some configuration files from the ``-target`` tree::
- $ cp ../ghc-{VERSION}-target/includes/{ghcautoconf.h,DerivedConstants.h,GHCConstants.h} includes/
+ $ cp -r ../ghc-{VERSION}-target/includes/dist-{ghcconstants,derivedconstants} includes/
+ $ cp ../ghc-{VERSION}-target/includes/ghcautoconf.h includes/
Build it::
Modify hard-coded paths in inplace ``.conf`` files, and then
re-archive the HC tree::
- $ gsed -i.bak \
+ $ gsed -i \
-e 's#/usr/pkg#[[PREFIX]]#g' \
-e 's#'`dirname \`pwd\``'#[[GHC_SOURCE_PATH]]#g' \
inplace/lib/package.conf.d/*.conf \
+ */package.conf.inplace \
*/*/package-data.mk \
- */*/*/package-data.mk
+ */*/*/package-data.mk \
+ */*/*/*/package-data.mk
$ cd ..
- $ tar jcf ghc-{VERSION}-boot-{PLATFORM}.tar.bz2 ghc-{VERSION}
+ $ tar jcvf ghc-{VERSION}-boot-{PLATFORM}.tar.bz2 ghc-{VERSION}
Done. Upload the archive to some host and add it to the ``Makefile``.