View patterns, record wildcards, and record puns
[ghc-hetmet.git] / Makefile
index 486b5e0..492cc77 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -66,10 +66,10 @@ endif
 
 SUBDIRS = gmp includes compat utils driver docs rts libraries compiler
 
-# Sanity check that all the core libraries are in the tree, to catch
+# Sanity check that all the boot libraries are in the tree, to catch
 # failure to run darcs-all.
 check-packages :
-       @for d in `cat libraries/core-packages`; do \
+       @for d in `cat libraries/boot-packages`; do \
          if test ! -d libraries/$$d; then \
             echo "Looks like you're missing libraries/$$d,"; \
             echo "maybe you haven't done './darcs-all get'?"; \
@@ -139,7 +139,7 @@ all :: stamp.inplace-gcc-lib
 stamp.inplace-gcc-lib:
        $(RM) -r compiler/gcc-lib
        mkdir compiler/gcc-lib
-       cp $(GccDir)ld.exe compiler/gcc-lib
+       cp $(LD) compiler/gcc-lib
        touch $@
 
 clean ::
@@ -250,7 +250,7 @@ binary-dist::
 ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
 
 binary-dist::
-       $(MAKE) DESTDIR=$(BIN_DIST_DIR) prefix=/. install
+       $(MAKE) prefix=$(BIN_DIST_DIR) install
 
 binary-dist::
        cd $(BIN_DIST_DIR) && ../distrib/prep-bin-dist-mingw
@@ -430,8 +430,19 @@ publish-binary-dist ::
 # You need to first make binddisttest, and then run
 #     make publish 'prefix=$(BIN_DIST_INST_DIR)'
 # for this to find the right place.
+
+# We assume that Windows means Cygwin, as we can't just use docdir
+# unchanged or rsync (really SSH?) thinks that c:/foo means /foo on
+# the machine c.
+
+ifeq "$(Windows)" "YES"
+PUBLISH_DOCDIR = $(shell cygpath --unix $(docdir))
+else
+PUBLISH_DOCDIR = $(docdir)
+endif
+
 publish-binary-dist ::
-       $(PublishCp) -r $(docdir)/* $(PublishLocation)/docs
+       $(PublishCp) -r $(PUBLISH_DOCDIR)/* $(PublishLocation)/docs
 
 binary-dist::
        @echo "Mechanical and super-natty! Inspect the result and *if* happy; freeze, sell and get some sleep!"
@@ -495,6 +506,7 @@ dist ::
          && for i in $(SRC_DIST_DIRS); do mkdir $$i; (cd $$i && lndir $(FPTOOLS_TOP_ABS)/$$i ); done \
          && for i in $(SRC_DIST_FILES); do $(LN_S) $(FPTOOLS_TOP_ABS)/$$i .; done \
          && $(MAKE) distclean \
+         && if test -f $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; fi \
          && $(RM) -rf compiler/stage[123] mk/build.mk \
          && $(FIND) $(SRC_DIST_DIRS) \( -name _darcs -o -name SRC -o -name "autom4te*" -o -name "*~" -o -name ".cvsignore" -o -name "\#*" -o -name ".\#*" -o -name "log" -o -name "*-SAVE" -o -name "*.orig" -o -name "*.rej" \) -print | xargs $(RM) -rf \
        )
@@ -551,7 +563,7 @@ hc-file-bundle :
 CLEAN_FILES += hc-files-to-go *-hc.tar.gz
 
 DIST_CLEAN_FILES += config.cache config.status mk/config.h mk/stamp-h \
-       ghc.spec docs/users_guide/ug-book.xml
+       ghc.spec docs/users_guide/ug-book.xml extra-gcc-opts
 
 # don't clean config.mk: it's needed when cleaning stuff later on
 LATE_DIST_CLEAN_FILES += mk/config.mk 
@@ -564,6 +576,7 @@ extraclean::
 
 clean distclean ::
        $(MAKE) -C bindisttest $@
+       if test -d testsuite; then $(MAKE) -C testsuite $@; fi
 
 # -----------------------------------------------------------------------------