333d69a5f0
The most complex problems were from dealing with switches reverted in the meantime (gcc5, gmp6, ncurses6). It's likely that darwin is (still) broken nontrivially.
60 lines
2.3 KiB
Nix
60 lines
2.3 KiB
Nix
{ lib, stdenv, fetchurl, interactive ? false, readline ? null, ncurses ? null }:
|
|
|
|
assert interactive -> readline != null && ncurses != null;
|
|
|
|
stdenv.mkDerivation {
|
|
name = "sqlite-3.9.2";
|
|
|
|
src = fetchurl {
|
|
url = "http://sqlite.org/2015/sqlite-autoconf-3090200.tar.gz";
|
|
sha1 = "dae1ae5297fece9671ae0c434a7ecd0cda09c76a";
|
|
};
|
|
|
|
outputs = [ "dev" "out" "bin" ];
|
|
|
|
buildInputs = lib.optionals interactive [ readline ncurses ];
|
|
|
|
configureFlags = [ "--enable-threadsafe" ];
|
|
|
|
NIX_CFLAGS_COMPILE = [
|
|
"-DSQLITE_ENABLE_COLUMN_METADATA"
|
|
"-DSQLITE_ENABLE_DBSTAT_VTAB"
|
|
"-DSQLITE_ENABLE_JSON1"
|
|
"-DSQLITE_ENABLE_FTS3"
|
|
"-DSQLITE_ENABLE_FTS3_PARENTHESIS"
|
|
"-DSQLITE_ENABLE_FTS4"
|
|
"-DSQLITE_ENABLE_RTREE"
|
|
"-DSQLITE_ENABLE_STMT_SCANSTATUS"
|
|
"-DSQLITE_ENABLE_UNLOCK_NOTIFY"
|
|
"-DSQLITE_SOUNDEX"
|
|
"-DSQLITE_SECURE_DELETE"
|
|
];
|
|
|
|
# Test for features which may not be available at compile time
|
|
preBuild = ''
|
|
# Use pread(), pread64(), pwrite(), pwrite64() functions for better performance if they are available.
|
|
if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread_pwrite_test" <<< \
|
|
''$'#include <unistd.h>\nint main()\n{\n pread(0, NULL, 0, 0);\n pwrite(0, NULL, 0, 0);\n return 0;\n}'; then
|
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD"
|
|
fi
|
|
if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \
|
|
''$'#include <unistd.h>\nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then
|
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64"
|
|
elif cc -D_LARGEFILE64_SOURCE -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \
|
|
''$'#include <unistd.h>\nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then
|
|
export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64 -D_LARGEFILE64_SOURCE"
|
|
fi
|
|
|
|
echo ""
|
|
echo "NIX_CFLAGS_COMPILE = $NIX_CFLAGS_COMPILE"
|
|
echo ""
|
|
'';
|
|
|
|
meta = {
|
|
homepage = http://www.sqlite.org/;
|
|
description = "A self-contained, serverless, zero-configuration, transactional SQL database engine";
|
|
platforms = stdenv.lib.platforms.unix;
|
|
maintainers = with stdenv.lib.maintainers; [ eelco np ];
|
|
};
|
|
}
|