about summary refs log tree commit diff
path: root/pkgs/stdenv/mingw
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2006-12-31 19:07:33 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2006-12-31 19:07:33 +0000
commita26e70c2af4d4754b8af17f50cf41d57b5492d5d (patch)
tree0ece37c6ce6fd257e99508fcc0dc8f12a9d7a131 /pkgs/stdenv/mingw
parent65477965153b428ec94cabb52c4fc73c7e127d94 (diff)
downloadnixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.tar
nixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.tar.gz
nixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.tar.bz2
nixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.tar.lz
nixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.tar.xz
nixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.tar.zst
nixlib-a26e70c2af4d4754b8af17f50cf41d57b5492d5d.zip
* Quick attempt at fixing stdenv-mingw.
svn path=/nixpkgs/trunk/; revision=7519
Diffstat (limited to 'pkgs/stdenv/mingw')
-rwxr-xr-xpkgs/stdenv/mingw/builder.sh1
-rw-r--r--pkgs/stdenv/mingw/simple-stdenv/builder.sh46
2 files changed, 46 insertions, 1 deletions
diff --git a/pkgs/stdenv/mingw/builder.sh b/pkgs/stdenv/mingw/builder.sh
index cfafde6b00dc..9cbadb5091e0 100755
--- a/pkgs/stdenv/mingw/builder.sh
+++ b/pkgs/stdenv/mingw/builder.sh
@@ -4,7 +4,6 @@ origShell=$SHELL
 origGcc=$GCC
 
 source $STDENV/setup
-source $SUBSTITUTE
 
 mkdir $OUT
 
diff --git a/pkgs/stdenv/mingw/simple-stdenv/builder.sh b/pkgs/stdenv/mingw/simple-stdenv/builder.sh
index 650f6fb082f7..0cbc13e4fab3 100644
--- a/pkgs/stdenv/mingw/simple-stdenv/builder.sh
+++ b/pkgs/stdenv/mingw/simple-stdenv/builder.sh
@@ -29,6 +29,52 @@ header() {
 stopNest() {
   echo "Nothing to do"
 }
+
+# !!! Awful copy&paste.
+substitute() {
+    local input="\$1"
+    local output="\$2"
+
+    local -a params=("\$@")
+
+    local sedScript=\$NIX_BUILD_TOP/.sedargs
+    rm -f \$sedScript
+    touch \$sedScript
+
+    local n p pattern replacement varName
+    
+    for ((n = 2; n < \${#params[*]}; n += 1)); do
+        p=\${params[\$n]}
+
+        if test "\$p" = "--replace"; then
+            pattern=\${params[\$((n + 1))]}
+            replacement=\${params[\$((n + 2))]}
+            n=\$((n + 2))
+            echo "s^\$pattern^\$replacement^g" >> \$sedScript
+            sedArgs=("\${sedArgs[@]}" "-e" )
+        fi
+
+        if test "\$p" = "--subst-var"; then
+            varName=\${params[\$((n + 1))]}
+            n=\$((n + 1))
+            echo "s^@\${varName}@^\${!varName}^g" >> \$sedScript
+        fi
+
+        if test "\$p" = "--subst-var-by"; then
+            varName=\${params[\$((n + 1))]}
+            replacement=\${params[\$((n + 2))]}
+            n=\$((n + 2))
+            echo "s^@\${varName}@^\$replacement^g" >> \$sedScript
+        fi
+
+    done
+
+    sed -f \$sedScript < "\$input" > "\$output".tmp
+    if test -x "\$output"; then
+        chmod +x "\$output".tmp
+    fi
+    mv -f "\$output".tmp "\$output"
+}
 EOF
 
 chmod +x $out/setup