summary refs log tree commit diff
path: root/pkgs/development/tools/analysis/smatch/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/analysis/smatch/default.nix')
-rw-r--r--pkgs/development/tools/analysis/smatch/default.nix30
1 files changed, 30 insertions, 0 deletions
diff --git a/pkgs/development/tools/analysis/smatch/default.nix b/pkgs/development/tools/analysis/smatch/default.nix
new file mode 100644
index 000000000000..8b9deca409fe
--- /dev/null
+++ b/pkgs/development/tools/analysis/smatch/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, sqlite, pkgconfig
+, buildllvmsparse ? true
+, buildc2xml ? true
+, llvm ? null, libxml2 ? null
+}:
+
+assert buildllvmsparse -> llvm != null;
+assert buildc2xml -> libxml2 != null;
+
+stdenv.mkDerivation {
+  name = "smatch";
+
+  src = fetchgit {
+    url = git://repo.or.cz/smatch.git;
+    rev = "23656e3e578b700cbf96d043f039e6341a3ba5b9";
+    sha256 = "09a44967d4cff026c67062f778e251d0b432af132e9d59a47b7d3167f379adfa";
+  };
+
+  buildInputs = [sqlite pkgconfig]
+   ++ stdenv.lib.optional buildllvmsparse llvm
+   ++ stdenv.lib.optional buildc2xml libxml2;
+
+  installFlags = "DESTDIR=$(out)";
+
+  meta = {
+    description = "A semantic analysis tool for C";
+    homepage = "http://smatch.sourceforge.net/";
+    license = "free"; /* OSL, see http://www.opensource.org */
+  };
+}