+#-----------------------------------------------------------------------------
+# etags generation
+ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
+GHCTAGS = $(TOP)/utils/ghctags/ghctags.exe
+else
+GHCTAGS = $(TOP)/utils/ghctags/ghctags-inplace
+endif
+GHCTAGS_ROOT = main/GHC.hs ghci/InteractiveUI.hs
+
+# etags for stage2 is actually broken since it requires building
+# ghctags against an older ghc api
+etags: etags.stage.2
+etags.stage.%:
+ $(GHCTAGS) --topdir $(FPTOOLS_TOP_ABS) --etags --use-cabal-config=./dist-stage$* -- -DSTAGE=$* -- $(GHCTAGS_ROOT)