|Version 9 (modified by igloo, 3 years ago) (diff)|
Making the source tarball
The source tarball includes some generated files, such as Parser.hs (generated from Parser.y.pp). We therefore need to do a build before generating the source tarball.
First check out the branch, and ensure that the version number and RELEASE near the top of configure.ac are correct. Then:
$ perl boot $ ./configure $ make $ make sdist
It is advisable to use a machine with as recent an autoreconf as possible; in particular, 2.61 is known to make a configure script that doesn't work on Windows.
You should now have source tarballs sdistprep/ghc-<VERSION>-src.tar.bz2 and sdistprep/ghc-<VERSION>-testsuite.tar.bz2.
Making the binary builds
Untar the src tarball. Then:
$ cat > mk/build.mk <<EOF V=1 HADDOCK_DOCS=YES LATEX_DOCS=YES HSCOLOUR_SRCS=YES BUILD_DOCBOOK_HTML=YES BUILD_DOCBOOK_PDF=YES BUILD_DOCBOOK_PS=YES EOF
If on Linux:
$ echo "BeConservative=YES" >> mk/build.mk
$ ./configure 2>&1 | tee ../conf.log $ make 2>&1 | tee ../make.log $ make binary-dist 2>&1 | tee ../bd.log
Sanity checking the binary builds
The compare tool compares the tarballs of different releases, and warns about possible problems:
$ cd <</path/to/ghc/tree>>/distrib/compare $ make
$ <</path/to/ghc/tree>>/distrib/compare/compare <<previous_release_files>> <<this_release_files>>
Check that the build can build the release
Install the release, set your $PATH, then just untar and:
$ ./configure $ make
Create and upload the library documentation
haskell.org$ mkdir /srv/web/haskell.org/ghc/docs/<<VERSION>>
$ <</path/to/ghc/tree>>/distrib/mkDocs/mkDocs ghc-*-x86_64-unknown-linux.tar.bz2 ghc-*-i386-unknown-mingw32.tar.bz2 $ cd docs $ scp * haskell.org:/srv/web/haskell.org/ghc/docs/<<VERSION>>
haskell.org$ cd /srv/web/haskell.org/ghc/docs/<<VERSION>> haskell.org$ mkdir html haskell.org$ cd html haskell.org$ mv ../index.html . haskell.org$ for i in ../*.tar.bz2; do tar -jxf $i; done
Sanity check http://www.haskell.org/ghc/docs/<<VERSION>>/. In particular, check that the libraries docs include both Win32 and unix.