Skip to content

Latest commit

 

History

History
124 lines (82 loc) · 5.7 KB

README.md

File metadata and controls

124 lines (82 loc) · 5.7 KB

mulle-core

🌋 Almagamated library of mulle-core + mulle-concurrent + mulle-c

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>

You are here

Overview

Constituents

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 ↗️ A growable C char array and also a stream
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

Add

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.

Install

Install with mulle-sde

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

Manual Installation

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

Author

Nat! for Mulle kybernetiK