make GhcProfiled work, and add a "prof" flavour to build.mk
authorSimon Marlow <marlowsd@gmail.com>
Wed, 1 Jul 2009 11:42:11 +0000 (11:42 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 1 Jul 2009 11:42:11 +0000 (11:42 +0000)
Building a profiled GHC is as simple as adding

GhcLibWays += p
GhcProfiled = YES

to your build.mk and saying 'make'.  Then you have a profiled
inplace/bin/ghc-stage2.

ghc/ghc.mk
mk/build.mk.sample

index 1bda27b..a17a47e 100644 (file)
@@ -33,8 +33,9 @@ ghc_stage2_HC_OPTS += -threaded
 ghc_stage3_HC_OPTS += -threaded
 endif
 
-# XXX ToDp
-# ifeq "$(GhcProfiled)" "YES"
+ifeq "$(GhcProfiled)" "YES"
+ghc_stage2_HC_OPTS += -prof
+endif
 
 ghc_stage1_MODULES = Main
 
index c49fd03..5b61d16 100644 (file)
@@ -16,6 +16,9 @@
 # Fast build with optimised libraries:
 #BuildFlavour = quick
 
+# Profile the stage2 compiler:
+#BuildFlavour = prof
+
 # A development build, working on the stage 1 compiler:
 #BuildFlavour = devel1
 
@@ -71,6 +74,27 @@ BUILD_DOCBOOK_PDF  = NO
 
 endif
 
+# -------- Profile the stage2 compiler ---------------------------------------
+
+ifeq "$(BuildFlavour)" "prof"
+
+SRC_HC_OPTS        = -H64m -O0 -fasm
+GhcStage1HcOpts    = -O -fasm
+GhcStage2HcOpts    = -O -fasm
+GhcLibHcOpts       = -O -fasm
+
+GhcLibWays         += p
+GhcProfiled        = YES
+
+SplitObjs          = NO
+HADDOCK_DOCS       = NO
+BUILD_DOCBOOK_HTML = NO
+BUILD_DOCBOOK_PS   = NO
+BUILD_DOCBOOK_PDF  = NO
+
+endif
+
+
 # -------- A Development build (stage 1) -------------------------------------
 
 ifeq "$(BuildFlavour)" "devel1"