Fix a bug to do with recursive modules in one-shot mode
[ghc-hetmet.git] / ghc.spec.in
index 6133f36..5d3fa1f 100644 (file)
@@ -84,17 +84,31 @@ needed.
 %build
 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
-make -C libraries doc
+# 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
+# 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
-make datadir=`pwd` mandir=${RPM_BUILD_ROOT}%{_mandir} install-docs
 
 # generate the file list for lib/ _excluding_ all files needed for profiling
 # only
@@ -150,9 +164,8 @@ fi
 %doc docs/storage-mgt/rp.ps
 %doc docs/storage-mgt/sm.ps
 %doc docs/users_guide/users_guide
-%doc docs/index.html
 %doc libraries/Cabal/doc/Cabal
-%{_datadir}/ghc
+%doc html-docs/*
 %{_mandir}/man1/ghc.1*
 %{_prefix}/bin/ghc
 %{_prefix}/bin/ghc-%{version}