endif
BOOT_LIBS = $(foreach lib,$(BOOT_PKGS),$(libraries/$(lib)_dist-boot_v_LIB))
-OTHER_LIBS = libffi/libHSffi$(v_libsuf) libffi/HSffi.o
+OTHER_LIBS = libffi/dist-install/build/libHSffi$(v_libsuf) libffi/dist-install/build/HSffi.o
ifeq "$(BuildSharedLibs)" "YES"
-OTHER_LIBS += libffi/libHSffi$(dyn_libsuf)
+OTHER_LIBS += libffi/dist-install/build/libHSffi$(dyn_libsuf)
endif
# We cannot run ghc-cabal to configure a package until we have
# Don't try to delete directories:
.PRECIOUS: %/.
-%/. : $(MKDIRHIER)
+# Create build directories on demand. NB. the | below: this indicates
+# that $(MKDIRHIER) is an order-only dependency, which means that this
+# rule fires after building mkdirhier, but we won't try to recreate
+# directories if mkdirhier changes.
+%/. : | $(MKDIRHIER)
"$(MKDIRHIER)" $@
# -----------------------------------------------------------------------------
BUILD_DIRS += \
docs/users_guide \
+ docs/man \
libraries/Cabal/doc \
$(GHC_UNLIT_DIR) \
$(GHC_HP2PS_DIR)
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
-libraries/ghc-prim/dist-install/doc/html/ghc-prim/ghc-prim.haddock: \
+ifneq "$(BINDIST)" "YES"
+$(ghc-prim_HADDOCK_FILE): \
libraries/ghc-prim/dist-install/build/autogen/GHC/Prim.hs \
libraries/ghc-prim/dist-install/build/autogen/GHC/PrimopWrappers.hs
+endif # BINDIST
libraries/ghc-prim/dist-install/build/autogen/GHC/Prim.hs: \
$(PRIMOPS_TXT) $(GENPRIMOP_INPLACE) \
$(INSTALL_HEADER) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghcheaderdir)"; \
done
-install_docs: $(INSTALL_HEADERS)
+install_docs: $(INSTALL_DOCS)
$(INSTALL_DIR) "$(DESTDIR)$(docdir)"
ifneq "$(INSTALL_DOCS)" ""
for i in $(INSTALL_DOCS); do \
$(INSTALL_DIR) $(INSTALL_OPTS) "$(DESTDIR)$(docdir)/html"
$(INSTALL_DOC) $(INSTALL_OPTS) docs/index.html "$(DESTDIR)$(docdir)/html"
ifneq "$(INSTALL_LIBRARY_DOCS)" ""
+ $(INSTALL_DIR) $(INSTALL_OPTS) "$(DESTDIR)$(docdir)/html/libraries"
for i in $(INSTALL_LIBRARY_DOCS); do \
$(INSTALL_DOC) $(INSTALL_OPTS) $$i "$(DESTDIR)$(docdir)/html/libraries/"; \
done
+ $(INSTALL_DATA) $(INSTALL_OPTS) libraries/prologue.txt "$(DESTDIR)$(docdir)/html/libraries/"
+ $(INSTALL_SCRIPT) $(INSTALL_OPTS) libraries/gen_contents_index "$(DESTDIR)$(docdir)/html/libraries/"
endif
ifneq "$(INSTALL_HTML_DOC_DIRS)" ""
for i in $(INSTALL_HTML_DOC_DIRS); do \
"$(GHC_CABAL_INPLACE)" install \
"$(INSTALLED_GHC_REAL)" \
"$(INSTALLED_GHC_PKG_REAL)" \
+ "$(STRIP)" \
"$(DESTDIR)$(topdir)" \
$p $(INSTALL_DISTDIR_$p) \
'$(DESTDIR)' '$(prefix)' '$(ghclibdir)' '$(docdir)/html/libraries' \
$(INSTALL_TOPDIRS) \
$(INSTALL_TOPDIR_SCRIPTS) \
$(INSTALL_BINS) \
+ $(INSTALL_MANPAGES) \
$(INSTALL_DOCS) \
$(INSTALL_LIBRARY_DOCS) \
$(addsuffix /*,$(INSTALL_HTML_DOC_DIRS)) \
docs/index.html \
+ compiler/stage2/doc \
$(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/project.mk \
mk/install.mk.in \
bindist.mk \
+ libraries/gen_contents_index \
+ libraries/prologue.txt \
libraries/dph/LICENSE \
))
endif
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)
#
# Files to include in source distributions
#
-SRC_DIST_DIRS = mk rules docs distrib bindisttest libffi includes utils docs rts compiler ghc driver libraries
+SRC_DIST_DIRS = mk rules docs distrib bindisttest libffi includes utils docs rts compiler ghc driver libraries ghc-tarballs
SRC_DIST_FILES += \
configure.ac config.guess config.sub configure \
aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \
$(call sdist_file,utils/haddock,dist,src,Haddock/Interface,Lex,x)
$(call sdist_file,utils/haddock,dist,src,Haddock/Interface,Parse,y)
cd $(SRC_DIST_DIR) && "$(RM)" $(RM_OPTS) -r compiler/stage[123] mk/build.mk
- cd $(SRC_DIST_DIR) && "$(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" -o -name "*-darcs-backup*" \) -print | xargs "$(RM)" $(RM_OPTS) -r
+ cd $(SRC_DIST_DIR) && "$(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" -o -name "*-darcs-backup*" \) -print | "$(XARGS)" $(XARGS_OPTS) "$(RM)" $(RM_OPTS) -r
.PHONY: sdist
sdist : sdist-prep
endif
ifeq "$(BootingFromHc)" "YES"
-SRC_CC_OPTS += -DNO_REGS -DUSE_MINIINTERPRETER -D__GLASGOW_HASKELL__=$(ProjectVersionInt)
+# In a normal build we use GHC to compile C files (see
+# rules/c-suffix-rules.mk), which passes a number of its own options
+# to the C compiler. So when bootstrapping we have to provide these
+# flags explicitly to C compilations.
+SRC_CC_OPTS += -DNO_REGS -DUSE_MINIINTERPRETER
+SRC_CC_OPTS += -D__GLASGOW_HASKELL__=$(ProjectVersionInt)
+SRC_CC_OPTS += -I$(GHC_INCLUDE_DIR)
endif
# -----------------------------------------------------------------------------
+# sdisting libraries
+
+# Use manually, with e.g.:
+# make sdist_directory
+
+sdist_%:
+ inplace/bin/ghc-cabal sdist libraries/$* dist-install
+
+# -----------------------------------------------------------------------------
# Cleaning
.PHONY: clean