X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rules%2Fshell-wrapper.mk;h=5df9ff29303d7006ce2e15bc829b99d3d23c50cc;hb=7720e1503ee9b6ea2b949f95287a32b8d3361bb0;hp=a2aca45e3636ba6fdf2b0e27ad0517723df2ec1d;hpb=34cc75e1a62638f2833815746ebce0a9114dc26b;p=ghc-hetmet.git diff --git a/rules/shell-wrapper.mk b/rules/shell-wrapper.mk index a2aca45..5df9ff2 100644 --- a/rules/shell-wrapper.mk +++ b/rules/shell-wrapper.mk @@ -1,10 +1,22 @@ +# ----------------------------------------------------------------------------- +# +# (c) 2009 The University of Glasgow +# +# This file is part of the GHC build system. +# +# To understand how the build system works and how to modify it, see +# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture +# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying +# +# ----------------------------------------------------------------------------- + define shell-wrapper # $1 = dir # $2 = distdir ifeq "$$($1_$2_SHELL_WRAPPER)" "YES" -ifeq "$(Windows)" "YES" +ifeq "$$(Windows)" "YES" ifeq "$$($1_$2_INSTALL_SHELL_WRAPPER)" "YES" # Just install the binary on Windows @@ -20,12 +32,17 @@ endif ifneq "$$($1_$2_INSTALL_INPLACE)" "NO" all_$1_$2 : $$(INPLACE_BIN)/$$($1_$2_PROG) -$$(INPLACE_BIN)/$$($1_$2_PROG): $$($1_$2_INPLACE) - $$(RM) -f $$@ +$$(INPLACE_BIN)/$$($1_$2_PROG): WRAPPER=$$@ +$$(INPLACE_BIN)/$$($1_$2_PROG): $$($1_$2_INPLACE) $$($1_$2_SHELL_WRAPPER_NAME) + "$$(RM)" $$(RM_OPTS) $$@ echo '#!$$(SHELL)' >> $$@ - echo 'executablename=$$(TOP)/$$<' >> $$@ - echo 'datadir=$$(TOP)/$$(INPLACE_LIB)' >> $$@ - echo 'bindir=$$(TOP)/$$(INPLACE_BIN)' >> $$@ + echo 'executablename="$$(TOP)/$$<"' >> $$@ + echo 'datadir="$$(TOP)/$$(INPLACE_LIB)"' >> $$@ + echo 'bindir="$$(TOP)/$$(INPLACE_BIN)"' >> $$@ + echo 'topdir="$$(TOP)/$$(INPLACE_TOPDIR)"' >> $$@ + echo 'pgmgcc="$$(WhatGccIsCalled)"' >> $$@ + $$($1_$2_SHELL_WRAPPER_EXTRA) + $$($1_$2_INPLACE_SHELL_WRAPPER_EXTRA) cat $$($1_$2_SHELL_WRAPPER_NAME) >> $$@ $$(EXECUTABLE_FILE) $$@ endif @@ -45,14 +62,21 @@ install: install_$1_$2_wrapper .PHONY: install_$1_$2_wrapper install_$1_$2_wrapper: WRAPPER=$$(DESTDIR)$$(bindir)/$$($1_$2_INSTALL_SHELL_WRAPPER_NAME) install_$1_$2_wrapper: - $$(MKDIRHIER) $$(DESTDIR)$$(bindir) - $$(RM) -f $$(WRAPPER) - echo '#!$$(SHELL)' >> $$(WRAPPER) - echo 'executablename=$$(libexecdir)/$$($1_$2_PROG)' >> $$(WRAPPER) - echo 'datadir=$$(datadir)' >> $$(WRAPPER) - echo 'bindir=$$(bindir)' >> $$(WRAPPER) - cat $$($1_$2_SHELL_WRAPPER_NAME) >> $$(WRAPPER) - $$(EXECUTABLE_FILE) $$(WRAPPER) + $$(INSTALL_DIR) "$$(DESTDIR)$$(bindir)" + "$$(RM)" $$(RM_OPTS) "$$(WRAPPER)" + $$(CREATE_SCRIPT) "$$(WRAPPER)" + echo '#!$$(SHELL)' >> "$$(WRAPPER)" + echo 'exedir="$$(ghclibexecdir)"' >> "$$(WRAPPER)" + echo 'exeprog="$$($1_$2_PROG)"' >> "$$(WRAPPER)" + echo 'executablename="$$$$exedir/$$$$exeprog"' >> "$$(WRAPPER)" + echo 'datadir="$$(datadir)"' >> "$$(WRAPPER)" + echo 'bindir="$$(bindir)"' >> "$$(WRAPPER)" + echo 'topdir="$$(topdir)"' >> "$$(WRAPPER)" + echo 'pgmgcc="$$(WhatGccIsCalled)"' >> "$$(WRAPPER)" + $$($1_$2_SHELL_WRAPPER_EXTRA) + $$($1_$2_INSTALL_SHELL_WRAPPER_EXTRA) + cat $$($1_$2_SHELL_WRAPPER_NAME) >> "$$(WRAPPER)" + $$(EXECUTABLE_FILE) "$$(WRAPPER)" endif # $1_$2_INSTALL_SHELL_WRAPPER