summary refs log tree commit diff
path: root/pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2019-01-03 15:09:44 -0600
committerMatthew Bauer <mjbauer95@gmail.com>2019-01-03 15:20:26 -0600
commit8505e710e707b2e425379dc356721194f742d8d0 (patch)
tree2d5dc6fe7ec438a347476addc32e1c6850e09d5f /pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix
parent2da31b80bb53000476b0a5ddcf7d76a44a15bfe4 (diff)
downloadnixpkgs-8505e710e707b2e425379dc356721194f742d8d0.tar
nixpkgs-8505e710e707b2e425379dc356721194f742d8d0.tar.gz
nixpkgs-8505e710e707b2e425379dc356721194f742d8d0.tar.bz2
nixpkgs-8505e710e707b2e425379dc356721194f742d8d0.tar.lz
nixpkgs-8505e710e707b2e425379dc356721194f742d8d0.tar.xz
nixpkgs-8505e710e707b2e425379dc356721194f742d8d0.tar.zst
nixpkgs-8505e710e707b2e425379dc356721194f742d8d0.zip
Revert "darwin 10.12 commits"
Reverts commits bumping to macOS stuff to 10.12:

commit ec1f78d1cb6ac86743ffb797bf88d4633b91e733.
commit d0dc91d24f643ca2cb6901f80a641099db975966.
commit a1d297374df55c30b8b74834a85924e9dc739dda.
commit 425112151db3b05fec01e86cb10c90b4037e9367.
commit e6f7f2928f668262577125290dc90ad8df12e724.
Diffstat (limited to 'pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix')
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix47
1 files changed, 47 insertions, 0 deletions
diff --git a/pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix b/pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix
new file mode 100644
index 00000000000..f8636403ed5
--- /dev/null
+++ b/pkgs/os-specific/darwin/apple-source-releases/dtrace/xcode.nix
@@ -0,0 +1,47 @@
+{ appleDerivation, xcbuildHook, CoreSymbolication
+, xnu, bison, flex, darling, stdenv }:
+
+appleDerivation {
+  nativeBuildInputs = [ xcbuildHook flex bison ];
+  buildInputs = [ CoreSymbolication darling ];
+  NIX_CFLAGS_COMPILE = "-DCTF_OLD_VERSIONS -DPRIVATE -DYYDEBUG=1 -I${xnu}/Library/Frameworks/System.framework/Headers";
+  NIX_LDFLAGS = "-L./Products/Release";
+  xcbuildFlags = "-target dtrace";
+
+  patchPhase = ''
+    substituteInPlace dtrace.xcodeproj/project.pbxproj --replace "/usr/sbin" ""
+    substituteInPlace libdtrace/dt_open.c \
+      --replace "/usr/bin/clang" "${stdenv.cc}/bin/cpp" \
+      --replace "/usr/bin/ld" "${stdenv.cc}/bin/ld" \
+      --replace "/usr/bin/dtrace" $out/lib/dtrace
+  '';
+
+  # hack to handle xcbuild's broken lex handling
+  preBuild = ''
+    cd libdtrace
+    yacc -d dt_grammar.y
+    flex -l -d dt_lex.l
+    cd ..
+
+    substituteInPlace dtrace.xcodeproj/project.pbxproj \
+      --replace '6EBC9800099BFBBF0001019C /* dt_grammar.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; name = dt_grammar.y; path = libdtrace/dt_grammar.y; sourceTree = "<group>"; };' '6EBC9800099BFBBF0001019C /* y.tab.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = y.tab.c; path = libdtrace/y.tab.c; sourceTree = "<group>"; };' \
+      --replace '6EBC9808099BFBBF0001019C /* dt_lex.l */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.lex; name = dt_lex.l; path = libdtrace/dt_lex.l; sourceTree = "<group>"; };' '6EBC9808099BFBBF0001019C /* lex.yy.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; name = lex.yy.c; path = libdtrace/lex.yy.c; sourceTree = "<group>"; };'
+  '';
+
+  # xcbuild doesn't support install
+  installPhase = ''
+    mkdir -p $out
+
+    cp -r Products/Release/usr $out
+    mv $out/usr/* $out
+    rmdir $out/usr
+
+    mkdir $out/lib
+    cp Products/Release/*.dylib $out/lib
+
+    mkdir $out/bin
+    cp Products/Release/dtrace $out/bin
+
+    mkdir -p $out/lib/dtrace
+  '';
+}