Commit 0ef6ba7b authored by Ian Lynagh's avatar Ian Lynagh
Browse files

Quote commands that we run, so they work if there are space in their paths

I've also added some missing $s to some makefiles. These aren't
technically necessary, but it's nice to be consistent.
parent d5629b33
......@@ -36,7 +36,7 @@ compiler/stage3/package-data.mk : $(compiler_CONFIG_HS)
endif
$(compiler_CONFIG_HS) : mk/config.mk
$(RM) -f $@
"$(RM)" $(RM_OPTS) $@
@echo "Creating $@ ... "
@echo "module Config where" >>$@
@echo "cProjectName :: String" >> $@
......@@ -142,8 +142,8 @@ $(eval $(call clean-target,compiler,config_hs,$(compiler_CONFIG_HS)))
PLATFORM_H = ghc_boot_platform.h
compiler/stage1/$(PLATFORM_H) : mk/config.mk
$(MKDIRHIER) $(dir $@)
$(RM) $@
"$(MKDIRHIER)" $(dir $@)
"$(RM)" $(RM_OPTS) $@
@echo "Creating $@..."
@echo "#ifndef __PLATFORM_H__" >$@
@echo "#define __PLATFORM_H__" >>$@
......@@ -189,8 +189,8 @@ endif
# the HOST platform is the TARGET of stage1. The TARGET remains the same
# (stage1 is the cross-compiler, not stage2).
compiler/stage2/$(PLATFORM_H) : mk/config.mk
$(MKDIRHIER) $(dir $@)
$(RM) $@
"$(MKDIRHIER)" $(dir $@)
"$(RM)" $(RM_OPTS) $@
@echo "Creating $@..."
@echo "#ifndef __PLATFORM_H__" >$@
@echo "#define __PLATFORM_H__" >>$@
......@@ -233,7 +233,7 @@ endif
@echo "Done."
compiler/stage3/$(PLATFORM_H) : compiler/stage2/$(PLATFORM_H)
$(CP) $< $@
"$(CP)" $< $@
# Every Constants.o object file depends on includes/GHCConstants.h:
$(eval $(call compiler-hs-dependency,Constants,$(includes_GHCCONSTANTS)))
......@@ -263,25 +263,25 @@ $(PRIMOPS_TXT) compiler/parser/Parser.y: %: %.pp compiler/stage1/$(PLATFORM_H)
$(eval $(call clean-target,compiler,primop, $(PRIMOPS_TXT) compiler/parser/Parser.y $(PRIMOP_BITS)))
compiler/primop-data-decl.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --data-decl < $< > $@
"$(GENPRIMOP_INPLACE)" --data-decl < $< > $@
compiler/primop-tag.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --primop-tag < $< > $@
"$(GENPRIMOP_INPLACE)" --primop-tag < $< > $@
compiler/primop-list.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --primop-list < $< > $@
"$(GENPRIMOP_INPLACE)" --primop-list < $< > $@
compiler/primop-has-side-effects.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --has-side-effects < $< > $@
"$(GENPRIMOP_INPLACE)" --has-side-effects < $< > $@
compiler/primop-out-of-line.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --out-of-line < $< > $@
"$(GENPRIMOP_INPLACE)" --out-of-line < $< > $@
compiler/primop-commutable.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --commutable < $< > $@
"$(GENPRIMOP_INPLACE)" --commutable < $< > $@
compiler/primop-needs-wrapper.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --needs-wrapper < $< > $@
"$(GENPRIMOP_INPLACE)" --needs-wrapper < $< > $@
compiler/primop-can-fail.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --can-fail < $< > $@
"$(GENPRIMOP_INPLACE)" --can-fail < $< > $@
compiler/primop-strictness.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --strictness < $< > $@
"$(GENPRIMOP_INPLACE)" --strictness < $< > $@
compiler/primop-primop-info.hs-incl: $(PRIMOPS_TXT) $(GENPRIMOP_INPLACE)
$(GENPRIMOP_INPLACE) --primop-primop-info < $< > $@
"$(GENPRIMOP_INPLACE)" --primop-primop-info < $< > $@
# Every PrimOp.o object file depends on $(PRIMOP_BITS):
$(eval $(call compiler-hs-dependency,PrimOp,$(PRIMOP_BITS)))
......@@ -289,7 +289,7 @@ $(eval $(call compiler-hs-dependency,PrimOp,$(PRIMOP_BITS)))
# Usages aren't used any more; but the generator
# can still generate them if we want them back
compiler/primop-usage.hs-incl: $(PRIMOPS_TXT)
$(GENPRIMOP_INPLACE) --usage < $< > $@
"$(GENPRIMOP_INPLACE)" --usage < $< > $@
# -----------------------------------------------------------------------------
# Configuration
......@@ -466,7 +466,7 @@ compiler/stage1/inplace-pkg-config-munged: compiler/stage1/inplace-pkg-config
sed -e 's/^\(version: .*\)\.$(ProjectPatchLevel)$$/\1/' \
-e 's/^\(hs-libraries: HSghc-.*\)\.$(ProjectPatchLevel)$$/\1/' \
< $< > $@
$(compiler_stage1_GHC_PKG) update --force $(compiler_stage1_GHC_PKG_OPTS) $@
"$(compiler_stage1_GHC_PKG)" update --force $(compiler_stage1_GHC_PKG_OPTS) $@
$(compiler_stage1_v_LIB) : compiler/stage1/inplace-pkg-config-munged
endif
......
......@@ -28,6 +28,6 @@ src_ug_book = $(dir $(realpath $(dir $(build_ug_book))/ug-book.xml.in))ug-book.
ifneq "$(build_ug_book)" "$(src_ug_book)"
$(src_ug_book) : $(build_ug_book)
$(CP) $< $@
"$(CP)" $< $@
docs/users_guide/users_guide.pdf docs/users_guide/users_guide.ps: $(src_ug_book)
endif
......@@ -17,12 +17,12 @@ install: install_driver_ghci
.PHONY: install_driver_ghci
install_driver_ghci: WRAPPER=$(DESTDIR)$(bindir)/ghci-$(ProjectVersion)
install_driver_ghci:
$(MKDIRHIER) $(DESTDIR)$(bindir)
$(RM) -f $(WRAPPER)
"$(MKDIRHIER)" $(DESTDIR)$(bindir)
"$(RM)" $(RM_OPTS) $(WRAPPER)
echo '#!$(SHELL)' >> $(WRAPPER)
echo 'exec $(bindir)/ghc-$(ProjectVersion) --interactive ${1+"$@"}' >> $(WRAPPER)
$(EXECUTABLE_FILE) $(WRAPPER)
$(RM) -f $(DESTDIR)$(bindir)/ghci
"$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghci
$(LN_S) ghci-$(ProjectVersion) $(DESTDIR)$(bindir)/ghci
else # Windows...
......@@ -42,7 +42,7 @@ driver/ghci/ghci.res : driver/ghci/ghci.rc driver/ghci/ghci.ico
windres --preprocessor="$(CPP) -xc -DRC_INVOKED" -o driver/ghci/ghci.res -i driver/ghci/ghci.rc -O coff
driver/ghci/dist/build/tmp/$(driver/ghci_dist_PROG_VER) : driver/ghci/dist/build/tmp/$(driver/ghci_dist_PROG)
$(CP) $< $@
"$(CP)" $< $@
install : install_driver_ghcii
......@@ -50,8 +50,8 @@ install : install_driver_ghcii
install_driver_ghcii: GHCII_SCRIPT=$(DESTDIR)$(bindir)/ghcii.sh
install_driver_ghcii: GHCII_SCRIPT_VERSIONED = $(DESTDIR)$(bindir)/ghcii-$(ProjectVersion).sh
install_driver_ghcii:
$(MKDIRHIER) $(DESTDIR)$(bindir)
$(RM) -f $(GHCII_SCRIPT)
"$(MKDIRHIER)" $(DESTDIR)$(bindir)
"$(RM)" $(RM_OPTS) $(GHCII_SCRIPT)
echo "#!$(SHELL)" >> $(GHCII_SCRIPT)
echo 'exec "$$0"/../ghc --interactive $${1+"$$@"}' >> $(GHCII_SCRIPT)
$(EXECUTABLE_FILE) $(GHCII_SCRIPT)
......
......@@ -414,11 +414,11 @@ endef
PRIMOPS_TXT = $(GHC_COMPILER_DIR)/prelude/primops.txt
libraries/ghc-prim/dist-install/build/GHC/PrimopWrappers.hs : $(GENPRIMOP_INPLACE) $(PRIMOPS_TXT)
$(MKDIRHIER) $(dir $@)
$(GENPRIMOP_INPLACE) --make-haskell-wrappers <$(PRIMOPS_TXT) >$@
"$(MKDIRHIER)" $(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) >$@
"$(GENPRIMOP_INPLACE)" --make-haskell-source <$(PRIMOPS_TXT) >$@
# -----------------------------------------------------------------------------
......@@ -628,20 +628,20 @@ $(INPLACE)/stamp-mingw : $(MKDIRHIER)
$(MKDIRHIER) $(INPLACE_MINGW)/bin
GCC=`type -p $(WhatGccIsCalled)`; \
GccDir=`dirname $$GCC`; \
$(CP) -p $$GccDir/{gcc.exe,ar.exe,as.exe,dlltool.exe,dllwrap.exe,windres.exe} $(INPLACE_MINGW)/bin; \
$(CP) -Rp $$GccDir/../include $(INPLACE_MINGW); \
$(CP) -Rp $$GccDir/../lib $(INPLACE_MINGW); \
$(CP) -Rp $$GccDir/../libexec $(INPLACE_MINGW); \
$(CP) -Rp $$GccDir/../mingw32 $(INPLACE_MINGW)
"$(CP)" -p $$GccDir/{gcc.exe,ar.exe,as.exe,dlltool.exe,dllwrap.exe,windres.exe} $(INPLACE_MINGW)/bin; \
"$(CP)" -Rp $$GccDir/../include $(INPLACE_MINGW); \
"$(CP)" -Rp $$GccDir/../lib $(INPLACE_MINGW); \
"$(CP)" -Rp $$GccDir/../libexec $(INPLACE_MINGW); \
"$(CP)" -Rp $$GccDir/../mingw32 $(INPLACE_MINGW)
touch $(INPLACE)/stamp-mingw
install : install_mingw
.PHONY: install_mingw
install_mingw : $(INPLACE_MINGW)
$(CP) -Rp $(INPLACE_MINGW) $(prefix)
"$(CP)" -Rp $(INPLACE_MINGW) $(prefix)
$(INPLACE_LIB)/perl.exe $(INPLACE_LIB)/perl56.dll :
$(CP) $(GhcDir)../{perl.exe,perl56.dll} $(INPLACE_LIB)
"$(CP)" $(GhcDir)../{perl.exe,perl56.dll} $(INPLACE_LIB)
endif # Windows
......@@ -651,13 +651,13 @@ libraries/ghc-prim/dist-install/doc/html/ghc-prim/ghc-prim.haddock: \
libraries/ghc-prim/dist-install/build/autogen/GHC/Prim.hs: \
$(PRIMOPS_TXT) $(GENPRIMOP_INPLACE) $(MKDIRHIER)
$(MKDIRHIER) $(dir $@)
$(GENPRIMOP_INPLACE) --make-haskell-source < $< > $@
"$(MKDIRHIER)" $(dir $@)
"$(GENPRIMOP_INPLACE)" --make-haskell-source < $< > $@
libraries/ghc-prim/dist-install/build/autogen/GHC/PrimopWrappers.hs: \
$(PRIMOPS_TXT) $(GENPRIMOP_INPLACE) $(MKDIRHIER)
$(MKDIRHIER) $(dir $@)
$(GENPRIMOP_INPLACE) --make-haskell-wrappers < $< > $@
"$(MKDIRHIER)" $(dir $@)
"$(GENPRIMOP_INPLACE)" --make-haskell-wrappers < $< > $@
# -----------------------------------------------------------------------------
# Installation
......@@ -694,13 +694,13 @@ install_libs: $(INSTALL_LIBS)
done
install_libexec_scripts: $(INSTALL_LIBEXEC_SCRIPTS)
$(MKDIRHIER) $(DESTDIR)$(libexecdir)
"$(MKDIRHIER)" $(DESTDIR)$(libexecdir)
for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
$(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(DESTDIR)$(libexecdir); \
done
install_libexecs: $(INSTALL_LIBEXECS)
$(MKDIRHIER) $(DESTDIR)$(libexecdir)
"$(MKDIRHIER)" $(DESTDIR)$(libexecdir)
for i in $(INSTALL_LIBEXECS); do \
$(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(DESTDIR)$(libexecdir); \
done
......@@ -723,17 +723,17 @@ endif
install_packages: install_libexecs
install_packages: libffi/package.conf.install rts/package.conf.install
$(MKDIRHIER) $(DESTDIR)$(libdir)
"$(MKDIRHIER)" $(DESTDIR)$(libdir)
echo "[]" > $(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
"$(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
$(foreach p, $(PACKAGES) $(PACKAGES_STAGE2),\
$(GHC_CABAL_INPLACE) install \
"$(GHC_CABAL_INPLACE)" install \
$(INSTALLED_GHC_PKG_REAL) \
$(INSTALLED_PACKAGE_CONF) \
libraries/$p dist-install \
'$(DESTDIR)' '$(prefix)' '$(libdir)' '$(docdir)/libraries' &&) true
$(GHC_CABAL_INPLACE) install \
"$(GHC_CABAL_INPLACE)" install \
$(INSTALLED_GHC_PKG_REAL) \
$(INSTALLED_PACKAGE_CONF) \
compiler stage2 \
......@@ -769,15 +769,15 @@ $(eval $(call bindist,.,\
# the bindist with a relative path
binary-dist:
$(RM) -rf $(BIN_DIST_NAME)
"$(RM)" $(RM_OPTS) -r $(BIN_DIST_NAME)
mkdir $(BIN_DIST_NAME)
set -e; for i in LICENSE compiler ghc rts libraries utils gmp 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_NAME)/; done
ln -s ../distrib/configure-bin.ac $(BIN_DIST_NAME)/configure.ac
cd $(BIN_DIST_NAME) && autoreconf
$(RM) -f $(BIN_DIST_TAR)
"$(RM)" $(RM_OPTS) $(BIN_DIST_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
$(TAR) hcf - -T $(BIN_DIST_LIST) | bzip2 -c >$(BIN_DIST_TAR_BZ2)
"$(TAR)" hcf - -T $(BIN_DIST_LIST) | bzip2 -c >$(BIN_DIST_TAR_BZ2)
nTimes = set -e; for i in `seq 1 $(1)`; do echo Try "$$i: $(2)"; if $(2); then break; fi; done
......@@ -832,7 +832,7 @@ sdist : VERSION
# "stage2" is the dist dir.
sdist_file = \
if test -f $(TOP)/$1/$2/build/$4.hs; then \
$(CP) $(TOP)/$1/$2/build/$4.hs $1/$3/ ; \
"$(CP)" $(TOP)/$1/$2/build/$4.hs $1/$3/ ; \
mv $1/$3/$4.$5 $1/$3/$4.$5.source ;\
else \
echo "does not exist: $1/$2//build/$4.hs"; \
......@@ -841,14 +841,14 @@ sdist_file = \
.PHONY: sdist-prep
sdist-prep :
$(RM) -rf $(SRC_DIST_DIR)
$(RM) $(SRC_DIST_NAME).tar.gz
"$(RM)" $(RM_OPTS) -r $(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 $(TOP)/$$i ); done \
&& for i in $(SRC_DIST_FILES); do $(LN_S) $(TOP)/$$i .; done \
&& $(MAKE) distclean \
&& if test -f $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; mv libraries/haskell-src/Language/Haskell/Parser.ly libraries/haskell-src/Language/Haskell/Parser.ly.source ; fi \
&& if test -f $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then "$(CP)" $(TOP)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; mv libraries/haskell-src/Language/Haskell/Parser.ly libraries/haskell-src/Language/Haskell/Parser.ly.source ; fi \
&& $(call sdist_file,compiler,stage2,cmm,CmmLex,x) \
&& $(call sdist_file,compiler,stage2,cmm,CmmParse,y) \
&& $(call sdist_file,compiler,stage2,main,ParsePkgConf,y) \
......@@ -860,13 +860,13 @@ sdist-prep :
&& $(call sdist_file,utils/hpc,dist,,HpcParser,y) \
&& $(call sdist_file,utils/genprimopcode,dist,,Lexer,x) \
&& $(call sdist_file,utils/genprimopcode,dist,,Parser,y) \
&& $(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" -o -name "*-darcs-backup*" \) -print | xargs $(RM) -rf \
&& "$(RM)" $(RM_OPTS) -r 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" -o -name "*-darcs-backup*" \) -print | xargs "$(RM)" $(RM_OPTS) -r \
)
.PHONY: sdist
sdist : sdist-prep
$(TAR) chf - $(SRC_DIST_NAME) 2>$src_log | bzip2 >$(TOP)/$(SRC_DIST_TARBALL)
"$(TAR)" 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
......@@ -898,43 +898,43 @@ clean : clean_files clean_libraries
.PHONY: clean_files
clean_files :
$(RM) $(CLEAN_FILES)
"$(RM)" $(RM_OPTS) $(CLEAN_FILES)
.PHONY: clean_libraries
clean_libraries:
$(RM) -r $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2))
$(RM) -r $(patsubst %, libraries/%/dist-install, $(PACKAGES) $(PACKAGES_STAGE2))
$(RM) -r $(patsubst %, libraries/%/dist-boot, $(PACKAGES) $(PACKAGES_STAGE2))
"$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist, $(PACKAGES) $(PACKAGES_STAGE2))
"$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist-install, $(PACKAGES) $(PACKAGES_STAGE2))
"$(RM)" $(RM_OPTS) -r $(patsubst %, libraries/%/dist-boot, $(PACKAGES) $(PACKAGES_STAGE2))
distclean : clean
$(RM) config.cache config.status config.log mk/config.h mk/stamp-h
$(RM) mk/config.mk mk/are-validating.mk mk/project.mk
$(RM) extra-gcc-opts docs/users_guide/ug-book.xml
$(RM) compiler/ghc.cabal ghc/ghc-bin.cabal
$(RM) libraries/base/include/HsBaseConfig.h
$(RM) libraries/directory/include/HsDirectoryConfig.h
$(RM) libraries/process/include/HsProcessConfig.h
$(RM) libraries/unix/include/HsUnixConfig.h
$(RM) libraries/old-time/include/HsTimeConfig.h
$(RM) $(patsubst %, libraries/%/config.log, $(PACKAGES) $(PACKAGES_STAGE2))
$(RM) $(patsubst %, libraries/%/config.status, $(PACKAGES) $(PACKAGES_STAGE2))
$(RM) $(patsubst %, libraries/%/include/Hs*Config.h, $(PACKAGES) $(PACKAGES_STAGE2))
$(RM) -r $(patsubst %, libraries/%/autom4te.cache, $(PACKAGES) $(PACKAGES_STAGE2))
"$(RM)" $(RM_OPTS) config.cache config.status config.log mk/config.h mk/stamp-h
"$(RM)" $(RM_OPTS) mk/config.mk mk/are-validating.mk mk/project.mk
"$(RM)" $(RM_OPTS) extra-gcc-opts docs/users_guide/ug-book.xml
"$(RM)" $(RM_OPTS) compiler/ghc.cabal ghc/ghc-bin.cabal
"$(RM)" $(RM_OPTS) libraries/base/include/HsBaseConfig.h
"$(RM)" $(RM_OPTS) libraries/directory/include/HsDirectoryConfig.h
"$(RM)" $(RM_OPTS) libraries/process/include/HsProcessConfig.h
"$(RM)" $(RM_OPTS) libraries/unix/include/HsUnixConfig.h
"$(RM)" $(RM_OPTS) libraries/old-time/include/HsTimeConfig.h
"$(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))
maintainer-clean : distclean
$(RM) configure mk/config.h.in
$(RM) -r autom4te.cache libraries/*/autom4te.cache
$(RM) ghc.spec
$(RM) $(patsubst %, libraries/%/GNUmakefile, \
"$(RM)" $(RM_OPTS) configure mk/config.h.in
"$(RM)" $(RM_OPTS) -r autom4te.cache libraries/*/autom4te.cache
"$(RM)" $(RM_OPTS) ghc.spec
"$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/GNUmakefile, \
$(PACKAGES) $(PACKAGES_STAGE2))
$(RM) $(patsubst %, libraries/%/ghc.mk, $(PACKAGES) $(PACKAGES_STAGE2))
$(RM) $(patsubst %, libraries/%/configure, \
"$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/ghc.mk, $(PACKAGES) $(PACKAGES_STAGE2))
"$(RM)" $(RM_OPTS) $(patsubst %, libraries/%/configure, \
$(PACKAGES) $(PACKAGES_STAGE2))
$(RM) libraries/base/include/HsBaseConfig.h.in
$(RM) libraries/directory/include/HsDirectoryConfig.h.in
$(RM) libraries/process/include/HsProcessConfig.h.in
$(RM) libraries/unix/include/HsUnixConfig.h.in
$(RM) libraries/old-time/include/HsTimeConfig.h.in
"$(RM)" $(RM_OPTS) libraries/base/include/HsBaseConfig.h.in
"$(RM)" $(RM_OPTS) libraries/directory/include/HsDirectoryConfig.h.in
"$(RM)" $(RM_OPTS) libraries/process/include/HsProcessConfig.h.in
"$(RM)" $(RM_OPTS) libraries/unix/include/HsUnixConfig.h.in
"$(RM)" $(RM_OPTS) libraries/old-time/include/HsTimeConfig.h.in
.PHONY: all_libraries
......
......@@ -117,7 +117,7 @@ all_ghc_stage2 : $(GHC_STAGE2)
all_ghc_stage3 : $(GHC_STAGE3)
$(INPLACE_LIB)/extra-gcc-opts : extra-gcc-opts
$(CP) $< $@
"$(CP)" $< $@
# The GHC programs need to depend on all the helper programs they might call
ifeq "$(GhcUnregisterised)" "NO"
......@@ -149,15 +149,15 @@ ifeq "$(Windows)" "NO"
install: install_ghc_link
.PNONY: install_ghc_link
install_ghc_link:
$(RM) -f $(DESTDIR)$(bindir)/ghc
$(LN_S) ghc-$(ProjectVersion) $(DESTDIR)$(bindir)/ghc
"$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghc
"$(LN_S)" ghc-$(ProjectVersion) $(DESTDIR)$(bindir)/ghc
else
# On Windows we install the main binary as $(bindir)/ghc.exe
# To get ghc-<version>.exe we have a little C program in driver/ghc
install: install_ghc_post
.PHONY: install_ghc_post
install_ghc_post: install_bins
$(RM) -f $(DESTDIR)$(bindir)/ghc.exe
$(MV) -f $(DESTDIR)$(bindir)/ghc-stage$(INSTALL_GHC_STAGE).exe $(DESTDIR)$(bindir)/ghc.exe
"$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghc.exe
"$(MV)" -f $(DESTDIR)$(bindir)/ghc-stage$(INSTALL_GHC_STAGE).exe $(DESTDIR)$(bindir)/ghc.exe
endif
......@@ -73,7 +73,7 @@ $(includes_H_CONFIG) : mk/config.h mk/config.mk includes/ghc.mk
endif
$(includes_H_PLATFORM) : includes/Makefile
$(RM) $@
"$(RM)" $(RM_OPTS) $@
@echo "Creating $@..."
@echo "#ifndef __GHCPLATFORM_H__" >$@
@echo "#define __GHCPLATFORM_H__" >>$@
......
......@@ -105,14 +105,14 @@ endif
ifneq "$(BINDIST)" "YES"
$(libffi_STAMP_CONFIGURE):
$(RM) -rf $(LIBFFI_DIR) libffi/build
"$(RM)" $(RM_OPTS) -r $(LIBFFI_DIR) libffi/build
cd libffi && $(TAR) -zxf tarball/libffi*.tar.gz
mv libffi/libffi-* libffi/build
chmod +x libffi/ln
cd libffi && $(PATCH) -p0 < libffi.dllize-3.0.6.patch
# This patch is just the resulting delta from running automake, autoreconf, libtoolize --force --copy
cd libffi && $(PATCH) -p0 < libffi.autotools-update.patch
cd libffi && "$(PATCH)" -p0 < libffi.autotools-update.patch
cd libffi && \
(set -o igncr 2>/dev/null) && set -o igncr; export SHELLOPTS; \
......@@ -122,7 +122,7 @@ $(libffi_STAMP_CONFIGURE):
CC=$(WhatGccIsCalled) \
CFLAGS="$(SRC_CC_OPTS)" \
LDFLAGS="$(SRC_LD_OPTS)" \
$(SHELL) configure \
"$(SHELL)" configure \
--enable-static=yes \
--enable-shared=$(libffi_EnableShared) \
--host=$(PLATFORM) --build=$(PLATFORM)
......@@ -131,18 +131,18 @@ $(libffi_STAMP_CONFIGURE):
# NOTE: this builds libffi_convience.so with the incorrect
# soname, but we don't need that anyway!
cd libffi && \
$(CP) build/libtool build/libtool.orig; \
"$(CP)" build/libtool build/libtool.orig; \
sed -e s/soname_spec=.*/soname_spec="$(libffi_HS_DYN_LIB_NAME)"/ build/libtool.orig > build/libtool
# We don't want libtool's cygwin hacks
cd libffi && \
$(CP) build/libtool build/libtool.orig; \
"$(CP)" build/libtool build/libtool.orig; \
sed -e s/dlname=\'\$$tdlname\'/dlname=\'\$$dlname\'/ build/libtool.orig > build/libtool
touch $@
libffi/ffi.h: $(libffi_STAMP_CONFIGURE)
$(CP) libffi/build/include/ffi.h $@
"$(CP)" libffi/build/include/ffi.h $@
$(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE)
cd libffi && \
......@@ -153,8 +153,8 @@ $(libffi_STAMP_BUILD): $(libffi_STAMP_CONFIGURE)
$(libffi_STATIC_LIB): $(libffi_STAMP_BUILD)
# Rename libffi.a to libHSffi.a
libffi/libHSffi.a libffi/libHSffi_p.a: $(libffi_STATIC_LIB)
$(CP) $(libffi_STATIC_LIB) libffi/libHSffi.a
$(CP) $(libffi_STATIC_LIB) libffi/libHSffi_p.a
"$(CP)" $(libffi_STATIC_LIB) libffi/libHSffi.a
"$(CP)" $(libffi_STATIC_LIB) libffi/libHSffi_p.a
$(eval $(call all-target,libffi,libffi/libHSffi.a libffi/libHSffi_p.a))
......@@ -166,7 +166,7 @@ $(eval $(call all-target,libffi,libffi/libHSffi.a libffi/libHSffi_p.a))
libffi/HSffi.o: libffi/libHSffi.a
cd libffi && \
touch empty.c; \
$(CC) $(SRC_CC_OPTS) -c empty.c -o HSffi.o
"$(CC)" $(SRC_CC_OPTS) -c empty.c -o HSffi.o
$(eval $(call all-target,libffi,libffi/HSffi.o))
......@@ -178,7 +178,7 @@ libffi/libffi.dll.a $(libffi_HS_DYN_LIB): $(libffi_STAMP_BUILD)
# However, the renaming is still required for the import library
# libffi.dll.a.
$(libffi_HS_DYN_LIB).a: libffi/libffi.dll.a
$(CP) libffi/libffi.dll.a $(libffi_HS_DYN_LIB).a
"$(CP)" libffi/libffi.dll.a $(libffi_HS_DYN_LIB).a
$(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB).a))
......@@ -186,7 +186,7 @@ else
$(libffi_DYNAMIC_LIBS): $(libffi_STAMP_BUILD)
# Rename libffi.so to libHSffi...so
$(libffi_HS_DYN_LIB): $(libffi_DYNAMIC_LIBS)
$(CP) $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)
"$(CP)" $(word 1,$(libffi_DYNAMIC_LIBS)) $(libffi_HS_DYN_LIB)
$(eval $(call all-target,libffi,$(libffi_HS_DYN_LIB)))
endif
......
......@@ -46,5 +46,6 @@ INPLACE_BIN = $(INPLACE)/bin
INPLACE_LIB = $(INPLACE)/lib
INPLACE_MINGW = $(INPLACE)/mingw
RM = rm -f
RM = rm
RM_OPTS = -f
......@@ -63,21 +63,21 @@ endif
rts_AUTO_APPLY_CMM = rts/dist/build/AutoApply.cmm
$(rts_AUTO_APPLY_CMM): $(GENAPPLY_INPLACE)
$(RM) $@
$(GENAPPLY_INPLACE) >$@
"$(RM)" $(RM_OPTS) $@
"$(GENAPPLY_INPLACE)" >$@
rts/dist/build/sm/Evac_thr.c : rts/sm/Evac.c
$(MKDIRHIER) $(dir $@)
"$(MKDIRHIER)" $(dir $@)
cp $< $@
rts/dist/build/sm/Scav_thr.c : rts/sm/Scav.c
$(MKDIRHIER) $(dir $@)
"$(MKDIRHIER)" $(dir $@)
cp $< $@
rts_H_FILES = $(wildcard $(GHC_INCLUDE_DIR)/*.h) $(wildcard rts/*.h)
# collect the -l flags that we need to link the rts dyn lib.
rts/libs.depend : $(GHC_PKG_INPLACE)
$(GHC_PKG_INPLACE) field rts extra-libraries \
"$(GHC_PKG_INPLACE)" field rts extra-libraries \
| sed -e 's/^extra-libraries: //' -e 's/\([a-z]*\)/-l\1/g' > $@
#-----------------------------------------------------------------------------
......@@ -95,30 +95,30 @@ ifneq "$$(CLEANING)" "YES"
ifneq "$$(BootingFromHc)" "YES"
$1/$2/build/%.$$($3_way_)o : $1/%.cmm $$(rts_H_FILES) $$($1_$2_HC)
$$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
"$$($1_$2_HC)" $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
$1/$2/build/%.$$($3_way_)o : $1/$2/build/%.cmm $$(rts_H_FILES) $$($1_$2_HC)
$$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
"$$($1_$2_HC)" $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
$1/$2/build/%.$$($3_way_)hc : $1/%.cmm $$(rts_H_FILES) $$($1_$2_HC)
$$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
"$$($1_$2_HC)" $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
$1/$2/build/%.$$($3_way_)hc : $1/$2/build/%.cmm $$(rts_H_FILES) $$($1_$2_HC)
$$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
"$$($1_$2_HC)" $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
$1/$2/build/%.$$($3_way_)s : $1/%.cmm $$(rts_H_FILES) $$($1_$2_HC)
$$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
"$$($1_$2_HC)" $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
$1/$2/build/%.$$($3_way_)s : $1/$2/build/%.cmm $$(rts_H_FILES) $$($1_$2_HC)
$$($1_$2_HC) $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
"$$($1_$2_HC)" $$($1_$2_$3_MOST_HC_OPTS) -c $$< -o $$@
endif
$1/$2/build/%.$$($3_way_)o : $1/%.hc
$$(CC) $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@
"$$(CC)" $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@
$1/$2/build/%.$$($3_way_)o : $1/$2/build/%.hc
$$(CC) $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@
"$$(CC)" $$($1_$2_$3_ALL_CC_OPTS) -Iincludes -x c -c $$< -o $$@
endif
......@@ -132,8 +132,8 @@ ifneq "$$(findstring debug, $1)" ""
rts_dist_$1_HC_OPTS =
rts_dist_$1_CC_OPTS = -g -O0
else
rts_dist_$1_HC_OPTS = $(GhcRtsHcOpts)
rts_dist_$1_CC_OPTS = $(GhcRtsCcOpts)
rts_dist_$1_HC_OPTS = $$(GhcRtsHcOpts)
rts_dist_$1_CC_OPTS = $$(GhcRtsCcOpts)
endif
ifneq "$$(findstring thr, $1)" ""
......@@ -148,19 +148,19 @@ rts_$1_LIB = rts/dist/build/libHSrts$$($1_libsuf)
rts_$1_C_OBJS = $$(patsubst rts/%.c,rts/dist/build/%.$$($1_osuf),$$(rts_C_SRCS)) $$(patsubst %.c,%.$$($1_osuf),$$(rts_$1_EXTRA_C_SRCS))
rts_$1_S_OBJS = $$(patsubst rts/%.S,rts/dist/build/%.$$($1_osuf),$$(rts_S_SRCS))
rts_$1_CMM_OBJS = $$(patsubst rts/%.cmm,rts/dist/build/%.$$($1_osuf),$$(rts_CMM_SRCS)) $$(patsubst %.cmm,%.$$($1_osuf),$(rts_AUTO_APPLY_CMM))
rts_$1_CMM_OBJS = $$(patsubst rts/%.cmm,rts/dist/build/%.$$($1_osuf),$$(rts_CMM_SRCS)) $$(patsubst %.cmm,%.$$($1_osuf),$$(rts_AUTO_APPLY_CMM))
rts_$1_OBJS = $$(rts_$1_C_OBJS) $$(rts_$1_S_OBJS) $$(rts_$1_CMM_OBJS)
ifneq "$$(findstring dyn, $1)" ""
$$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend
$$(RM) $$@
$$(rts_dist_HC) -shared -dynamic -dynload deploy \
"$$(RM)" $$(RM_OPTS) $$@
"$$(rts_dist_HC)" -shared -dynamic -dynload deploy \
-no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) -o $$@
else
$$(rts_$1_LIB) : $$(rts_$1_OBJS)
$$(RM) $$@
echo $$(rts_$1_OBJS) | $$(XARGS) $$(AR) $$(EXTRA_AR_ARGS) $$@
"$$(RM)" $$(RM_OPTS) $$@
echo $$(rts_$1_OBJS) | "$$(XARGS)" $$(AR) $$(EXTRA_AR_ARGS) $$@
endif
endef
......@@ -399,7 +399,7 @@ rts_LD_OPTS += -Llibffi/build/include
DYNWRAPPER_SRC = rts/dyn-wrapper.c
DYNWRAPPER_PROG = rts/dyn-wrapper$(exeext)
$(DYNWRAPPER_PROG): $(DYNWRAPPER_SRC)
$(HC) -cpp -optc-include -optcdyn-wrapper-patchable-behaviour.h $(INPLACE_EXTRA_FLAGS) $< -o $@
"$(HC)" -cpp -optc-include -optcdyn-wrapper-patchable-behaviour.h $(INPLACE_EXTRA_FLAGS) $< -o $@
# -----------------------------------------------------------------------------
# build the static lib containing the C main symbol
......@@ -432,9 +432,9 @@ install : install_rts
.PHONY: install_rts
install_rts:
$(MKDIRHIER) $(DESTDIR)$(libdir)
$(MKDIRHIER) $(DESTDIR)$(libdir)/include
$(CP) $(ALL_RTS_LIBS) $(DESTDIR)$(libdir)
"$(MKDIRHIER)" $(DESTDIR)$(libdir)
"$(MKDIRHIER)" $(DESTDIR)$(libdir)/include
"$(CP)" $(ALL_RTS_LIBS) $(DESTDIR)$(libdir)
# -----------------------------------------------------------------------------
# cleaning
......
......@@ -22,17 +22,17 @@ endif
ifneq "$$($1_$2_NO_BUILD_DEPS)" "YES"