treewide: Use targetPrefix instead of prefix for platform name prefixes

Certain tools, e.g. compilers, are customarily prefixed with the name of
their target platform so that multiple builds can be used at once
without clobbering each other on the PATH. I was using identifiers named
`prefix` for this purpose, but that conflicts with the standard use of
`prefix` to mean the directory where something is installed. To avoid
conflict and confusion, I renamed those to `targetPrefix`.
This commit is contained in:
John Ericson
2017-11-27 03:15:50 -05:00
parent fbbda41e05
commit e755a8a27d
21 changed files with 85 additions and 87 deletions
+8 -8
View File
@@ -3,24 +3,24 @@
}:
# Make sure both underlying packages claim to have prepended their binaries
# with the same prefix.
assert binutils-raw.prefix == cctools.prefix;
# with the same targetPrefix.
assert binutils-raw.targetPrefix == cctools.targetPrefix;
let
inherit (binutils-raw) prefix;
inherit (binutils-raw) targetPrefix;
cmds = [
"ar" "ranlib" "as" "dsymutil" "install_name_tool"
"ld" "strip" "otool" "lipo" "nm" "strings" "size"
];
in
# TODO loop over prefixed binaries too
# TODO loop over targetPrefixed binaries too
stdenv.mkDerivation {
name = "${prefix}cctools-binutils-darwin";
name = "${targetPrefix}cctools-binutils-darwin";
buildCommand = ''
mkdir -p $out/bin $out/include
ln -s ${binutils-raw.out}/bin/${prefix}c++filt $out/bin/${prefix}c++filt
ln -s ${binutils-raw.out}/bin/${targetPrefix}c++filt $out/bin/${targetPrefix}c++filt
# We specifically need:
# - ld: binutils doesn't provide it on darwin
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
# - strip: the binutils one seems to break mach-o files
# - lipo: gcc build assumes it exists
# - nm: the gnu one doesn't understand many new load commands
for i in ${stdenv.lib.concatStringsSep " " (builtins.map (e: prefix + e) cmds)}; do
for i in ${stdenv.lib.concatStringsSep " " (builtins.map (e: targetPrefix + e) cmds)}; do
ln -sf "${cctools}/bin/$i" "$out/bin/$i"
done
@@ -44,6 +44,6 @@ stdenv.mkDerivation {
'';
passthru = {
inherit prefix;
inherit targetPrefix;
};
}