Merge pull request #97386 from KAction/tinycdb-static
tinycdb: add support for static build
This commit is contained in:
commit
8af4f1f3ea
1 changed files with 27 additions and 8 deletions
|
@ -1,18 +1,37 @@
|
||||||
{ stdenv, lib, fetchurl }:
|
{ 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";
|
pname = "tinycdb";
|
||||||
version = "0.78";
|
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;
|
separateDebugInfo = true;
|
||||||
makeFlags = [ "prefix=$(out)" "staticlib" "sharedlib" "cdb-shared" ];
|
makeFlags =
|
||||||
|
[ "prefix=$(out)" "CC=${cc}" "AR=${ar}" "RANLIB=${ranlib}" "static"
|
||||||
|
] ++ lib.optional (!static) "shared";
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $lib/lib $dev/lib $out/bin
|
mkdir -p $dev/lib $out/bin
|
||||||
cp libcdb.so* $lib/lib
|
|
||||||
cp cdb-shared $out/bin/cdb
|
|
||||||
mv $out/lib/libcdb.a $dev/lib
|
mv $out/lib/libcdb.a $dev/lib
|
||||||
rmdir $out/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 {
|
src = fetchurl {
|
||||||
url = "http://www.corpit.ru/mjt/tinycdb/${pname}-${version}.tar.gz";
|
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
|
tinycdb is a small, fast and reliable utility and subroutine
|
||||||
library for creating and reading constant databases. The database
|
library for creating and reading constant databases. The database
|
||||||
structure is tuned for fast reading.
|
structure is tuned for fast reading.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = "https://www.corpit.ru/mjt/tinycdb.html";
|
homepage = "https://www.corpit.ru/mjt/tinycdb.html";
|
||||||
license = licenses.publicDomain;
|
license = licenses.publicDomain;
|
||||||
|
|
Loading…
Reference in a new issue