X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=736aa53383158fad9ec5e5638583158f4a40f4ed;hp=ad944f25dbba735271acbc514ffcb2489184ead0;hb=b88025eabcd83f65d1d81f09272f5172f06a60e7;hpb=1f574dc41f5d11aec48a6ee24c0a28ee60267f95 diff --git a/Makefile b/Makefile index ad944f2..736aa53 100644 --- a/Makefile +++ b/Makefile @@ -59,14 +59,25 @@ include $(TOP)/mk/boilerplate.mk # We can't 'make boot' in libraries until stage1 is built ifeq "$(BootingFromHc)" "YES" -SUBDIRS_NOLIB = includes rts docs compiler compat utils driver +SUBDIRS_NOLIB = includes rts compat compiler docs utils driver else SUBDIRS_NOLIB = includes compat utils driver docs compiler rts endif SUBDIRS = $(SUBDIRS_NOLIB) libraries -stage1 : +# Sanity check that all the core libraries are in the tree, to catch +# failure to run darcs-all. +check-packages : + @for d in `cat libraries/core-packages`; do \ + if test ! -d libraries/$$d; then \ + echo "Looks like you're missing libraries/$$d,"; \ + echo "maybe you haven't done 'sh darcs-all get'?"; \ + exit 1; \ + fi \ + done + +stage1 : 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_NOLIB); do \ @@ -88,11 +99,11 @@ stage1 : @$(MAKE) -C libraries boot @$(MAKE) -C libraries all -stage2 : +stage2 : check-packages $(MAKE) -C compiler boot stage=2 $(MAKE) -C compiler stage=2 -stage3 : +stage3 : check-packages $(MAKE) -C compiler boot stage=3 $(MAKE) -C compiler stage=3 @@ -118,7 +129,7 @@ INSTALL_STAGE = endif # Same as default rule, but we pass $(INSTALL_STAGE) to $(MAKE) too -install :: +install :: check-packages @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 "------------------------------------------------------------------------"; \ @@ -147,6 +158,8 @@ install :: -mkdir $(prefix)/include/mingw -cp -rp $(GccDir)../include/* $(prefix)/include/mingw -cp -rp $(GccDir)../lib/gcc-lib/mingw32/$(GccVersion)/* $(prefix)/gcc-lib + -cp -rp $(GccDir)../lib/gcc/mingw32/$(GccVersion)/* $(prefix)/gcc-lib + -cp -rp $(GccDir)../libexec/gcc/mingw32/$(GccVersion)/* $(prefix)/gcc-lib -cp $(GccDir)../lib/*.* $(prefix)/gcc-lib -cp $(GccDir)gcc.exe $(prefix) -cp $(GccDir)as.exe $(prefix)/gcc-lib @@ -269,7 +282,7 @@ binary-dist:: done; @echo "Configuring the Makefile for this project..." touch $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "package = $(ProjectNameShort)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in + echo "package = ghc" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in echo "version = $(ProjectVersion)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in echo "PACKAGE_SH_SCRIPTS = $(BinDistShScripts)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in echo "PACKAGE_PRL_SCRIPTS = $(BinDistPrlScripts)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in @@ -445,29 +458,29 @@ dist-package-zip :: # HC file bundles hc-file-bundle : - $(RM) -r $(ProjectNameShort)-$(ProjectVersion) - $(LN_S) . $(ProjectNameShort)-$(ProjectVersion) - $(FIND) $(ProjectNameShort)-$(ProjectVersion)/compiler \ - $(ProjectNameShort)-$(ProjectVersion)/utils \ - $(ProjectNameShort)-$(ProjectVersion)/compat \ - $(ProjectNameShort)-$(ProjectVersion)/libraries -follow \ + $(RM) -r ghc-$(ProjectVersion) + $(LN_S) . ghc-$(ProjectVersion) + $(FIND) ghc-$(ProjectVersion)/compiler \ + ghc-$(ProjectVersion)/utils \ + ghc-$(ProjectVersion)/compat \ + ghc-$(ProjectVersion)/libraries -follow \ \( -name "*.hc" -o -name "*_hsc.[ch]" -o -name "*_stub.[ch]" \) -print > hc-files-to-go - for f in `$(FIND) $(ProjectNameShort)-$(ProjectVersion)/compiler $(ProjectNameShort)-$(ProjectVersion)/utils $(ProjectNameShort)-$(ProjectVersion)/libraries -name "*.hsc" -follow -print` ""; do \ + 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 \ echo `echo "$$f" | sed 's/hsc$$/hs/g' ` >> hc-files-to-go ; \ fi; \ done; - for f in `$(FIND) $(ProjectNameShort)-$(ProjectVersion)/compiler $(ProjectNameShort)-$(ProjectVersion)/rts -name "*.cmm" -follow -print` ""; do \ + for f in `$(FIND) ghc-$(ProjectVersion)/compiler ghc-$(ProjectVersion)/rts -name "*.cmm" -follow -print` ""; do \ if test "x$$f" != "x"; then \ echo `echo "$$f" | sed 's/cmm$$/hc/g' ` >> hc-files-to-go ; \ fi; \ done; - echo $(ProjectNameShort)-$(ProjectVersion)/libraries/base/GHC/PrimopWrappers.hs >> hc-files-to-go - echo $(ProjectNameShort)-$(ProjectVersion)/compiler/parser/Parser.hs >> hc-files-to-go - echo $(ProjectNameShort)-$(ProjectVersion)/compiler/parser/ParserCore.hs >> hc-files-to-go - echo $(ProjectNameShort)-$(ProjectVersion)/compiler/main/ParsePkgConf.hs >> hc-files-to-go - echo $(ProjectNameShort)-$(ProjectVersion)/libraries/haskell-src/Language/Haskell/Parser.hs >> hc-files-to-go - tar czf $(ProjectNameShort)-$(ProjectVersion)-$(TARGETPLATFORM)-hc.tar.gz `cat hc-files-to-go` + echo ghc-$(ProjectVersion)/libraries/base/GHC/PrimopWrappers.hs >> hc-files-to-go + echo ghc-$(ProjectVersion)/compiler/parser/Parser.hs >> hc-files-to-go + echo ghc-$(ProjectVersion)/compiler/parser/ParserCore.hs >> hc-files-to-go + echo ghc-$(ProjectVersion)/compiler/main/ParsePkgConf.hs >> hc-files-to-go + echo ghc-$(ProjectVersion)/libraries/haskell-src/Language/Haskell/Parser.hs >> hc-files-to-go + tar czf ghc-$(ProjectVersion)-$(TARGETPLATFORM)-hc.tar.gz `cat hc-files-to-go` # ----------------------------------------------------------------------------- # Cleaning