# We need second expansion for the way we handle directories, so that
# | $$$$(dir $$$$@)/.
-# expands to the directoy of a rule that uses a % pattern.
+# expands to the directory of a rule that uses a % pattern.
.SECONDEXPANSION:
default : all
utils/haddock/dist/package-data.mk: compiler/stage2/package-data.mk
utils/hsc2hs/dist-install/package-data.mk: compiler/stage2/package-data.mk
+utils/compare_sizes/dist/package-data.mk: compiler/stage2/package-data.mk
# add the final two package.conf dependencies: ghc-prim depends on RTS,
# and RTS depends on libffi.
libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.hs : $(GENPRIMOP_INPLACE) $(PRIMOPS_TXT) | $$(dir $$@)/.
"$(GENPRIMOP_INPLACE)" --make-haskell-wrappers <$(PRIMOPS_TXT) >$@
-libraries/ghc-prim/GHC/Prim.hs : $(GENPRIMOP_INPLACE) $(PRIMOPS_TXT)
- "$(GENPRIMOP_INPLACE)" --make-haskell-source <$(PRIMOPS_TXT) >$@
-
+# Required so that Haddock documents the primops.
+libraries/ghc-prim_dist-install_EXTRA_HADDOCK_SRCS = libraries/ghc-prim/dist-install/build/autogen/GHC/Prim.hs
# -----------------------------------------------------------------------------
# Include build instructions from all subdirs
ifneq "$(BINDIST)" "YES"
BUILD_DIRS += \
- $(GHC_MKDEPENDC_DIR) \
$(GHC_MKDIRHIER_DIR)
endif
$(GHC_TOUCHY_DIR)
endif
+BUILD_DIRS += utils/count_lines
+BUILD_DIRS += utils/compare_sizes
+
ifneq "$(CLEANING)" "YES"
# After compiler/, because these packages depend on it
BUILD_DIRS += \
utils/hpc_dist_DISABLE = YES
utils/hsc2hs_dist-install_DISABLE = YES
utils/ghc-pkg_dist-install_DISABLE = YES
+utils/compare_sizes_dist_DISABLE = YES
compiler_stage2_DISABLE = YES
compiler_stage3_DISABLE = YES
ghc_stage2_DISABLE = YES
# These are necessary because the bootstrapping compiler may not know
# about cross-package dependencies:
-$(compiler_stage1_depfile) : $(BOOT_LIBS)
-$(ghc_stage1_depfile) : $(compiler_stage1_v_LIB)
+$(compiler_stage1_depfile_haskell) : $(BOOT_LIBS)
+$(ghc_stage1_depfile_haskell) : $(compiler_stage1_v_LIB)
# A few careful dependencies between bootstrapping packages. When we
# can rely on the stage 0 compiler being able to generate
install_mingw : $(INPLACE_MINGW)
"$(CP)" -Rp $(INPLACE_MINGW) $(prefix)
+install : install_perl
+.PHONY: install_perl
+install_perl : $(INPLACE_PERL)
+ "$(CP)" -Rp $(INPLACE_PERL) $(prefix)
+
endif # Windows
ifneq "$(BINDIST)" "YES"
-$(ghc-prim_HADDOCK_FILE): \
+$(ghc-prim-$(libraries/ghc-prim_dist-install_VERSION)_HADDOCK_FILE): \
libraries/ghc-prim/dist-install/build/autogen/GHC/Prim.hs \
libraries/ghc-prim/dist-install/build/autogen/GHC/PrimopWrappers.hs
endif # BINDIST
$(INSTALL_DIR) "$(DESTDIR)$(bindir)"
for i in $(INSTALL_BINS); do \
$(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i "$(DESTDIR)$(bindir)" ; \
- if test "$(darwin_TARGET_OS)" = "1"; then \
- sh mk/fix_install_names.sh $(ghclibdir) "$(DESTDIR)$(bindir)/$$i" ; \
- fi ; \
done
install_libs: $(INSTALL_LIBS)
*.so) \
$(INSTALL_SHLIB) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)" ;; \
*.dylib) \
- $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)"; \
- install_name_tool -id "$(DESTDIR)$(ghclibdir)/`basename $$i`" "$(DESTDIR)$(ghclibdir)/`basename $$i`" ;; \
+ $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)";; \
*) \
$(INSTALL_DATA) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)"; \
esac; \
$(eval $(call bindist,.,\
LICENSE \
+ README \
+ INSTALL \
configure config.sub config.guess install-sh \
extra-gcc-opts.in \
Makefile \
$(wildcard libraries/*/dist-install/doc/) \
$(filter-out extra-gcc-opts,$(INSTALL_LIBS)) \
$(filter-out %/project.mk mk/config.mk %/mk/install.mk,$(MAKEFILE_LIST)) \
- mk/fix_install_names.sh \
mk/project.mk \
mk/install.mk.in \
bindist.mk \
unix-binary-dist-prep:
"$(RM)" $(RM_OPTS) -r bindistprep/
"$(MKDIRHIER)" $(BIN_DIST_PREP_DIR)
- set -e; for i in LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done
+ set -e; for i in LICENSE compiler ghc rts libraries utils docs libffi includes driver mk rules Makefile aclocal.m4 config.sub config.guess install-sh extra-gcc-opts.in ghc.mk inplace distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done
echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(BIN_DIST_MK)
echo "LATEX_DOCS = $(LATEX_DOCS)" >> $(BIN_DIST_MK)
echo "BUILD_DOCBOOK_HTML = $(BUILD_DOCBOOK_HTML)" >> $(BIN_DIST_MK)
echo "BUILD_DOCBOOK_PS = $(BUILD_DOCBOOK_PS)" >> $(BIN_DIST_MK)
echo "BUILD_DOCBOOK_PDF = $(BUILD_DOCBOOK_PDF)" >> $(BIN_DIST_MK)
echo "BUILD_MAN = $(BUILD_MAN)" >> $(BIN_DIST_MK)
- ln -s ../../distrib/configure-bin.ac $(BIN_DIST_PREP_DIR)/configure.ac
cd $(BIN_DIST_PREP_DIR) && autoreconf
"$(RM)" $(RM_OPTS) $(BIN_DIST_PREP_TAR)
# h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source