Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-18.03 67 lines 2.6 kB view raw
1{ lib, stdenv, fetchurl, interactive ? false, readline ? null, ncurses ? null }: 2 3assert interactive -> readline != null && ncurses != null; 4 5stdenv.mkDerivation { 6 name = "sqlite-3.23.1"; 7 8 src = fetchurl { 9 url = https://sqlite.org/2018/sqlite-autoconf-3230100.tar.gz; 10 sha256 = "09ggapjhqjb2pzk0wkfczil77plijg3d77m2bpzlwx2y7ql2p14j"; 11 }; 12 13 outputs = [ "bin" "dev" "out" ]; 14 separateDebugInfo = stdenv.isLinux; 15 16 buildInputs = lib.optionals interactive [ readline ncurses ]; 17 18 configureFlags = [ "--enable-threadsafe" ] ++ lib.optional interactive "--enable-readline"; 19 20 NIX_CFLAGS_COMPILE = [ 21 "-DSQLITE_ENABLE_COLUMN_METADATA" 22 "-DSQLITE_ENABLE_DBSTAT_VTAB" 23 "-DSQLITE_ENABLE_JSON1" 24 "-DSQLITE_ENABLE_FTS3" 25 "-DSQLITE_ENABLE_FTS3_PARENTHESIS" 26 "-DSQLITE_ENABLE_FTS3_TOKENIZER" 27 "-DSQLITE_ENABLE_FTS4" 28 "-DSQLITE_ENABLE_FTS5" 29 "-DSQLITE_ENABLE_RTREE" 30 "-DSQLITE_ENABLE_STMT_SCANSTATUS" 31 "-DSQLITE_ENABLE_UNLOCK_NOTIFY" 32 "-DSQLITE_SOUNDEX" 33 "-DSQLITE_SECURE_DELETE" 34 "-DSQLITE_MAX_VARIABLE_NUMBER=250000" 35 "-DSQLITE_MAX_EXPR_DEPTH=10000" 36 ]; 37 38 # Test for features which may not be available at compile time 39 preBuild = '' 40 # Use pread(), pread64(), pwrite(), pwrite64() functions for better performance if they are available. 41 if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread_pwrite_test" <<< \ 42 ''$'#include <unistd.h>\nint main()\n{\n pread(0, NULL, 0, 0);\n pwrite(0, NULL, 0, 0);\n return 0;\n}'; then 43 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD" 44 fi 45 if cc -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ 46 ''$'#include <unistd.h>\nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then 47 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64" 48 elif cc -D_LARGEFILE64_SOURCE -Werror=implicit-function-declaration -x c - -o "$TMPDIR/pread64_pwrite64_test" <<< \ 49 ''$'#include <unistd.h>\nint main()\n{\n pread64(0, NULL, 0, 0);\n pwrite64(0, NULL, 0, 0);\n return 0;\n}'; then 50 export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -DUSE_PREAD64 -D_LARGEFILE64_SOURCE" 51 fi 52 53 # Necessary for FTS5 on Linux 54 export NIX_LDFLAGS="$NIX_LDFLAGS -lm" 55 56 echo "" 57 echo "NIX_CFLAGS_COMPILE = $NIX_CFLAGS_COMPILE" 58 echo "" 59 ''; 60 61 meta = { 62 homepage = http://www.sqlite.org/; 63 description = "A self-contained, serverless, zero-configuration, transactional SQL database engine"; 64 platforms = stdenv.lib.platforms.unix; 65 maintainers = with stdenv.lib.maintainers; [ eelco np ]; 66 }; 67}