Fix building RTS with gcc 2.*; declare all variables at the top of a block
[ghc-hetmet.git] / Makefile
index 981fec0..445b008 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -82,7 +82,13 @@ check-packages :
            exit 1; \
        fi
 
-stage1 : check-packages
+ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
+ifneq "$(WhatGccIsCalled)" ""
+GCC_LIB_DEP = stamp.inplace-gcc-lib
+endif
+endif
+
+stage1 : $(GCC_LIB_DEP) check-packages
        $(MAKE) -C utils/mkdependC boot
        @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
        for i in $(SUBDIRS_BUILD); do \
@@ -157,7 +163,6 @@ endif
 
 # Same as default rule, but we pass $(INSTALL_STAGE) to $(MAKE) too
 install :: check-packages
-       $(INSTALL_DIR) $(bindir)
        @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
        for i in $(SUBDIRS); do \
          echo "------------------------------------------------------------------------"; \
@@ -199,6 +204,11 @@ install ::
 endif
 endif
 
+# Install gcc-extra-opts
+install ::
+       $(INSTALL_DIR) $(DESTDIR)$(libdir)
+       $(INSTALL_DATA) $(INSTALL_OPTS) extra-gcc-opts $(DESTDIR)$(libdir)
+
 install-docs ::
        @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \
        for i in $(SUBDIRS); do \
@@ -233,8 +243,6 @@ install-docs ::
 #      binary-dist is a GHC addition for binary distributions
 # 
 
-BIN_DIST_TARBALL=ghc-$(ProjectVersion)-$(TARGETPLATFORM).tar.bz2
-
 binary-dist::
        -rm -rf $(BIN_DIST_DIR)
        -$(RM) $(BIN_DIST_DIR).tar.gz
@@ -262,6 +270,7 @@ BIN_DIST_TOP= distrib/Makefile \
               ANNOUNCE \
               LICENSE \
               install-sh \
+             extra-gcc-opts.in \
               config.guess \
               config.sub   \
               aclocal.m4
@@ -277,7 +286,8 @@ binary-dist:: binary-dist-pre
 binary-dist-pre::
        $(MKDIRHIER) $(BIN_DIST_DIR)/mk
        echo 'include $$(TOP)/Makefile-vars' >  $(BIN_DIST_DIR)/mk/boilerplate.mk
-       echo 'include $$(TOP)/mk/install.mk' >  $(BIN_DIST_DIR)/mk/target.mk
+       echo 'include $$(TOP)/mk/package.mk' >  $(BIN_DIST_DIR)/mk/target.mk
+       echo 'include $$(TOP)/mk/install.mk' >> $(BIN_DIST_DIR)/mk/target.mk
        echo 'include $$(TOP)/mk/recurse.mk' >> $(BIN_DIST_DIR)/mk/target.mk
        echo ''                              >  $(BIN_DIST_DIR)/mk/compat.mk
        cp mk/package.mk $(BIN_DIST_DIR)/mk/
@@ -453,11 +463,11 @@ SRC_DIST_DIR=$(shell pwd)/$(SRC_DIST_NAME)
 #
 # Files to include in source distributions
 #
-SRC_DIST_DIRS += mk docs distrib $(filter-out docs distrib,$(SUBDIRS))
+SRC_DIST_DIRS += mk docs distrib bindisttest $(filter-out docs distrib,$(SUBDIRS))
 SRC_DIST_FILES += \
        configure.ac config.guess config.sub configure \
        aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \
-       ghc.spec.in VERSION
+       ghc.spec.in extra-gcc-opts.in VERSION boot
 
 # -----------------------------------------------------------------------------
 # Source distributions
@@ -557,6 +567,9 @@ MAINTAINER_CLEAN_FILES += VERSION
 extraclean::
        $(RM) -rf autom4te.cache
 
+clean distclean ::
+       $(MAKE) -C bindisttest $@
+
 # -----------------------------------------------------------------------------
 
 # Turn off target.mk's rules for 'all', 'boot' and 'install'.