X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=ghc.mk;h=2bee6d672af2570bbd5f78aa2b41142d4fb16ed5;hp=b217ce7c852aadcac676bd66d37ee66284ca84a3;hb=85981a6fc4bb94af433b0b3655c26c5ec4dda1bd;hpb=c6144cbcdb49ced6aa8746f584e045e63e24b168 diff --git a/ghc.mk b/ghc.mk index b217ce7..2bee6d6 100644 --- a/ghc.mk +++ b/ghc.mk @@ -43,7 +43,7 @@ # then we don't have to use -osuf/-hisuf. We would have to install # them in different places too, so we'd need ghc-pkg support for packages # of different ways. -# * make PACKAGES generated by configure or sh boot? +# * make PACKAGES generated by './configure' or 'perl boot'? # * we should use a directory of package.conf files rather than a single # file for the inplace package database, so that we can express # dependencies more accurately. Otherwise it's possible to get into @@ -335,6 +335,7 @@ $(eval $(call addPackage,binary)) $(eval $(call addPackage,bin-package-db)) $(eval $(call addPackage,mtl)) $(eval $(call addPackage,utf8-string)) +$(eval $(call addPackage,xhtml)) $(eval $(call addPackage,terminfo,($$(Windows),NO))) @@ -356,6 +357,8 @@ endif # so we don't have to include it below. BOOT_PKGS = Cabal hpc extensible-exceptions binary bin-package-db +BOOT_PKG_CONSTRAINTS := $(foreach p,$(BOOT_PKGS),--constraint "$p == $(shell grep -i "^Version:" libraries/$p/$p.cabal | sed "s/[^0-9.]//g")") + # The actual .a and .so/.dll files: needed for dependencies. ALL_STAGE1_LIBS = $(foreach lib,$(PACKAGES),$(libraries/$(lib)_dist-install_v_LIB)) ifeq "$(BuildSharedLibs)" "YES" @@ -521,6 +524,7 @@ BUILD_DIRS += \ ifneq "$(BINDIST)" "YES" BUILD_DIRS += \ + bindisttest \ $(GHC_CABAL_DIR) \ $(GHC_GENAPPLY_DIR) endif @@ -549,6 +553,7 @@ BUILD_DIRS += \ compiler \ $(GHC_HSC2HS_DIR) \ $(GHC_PKG_DIR) \ + utils/testremove \ utils/ghctags \ utils/hpc \ utils/runghc \ @@ -649,6 +654,9 @@ $(foreach pkg,$(PACKAGES_STAGE2),$(eval libraries/$(pkg)_dist-install_HC_OPTS += libraries/binary_dist-install_HC_OPTS += -Wwarn libraries/binary_dist-boot_HC_OPTS += -Wwarn +# XXX hack: xhtml has warnings +libraries/xhtml_dist-install_HC_OPTS += -Wwarn + # ---------------------------------------------- # A useful pseudo-target .PHONY: stage1_libs @@ -872,7 +880,7 @@ INSTALLED_GHC_REAL=$(DESTDIR)$(bindir)/ghc.exe INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(bindir)/ghc-pkg.exe endif -INSTALLED_PACKAGES := $(filter-out haskeline mtl terminfo utf8-string,$(PACKAGES)) +INSTALLED_PACKAGES := $(filter-out haskeline mtl terminfo utf8-string xhtml,$(PACKAGES)) ifeq "$(InstallExtraPackages)" "NO" INSTALLED_PACKAGES := $(filter-out $(EXTRA_PACKAGES), $(INSTALLED_PACKAGES)) endif @@ -897,7 +905,7 @@ ALL_INSTALLED_PACKAGES = $(addprefix libraries/,$(INSTALLED_PACKAGES)) \ install_packages: install_libexecs install_packages: libffi/package.conf.install rts/package.conf.install $(INSTALL_DIR) "$(DESTDIR)$(topdir)" - "$(RM)" -r $(RM_OPTS) "$(INSTALLED_PACKAGE_CONF)" + "$(RM)" $(RM_OPTS_REC) "$(INSTALLED_PACKAGE_CONF)" $(INSTALL_DIR) "$(INSTALLED_PACKAGE_CONF)" "$(INSTALLED_GHC_PKG_REAL)" --force --global-conf "$(INSTALLED_PACKAGE_CONF)" update libffi/package.conf.install "$(INSTALLED_GHC_PKG_REAL)" --force --global-conf "$(INSTALLED_PACKAGE_CONF)" update rts/package.conf.install @@ -905,7 +913,7 @@ install_packages: libffi/package.conf.install rts/package.conf.install "$(GHC_CABAL_INPLACE)" install \ "$(INSTALLED_GHC_REAL)" \ "$(INSTALLED_GHC_PKG_REAL)" \ - "$(STRIP)" \ + "$(STRIP_CMD)" \ "$(DESTDIR)$(topdir)" \ $p $(INSTALL_DISTDIR_$p) \ '$(DESTDIR)' '$(prefix)' '$(ghclibdir)' '$(docdir)/html/libraries' \ @@ -971,7 +979,7 @@ endif BIN_DIST_MK = $(BIN_DIST_PREP_DIR)/bindist.mk unix-binary-dist-prep: - "$(RM)" $(RM_OPTS) -r bindistprep/ + "$(RM)" $(RM_OPTS_REC) 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 distrib/configure.ac distrib/README distrib/INSTALL; do ln -s ../../$$i $(BIN_DIST_PREP_DIR)/; done echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(BIN_DIST_MK) @@ -984,18 +992,18 @@ unix-binary-dist-prep: "$(RM)" $(RM_OPTS) $(BIN_DIST_PREP_TAR) # h means "follow symlinks", e.g. if aclocal.m4 is a symlink to a source # tree then we want to include the real file, not a symlink to it - cd bindistprep && "$(TAR)" hcf - -T ../$(BIN_DIST_LIST) | bzip2 -c > ../$(BIN_DIST_PREP_TAR_BZ2) + cd bindistprep && "$(TAR_CMD)" hcf - -T ../$(BIN_DIST_LIST) | bzip2 -c > ../$(BIN_DIST_PREP_TAR_BZ2) windows-binary-dist-prep: - "$(RM)" $(RM_OPTS) -r bindistprep/ + "$(RM)" $(RM_OPTS_REC) bindistprep/ $(MAKE) prefix=$(TOP)/$(BIN_DIST_PREP_DIR) install - cd bindistprep && "$(TAR)" cf - $(BIN_DIST_NAME) | bzip2 -c > ../$(BIN_DIST_PREP_TAR_BZ2) + cd bindistprep && "$(TAR_CMD)" cf - $(BIN_DIST_NAME) | bzip2 -c > ../$(BIN_DIST_PREP_TAR_BZ2) windows-installer: -ifeq "$(ISCC)" "" - @echo No ISCC, so not making installer +ifeq "$(ISCC_CMD)" "" + @echo No ISCC_CMD, so not making installer else - "$(ISCC)" /O. /Fbindistprep/$(WINDOWS_INSTALLER_BASE) - < distrib/ghc.iss + "$(ISCC_CMD)" /O. /Fbindistprep/$(WINDOWS_INSTALLER_BASE) - < distrib/ghc.iss endif # tryTimes tries to run its third argument multiple times, until it @@ -1076,7 +1084,7 @@ endef .PHONY: sdist-prep sdist-prep : - "$(RM)" $(RM_OPTS) -r $(SRC_DIST_DIR) + "$(RM)" $(RM_OPTS_REC) $(SRC_DIST_DIR) "$(RM)" $(RM_OPTS) $(SRC_DIST_TARBALL) mkdir $(SRC_DIST_DIR) cd $(SRC_DIST_DIR) && for i in $(SRC_DIST_DIRS); do mkdir $$i; ( cd $$i && lndir $(TOP)/$$i ); done @@ -1094,12 +1102,12 @@ sdist-prep : $(call sdist_file,utils/genprimopcode,dist,,,Parser,y) $(call sdist_file,utils/haddock,dist,src,Haddock,Lex,x) $(call sdist_file,utils/haddock,dist,src,Haddock,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)" $(XARGS_OPTS) "$(RM)" $(RM_OPTS) -r + cd $(SRC_DIST_DIR) && "$(RM)" $(RM_OPTS_REC) 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)" $(XARGS_OPTS) "$(RM)" $(RM_OPTS_REC) .PHONY: sdist sdist : sdist-prep - "$(TAR)" chf - $(SRC_DIST_NAME) 2>$src_log | bzip2 >$(TOP)/$(SRC_DIST_TARBALL) + "$(TAR_CMD)" chf - $(SRC_DIST_NAME) 2>$src_log | bzip2 >$(TOP)/$(SRC_DIST_TARBALL) sdist-manifest : $(SRC_DIST_TARBALL) tar tjf $(SRC_DIST_TARBALL) | sed "s|^ghc-$(ProjectVersion)/||" | sort >sdist-manifest @@ -1157,8 +1165,8 @@ CLEAN_FILES += libraries/integer-gmp/gmp/libgmp.a clean : clean_gmp .PHONY: clean_gmp clean_gmp: - "$(RM)" $(RM_OPTS) -r libraries/integer-gmp/gmp/objs - "$(RM)" $(RM_OPTS) -r libraries/integer-gmp/gmp/gmpbuild + "$(RM)" $(RM_OPTS_REC) libraries/integer-gmp/gmp/objs + "$(RM)" $(RM_OPTS_REC) libraries/integer-gmp/gmp/gmpbuild endif .PHONY: clean_libraries @@ -1166,7 +1174,7 @@ clean_libraries: $(patsubst %,clean_libraries/%_dist-install,$(PACKAGES) $(PACKA clean_libraries: $(patsubst %,clean_libraries/%_dist-boot,$(BOOT_PKGS)) clean_libraries: - "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2)) + "$(RM)" $(RM_OPTS_REC) $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2)) "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/*.buildinfo, $(PACKAGES) $(PACKAGES_STAGE2)) # We have to define a clean target for each library manually, because the @@ -1179,7 +1187,7 @@ endif clean : clean_bindistprep .PHONY: clean_bindistprep clean_bindistprep: - "$(RM)" $(RM_OPTS) -r bindistprep/ + "$(RM)" $(RM_OPTS_REC) bindistprep/ distclean : clean "$(RM)" $(RM_OPTS) config.cache config.status config.log mk/config.h mk/stamp-h @@ -1197,11 +1205,11 @@ distclean : clean "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/config.log, $(PACKAGES) $(PACKAGES_STAGE2)) "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/config.status, $(PACKAGES) $(PACKAGES_STAGE2)) "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/include/Hs*Config.h, $(PACKAGES) $(PACKAGES_STAGE2)) - "$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/autom4te.cache, $(PACKAGES) $(PACKAGES_STAGE2)) + "$(RM)" $(RM_OPTS_REC) $(patsubst %, libraries/%/autom4te.cache, $(PACKAGES) $(PACKAGES_STAGE2)) maintainer-clean : distclean "$(RM)" $(RM_OPTS) configure mk/config.h.in - "$(RM)" $(RM_OPTS) -r autom4te.cache libraries/*/autom4te.cache + "$(RM)" $(RM_OPTS_REC) autom4te.cache libraries/*/autom4te.cache "$(RM)" $(RM_OPTS) ghc.spec "$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/GNUmakefile, \ $(PACKAGES) $(PACKAGES_STAGE2))