[project @ 2002-05-28 11:43:59 by simonmar]
[ghc-base.git] / Makefile
index 5e62d0c..917f0a2 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.23 2002/04/11 12:03:43 simonpj Exp $
+# $Id: Makefile,v 1.28 2002/05/27 14:30:49 simonmar Exp $
 
 TOP=..
 include $(TOP)/mk/boilerplate.mk
@@ -65,6 +65,7 @@ GHC/PrimopWrappers.hs: $(GHC_COMPILER_DIR)/prelude/primops.txt
 
 boot :: GHC/PrimopWrappers.hs
 
+EXTRA_SRCS  += GHC/PrimopWrappers.hs
 CLEAN_FILES += GHC/PrimopWrappers.hs
 
 #-----------------------------------------------------------------------------
@@ -87,6 +88,31 @@ endif # TARGETPLATFORM = i386-unknown-mingw32
 
 
 # -----------------------------------------------------------------------------
+# Doc building with Haddock
+
+EXCLUDED_HADDOCK_SRCS = \
+       Data/Generics.hs \
+       GHC/PArr.hs
+
+HS_PPS = $(addsuffix .raw-hs, $(basename $(filter-out $(EXCLUDED_HADDOCK_SRCS), $(HS_SRCS))))
+
+HADDOCK = $(FPTOOLS_TOP)/haddock/src/haddock-inplace
+
+# Urgh, hack needed to ensure that the value of HS_SRCS is computed in time for
+# the docs rule below.
+PRE_SRCS := $(ALL_SRCS)
+
+.PHONY: docs
+haddock-docs : $(HS_PPS)
+       $(HADDOCK) -t "Haskell Core Libraries" -h -s "." $(HS_PPS)
+
+%.raw-hs : %.lhs
+       $(GHC_INPLACE) $(HC_OPTS) -D__HADDOCK__ -E -cpp $< -o $<.tmp && sed -e 's/^#.*//' <$<.tmp >$@
+
+%.raw-hs : %.hs
+       $(GHC_INPLACE) $(HC_OPTS) -D__HADDOCK__ -E -cpp $< -o $<.tmp && sed -e 's/^#.*//' <$<.tmp >$@
+
+# -----------------------------------------------------------------------------
 
 include $(TOP)/mk/target.mk
 
@@ -97,4 +123,3 @@ HSbase.o : $(GHCI_LIBOBJS)
        @touch HSbase.o
 endif # TARGETPLATFORM = i386-unknown-mingw32
 
-