about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/tinycdb
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-15 10:30:44 +0000
commite0794be8a0d11e90461e5a9c85012a36b93ec976 (patch)
treeefd9cbc55ea3322867bf601c4d536758a3dd5fcc /nixpkgs/pkgs/development/libraries/tinycdb
parent3538874082ded7647b1ccec0343c7c1e882cfef3 (diff)
parent1a57d96edd156958b12782e8c8b6a374142a7248 (diff)
downloadnixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.gz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.bz2
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.lz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.xz
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.tar.zst
nixlib-e0794be8a0d11e90461e5a9c85012a36b93ec976.zip
Merge commit '1a57d96edd156958b12782e8c8b6a374142a7248'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/tinycdb')
-rw-r--r--nixpkgs/pkgs/development/libraries/tinycdb/default.nix35
1 files changed, 27 insertions, 8 deletions
diff --git a/nixpkgs/pkgs/development/libraries/tinycdb/default.nix b/nixpkgs/pkgs/development/libraries/tinycdb/default.nix
index 71a105f3fd70..63e710643919 100644
--- a/nixpkgs/pkgs/development/libraries/tinycdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tinycdb/default.nix
@@ -1,18 +1,37 @@
 { stdenv, lib, fetchurl }:
+let
+  isCross = stdenv.buildPlatform != stdenv.hostPlatform;
+  cross = "${stdenv.hostPlatform.config}";
+  static = stdenv.hostPlatform.isStatic;
 
-stdenv.mkDerivation rec {
+  cc = if !isCross then "cc" else "${cross}-cc";
+  ar = if !isCross then "ar" else "${cross}-ar";
+  ranlib = if !isCross then "ranlib" else "${cross}-ranlib";
+in stdenv.mkDerivation rec {
+  postPatch = ''
+    sed -i 's,set --, set -x; set --,' Makefile
+  '';
   pname = "tinycdb";
   version = "0.78";
-  outputs = [ "out" "dev" "lib" "man" ];
+  # In general, static library (.a) goes to "dev", shared (.so) to
+  # "lib". In case of static build, there is no .so library, so "lib"
+  # output is useless and empty.
+  outputs = [ "out" "dev" "man" ] ++ lib.optional (!static) "lib";
   separateDebugInfo = true;
-  makeFlags = [ "prefix=$(out)" "staticlib" "sharedlib" "cdb-shared" ];
+  makeFlags =
+    [ "prefix=$(out)" "CC=${cc}" "AR=${ar}" "RANLIB=${ranlib}" "static"
+  ] ++ lib.optional (!static) "shared";
   postInstall = ''
-    mkdir -p $lib/lib $dev/lib $out/bin
-    cp libcdb.so* $lib/lib
-    cp cdb-shared $out/bin/cdb
+    mkdir -p $dev/lib $out/bin
     mv $out/lib/libcdb.a $dev/lib
     rmdir $out/lib
-  '';
+  '' + (if static then ''
+    cp cdb $out/bin/cdb
+  '' else ''
+    mkdir -p $lib/lib
+    cp libcdb.so* $lib/lib
+    cp cdb-shared $out/bin/cdb
+  '');
 
   src = fetchurl {
     url = "http://www.corpit.ru/mjt/tinycdb/${pname}-${version}.tar.gz";
@@ -27,7 +46,7 @@ stdenv.mkDerivation rec {
       tinycdb is a small, fast and reliable utility and subroutine
       library for creating and reading constant databases. The database
       structure is tuned for fast reading.
-      '';
+    '';
 
     homepage = "https://www.corpit.ru/mjt/tinycdb.html";
     license = licenses.publicDomain;