From 35c7bf1ff874b0a75b810cf889692656d97abf76 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Mon, 20 Apr 2026 21:59:37 -0300 Subject: bootstrap nix with c on dune --- bin/dune | 6 ++++++ bin/main.c | 27 +++++++++++++++++++++++++++ flake.nix | 4 ++++ 3 files changed, 37 insertions(+) create mode 100644 bin/main.c diff --git a/bin/dune b/bin/dune index b559855..36633c1 100644 --- a/bin/dune +++ b/bin/dune @@ -4,3 +4,9 @@ (modules server) (libraries relational_engine unix) (modes byte exe)) + +(rule + (targets main_c.exe) + (deps main.c) + (action + (bash "cc main.c -o main_c.exe $(pkg-config --cflags --libs lmdb)"))) diff --git a/bin/main.c b/bin/main.c new file mode 100644 index 0000000..38abeee --- /dev/null +++ b/bin/main.c @@ -0,0 +1,27 @@ +#include +#include +#include + +int main(void) { + MDB_env *env; + int rc; + + rc = mdb_env_create(&env); + if (rc) { + fprintf(stderr, "mdb_env_create failed: %s\n", mdb_strerror(rc)); + return EXIT_FAILURE; + } + + rc = mdb_env_open(env, "./testdb", MDB_NOSUBDIR, 0664); + if (rc) { + fprintf(stderr, "mdb_env_open failed: %s\n", mdb_strerror(rc)); + mdb_env_close(env); + return EXIT_FAILURE; + } + + printf("LMDB environment opened successfully.\n"); + printf("LMDB version: %s\n", mdb_version(NULL, NULL, NULL)); + + mdb_env_close(env); + return EXIT_SUCCESS; +} diff --git a/flake.nix b/flake.nix index ba5bad6..8b8abaf 100644 --- a/flake.nix +++ b/flake.nix @@ -218,6 +218,10 @@ # Development tools packages = [ + # C libraries + legacyPackages.lmdb.dev + legacyPackages.lmdb + legacyPackages.pkg-config # Source file formatting legacyPackages.nixpkgs-fmt legacyPackages.ocamlformat -- cgit v1.2.3