diff --git a/Makefile b/Makefile
index a6bb76f2c4b8b58c8825ac1cd53544df547b12de..f88ff4e599e4a059d8806e14816f0ca5cfe64672 100644
--- a/Makefile
+++ b/Makefile
@@ -183,3 +183,11 @@ release: dist
 	scp -r $(TMPDISTLOC)/release www.haskell.org:/home/haskell/cabal/release/cabal-$(CABALVERSION)
 	ssh www.haskell.org 'cd /home/haskell/cabal/release && rm -f $(KIND) && ln -s cabal-$(CABALVERSION) $(KIND)'
 
+# dirs that contain source files that should be tagged.  Be careful to
+# about using "."
+TAGSSRCDIRS = Distribution Language
+
+# create ctags/etags files.
+tags::
+	find $(TAGSSRCDIRS) -name \*.\*hs | xargs hasktags
+