Get building GHC itself with Cabal more-or-less working
[ghc-hetmet.git] / mk / config.mk.in
index e19a1cd..f3a2324 100644 (file)
@@ -277,9 +277,6 @@ GhcWithNativeCodeGen=$(strip\
     $(if $(filter YESYESNO,\
                  $(OsSupportsNCG)$(ArchSupportsNCG)$(GhcUnregisterised)),YES,NO))
 
-# Include support for generating Java
-GhcWithJavaGen=NO
-
 HaveLibDL = @HaveLibDL@
 
 # ArchSupportsSMP should be set iff there is support for that arch in
@@ -349,8 +346,6 @@ BuildingGranSim=$(subst mg,YES,$(filter mg,$(WAYS)))
 
 HscIfaceFileVersion=6
 
-MakefileDeps=YES
-
 #------------------------------------------------------------------------------
 # Options for Libraries
 
@@ -442,10 +437,6 @@ SplitObjs=$(strip $(if $(filter $(TargetArch_CPP),i386 x86_64 powerpc sparc),\
 # Math library
 LIBM=@LIBM@
 
-# Build the ObjectIO ?
-#
-GhcLibsWithObjectIO=@GhcLibsWithObjectIO@
-
 # .NET interop support?
 #
 DotnetSupport=@DotnetSupport@
@@ -700,7 +691,7 @@ SRC_LINT_OPTS               += -axz -DLINT $(SRC_CPP_OPTS)
 WAY$(_way)_LINT_OPTS   += WAY$(_way)_CPP_OPTS
 
 # Default fptools options for dllwrap.
-SRC_BLD_DLL_OPTS += -mno-cygwin --target=i386-mingw32
+SRC_BLD_DLL_OPTS += --target=i386-mingw32
 
 # Flags for CPP when running GreenCard on .pgc files
 GC_CPP_OPTS += -P -E -x c -traditional -D__GLASGOW_HASKELL__
@@ -720,7 +711,7 @@ GC_CPP_OPTS += -P -E -x c -traditional -D__GLASGOW_HASKELL__
 
 GHC_UTILS_DIR_REL      = utils
 GHC_INCLUDE_DIR_REL    = includes
-GHC_COMPILER_DIR_REL   = compiler
+GHC_COMPILER_DIR_REL = ghc
 GHC_RTS_DIR_REL                = rts
 GHC_UTILS_DIR_REL      = utils
 GHC_DRIVER_DIR_REL     = driver
@@ -764,7 +755,7 @@ GHC_UNLIT_DIR       = $(FPTOOLS_TOP)/$(GHC_UNLIT_DIR_REL)
 GHC_HP2PS_DIR          = $(FPTOOLS_TOP)/$(GHC_HP2PS_DIR_REL)
 GHC_HSTAGS_DIR         = $(FPTOOLS_TOP)/$(GHC_HSTAGS_DIR_REL)
 GHC_GHCTAGS_DIR                = $(FPTOOLS_TOP)/$(GHC_GHCTAGS_DIR_REL)
-GHC_HSC2HS_DIR         = $(FPTOOLS_TOP)/$(GHC_HSC2HS_DIR_REL)
+GHC_HSC2HS_DIR         = $(FPTOOLS_TOP_ABS)/$(GHC_HSC2HS_DIR_REL)
 GHC_TOUCHY_DIR         = $(FPTOOLS_TOP)/$(GHC_TOUCHY_DIR_REL)
 GHC_PKG_DIR            = $(FPTOOLS_TOP)/$(GHC_PKG_DIR_REL)
 GHC_GENPRIMOP_DIR      = $(FPTOOLS_TOP)/$(GHC_GENPRIMOP_DIR_REL)
@@ -797,6 +788,7 @@ GHC_TOUCHY_DIR_ABS  = $(FPTOOLS_TOP_ABS)/$(GHC_TOUCHY_DIR_REL)
 GHC_PKG_DIR_ABS                = $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)
 GHC_GENPRIMOP_DIR_ABS  = $(FPTOOLS_TOP_ABS)/$(GHC_GENPRIMOP_DIR_REL)
 GHC_GENAPPLY_DIR_ABS   = $(FPTOOLS_TOP_ABS)/$(GHC_GENAPPLY_DIR_REL)
+GHC_COMPILER_DIR_ABS   = $(FPTOOLS_TOP_ABS)/$(GHC_COMPILER_DIR_REL)
 
 GHC_MANGLER_DIR_ABS    = $(FPTOOLS_TOP_ABS)/$(GHC_MANGLER_DIR_REL)
 GHC_SYSMAN_DIR_ABS     = $(FPTOOLS_TOP_ABS)/$(GHC_SYSMAN_DIR_REL)
@@ -812,7 +804,7 @@ GHC_UNLIT_PGM               = unlit$(exeext)
 GHC_HP2PS_PGM          = hp2ps
 GHC_HSTAGS_PGM         = hasktags
 GHC_GHCTAGS_INPLACE_PGM        = ghctags-inplace
-GHC_HSC2HS_INPLACE_PGM = hsc2hs-inplace
+GHC_HSC2HS_INPLACE_PGM = hsc2hs
 GHC_TOUCHY_PGM         = touchy$(exeext)
 GHC_MANGLER_PGM                = ghc-asm
 GHC_SPLIT_PGM          = ghc-split
@@ -838,7 +830,7 @@ UNLIT                       = $(GHC_UNLIT_DIR)/$(GHC_UNLIT_PGM)
 HP2PS                  = $(GHC_HP2PS_DIR)/$(GHC_HP2PS_PGM)
 HSTAGS                 = $(GHC_HSTAGS_DIR)/$(GHC_HSTAGS_PGM)
 GHCTAGS_INPLACE                = $(GHC_GHCTAGS_DIR)/$(GHC_GHCTAGS_INPLACE_PGM)
-HSC2HS_INPLACE         = $(GHC_HSC2HS_DIR)/$(GHC_HSC2HS_INPLACE_PGM)
+HSC2HS_INPLACE         = $(GHC_HSC2HS_DIR)/install-inplace/bin/$(GHC_HSC2HS_INPLACE_PGM)
 MANGLER                        = $(GHC_MANGLER_DIR)/$(GHC_MANGLER_PGM)
 SPLIT                  = $(GHC_SPLIT_DIR)/$(GHC_SPLIT_PGM)
 SYSMAN                         = $(GHC_SYSMAN_DIR)/$(GHC_SYSMAN_PGM)
@@ -879,10 +871,14 @@ NHC               = @NHC@
 # places (eg. it's handy to have a nofib & a ghc build in the same
 # tree).  We can refer to "this ghc" as $(GHC_INPLACE):
 
-GHC_INPLACE    = $(GHC_COMPILER_DIR)/ghc-inplace
-GHC_STAGE1     = $(GHC_COMPILER_DIR)/stage1/ghc-inplace -no-user-package-conf
-GHC_STAGE2     = $(GHC_COMPILER_DIR)/stage2/ghc-inplace -no-user-package-conf
-GHC_STAGE3     = $(GHC_COMPILER_DIR)/stage3/ghc-inplace -no-user-package-conf
+GHC_INPLACE = $(GHC_STAGE1)
+GHC_STAGE1  = $(GHC_COMPILER_DIR_ABS)/stage1-inplace/bin/ghc
+GHC_STAGE2  = $(GHC_COMPILER_DIR_ABS)/stage2-inplace/bin/ghc
+GHC_STAGE3  = $(GHC_COMPILER_DIR_ABS)/stage3-inplace/bin/ghc
+# XXX All those used to have -no-user-package-conf, but then we can't
+# pass them to Cabal
+
+BOOTSTRAPPING_CONF = $(FPTOOLS_TOP_ABS)/libraries/bootstrapping.conf
 
 # NOTE: add -no-user-package-conf for stage 1-3 above, so that
 # we avoid picking up any packages the user might happen to have
@@ -912,6 +908,8 @@ else # not UseStage1 or BootingFromHc
 
 HC             = @WithHc@
 MKDEPENDHS     = $(GHC)
+BOOTSTRAPPING_PACKAGE_CONF_HC_OPTS = -package-conf $(BOOTSTRAPPING_CONF)
+BOOTSTRAPPING_PACKAGE_CONF_MKDEPENDHS_OPTS = -package-conf $(BOOTSTRAPPING_CONF)
 GhcVersion     = @GhcVersion@
 GhcPatchLevel  = @GhcPatchLevel@
 GhcMajVersion  = @GhcMajVersion@
@@ -959,6 +957,16 @@ ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux"
 SRC_CC_OPTS += -G0
 endif
 
+SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS)))
+
+# Given
+#   foo bar
+# make
+#   :\"-Ifoo\":\"-Ibar\"
+nothing=
+space=$(nothing) $(nothing)
+SRC_HSC2HS_OPTS += $(subst $(space),,$(foreach d,$(GMP_INCLUDE_DIRS),:\"-I$(d)\"))
+
 #-----------------------------------------------------------------------------
 # GMP Library (version 2.0.x or above)
 #