-
-# 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 \
- echo "------------------------------------------------------------------------"; \
- echo "== $(MAKE) $@ $(MFLAGS);"; \
- echo " in $(shell pwd)/$$i"; \
- echo "------------------------------------------------------------------------"; \
- $(MAKE) --no-print-directory -C $$i $(INSTALL_STAGE) $(MFLAGS) $@; \
- if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \
- done
-
-# -----------------------------------------------------------------------------
-# Making a binary distribution
-#
-# `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
-# a subdirectory name which is the name of the package it is a
-# distribution for. This name can include the version number.
-#
-# For example, the distribution tar file of GCC version 1.40 unpacks
-# into a subdirectory named `gcc-1.40'.
-#
-# The easiest way to do this is to create a subdirectory
-# appropriately named, use ln or cp to install the proper files in
-# it, and then tar that subdirectory.
-#
-# The dist target should explicitly depend on all non-source files
-# that are in the distribution, to make sure they are up to date in
-# the distribution. See Making Releases.
-#
-# binary-dist is a GHC addition for binary distributions
-#
-
-binary-dist::
- -rm -rf $(BIN_DIST_DIR)
- -$(RM) $(BIN_DIST_DIR).tar.gz
-
-# When making bindists, we can have problems if some things (e.g. ghc-pkg)
-# are compiled with the bootstrapping compiler and some (e.g. the stage 2
-# compiler) with the stage1 compiler. See #1860 for an example.
-# Thus we rebuild the utils with stage 1 here. This is a bit unpleasant,
-# as binary-dist really shouldn't actually build anything, but it works.
-# We need to do the same for utilities used during library package installation.
-binary-dist::
- $(MAKE) -C utils clean
- $(MAKE) -C utils UseStage1=YES boot
- $(MAKE) -C utils UseStage1=YES
- $(RM) -f libraries/ifBuildable/ifBuildable
- $(MAKE) -C libraries UseStage1=YES ifBuildable/ifBuildable
- $(RM) -f libraries/installPackage/installPackage
- $(MAKE) -C libraries UseStage1=YES installPackage/installPackage
-
-ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
-
-binary-dist::
- $(MAKE) prefix=$(BIN_DIST_DIR) install
- $(MAKE) prefix=$(BIN_DIST_DIR) install-docs
-
-binary-dist::
- cd $(BIN_DIST_DIR) && $(SHELL) ../distrib/prep-bin-dist-mingw
-
-binary-dist::
- $(MKDIRHIER) $(BIN_DIST_DIR)/icons
- cp distrib/hsicon.ico $(BIN_DIST_DIR)/icons
-
-else
-
-BinDistDirs = includes compiler docs rts
-
-BIN_DIST_TOP= distrib/Makefile \
- distrib/configure-bin.ac \
- distrib/INSTALL \
- distrib/README \
- ANNOUNCE \
- LICENSE \
- install-sh \
- extra-gcc-opts.in \
- config.guess \
- config.sub \
- aclocal.m4
-
-ifeq "$(darwin_TARGET_OS)" "1"
-BIN_DIST_TOP+=mk/fix_install_names.sh
-endif
-
-.PHONY: binary-dist-pre% binary-dist binary-pack
-
-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/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/
- cp mk/install.mk $(BIN_DIST_DIR)/mk/
- cp mk/recurse.mk $(BIN_DIST_DIR)/mk/
- cp mk/fptools.css $(BIN_DIST_DIR)/mk/
- $(MKDIRHIER) $(BIN_DIST_DIR)/lib/$(TARGETPLATFORM)
- $(MKDIRHIER) $(BIN_DIST_DIR)/share
-
-binary-dist::
- $(MAKE) -C gmp binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C includes binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C compiler binary-dist DOING_BIN_DIST=YES $(INSTALL_STAGE)
- $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C docs binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C libraries binary-dist DOING_BIN_DIST=YES
- $(MAKE) -C libraries/Cabal/doc binary-dist DOING_BIN_DIST=YES
-
-VARFILE=$(BIN_DIST_DIR)/Makefile-vars.in
-
-binary-dist::
- @for i in $(BIN_DIST_TOP); do \
- if test -f "$$i"; then \
- echo cp $$i $(BIN_DIST_DIR); \
- cp $$i $(BIN_DIST_DIR); \
- fi; \
- done;
- @echo "Configuring the Makefile for this project..."
- echo > $(VARFILE)
- echo "package = ghc" >> $(VARFILE)
- echo "version = $(ProjectVersion)" >> $(VARFILE)
- echo "ProjectVersion = $(ProjectVersion)" >> $(VARFILE)
- echo "HaveLibGmp = $(HaveLibGmp)" >> $(VARFILE)
- echo "GhcLibsWithUnix = $(GhcLibsWithUnix)" >> $(VARFILE)
- echo "GhcWithInterpreter = $(GhcWithInterpreter)" >> $(VARFILE)
- echo "GhcHasReadline = $(GhcHasReadline)" >> $(VARFILE)
- echo "BootingFromHc = $(BootingFromHc)" >> $(VARFILE)
- echo "XMLDocWays = $(XMLDocWays)" >> $(VARFILE)
- # We won't actually use xsltproc, but we need to know if it's "" or not
- echo "XSLTPROC = $(XSLTPROC)" >> $(VARFILE)
- echo "TARGETPLATFORM = $(TARGETPLATFORM)" >> $(VARFILE)
- echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(VARFILE)
-
- cat distrib/Makefile-bin-vars.in >> $(VARFILE)
- @echo "Generating a shippable configure script.."
- $(MV) $(BIN_DIST_DIR)/configure-bin.ac $(BIN_DIST_DIR)/configure.ac
- ( cd $(BIN_DIST_DIR); autoreconf )
-endif
-
-# 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 >bin-manifest-$(ProjectVersion) )
-
-PUBLISH_FILES = $(BIN_DIST_TARBALL)
-
-# Upload the distribution and documentation
-ifneq "$(ISCC)" ""
-WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-$(TARGETPLATFORM)
-WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext)
-
-PUBLISH_FILES += $(WINDOWS_INSTALLER)
-
-binary-dist :: generate-windows-installer
-
-.PHONY: generate-windows-installer
-generate-windows-installer ::
- $(SED) "s/@VERSION@/$(ProjectVersion)/" distrib/ghc.iss | $(ISCC) /O. /F$(WINDOWS_INSTALLER_BASE) -