X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=distrib%2FMakefile-bin.in;h=fdfdb6a94872ee812ae337f872d9120d49e34de5;hb=ee9ef43a08a6c89168c7eca0983fc58a87fb4481;hp=2c49d47740971b30aa3873305b04a047c0c1b18b;hpb=fb314aa39609799786f39ae484ab7e2740caccfb;p=ghc-hetmet.git diff --git a/distrib/Makefile-bin.in b/distrib/Makefile-bin.in index 2c49d47..fdfdb6a 100644 --- a/distrib/Makefile-bin.in +++ b/distrib/Makefile-bin.in @@ -22,7 +22,7 @@ # Note, if you specify /usr/foo/lib for libdir, # the library files for your fptools package will be # installed in /usr/foo/lib/-, e.g., -# /usr/foo/lib/ghc-2.07. If you don't want the package/version +# /usr/foo/lib/ghc-3.00. If you don't want the package/version # directory appended, you'll have to modify $(real_libdir) # below. # @@ -85,8 +85,11 @@ CP = cp LN_S = @LN_S@ CHMOD = chmod INSTALL = @INSTALL@ +exeext = @exeext@ RAWCPP = @RAWCPP@ SED = @SedCmd@ +TMPDIR = /tmp + # sigh INSTALL_DIR = ./mkdirhier @@ -123,8 +126,8 @@ INSTALL_DATA_OPTS = -m $(LIB_PERMS) $(INSTALL_OPTS) $(EXTRA_INSTALL_DATA_OPTS) config-pkgs :: @echo "Configuring $(package), version $(version), on $(platform) ..." - @if test "$(PACKAGE_PRL_SCRIPTS)"; then \ - for i in $(PACKAGE_PRL_SCRIPTS); do \ + @for i in $(PACKAGE_PRL_SCRIPTS) ""; do \ + if test "$$i"; then \ echo "Creating a configured version of $$i .."; \ $(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \ if [ -f bin/$(platform)/$(package)-$(version)/$$i ]; then $(MV) bin/$(platform)/$(package)-$(version)/$$i bin/$(platform)/$(package)-$(version)/$$i.bak; fi; \ @@ -135,13 +138,14 @@ config-pkgs :: echo '$$'"datadir='$(real_datadir)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \ echo '$$'"SED='$(SED)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \ echo '$$'"RAWCPP='$(RAWCPP)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \ + echo '$$'"TMPDIR='$(TMPDIR)';" >> bin/$(platform)/$(package)-$(version)/$$i ; \ cat bin/$(platform)/$(package)-$(version)/$$i.prl >> bin/$(platform)/$(package)-$(version)/$$i ; \ $(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \ echo "Done."; \ - done; \ - fi - @if test "$(PACKAGE_LIB_PRL_SCRIPTS)"; then \ - for i in $(PACKAGE_LIB_PRL_SCRIPTS); do \ + fi; \ + done + @for i in $(PACKAGE_LIB_PRL_SCRIPTS) ""; do \ + if test "$$i"; then \ echo "Creating a configured version of $$i .."; \ $(RM) lib/$(platform)/$(package)-$(version)/$$i.bak; \ if [ -f lib/$(platform)/$(package)-$(version)/$$i ]; then $(MV) lib/$(platform)/$(package)-$(version)/$$i lib/$(platform)/$(package)-$(version)/$$i.bak; fi; \ @@ -152,13 +156,14 @@ config-pkgs :: echo '$$'"datadir='$(real_datadir)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \ echo '$$'"SED='$(SED)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \ echo '$$'"RAWCPP='$(RAWCPP)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \ + echo '$$'"TMPDIR='$(TMPDIR)';" >> lib/$(platform)/$(package)-$(version)/$$i ; \ cat lib/$(platform)/$(package)-$(version)/$$i.prl >> lib/$(platform)/$(package)-$(version)/$$i; \ $(CHMOD) $(BIN_PERMS) lib/$(platform)/$(package)-$(version)/$$i; \ echo "Done."; \ - done; \ - fi - @if test "$(PACKAGE_SH_SCRIPTS)"; then \ - for i in $(PACKAGE_SH_SCRIPTS); do \ + fi; \ + done + @for i in $(PACKAGE_SH_SCRIPTS) ""; do \ + if test "$$i"; then \ echo "Creating a configured version of $$i .."; \ $(RM) bin/$(platform)/$(package)-$(version)/$$i.bak; \ if [ -f bin/$(platform)/$(package)-$(version)/$$i ]; then $(MV) bin/$(platform)/$(package)-$(version)/$$i bin/$(platform)/$(package)-$(version)/$$i.bak; fi; \ @@ -169,32 +174,27 @@ config-pkgs :: echo "datadir='$(real_datadir)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \ echo "SED='$(SED)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \ echo "RAWCPP='$(RAWCPP)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \ + echo "TMPDIR='$(TMPDIR)'" >> bin/$(platform)/$(package)-$(version)/$$i ; \ cat bin/$(platform)/$(package)-$(version)/$$i.sh >> bin/$(platform)/$(package)-$(version)/$$i; \ $(CHMOD) $(BIN_PERMS) bin/$(platform)/$(package)-$(version)/$$i; \ echo "Done."; \ - done; \ - fi - - -mk-version-symlinks :: - @for i in $(VERSION_SYMLINKS_FOR) ""; do \ - if [ "x$$i" != "x" ]; then \ - echo "Symlinking $$i to $$i-$(version)"; \ - (cd bin/$(platform)/$(package)-$(version); $(RM) $$i-$(version); $(LN_S) $$i $$i-$(version) ); \ - fi;\ + fi; \ done +# Convert pwd's UNC reported path into DOS style +# (cygwin32 only.) +CURRENT_DIR = $(shell pwd | sed 's|^//\(.\)|\1:|' ) + in-place :: - $(MAKE) $(MFLAGS) config-pkgs bindir=`pwd`/bin/$(platform)/$(package)-$(version) libdir=`pwd`/lib/$(platform) datadir=`pwd`/share/$(package)-$(version) - $(MAKE) $(MFLAGS) mk-version-symlinks - @echo "Finished configuring..to use, add `pwd`/bin/$(platform)/$(package)-$(version) to your PATH." + $(MAKE) $(MFLAGS) config-pkgs bindir=$(CURRENT_DIR)/bin/$(platform)/$(package)-$(version) libdir=$(CURRENT_DIR)/lib/$(platform) datadir=$(CURRENT_DIR)/share/$(package)-$(version) + @echo "Finished configuring..to use, add $(CURRENT_DIR)/bin/$(platform)/$(package)-$(version) to your PATH." install-dirs :: $(INSTALL_DIR) $(bindir) (cd lib/$(platform)/$(package)-$(version); find . -type d -exec sh -c '../../../$(INSTALL_DIR) $$0 $(real_libdir)/$$0' {} \; ) (cd share/$(package)-$(version); find . -type d -exec sh -c '../../$(INSTALL_DIR) $(real_datadir)/$$0' {} \; ) -install :: config-pkgs mk-version-symlinks install-dirs install-bin install-libs install-datas +install :: config-pkgs install-dirs install-bin install-libs install-datas .PHONY: install-bin install-libs install-datas @@ -205,9 +205,15 @@ install-bin: for i in $(VERSION_SYMLINKS_FOR) ""; do \ if [ "x$$i" != "x" ]; then \ ( cd $(bindir); \ - $(RM) $$i-$(version); \ - $(MV) $$i $$i-$(version); \ - $(LN_S) $$i-$(version) $$i \ + if ( $(PERL) -e '$$fn="'$$i'"; exit ((! -f $$fn || -l $$fn) ? 0 : 1);' ); then \ + echo "Creating a symbol link from $$i-$(version) to $$i"; \ + $(RM) $$i; \ + $(LN_S) $$i-$(version) $$i; \ + else \ + echo "Creating a symbol link from $$i-$(version) to $$i failed: \`$$i' already exists"; \ + echo "Perhaps remove \`$$i' manually?"; \ + exit 1; \ + fi;\ ); \ fi; \ done