diff --git a/haddock.cabal b/haddock.cabal
index a9e14fab84fb7b5654f1d999643fbd964c41cad4..63ed5cd8eb6c90c893a54d9d210ac2d2cc77f6dd 100644
--- a/haddock.cabal
+++ b/haddock.cabal
@@ -78,7 +78,10 @@ flag test
 
 executable haddock
   default-language:     Haskell2010
-  build-tools: alex >= 2.3, happy >= 1.18
+  -- In a GHC tree - in particular, in a source tarball - we don't
+  -- require alex or happy
+  if !flag(in-ghc-tree)
+    build-tools: alex >= 2.3, happy >= 1.18
   build-depends:
     base >= 4.3 && < 4.6,
     filepath,
@@ -138,7 +141,10 @@ executable haddock
    
 library
   default-language:     Haskell2010
-  build-tools: alex >= 2.3, happy >= 1.18
+  -- In a GHC tree - in particular, in a source tarball - we don't
+  -- require alex or happy
+  if !flag(in-ghc-tree)
+    build-tools: alex >= 2.3, happy >= 1.18
   build-depends:
     base >= 4.3 && < 4.6,
     filepath,