X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=ghc.spec.in;h=5d3fa1f1d1859285ff9c0d96a3170bda3c6e2f9b;hp=c50e8052c45c4567e25273bf213cec2cc3a222a0;hb=e4417dcd4679da9c6b18c02ff667199c572bed89;hpb=cbb81129fe303877062079d26505e8cbe0f2a7c9 diff --git a/ghc.spec.in b/ghc.spec.in index c50e805..5d3fa1f 100644 --- a/ghc.spec.in +++ b/ghc.spec.in @@ -1,6 +1,6 @@ # RPM spec file for GHC -*-rpm-spec-*- # -# Copyright [1998..2004] The GHC Team +# Copyright [1998..2007] The GHC Team # # Thanks to Zoltan Vorosbaranyi for suggestions in # earlier versions and Pixel for coding tips. @@ -21,8 +21,9 @@ Source0: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz Source1: http://haskell.org/ghc/dist/%{version}/ghc-%{version}-src-extralibs.tar.bz2 Packager: Sven Panne BuildRoot: %{_tmppath}/%{name}-%{version}-build +PreReq: update-alternatives Requires: gmp, readline -BuildRequires: alex >= 2.0, happy >= 1.15, ghc >= 5, haddock, docbook-dtd, docbook-xsl-stylesheets, libxslt, libxml2, fop, xmltex, dvips, gmp, readline-devel, mesaglut-devel +BuildRequires: update-alternatives, alex >= 2.0, happy >= 1.15, ghc >= 5, haddock, docbook-dtd, docbook-xsl-stylesheets, libxslt, libxml2, fop, xmltex, dvips, gmp, readline-devel, mesaglut-devel Provides: haskell Summary: The Glasgow Haskell Compiler @@ -81,16 +82,33 @@ needed. %setup -b1 %build -test -f configure || autoreconf +test -f configure || sh boot ./configure --prefix=%{_prefix} --mandir=%{_mandir} -make %{?jobs:-j%jobs} HTML_DIR_INSTALLED=%{_defaultdocdir}/%{name}/libraries/'$(PACKAGE)' + +# Don't install these tools, we'll use update-alternatives below. +touch mk/build.mk +echo "NO_INSTALL_RUNHASKELL=YES" >>mk/build.mk +echo "NO_INSTALL_HSC2HS=YES" >>mk/build.mk + +make %{?jobs:-j%jobs} make html +# Alas, we don't pass make options/arguments down to "libraries", so let's redo make here... +make -C libraries HADDOCK_DOCS=YES +( cd libraries/Cabal && docbook2html doc/Cabal.xml --output doc/Cabal ) make -C docs/ext-core ps make -C docs/storage-mgt ps %install -make prefix=${RPM_BUILD_ROOT}%{_prefix} install -make datadir=`pwd` mandir=${RPM_BUILD_ROOT}%{_mandir} install-docs +# This is a cruel hack: There seems to be no way to install the Haddock +# documentation into the build directory, because DESTDIR is alway prepended. +# Furthermore, rpm removes the target documentation directory before the doc +# macros are processed. Therefore we have to copy things back into safety... :-P +# The right thing would be being able to install directly into the build tree. +make DESTDIR=${RPM_BUILD_ROOT} docdir=%{_datadir}/doc/packages/%{name} HADDOCK_DOCS=YES install install-docs +mkdir html-docs +cp -a ${RPM_BUILD_ROOT}%{_datadir}/doc/packages/%{name}/{index.html,libraries} html-docs +# Use version-less hsc2hs out of the way, we use update-alternatives. +mv ${RPM_BUILD_ROOT}%{_prefix}/bin/hsc2hs ${RPM_BUILD_ROOT}%{_prefix}/bin/hsc2hs-ghc # generate the file list for lib/ _excluding_ all files needed for profiling # only @@ -113,6 +131,27 @@ cd $dir %clean rm -rf ${RPM_BUILD_ROOT} +%post +# Alas, GHC, Hugs and nhc all come with different set of tools in addition to +# a runFOO: +# +# * GHC: hsc2hs +# * Hugs: hsc2hs, cpphs +# * nhc: cpphs +# +# Therefore it is currently not possible to use --slave below to form link +# groups under a single name 'runhaskell'. Either these tools should be +# disentangled from the Haskell implementations or all implementations should +# have the same set of tools. *sigh* +update-alternatives --install %{_bindir}/runhaskell runhaskell %{_bindir}/runghc 500 +update-alternatives --install %{_bindir}/hsc2hs hsc2hs %{_bindir}/hsc2hs-ghc 500 + +%preun +if test "$1" = 0; then + update-alternatives --remove runhaskell %{_bindir}/runghc + update-alternatives --remove hsc2hs %{_bindir}/hsc2hs-ghc +fi + %files -f rpm-noprof-lib-files %defattr(-,root,root) %doc docs/docbook-cheat-sheet/docbook-cheat-sheet @@ -125,8 +164,8 @@ rm -rf ${RPM_BUILD_ROOT} %doc docs/storage-mgt/rp.ps %doc docs/storage-mgt/sm.ps %doc docs/users_guide/users_guide -%doc html/* %doc libraries/Cabal/doc/Cabal +%doc html-docs/* %{_mandir}/man1/ghc.1* %{_prefix}/bin/ghc %{_prefix}/bin/ghc-%{version} @@ -137,9 +176,10 @@ rm -rf ${RPM_BUILD_ROOT} %{_prefix}/bin/ghcprof %{_prefix}/bin/hasktags %{_prefix}/bin/hp2ps -%{_prefix}/bin/hsc2hs +%{_prefix}/bin/hpc +%{_prefix}/bin/hsc2hs-ghc +%{_prefix}/bin/hsc2hs-%{version} %{_prefix}/bin/runghc -%{_prefix}/bin/runhaskell %files prof -f rpm-prof-lib-files %defattr(-,root,root)