done
else
for i in */*hi-boot*; do \
- $(LN_S) -f ../../$$i stage$(stage)/$$i || true ; \
+ ($(RM) -f stage$(stage)/$$i \
+ && $(LN_S) ../../$$i stage$(stage)/$$i) || true ; \
done
endif
endif
SRC_HC_OPTS += \
-cpp -fglasgow-exts -fno-generics -Rghc-timing \
- -I. -IcodeGen -InativeGen -Iparser
+ -I. -Iparser
# Omitted: -I$(GHC_INCLUDE_DIR)
# We should have -I$(GHC_INCLUDE_DIR) in SRC_HC_OPTS,
PKG_DEPENDS += Cabal
endif
+# We use Text.Regex which is in regex-compat with GHC 6.6+
+ifeq "$(bootstrapped)" "YES"
+SRC_HC_OPTS += -package regex-compat
+PKG_DEPENDS += regex-compat
+else
+ifeq "$(ghc_ge_605)" "YES"
+SRC_HC_OPTS += -package regex-compat
+endif
+endif
+
ifeq "$(ghc_ge_603)" "YES"
# Ignore lang, to avoid potential clash with the Generics module if
# lang happens to be a dependency of some exposed package in the local
chmod 755 $@
ghc-inplace : stage1/ghc-inplace
- $(LN_S) -f $< $@
+ $(RM) -f $@ && $(LN_S) $< $@
ifeq "$(stage)" "1"
CLEAN_FILES += ghc-inplace
include $(TOP)/mk/target.mk
# -----------------------------------------------------------------------------
+# Explicit dependencies
+
+# Some .hs files #include other source files, but since ghc -M doesn't spit out
+# these dependencies we have to include them manually.
+
+# We don't add dependencies on HsVersions.h, ghcautoconf.h, or ghc_boot_platform.h,
+# because then modifying one of these files would force recompilation of everything,
+# which is probably not what you want. However, it does mean you have to be
+# careful to recompile stuff you need if you reconfigure or change HsVersions.h.
+
+$(odir)/codeGen/Bitmap.hs : ../includes/MachDeps.h
+$(odir)/codeGen/CgCallConv.hs : ../includes/StgFun.h
+$(odir)/codeGen/CgProf.hs : ../includes/MachDeps.h
+$(odir)/codeGen/CgProf.hs : ../includes/Constants.h
+$(odir)/codeGen/CgProf.hs : ../includes/DerivedConstants.h
+$(odir)/codeGen/CgTicky.hs : ../includes/DerivedConstants.h
+$(odir)/codeGen/ClosureInfo.lhs : ../includes/MachDeps.h
+$(odir)/codeGen/SMRep.lhs : ../includes/MachDeps.h
+$(odir)/codeGen/SMRep.lhs : ../includes/ClosureTypes.h
+$(odir)/ghci/ByteCodeAsm.lhs : ../includes/Bytecodes.h
+$(odir)/ghci/ByteCodeFFI.lhs : nativeGen/NCG.h
+$(odir)/ghci/ByteCodeInstr.lhs : ../includes/MachDeps.h
+$(odir)/ghci/ByteCodeItbls.lhs : ../includes/ClosureTypes.h
+$(odir)/ghci/ByteCodeItbls.lhs : nativeGen/NCG.h
+$(odir)/main/Constants.lhs : ../includes/MachRegs.h
+$(odir)/main/Constants.lhs : ../includes/Constants.h
+$(odir)/main/Constants.lhs : ../includes/MachDeps.h
+$(odir)/main/Constants.lhs : ../includes/DerivedConstants.h
+$(odir)/main/Constants.lhs : ../includes/GHCConstants.h
+$(odir)/nativeGen/AsmCodeGen.lhs : nativeGen/NCG.h
+$(odir)/nativeGen/MachCodeGen.hs : nativeGen/NCG.h
+$(odir)/nativeGen/MachCodeGen.hs : ../includes/MachDeps.h
+$(odir)/nativeGen/MachInstrs.hs : nativeGen/NCG.h
+$(odir)/nativeGen/MachRegs.lhs : nativeGen/NCG.h
+$(odir)/nativeGen/MachRegs.lhs : ../includes/MachRegs.h
+$(odir)/nativeGen/PositionIndependentCode.hs : nativeGen/NCG.h
+$(odir)/nativeGen/PprMach.hs : nativeGen/NCG.h
+$(odir)/nativeGen/RegAllocInfo.hs : nativeGen/NCG.h
+$(odir)/typecheck/TcForeign.lhs : nativeGen/NCG.h
+$(odir)/utils/Binary.hs : ../includes/MachDeps.h
+$(odir)/utils/FastMutInt.lhs : ../includes/MachDeps.h
+
+# -----------------------------------------------------------------------------
# Dependencies
MKDEPENDHS_HC_OPTS = $(patsubst -i$(odir)/%, -i%, $(HC_OPTS))