stage3 ::
$(MAKE) stage=3
+ifeq "$(CLEAN_ALL_STAGES)" "YES"
clean distclean::
- -$(CABAL) clean --distpref dist-stage1
- -$(CABAL) clean --distpref dist-stage2
- -$(CABAL) clean --distpref dist-stage3
- $(RM) -f Makefile-stage1
- $(RM) -f Makefile-stage2
- $(RM) -f Makefile-stage3
$(RM) -f prelude/primops.txt
$(RM) -f $(PRIMOP_BITS)
$(RM) -f $(CONFIG_HS)
$(RM) -f parser/Parser.y
$(RM) -rf stage1 stage2plus
$(RM) -f $(STAGE3_PACKAGE_CONF)
+endif
+
+ifeq "$(CLEAN_ALL_STAGES)" "YES"
+clean distclean:: clean.stage.1 clean.stage.2 clean.stage.3
+else
+clean distclean:: clean.stage.$(stage)
+endif
+
+clean.stage.%:
+ -$(CABAL) clean --distpref dist-stage$*
+ $(RM) -f Makefile-stage$*
CONFIGURE_FLAGS_STAGE1 += --flags=stage1
CONFIGURE_FLAGS_STAGE2 += --flags=-stage1
CONFIGURE_FLAGS_STAGE1 += --flags=-ghci
+ifeq "$(GhcWithNativeCodeGen)" "YES"
+CONFIGURE_FLAGS_STAGE1 += --flags=ncg
+CONFIGURE_FLAGS_STAGE2 += --flags=ncg
+else
+CONFIGURE_FLAGS_STAGE1 += --flags=-ncg
+CONFIGURE_FLAGS_STAGE2 += --flags=-ncg
+endif
+
ifeq "$(GhcWithInterpreter)" "YES"
CONFIGURE_FLAGS_STAGE2 += --flags=ghci
+ifeq "$(BuildSharedLibs)" "YES"
+CONFIGURE_FLAGS_STAGE2 += --enable-shared
# If we are going to use dynamic libraries instead of .o files for ghci,
# we will need to always retain CAFs in the compiler.
# ghci/keepCAFsForGHCi contains a GNU C __attribute__((constructor))
# function which sets the keepCAFs flag for the RTS before any Haskell
# code is run.
-ifeq "$(GhcBuildDylibs)" "YES"
CONFIGURE_FLAGS_STAGE2 += --flags=dynlibs
else
CONFIGURE_FLAGS_STAGE2 += --flags=-dynlibs
build.stage.%:
$(MAKE) -f Makefile-stage$* stage=$*
$(CABAL) register --distpref dist-stage$* --inplace
+ $(MAKE) -C ../ghc stage=$*
doc.stage.%:
$(CABAL) haddock --distpref dist-stage$*
primop-usage.hs-incl: prelude/primops.txt
$(GENPRIMOP) --usage < $< > $@
-# XXX:
+install-docs:
+ @:
+
#-----------------------------------------------------------------------------
# binary-dist
#
-#binary-dist:
-# $(INSTALL_DIR) $(BIN_DIST_DIR)/compiler
-# $(INSTALL_DIR) $(BIN_DIST_DIR)/compiler/stage$(stage)
-# echo "stage=$(stage)" > $(BIN_DIST_DIR)/compiler/Makefile
-# cat Makefile >> $(BIN_DIST_DIR)/compiler/Makefile
-# $(INSTALL_DATA) package.conf.in $(BIN_DIST_DIR)/compiler/
-# set -e; for d in stage$(stage)/*/; do $(INSTALL_DIR) $(BIN_DIST_DIR)/compiler/$$d; done
-# set -e; for f in $(HS_IFACES); do $(INSTALL_DATA) $$f $(BIN_DIST_DIR)/compiler/$$f; done
-#ifneq "$(INSTALL_LIBS)" ""
-# set -e; for f in $(INSTALL_LIBS); do $(INSTALL_DATA) $$f $(BIN_DIST_DIR)/compiler/$$f; done
-#endif
-#ifneq "$(INSTALL_PROGS)" ""
-# set -e; for f in $(INSTALL_PROGS); do $(INSTALL_PROGRAM) $$f $(BIN_DIST_DIR)/compiler/$$f; done
-#endif
-#ifneq "$(INSTALL_LIBEXECS)" ""
-# set -e; for f in $(INSTALL_LIBEXECS); do $(INSTALL_PROGRAM) $$f $(BIN_DIST_DIR)/compiler/$$f; done
-#endif
+
+include $(TOP)/mk/bindist.mk
+LIB_DIST_DIR = dist-stage$(stage)