From e55388ee0ac898aa781342e74dab5b412a6b08b4 Mon Sep 17 00:00:00 2001
From: sof <unknown>
Date: Thu, 16 Apr 1998 12:05:48 +0000
Subject: [PATCH] [project @ 1998-04-16 12:05:48 by sof] Handle the case where 
 already exists (as a file)

---
 mk/target.mk | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/mk/target.mk b/mk/target.mk
index a89f1b06ccbc..44093a5a8bba 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -413,8 +413,18 @@ endif
 ifneq "$(SCRIPT_LINK)" ""
 all :: $(SCRIPT_LINK)
 
+# The use of -L is non-standard, but I've yet to find
+# an implementation of `test' that doesn't like it.
 $(SCRIPT_LINK) : $(SCRIPT_PROG)
-	$(LN_S) $(SCRIPT_PROG) $(SCRIPT_LINK)
+	@if ( test ! -f $(SCRIPT_LINK) -o -L $(SCRIPT_LINK) ); then \
+	   echo "Creating a symbol link from $(SCRIPT_PROG) to $(SCRIPT_LINK)"; \
+	   $(RM) $(SCRIPT_LINK); \
+	   $(LN_S) $(SCRIPT_PROG) $(SCRIPT_LINK); \
+	 else \
+	   echo "Creating a symbol link from $(SCRIPT_PROG) to $(SCRIPT_LINK) failed: \`$(SCRIPT_LINK)' already exists"; \
+	   echo "Perhaps remove \`$(SCRIPT_LINK)' manually?"; \
+	   exit 1; \
+	 fi;
 endif
 
 
-- 
GitLab