This is an almagamation of the mulle-core, mulle-concurrent, mulle-c projects that need not be forced linked. See the constituting projects for documentation, bug reports, pull requests.
The advantages of using mulle-core are:
- compiles faster than two dozens of individual projects
- you only need to link against one library file
#include
statements may remain unchanged or simplify to#include <mulle-core/mulle-core.h>
Add another constituent to the amalgamation with:
mulle-sde dependency add --amalgamated \
--fetchoptions "clibmode=copy" \
--address src/mulle-container-debug \
clib:mulle-c/mulle-container-debug
Then edit mulle-core.h
and add the envelope header to the others.
Constituent | Description |
---|---|
mulle-allocator | ๐ Flexible C memory allocation scheme |
mulle-buffer | |
mulle-c11 | ๐ Cross-platform C compiler glue (and some cpp conveniences) |
mulle-container-debug | ๐ Debugging support for mulle-container |
mulle-container | ๐ Arrays, hashtables and a queue |
mulle-data | #๏ธโฃ A collection of hash functions |
mulle-http | ๐ http URL parser |
mulle-rbtree | ๐ซ mulle-rbtree organizes data in a red/black tree |
mulle-regex | ๐ฃ Unicode regex library |
mulle-slug | ๐ Creates URL slugs |
mulle-storage | ๐ Memory management for tree nodes |
mulle-unicode | ๐ Unicode ctype like library |
mulle-url | ๐ท๏ธ Support for URL parsing |
mulle-utf | ๐ค UTF8-16-32 analysis and manipulation library |
mulle-vararg | โช Access variable arguments in struct layout fashion in C |
mintomic | For more information, see the documentation or the accompanying blog post, Introducing Mintomic. |
mulle-aba | ๐ฎ A lock-free, cross-platform solution to the ABA problem |
mulle-concurrent | ๐ถ A lock- and wait-free hashtable (and an array too), written in C |
mulle-fifo | ๐ mulle-fifo fixed sized producer/consumer FIFOs holding void * |
mulle-linkedlist | ๐ mulle-linkedlist a wait and lock-free linked list |
mulle-multififo | ๐ mulle-multififo multi-producer/multi-consumer FIFO holding void * |
mulle-thread | ๐ Cross-platform thread/mutex/tss/atomic operations in C |
dlfcn-win32 | =========== |
mulle-dlfcn | โฟ๏ธ Shared library helper |
mulle-fprintf | ๐ข mulle-fprintf marries mulle-sprintf to stdio.h |
mulle-mmap | ๐ง๐ฟ Memory mapped file access |
mulle-sprintf | ๐ข An extensible sprintf function supporting stdarg and mulle-vararg |
mulle-stacktrace | ๐ฃ Stracktrace support for various OS |
mulle-time | ๐ Simple time types with arithmetic on timespec and timeval |
Use mulle-sde to add mulle-core to your project:
mulle-sde add github:mulle-core/mulle-core
This library does not include mulle-atinit and mulle-atexit and mulle-testallocator. If you add these libraries, it is important that mulle-core is added before them.
Use mulle-sde to build and install mulle-core and all dependencies:
mulle-sde install --prefix /usr/local \
https://github.com/mulle-core/mulle-core/archive/latest.tar.gz
Download the latest tar or zip archive and unpack it. Then install
mulle-core into /usr/local
with cmake:
cmake -B build \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_PREFIX_PATH=/usr/local \
-DCMAKE_BUILD_TYPE=Release &&
cmake --build build --config Release &&
cmake --install build --config Release
Nat! for Mulle kybernetiK