+# Makefile for liblmdb (Lightning memory-mapped database library).
+
+########################################################################
+# Configuration. The compiler options must enable threaded compilation.
+#
+# Preprocessor macros (for CPPFLAGS) of interest:
+#
+# To compile successfully if the default does not:
+# - MDB_USE_POSIX_SEM (enabled by default on BSD, Apple)
+# Define if shared mutexes are unsupported. Note that Posix
+# semaphores and shared mutexes have different behaviors and
+# different problems, see the Caveats section in lmdb.h.
+#
+# For best performence or to compile successfully:
+# - MDB_DSYNC = "O_DSYNC" (default) or "O_SYNC" (less efficient)
+# If O_DSYNC is undefined but exists in /usr/include,
+# preferably set some compiler flag to get the definition.
+# - MDB_FDATASYNC = "fdatasync" or "fsync"
+# Function for flushing the data of a file. Define this to
+# "fsync" if fdatasync() is not supported. fdatasync is
+# default except on BSD, Apple, Android which use fsync.
+# - MDB_USE_PWRITEV
+# Define if the pwritev() function is supported.
+#
+# Data format:
+# - MDB_MAXKEYSIZE
+# Controls data packing and limits, see mdb.c.
+#
+# Debugging:
+# - MDB_DEBUG, MDB_PARANOID.
+#
CC = gcc
W = -W -Wall -Wno-unused-parameter -Wbad-function-cast
OPT = -O2 -g
SOLIBS =
prefix = /usr/local
+########################################################################
+
IHDRS = lmdb.h
ILIBS = liblmdb.a liblmdb.so
IPROGS = mdb_stat mdb_copy
/** @brief The maximum size of a key in the database.
*
+ * The library rejects bigger keys, and cannot deal with records
+ * with bigger keys stored by a library with bigger max keysize.
+ *
* We require that keys all fit onto a regular page. This limit
* could be raised a bit further if needed; to something just
* under #MDB_PAGESIZE / #MDB_MINKEYS.