X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=b03289b105f31496abc12ae01055f549399d6acd;hp=c1ff5a7f23788d3f98120496758db546212aee7a;hb=5ddee764beb312933256096d03df7c3ec47ac452;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/Makefile b/Makefile index c1ff5a7..b03289b 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ # # Targets: # -# bootsrap (DEFAULT) +# bootstrap (DEFAULT) # Builds GHC, then builds the libraries, # then uses this GHC ("stage 1") to build itself # ("stage 2"). @@ -59,14 +59,30 @@ 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 : +VERSION : + echo $(ProjectVersion) >VERSION + +all :: VERSION + +# 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 +104,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 +134,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 "------------------------------------------------------------------------"; \ @@ -133,7 +149,7 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" # These files need to be in the InstallShield # INSTALL_DATAS rather than INSTALL_DOCS is used so these files go # in the top-level directory of the distribution -INSTALL_DATAS += ANNOUNCE LICENSE README VERSION +INSTALL_DATAS += ANNOUNCE LICENSE README endif # If installing on Windows with MinGW32, copy the gcc compiler, headers and libs @@ -147,6 +163,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 @@ -172,9 +190,6 @@ install-docs :: # ----------------------------------------------------------------------------- # Making a binary distribution # -# To make a particular binary distribution: -# set $(Project) to the name of the project, capitalised (eg. Ghc or Happy). - # `dist' `binary-dist' # Create a distribution tar file for this program. The tar file # should be set up so that the file names in the tar file start with @@ -192,41 +207,35 @@ install-docs :: # that are in the distribution, to make sure they are up to date in # the distribution. See Making Releases. # -# binary-dist is an FPtools addition for binary distributions +# binary-dist is a GHC addition for binary distributions # ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" -GhcBinDistShScripts = ghc-$(ProjectVersion) ghci-$(ProjectVersion) ghc-pkg-$(ProjectVersion) hsc2hs +BinDistShScripts = ghc-$(ProjectVersion) ghci-$(ProjectVersion) ghc-pkg-$(ProjectVersion) hsc2hs else -GhcBinDistShScripts = +BinDistShScripts = endif -GhcBinDistPrlScripts = ghcprof -GhcBinDistLibPrlScripts = ghc-asm ghc-split -GhcBinDistBins = hp2ps runghc -GhcBinDistOptBins = runhaskell -GhcBinDistLinks = ghc ghci ghc-pkg -GhcBinDistLibSplicedFiles = package.conf +BinDistPrlScripts = ghcprof +BinDistLibPrlScripts = ghc-asm ghc-split +BinDistBins = hp2ps runghc +BinDistOptBins = runhaskell +BinDistLinks = ghc ghci ghc-pkg +BinDistLibSplicedFiles = package.conf +BinDistDirs = includes compiler docs driver libraries rts utils +BIN_DIST_NAME=ghc-$(ProjectVersion) BIN_DIST_TMPDIR=$(FPTOOLS_TOP_ABS) -BIN_DIST_NAME=$(ProjectNameShort)-$(ProjectVersion) - -# -# list of toplevel directories to include in binary distrib. -# -BIN_DIST_MAIN_DIR=$($(Project)MainDir) -BIN_DIST_DIRS=$($(Project)BinDistDirs) -binary-dist:: binary-dist-pre +BIN_DIST_TARBALL=ghc-$(ProjectVersion)-$(TARGETPLATFORM).tar.bz2 BIN_DIST_TOP= distrib/Makefile-bin.in \ distrib/configure-bin.ac \ distrib/INSTALL \ - $(BIN_DIST_MAIN_DIR)/ANNOUNCE \ - $(BIN_DIST_MAIN_DIR)/VERSION \ - $(BIN_DIST_MAIN_DIR)/LICENSE \ - $(BIN_DIST_MAIN_DIR)/README \ - glafp-utils/mkdirhier/mkdirhier \ + distrib/README \ + ANNOUNCE \ + LICENSE \ + utils/mkdirhier/mkdirhier \ install-sh \ config.guess \ config.sub \ @@ -236,24 +245,17 @@ ifeq "$(darwin_TARGET_OS)" "1" BIN_DIST_TOP+=mk/fix_install_names.sh endif -# -# binary-dist creates a binary bundle, set BIN_DIST_NAME -# to package name and do `make binary-dist Project=' -# (normally this just a thing you would do from the toplevel of fptools) -# .PHONY: binary-dist-pre binary-dist binary-pack -BIN_DIST_NAME=$(ProjectNameShort)-$(ProjectVersion) -BIN_DIST_TMPDIR=$(FPTOOLS_TOP_ABS) +binary-dist:: binary-dist-pre binary-dist-pre:: ifeq "$(BIN_DIST)" "" - @echo "WARNING: To run the binary-dist target, you need to set BIN_DIST=1 in your build.mk" && exit 1 + @echo "WARNING: To run the binary-dist target, you need to set BIN_DIST=1 in mk/build.mk" && exit 1 endif -rm -rf $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) -$(RM) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME).tar.gz - -echo "BIN_DIST_DIRS = $(BIN_DIST_DIRS)" - @for i in $(BIN_DIST_DIRS); do \ + @for i in $(BinDistDirs); do \ if test -d "$$i"; then \ echo $(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM); \ $(MKDIRHIER) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM); \ @@ -287,27 +289,19 @@ 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 = $($(Project)BinDistShScripts)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "PACKAGE_PRL_SCRIPTS = $($(Project)BinDistPrlScripts)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "PACKAGE_LIB_PRL_SCRIPTS = $($(Project)BinDistLibPrlScripts)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "PACKAGE_LIB_SPLICED_FILES = $($(Project)BinDistLibSplicedFiles)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "PACKAGE_BINS = $($(Project)BinDistBins)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "PACKAGE_OPT_BINS = $($(Project)BinDistOptBins)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in - echo "PACKAGE_LINKS = $($(Project)BinDistLinks)" >> $(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 + echo "PACKAGE_LIB_PRL_SCRIPTS = $(BinDistLibPrlScripts)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in + echo "PACKAGE_LIB_SPLICED_FILES = $(BinDistLibSplicedFiles)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in + echo "PACKAGE_BINS = $(BinDistBins)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in + echo "PACKAGE_OPT_BINS = $(BinDistOptBins)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in + echo "PACKAGE_LINKS = $(BinDistLinks)" >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in cat $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile-bin.in >> $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/Makefile.in @echo "Generating a shippable configure script.." $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/configure-bin.ac $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/configure.ac ( cd $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME); autoconf ) - if test -x $(BIN_DIST_MAIN_DIR)/mk/post-install-script ; then \ - cp $(BIN_DIST_MAIN_DIR)/mk/post-install-script \ - $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) ; \ - fi - if test -x $(BIN_DIST_MAIN_DIR)/mk/post-inplace-script ; then \ - cp $(BIN_DIST_MAIN_DIR)/mk/post-inplace-script \ - $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME) ; \ - fi # # binary dist'ing the documentation. # The default documentation to build/install is given below; overrideable @@ -335,7 +329,7 @@ endif # BINDIST_DOC_WAYS binary-dist :: ifneq "$(DIR_DOCBOOK_XSL)" "" - @for i in $(BIN_DIST_DIRS); do \ + @for i in $(BinDistDirs); do \ if test -d "$$i"; then \ $(MAKE) -C $$i $(MFLAGS) $(BINDIST_DOC_WAYS); \ echo $(MAKE) -C $$i $(MFLAGS) install-docs XMLDocWays="$(BINDIST_DOC_WAYS)" \ @@ -359,25 +353,25 @@ endif # Rename scripts to $i.prl and $i.sh where necessary. # ToDo: do this in a cleaner way... -ifneq "$($(Project)BinDistPrlScripts)" "" +ifneq "$(BinDistPrlScripts)" "" binary-dist:: - @for i in $($(Project)BinDistPrlScripts); do \ + @for i in $(BinDistPrlScripts); do \ echo "Renaming $$i to $$i.prl"; \ $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/$$i $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/$$i.prl; \ done endif -ifneq "$($(Project)BinDistLibPrlScripts)" "" +ifneq "$(BinDistLibPrlScripts)" "" binary-dist:: - @for i in $($(Project)BinDistLibPrlScripts); do \ + @for i in $(BinDistLibPrlScripts); do \ echo "Renaming $$i to $$i.prl"; \ $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/$$i $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/lib/$(TARGETPLATFORM)/$$i.prl; \ done endif -ifneq "$($(Project)BinDistShScripts)" "" +ifneq "$(BinDistShScripts)" "" binary-dist:: - @for i in $($(Project)BinDistShScripts); do \ + @for i in $(BinDistShScripts); do \ if test -x $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/$$i ; then \ echo "Renaming $$i to $$i.sh"; \ $(MV) $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/$$i $(BIN_DIST_TMPDIR)/$(BIN_DIST_NAME)/bin/$(TARGETPLATFORM)/$$i.sh; \ @@ -385,22 +379,18 @@ binary-dist:: done endif -# -# Do this separately for now -# -binary-pack:: - ( cd $(BIN_DIST_TMPDIR); $(TAR) chzf $(BIN_DIST_NAME).tar.gz $(BIN_DIST_NAME) ) - -ifneq "$(way)" "" -.PHONY: package-way-dist -package-way-dist:: - ( cd $(BIN_DIST_TMPDIR); $(FIND) $(BIN_DIST_NAME)/ \( -name "*$(_way).a" -o -name "*.$(way_)hi" \) -print | xargs tar cvf $(BIN_DIST_TMPDIR)/ghc-$(ProjectVersion)-$(way)-$(TARGETPLATFORM).tar ) - gzip $(BIN_DIST_TMPDIR)/ghc-$(ProjectVersion)-$(way)-$(TARGETPLATFORM).tar -endif +# Tar up the distribution and build a manifest +binary-dist :: + ( cd $(BIN_DIST_TMPDIR); tar cf - $(BIN_DIST_NAME) | bzip2 >$(BIN_DIST_TARBALL) ) + ( cd $(BIN_DIST_TMPDIR); bunzip2 -c $(BIN_DIST_TARBALL) | tar tf - | sed "s/^ghc-$(ProjectVersion)/fptools/" | sort >bin-manifest-$(ProjectVersion) ) -ifneq "$(way)" "" -remove-way-dist:: - ( cd $(BIN_DIST_TMPDIR); $(FIND) $(BIN_DIST_NAME)/ \( -name "*$(_way).a" -o -name "*.$(way_)hi" \) -print -exec $(RM) {} \; ) +# Upload the distribution +ifneq "$(PublishLocation)" "" +binary-dist :: + @for i in 0 1 2 3 4 5 6 7 8 9; do \ + echo "Try $$i: $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation)"; \ + if $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation); then break; fi\ + done endif binary-dist:: @@ -422,79 +412,93 @@ binary-dist:: # # Directory in which we're going to build the src dist # +SRC_DIST_NAME=ghc-$(ProjectVersion) SRC_DIST_DIR=$(shell pwd)/$(SRC_DIST_NAME) # # Files to include in source distributions # -SRC_DIST_DIRS += docs distrib $(filter-out docs distrib,$(SUBDIRS)) +SRC_DIST_DIRS += mk docs distrib $(filter-out docs distrib,$(SUBDIRS)) SRC_DIST_FILES += \ configure.ac config.guess config.sub configure \ - aclocal.m4 README Makefile install-sh \ - mk/bootstrap.mk \ - mk/boilerplate.mk mk/config.h.in mk/config.mk.in mk/opts.mk \ - mk/paths.mk mk/package.mk mk/suffix.mk mk/target.mk \ - mk/fptools.css mk/fix_install_names.sh - -dist dist-manifest dist-package :: project-check - -# clean the tree first, leaving certain extra files in place (eg. configure) -dist :: distclean - -dist :: - -rm -rf $(SRC_DIST_DIR) - -$(RM) $(SRC_DIST_NAME).tar.gz - mkdir $(SRC_DIST_DIR) - mkdir $(SRC_DIST_DIR)/mk - $(FIND) $(SRC_DIST_DIRS) -type d \( -name _darcs -prune -o -name SRC -prune -o -name "autom4te*" -prune -o -print \) | sed -e 's!.*!mkdir "$(SRC_DIST_DIR)/&"!' | sh - $(FIND) $(SRC_DIST_DIRS) $(SRC_DIST_FILES) -name _darcs -prune -o -name SRC -prune -o -name "autom4te*" -prune -o -name "*~" -prune -o -name ".cvsignore" -prune -o -name "\#*" -prune -o -name ".\#*" -prune -o -name "log" -prune -o -name "*-SAVE" -prune -o -name "*.orig" -prune -o -name "*.rej" -prune -o ! -type d -print | sed -e 's!.*!$(LN_S) "$(FPTOOLS_TOP_ABS)/&" "$(SRC_DIST_DIR)/&"!' | sh - -# Automatic generation of a MANIFEST file for a source distribution -# tree that is ready to go. -dist-manifest :: - cd $(SRC_DIST_DIR); $(FIND) . \( -type l -o -type f \) -exec ls -lLG {} \; | sed -e 's/\.\///' > MANIFEST + aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \ + ghc.spec.in VERSION -dist-package :: dist-package-tar-gz +# ----------------------------------------------------------------------------- +# Source distributions -SRC_DIST_PATHS = $(patsubst %, $(SRC_DIST_NAME)/%, $(SRC_DIST_FILES) $(SRC_DIST_DIRS)) +# A source dist is built from a complete build tree, because we +# require some extra files not contained in a darcs checkout: the +# output from Happy and Alex, for example. +# +# The steps performed by 'make dist' are as follows: +# - create a complete link-tree of the current build tree in /tmp +# - run 'make distclean' on that tree +# - remove a bunch of other files that we know shouldn't be in the dist +# - tar up first the extralibs package, then the main source package -dist-package-tar-bz2 :: - BZIP2=-9 $(TAR) chjf $(SRC_DIST_NAME)-src.tar.bz2 $(SRC_DIST_NAME) || $(RM) $(SRC_DIST_NAME)-src.tar.bz2 +EXTRA_LIBS=$(patsubst %, $(SRC_DIST_NAME)/libraries/%, $(shell cat libraries/extra-packages)) -dist-package-tar-gz :: - $(TAR) chzf $(SRC_DIST_NAME)-src.tar.gz $(SRC_DIST_NAME) || $(RM) $(SRC_DIST_NAME)-src.tar.gz +SRC_DIST_TARBALL = ghc-$(ProjectVersion)-src.tar.bz2 +SRC_DIST_EXTRALIBS_TARBALL = ghc-$(ProjectVersion)-src-extralibs.tar.bz2 -dist-package-zip :: - cd ..; $(LN_S) $(FPTOOLS_TOP_ABS) $(SRC_DIST_NAME) && \ - $(ZIP) $(ZIP_OPTS) -r $(SRC_DIST_NAME)-src.zip $(SRC_DIST_PATHS) +dist :: + $(RM) -rf $(SRC_DIST_DIR) + $(RM) $(SRC_DIST_NAME).tar.gz + mkdir $(SRC_DIST_DIR) + ( cd $(SRC_DIST_DIR) \ + && 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 \ + && $(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 \ + ) + tar chf - $(EXTRA_LIBS) | bzip2 >$(FPTOOLS_TOP_ABS)/$(SRC_DIST_EXTRALIBS_TARBALL) + $(RM) -rf $(EXTRA_LIBS) + tar chf - $(SRC_DIST_NAME) 2>$src_log | bzip2 >$(FPTOOLS_TOP_ABS)/$(SRC_DIST_TARBALL) + +# Upload the distribution(s) +# Retrying is to work around buggy firewalls that corrupt large file transfers +# over SSH. +ifneq "$(PublishLocation)" "" +dist :: + @for i in 0 1 2 3 4 5 6 7 8 9; do \ + echo "Try $$i: $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation)"; \ + if $(PublishCp) $(SRC_DIST_EXTRALIBS_TARBALL) $(PublishLocation); then break; fi\ + done + @for i in 0 1 2 3 4 5 6 7 8 9; do \ + echo "Try $$i: $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation)"; \ + if $(PublishCp) $(SRC_DIST_TARBALL) $(PublishLocation); then break; fi\ + done +endif # ----------------------------------------------------------------------------- # HC file bundles -hc-file-bundle : project-check - $(RM) -r $(ProjectNameShort)-$(ProjectVersion) - $(LN_S) . $(ProjectNameShort)-$(ProjectVersion) - $(FIND) $(ProjectNameShort)-$(ProjectVersion)/compiler \ - $(ProjectNameShort)-$(ProjectVersion)/utils \ - $(ProjectNameShort)-$(ProjectVersion)/compat \ - $(ProjectNameShort)-$(ProjectVersion)/libraries -follow \ +hc-file-bundle : + $(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 @@ -507,6 +511,9 @@ DIST_CLEAN_FILES += config.cache config.status mk/config.h mk/stamp-h \ # don't clean config.mk: it's needed when cleaning stuff later on LATE_DIST_CLEAN_FILES += mk/config.mk +# VERSION is shipped in a source dist +MAINTAINER_CLEAN_FILES += VERSION + extraclean:: $(RM) -rf autom4te.cache