summary refs log tree commit diff
path: root/pkgs/build-support/make-wrapper/make-wrapper.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/build-support/make-wrapper/make-wrapper.sh')
-rw-r--r--pkgs/build-support/make-wrapper/make-wrapper.sh19
1 files changed, 17 insertions, 2 deletions
diff --git a/pkgs/build-support/make-wrapper/make-wrapper.sh b/pkgs/build-support/make-wrapper/make-wrapper.sh
index 847db8910fd..558ff94c1a0 100644
--- a/pkgs/build-support/make-wrapper/make-wrapper.sh
+++ b/pkgs/build-support/make-wrapper/make-wrapper.sh
@@ -1,6 +1,7 @@
 makeWrapper() {
-    original=$1
-    wrapper=$2
+    local original=$1
+    local wrapper=$2
+    local params varName value command separator n fileNames
 
     ensureDir "$(dirname $wrapper)"
 
@@ -17,6 +18,12 @@ makeWrapper() {
             echo "export $varName=$value" >> $wrapper
         fi
 
+        if test "$p" = "--run"; then
+            command=${params[$((n + 1))]}
+            n=$((n + 1))
+            echo "$command" >> $wrapper
+        fi
+
         if test "$p" = "--suffix" -o "$p" = "--prefix"; then
             varName=${params[$((n + 1))]}
             separator=${params[$((n + 2))]}
@@ -72,3 +79,11 @@ filterExisting() {
         fi
     done
 }
+
+# Syntax: wrapProgram <PROGRAM> <MAKE-WRAPPER FLAGS...>
+wrapProgram() {
+    local prog="$1"
+    local hidden="$(dirname "$prog")/.wrapped-$(basename "$prog")"
+    mv $prog $hidden
+    makeWrapper $hidden $prog "$@"
+}