This means we can remove some conditional stuff from the Makefiles,
and means the testsuite doesn't have to work out whether or not it's
on Windows.
13 files changed:
.PHONY: install_driver_ghci
install_driver_ghci: WRAPPER=$(DESTDIR)$(bindir)/ghci-$(ProjectVersion)
install_driver_ghci:
.PHONY: install_driver_ghci
install_driver_ghci: WRAPPER=$(DESTDIR)$(bindir)/ghci-$(ProjectVersion)
install_driver_ghci:
- $(INSTALL_DIR) $(DESTDIR)$(bindir)
- "$(RM)" $(RM_OPTS) $(WRAPPER)
- $(CREATE_SCRIPT) $(WRAPPER)
- echo '#!$(SHELL)' >> $(WRAPPER)
- echo 'exec $(bindir)/ghc-$(ProjectVersion) --interactive $${1+"$$@"}' >> $(WRAPPER)
- $(EXECUTABLE_FILE) $(WRAPPER)
- "$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghci
- $(LN_S) ghci-$(ProjectVersion) $(DESTDIR)$(bindir)/ghci
+ $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
+ "$(RM)" $(RM_OPTS) "$(WRAPPER)"
+ $(CREATE_SCRIPT) "$(WRAPPER)"
+ echo '#!$(SHELL)' >> "$(WRAPPER)"
+ echo 'exec "$(bindir)/ghc-$(ProjectVersion)" --interactive $${1+"$$@"}' >> "$(WRAPPER)"
+ $(EXECUTABLE_FILE) "$(WRAPPER)"
+ "$(RM)" $(RM_OPTS) "$(DESTDIR)$(bindir)/ghci"
+ $(LN_S) ghci-$(ProjectVersion) "$(DESTDIR)$(bindir)/ghci"
install_topdirs install_topdir_scripts
install_bins: $(INSTALL_BINS)
install_topdirs install_topdir_scripts
install_bins: $(INSTALL_BINS)
- $(INSTALL_DIR) $(DESTDIR)$(bindir)
+ $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
for i in $(INSTALL_BINS); do \
for i in $(INSTALL_BINS); do \
- $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(DESTDIR)$(bindir) ; \
+ $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i "$(DESTDIR)$(bindir)" ; \
if test "$(darwin_TARGET_OS)" = "1"; then \
if test "$(darwin_TARGET_OS)" = "1"; then \
- sh mk/fix_install_names.sh $(ghclibdir) $(DESTDIR)$(bindir)/$$i ; \
+ sh mk/fix_install_names.sh $(ghclibdir) "$(DESTDIR)$(bindir)/$$i" ; \
fi ; \
done
install_libs: $(INSTALL_LIBS)
fi ; \
done
install_libs: $(INSTALL_LIBS)
- $(INSTALL_DIR) $(DESTDIR)$(ghclibdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(ghclibdir)"
for i in $(INSTALL_LIBS); do \
case $$i in \
*.a) \
for i in $(INSTALL_LIBS); do \
case $$i in \
*.a) \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir); \
+ $(INSTALL_DATA) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)"; \
$(RANLIB) $(DESTDIR)$(ghclibdir)/`basename $$i` ;; \
*.dll) \
$(RANLIB) $(DESTDIR)$(ghclibdir)/`basename $$i` ;; \
*.dll) \
- $(INSTALL_DATA) -s $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir) ;; \
+ $(INSTALL_DATA) -s $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)" ;; \
- $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir) ;; \
+ $(INSTALL_SHLIB) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)" ;; \
- $(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_name_tool -id "$(DESTDIR)$(ghclibdir)/`basename $$i`" "$(DESTDIR)$(ghclibdir)/`basename $$i`" ;; \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibdir); \
+ $(INSTALL_DATA) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibdir)"; \
ifeq "$(INSTALL_LIBEXEC_SCRIPTS)" ""
@:
else
ifeq "$(INSTALL_LIBEXEC_SCRIPTS)" ""
@:
else
- $(INSTALL_DIR) $(DESTDIR)$(ghclibexecdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(ghclibexecdir)"
for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
- $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghclibexecdir); \
+ $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghclibexecdir)"; \
ifeq "$(INSTALL_LIBEXECS)" ""
@:
else
ifeq "$(INSTALL_LIBEXECS)" ""
@:
else
- $(INSTALL_DIR) $(DESTDIR)$(ghclibexecdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(ghclibexecdir)"
for i in $(INSTALL_LIBEXECS); do \
for i in $(INSTALL_LIBEXECS); do \
- $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(DESTDIR)$(ghclibexecdir); \
+ $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i "$(DESTDIR)$(ghclibexecdir)"; \
done
endif
install_topdir_scripts: $(INSTALL_TOPDIR_SCRIPTS)
done
endif
install_topdir_scripts: $(INSTALL_TOPDIR_SCRIPTS)
- $(INSTALL_DIR) $(DESTDIR)$(topdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(topdir)"
for i in $(INSTALL_TOPDIR_SCRIPTS); do \
for i in $(INSTALL_TOPDIR_SCRIPTS); do \
- $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(DESTDIR)$(topdir); \
+ $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i "$(DESTDIR)$(topdir)"; \
done
install_topdirs: $(INSTALL_TOPDIRS)
done
install_topdirs: $(INSTALL_TOPDIRS)
- $(INSTALL_DIR) $(DESTDIR)$(topdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(topdir)"
for i in $(INSTALL_TOPDIRS); do \
for i in $(INSTALL_TOPDIRS); do \
- $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(DESTDIR)$(topdir); \
+ $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i "$(DESTDIR)$(topdir)"; \
done
install_headers: $(INSTALL_HEADERS)
done
install_headers: $(INSTALL_HEADERS)
- $(INSTALL_DIR) $(DESTDIR)$(ghcheaderdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(ghcheaderdir)"
for i in $(INSTALL_HEADERS); do \
for i in $(INSTALL_HEADERS); do \
- $(INSTALL_HEADER) $(INSTALL_OPTS) $$i $(DESTDIR)$(ghcheaderdir); \
+ $(INSTALL_HEADER) $(INSTALL_OPTS) $$i "$(DESTDIR)$(ghcheaderdir)"; \
done
install_docs: $(INSTALL_HEADERS)
done
install_docs: $(INSTALL_HEADERS)
- $(INSTALL_DIR) $(DESTDIR)$(docdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(docdir)"
ifneq "$(INSTALL_DOCS)" ""
for i in $(INSTALL_DOCS); do \
ifneq "$(INSTALL_DOCS)" ""
for i in $(INSTALL_DOCS); do \
- $(INSTALL_DOC) $(INSTALL_OPTS) $$i $(DESTDIR)$(docdir); \
+ $(INSTALL_DOC) $(INSTALL_OPTS) $$i "$(DESTDIR)$(docdir)"; \
- $(INSTALL_DIR) $(INSTALL_OPTS) $(DESTDIR)$(docdir)/html
- $(INSTALL_DOC) $(INSTALL_OPTS) docs/index.html $(DESTDIR)$(docdir)/html
+ $(INSTALL_DIR) $(INSTALL_OPTS) "$(DESTDIR)$(docdir)/html"
+ $(INSTALL_DOC) $(INSTALL_OPTS) docs/index.html "$(DESTDIR)$(docdir)/html"
ifneq "$(INSTALL_LIBRARY_DOCS)" ""
for i in $(INSTALL_LIBRARY_DOCS); do \
ifneq "$(INSTALL_LIBRARY_DOCS)" ""
for i in $(INSTALL_LIBRARY_DOCS); do \
- $(INSTALL_DOC) $(INSTALL_OPTS) $$i $(DESTDIR)$(docdir)/html/libraries/; \
+ $(INSTALL_DOC) $(INSTALL_OPTS) $$i "$(DESTDIR)$(docdir)/html/libraries/"; \
done
endif
ifneq "$(INSTALL_HTML_DOC_DIRS)" ""
for i in $(INSTALL_HTML_DOC_DIRS); do \
done
endif
ifneq "$(INSTALL_HTML_DOC_DIRS)" ""
for i in $(INSTALL_HTML_DOC_DIRS); do \
- $(INSTALL_DIR) $(INSTALL_OPTS) $(DESTDIR)$(docdir)/html/`basename $$i`; \
- $(INSTALL_DOC) $(INSTALL_OPTS) $$i/* $(DESTDIR)$(docdir)/html/`basename $$i`; \
+ $(INSTALL_DIR) $(INSTALL_OPTS) "$(DESTDIR)$(docdir)/html/`basename $$i`"; \
+ $(INSTALL_DOC) $(INSTALL_OPTS) $$i/* "$(DESTDIR)$(docdir)/html/`basename $$i`"; \
install_packages: install_libexecs
install_packages: libffi/package.conf.install rts/package.conf.install
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)
- $(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
+ $(INSTALL_DIR) "$(DESTDIR)$(topdir)"
+ "$(RM)" -r $(RM_OPTS) "$(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
$(foreach p, $(ALL_INSTALLED_PACKAGES),\
"$(GHC_CABAL_INPLACE)" install \
$(foreach p, $(ALL_INSTALLED_PACKAGES),\
"$(GHC_CABAL_INPLACE)" install \
- $(INSTALLED_GHC_REAL) \
- $(INSTALLED_GHC_PKG_REAL) \
- $(DESTDIR)$(topdir) \
+ "$(INSTALLED_GHC_REAL)" \
+ "$(INSTALLED_GHC_PKG_REAL)" \
+ "$(DESTDIR)$(topdir)" \
$p $(INSTALL_DISTDIR_$p) \
'$(DESTDIR)' '$(prefix)' '$(ghclibdir)' '$(docdir)/html/libraries' \
$(RelocatableBuild) &&) true
$(foreach p, $(HIDDEN_PACKAGES),\
$p $(INSTALL_DISTDIR_$p) \
'$(DESTDIR)' '$(prefix)' '$(ghclibdir)' '$(docdir)/html/libraries' \
$(RelocatableBuild) &&) true
$(foreach p, $(HIDDEN_PACKAGES),\
- $(INSTALLED_GHC_PKG_REAL) --global-conf $(INSTALLED_PACKAGE_CONF) \
+ "$(INSTALLED_GHC_PKG_REAL)" --global-conf "$(INSTALLED_PACKAGE_CONF)" \
hide $p &&) true
# -----------------------------------------------------------------------------
hide $p &&) true
# -----------------------------------------------------------------------------
install: install_ghc_link
.PNONY: install_ghc_link
install_ghc_link:
install: install_ghc_link
.PNONY: install_ghc_link
install_ghc_link:
- "$(RM)" $(RM_OPTS) $(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
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
-exec $executablename -B$topdir ${1+"$@"}
+exec "$executablename" -B"$topdir" ${1+"$@"}
.PHONY: install_includes
install_includes :
.PHONY: install_includes
install_includes :
- $(INSTALL_DIR) $(DESTDIR)$(ghcheaderdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(ghcheaderdir)"
for d in $(includes_subdirs); do \
for d in $(includes_subdirs); do \
- $(INSTALL_DIR) $(DESTDIR)$(ghcheaderdir)/$$d; \
+ $(INSTALL_DIR) "$(DESTDIR)$(ghcheaderdir)/$$d"; \
done
for i in $(subst includes/,,$(includes_H_FILES) $(includes_H_CONFIG) $(includes_H_PLATFORM)); do \
done
for i in $(subst includes/,,$(includes_H_FILES) $(includes_H_CONFIG) $(includes_H_PLATFORM)); do \
- $(INSTALL_HEADER) $(INSTALL_OPTS) includes/$$i $(DESTDIR)$(ghcheaderdir)/$$i; \
+ $(INSTALL_HEADER) $(INSTALL_OPTS) includes/$$i "$(DESTDIR)$(ghcheaderdir)/$$i"; \
#
################################################################################
#
################################################################################
BIN_DIST_INST_SUBDIR = "install dir"
BIN_DIST_INST_SUBDIR = "install dir"
-else
-# I very much doubt that paths with spaces will work on Unix
-BIN_DIST_INST_SUBDIR = installed
-endif
-
BIN_DIST_INST_DIR = $(TOP)/bindisttest/$(BIN_DIST_INST_SUBDIR)
BIN_DIST_INST_DIR = $(TOP)/bindisttest/$(BIN_DIST_INST_SUBDIR)
# Invocations of `install' for the four different classes
# of targets:
#
# Invocations of `install' for the four different classes
# of targets:
#
-CREATE_SCRIPT = create () { touch $$1 && chmod 755 $$1 ; } && create
-CREATE_DATA = create () { touch $$1 && chmod 644 $$1 ; } && create
+CREATE_SCRIPT = create () { touch "$$1" && chmod 755 "$$1" ; } && create
+CREATE_DATA = create () { touch "$$1" && chmod 644 "$$1" ; } && create
INSTALL_PROGRAM = $(INSTALL) -m 755
INSTALL_SCRIPT = $(INSTALL) -m 755
INSTALL_SHLIB = $(INSTALL) -m 755
INSTALL_PROGRAM = $(INSTALL) -m 755
INSTALL_SCRIPT = $(INSTALL) -m 755
INSTALL_SHLIB = $(INSTALL) -m 755
.PHONY: install_rts
install_rts:
.PHONY: install_rts
install_rts:
- $(INSTALL_DIR) $(DESTDIR)$(ghclibdir)
- $(INSTALL_DIR) $(DESTDIR)$(ghclibdir)/include
- "$(CP)" $(ALL_RTS_LIBS) $(DESTDIR)$(ghclibdir)
+ $(INSTALL_DIR) "$(DESTDIR)$(ghclibdir)"
+ $(INSTALL_DIR) "$(DESTDIR)$(ghclibdir)/include"
+ "$(CP)" $(ALL_RTS_LIBS) "$(DESTDIR)$(ghclibdir)"
# -----------------------------------------------------------------------------
# cleaning
# -----------------------------------------------------------------------------
# cleaning
$$(INPLACE_BIN)/$$($1_$2_PROG): $$($1_$2_INPLACE)
"$$(RM)" $$(RM_OPTS) $$@
echo '#!$$(SHELL)' >> $$@
$$(INPLACE_BIN)/$$($1_$2_PROG): $$($1_$2_INPLACE)
"$$(RM)" $$(RM_OPTS) $$@
echo '#!$$(SHELL)' >> $$@
- echo 'executablename=$$(TOP)/$$<' >> $$@
- echo 'datadir=$$(TOP)/$$(INPLACE_LIB)' >> $$@
- echo 'bindir=$$(TOP)/$$(INPLACE_BIN)' >> $$@
- echo 'topdir=$$(TOP)/$$(INPLACE_TOPDIR)' >> $$@
+ echo 'executablename="$$(TOP)/$$<"' >> $$@
+ echo 'datadir="$$(TOP)/$$(INPLACE_LIB)"' >> $$@
+ echo 'bindir="$$(TOP)/$$(INPLACE_BIN)"' >> $$@
+ echo 'topdir="$$(TOP)/$$(INPLACE_TOPDIR)"' >> $$@
cat $$($1_$2_SHELL_WRAPPER_NAME) >> $$@
$$(EXECUTABLE_FILE) $$@
endif
cat $$($1_$2_SHELL_WRAPPER_NAME) >> $$@
$$(EXECUTABLE_FILE) $$@
endif
install_$1_$2_wrapper: WRAPPER=$$(DESTDIR)$$(bindir)/$$($1_$2_INSTALL_SHELL_WRAPPER_NAME)
install_$1_$2_wrapper:
$$(INSTALL_DIR) $$(DESTDIR)$$(bindir)
install_$1_$2_wrapper: WRAPPER=$$(DESTDIR)$$(bindir)/$$($1_$2_INSTALL_SHELL_WRAPPER_NAME)
install_$1_$2_wrapper:
$$(INSTALL_DIR) $$(DESTDIR)$$(bindir)
- "$$(RM)" $$(RM_OPTS) $$(WRAPPER)
- $$(CREATE_SCRIPT) $$(WRAPPER)
- echo '#!$$(SHELL)' >> $$(WRAPPER)
- echo 'executablename=$$(ghclibexecdir)/$$($1_$2_PROG)' >> $$(WRAPPER)
- echo 'datadir=$$(datadir)' >> $$(WRAPPER)
- echo 'bindir=$$(bindir)' >> $$(WRAPPER)
- echo 'topdir=$$(topdir)' >> $$(WRAPPER)
- cat $$($1_$2_SHELL_WRAPPER_NAME) >> $$(WRAPPER)
- $$(EXECUTABLE_FILE) $$(WRAPPER)
+ "$$(RM)" $$(RM_OPTS) "$$(WRAPPER)"
+ $$(CREATE_SCRIPT) "$$(WRAPPER)"
+ echo '#!$$(SHELL)' >> "$$(WRAPPER)"
+ echo 'executablename="$$(ghclibexecdir)/$$($1_$2_PROG)"' >> "$$(WRAPPER)"
+ echo 'datadir="$$(datadir)"' >> "$$(WRAPPER)"
+ echo 'bindir="$$(bindir)"' >> "$$(WRAPPER)"
+ echo 'topdir="$$(topdir)"' >> "$$(WRAPPER)"
+ cat $$($1_$2_SHELL_WRAPPER_NAME) >> "$$(WRAPPER)"
+ $$(EXECUTABLE_FILE) "$$(WRAPPER)"
endif # $1_$2_INSTALL_SHELL_WRAPPER
endif # $1_$2_INSTALL_SHELL_WRAPPER
-PKGCONF=$topdir/package.conf.d
-exec $executablename --global-conf $PKGCONF ${1+"$@"}
+PKGCONF="$topdir/package.conf.d"
+exec "$executablename" --global-conf "$PKGCONF" ${1+"$@"}
.PNONY: install_utils/ghc-pkg_link
install_utils/ghc-pkg_link:
.PNONY: install_utils/ghc-pkg_link
install_utils/ghc-pkg_link:
- $(INSTALL_DIR) $(DESTDIR)$(bindir)
- "$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/ghc-pkg
- $(LN_S) ghc-pkg-$(ProjectVersion) $(DESTDIR)$(bindir)/ghc-pkg
+ $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
+ "$(RM)" $(RM_OPTS) "$(DESTDIR)$(bindir)/ghc-pkg"
+ $(LN_S) ghc-pkg-$(ProjectVersion) "$(DESTDIR)$(bindir)/ghc-pkg"
"$(CP)" $(DESTDIR)$(bindir)/runghc$(exeext) $(DESTDIR)$(bindir)/runhaskell$(exeext)
else
install_runhaskell:
"$(CP)" $(DESTDIR)$(bindir)/runghc$(exeext) $(DESTDIR)$(bindir)/runhaskell$(exeext)
else
install_runhaskell:
- "$(RM)" $(RM_OPTS) $(DESTDIR)$(bindir)/runhaskell
- $(LN_S) runghc $(DESTDIR)$(bindir)/runhaskell
+ "$(RM)" $(RM_OPTS) "$(DESTDIR)$(bindir)/runhaskell"
+ $(LN_S) runghc "$(DESTDIR)$(bindir)/runhaskell"
-exec $executablename -f $bindir/ghc ${1+"$@"}
+exec "$executablename" -f "$bindir/ghc" ${1+"$@"}