Fix building the hpc package with older compilers
authorIan Lynagh <igloo@earth.li>
Mon, 7 Jul 2008 22:15:03 +0000 (22:15 +0000)
committerIan Lynagh <igloo@earth.li>
Mon, 7 Jul 2008 22:15:03 +0000 (22:15 +0000)
Trace/Hpc/Reflect.hsc
hpc.cabal

index 4dd64cf..2e42a1e 100644 (file)
@@ -5,13 +5,30 @@ module Trace.Hpc.Reflect
   , updateTix 
   ) where
 
+import Trace.Hpc.Tix
+
+#if __GLASGOW_HASKELL__ < 608
+
+-- Older GHCs don't have the info in the header files for the real
+-- contents of this module to compile
+
+clearTix :: IO ()
+clearTix = error "clearTix not defined for GHC < 6.8"
+
+examineTix :: IO Tix
+examineTix = error "examineTix not defined for GHC < 6.8"
+
+updateTix :: Tix -> IO ()
+updateTix = error "updateTix not defined for GHC < 6.8"
+
+#else
+
 import Foreign.C.String
 import Foreign.Marshal.Array
 import Foreign.Ptr
 import Foreign.Storable ( Storable(..) )
 import Data.Word 
 import Data.Int
-import Trace.Hpc.Tix
 import Trace.Hpc.Util
 import System.IO.Unsafe
 
@@ -73,3 +90,6 @@ updateTix (Tix modTixes)
                  else True
                ]
       return ()
+
+#endif
+
index 2800747..cc440d8 100644 (file)
--- a/hpc.cabal
+++ b/hpc.cabal
@@ -7,11 +7,24 @@ maintainer:   libraries@haskell.org
 category:     Control
 synopsis:     Code Coverage Library for Haskell
 build-type:   Simple
-ghc-options: -Wall
-exposed-modules:
-                Trace.Hpc.Util,
-                Trace.Hpc.Mix,
-                Trace.Hpc.Tix,
-                Trace.Hpc.Reflect
-build-depends: base, directory, old-time, containers
-extensions: CPP
+Cabal-Version: >= 1.2
+
+Flag small_base
+  Description: Choose the new smaller, split-up base package.
+
+Library
+    exposed-modules:
+        Trace.Hpc.Util
+        Trace.Hpc.Mix
+        Trace.Hpc.Tix
+        Trace.Hpc.Reflect
+    extensions: CPP
+    if flag(small_base)
+        Build-Depends: base       >= 3   && < 4,
+                       directory  >= 1   && < 1.1,
+                       old-time   >= 1   && < 1.1,
+                       containers >= 0.1 && < 0.2
+    else
+        Build-Depends: base < 3
+    ghc-options: -Wall
+