X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Makefile;h=d73c304e94fc4cb4324f518b1ac4d415c002af00;hb=5656eb8f9bc7ee43da889da4847856a0f70d9461;hp=7adec86ad1fdb9231a5e4825f2e061db47035841;hpb=6594f91c25da7d5becc90d73adfdabf922cc67da;p=ghc-hetmet.git diff --git a/Makefile b/Makefile index 7adec86..d73c304 100644 --- a/Makefile +++ b/Makefile @@ -72,23 +72,14 @@ else SUBDIRS_BUILD = includes utils driver docs compiler libraries/Cabal/doc endif -SUBDIRS = gmp libffi includes utils driver docs rts compiler ghc libraries libraries/Cabal/doc +SUBDIRS = gmp libffi includes utils docs rts compiler ghc driver libraries libraries/Cabal/doc -check-all: check-tools check-packages - -check-tools: - @: -ifeq "$(HADDOCK_DOCS)" "YES" -ifeq "$(HADDOCK)" "" - echo "Couldn't find haddock" >&2 - exit 1 -endif -endif +check-all: check-packages # Sanity check that all the boot libraries are in the tree, to catch # failure to run darcs-all. check-packages : - @ds=`grep "^[^# ][^ ]* *[^ ][^ ]*$$" packages | sed "s/ .*//"`;\ + @ds=`grep "^[^# ][^ ]* *[^ ][^ ]* *[^ ][^ ]*$$" packages | sed "s/ .*//"`;\ for d in $$ds; do \ if test ! -d $$d; then \ echo "Looks like you're missing $$d,"; \ @@ -134,7 +125,6 @@ stage1 : $(GCC_LIB_DEP) check-all $(MAKE) -C rts boot $(MAKE) -C rts $(MAKE) -C libraries all - $(MAKE) -C utils with-stage-1 # When making distributions (i.e., whether with binary-dist or using the # vanilla install target to create an installer package), we can have problems @@ -146,8 +136,10 @@ stage1 : $(GCC_LIB_DEP) check-all stage2 : check-all $(MAKE) -C compiler stage=2 boot $(MAKE) -C compiler stage=2 + $(MAKE) -C utils with-stage-2 ifeq "$(HADDOCK_DOCS)" "YES" - $(MAKE) -C compiler stage=2 doc + $(MAKE) -C libraries doc + $(MAKE) -C compiler doc stage=2 endif stage3 : check-all @@ -284,7 +276,7 @@ install-docs :: binary-dist:: -rm -rf $(BIN_DIST_DIR) - -$(RM) $(BIN_DIST_TARBALL) + -$(RM) $(BIN_DIST_TAR_BZ2) ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" @@ -299,6 +291,14 @@ binary-dist:: $(MKDIRHIER) $(BIN_DIST_DIR)/icons cp distrib/hsicon.ico $(BIN_DIST_DIR)/icons +# Tar up the distribution and build a manifest +binary-dist :: tar-binary-dist + +.PHONY: tar-binary-dist +tar-binary-dist: + ( cd $(BIN_DIST_TOPDIR_ABS); tar cf - $(BIN_DIST_NAME) | bzip2 > $(BIN_DIST_TAR_BZ2) ) + ( cd $(BIN_DIST_TOPDIR_ABS); bunzip2 -c $(BIN_DIST_TAR_BZ2) | tar tf - | sed "s/^ghc-$(ProjectVersion)/fptools/" | sort >$(FPTOOLS_TOP_ABS)/bin-manifest-$(ProjectVersion) ) + else .PHONY: binary-dist @@ -382,6 +382,7 @@ endif echo "XSLTPROC = $(XSLTPROC)" >> $(BIN_DIST_VARFILE) echo "TARGETPLATFORM = $(TARGETPLATFORM)" >> $(BIN_DIST_VARFILE) echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(BIN_DIST_VARFILE) + echo "LATEX_DOCS = $(LATEX_DOCS)" >> $(BIN_DIST_VARFILE) echo "INTEGER_LIBRARY = $(INTEGER_LIBRARY)" >> $(BIN_DIST_VARFILE) cat distrib/Makefile-bin-vars.in >> $(BIN_DIST_VARFILE) @@ -389,22 +390,15 @@ endif $(RM) -f $(BIN_DIST_NAME) ln -s . $(BIN_DIST_NAME) - tar cf $(BIN_DIST_TAR) -T $(BIN_DIST_LIST) +# h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source +# tree then we want to include the real file, not a symlink to it + tar hcf $(BIN_DIST_TAR) -T $(BIN_DIST_LIST) cd $(BIN_DIST_PREP_DIR) && tar rf $(BIN_DIST_TAR) $(BIN_DIST_NAME) bzip2 < $(BIN_DIST_TAR) > $(BIN_DIST_TAR_BZ2) tar tf $(BIN_DIST_TAR) | sort > bin-manifest-$(ProjectVersion) endif -# XXX Presumably we still need to do this for Windows? -## Tar up the distribution and build a manifest -#binary-dist :: tar-binary-dist -# -#.PHONY: tar-binary-dist -#tar-binary-dist: -# ( cd $(BIN_DIST_TOPDIR_ABS); tar cf - $(BIN_DIST_NAME) | bzip2 >$(BIN_DIST_TARBALL) ) -# ( cd $(BIN_DIST_TOPDIR_ABS); bunzip2 -c $(BIN_DIST_TARBALL) | tar tf - | sed "s/^ghc-$(ProjectVersion)/fptools/" | sort >$(FPTOOLS_TOP_ABS)/bin-manifest-$(ProjectVersion) ) - -PUBLISH_FILES = $(BIN_DIST_TARBALL) +PUBLISH_FILES = $(BIN_DIST_TAR_BZ2) # Upload the distribution and documentation ifneq "$(ISCC)" "" @@ -467,7 +461,7 @@ binary-dist:: ifeq "$(darwin_TARGET_OS)" "1" -.PHONY: framework-pkg, framework-binary-dist +.PHONY: framework-pkg framework-binary-dist framework-pkg: $(MAKE) -C distrib/MacOS framework-pkg @@ -570,7 +564,7 @@ hc-file-bundle : ghc-$(ProjectVersion)/libraries -follow \ \( -name "*.hc" -o -name "*_hsc.[ch]" -o -name "*_stub.[ch]" \) -print > hc-files-to-go for f in `$(FIND) ghc-$(ProjectVersion)/compiler ghc-$(ProjectVersion)/utils ghc-$(ProjectVersion)/libraries -name "*.hsc" -follow -print` ""; do \ - if test "x$$f" != "x" && test -e `echo "$$f" | sed 's/hsc$$/hs/g'`; then \ + if test "x$$f" != "x" && test -f `echo "$$f" | sed 's/hsc$$/hs/g'`; then \ echo `echo "$$f" | sed 's/hsc$$/hs/g' ` >> hc-files-to-go ; \ fi; \ done;