$(MAKE) stage=3
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) -rf stage1 stage2plus
$(RM) -f $(STAGE3_PACKAGE_CONF)
+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
# binary-dist
#
-# XXX This is just broken, currently
-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)