Make versioned ghc and ghci programs on Windows; fixes trac #2827
[ghc-hetmet.git] / driver / ghc / Makefile
index 69abe6c..55167ec 100644 (file)
@@ -1,26 +1,21 @@
-#-----------------------------------------------------------------------------
-# $Id: Makefile,v 1.6 2001/10/23 16:32:30 rrt Exp $
-#
-
 TOP=../..
 include $(TOP)/mk/boilerplate.mk
 
-# -----------------------------------------------------------------------------
-# ghc script
+ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
+C_PROG = ghc-$(ProjectVersion)
+INSTALL_PROGS += $(C_PROG)
+else
+SCRIPT_DIR = $(DESTDIR)$(bindir)
+SCRIPT_BASE = ghc
+SCRIPT_VERSIONED_BASE = $(SCRIPT_BASE)-$(ProjectVersion)
+SCRIPT           = $(SCRIPT_DIR)/$(SCRIPT_BASE)
+SCRIPT_VERSIONED = $(SCRIPT_DIR)/$(SCRIPT_VERSIONED_BASE)
 
-ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
-LINK = ghc
-LINK_TARGET = $(LINK)-$(ProjectVersion)
-INSTALLED_SCRIPT=$(bindir)/$(LINK_TARGET)
 install::
-       $(RM) -f $(INSTALLED_SCRIPT)
-       echo "#!$(SHELL)"                                 >> $(INSTALLED_SCRIPT)
-       echo "GHCBIN=$(libexecdir)/ghc-$(ProjectVersion)" >> $(INSTALLED_SCRIPT)
-       echo "TOPDIROPT=-B$(libdir)"                      >> $(INSTALLED_SCRIPT)
-       echo 'exec $$GHCBIN $$TOPDIROPT $${1+"$$@"}'      >> $(INSTALLED_SCRIPT)
-       $(EXECUTABLE_FILE) $(INSTALLED_SCRIPT)
+       mv $(SCRIPT) $(SCRIPT_VERSIONED)
+       ln -s $(SCRIPT_VERSIONED_BASE) $(SCRIPT)
 endif
 
-# -----------------------------------------------------------------------------
+include $(TOP)/mk/bindist.mk
 
 include $(TOP)/mk/target.mk