Skip to content

Latest commit

 

History

History
88 lines (65 loc) · 2.24 KB

README.md

File metadata and controls

88 lines (65 loc) · 2.24 KB

libkern library

libkern is a simple generic collection library for C99 largely based on Linux kernel sources, algoritms and data structures.

For more information, please consider visiting project website.

Features

libkern provides the following data structures and algorithms:

  • single- and double-linked lists
  • red-black trees
  • leftist heaps
  • bitmaps

Building libkern

It is now possible to automatically configure and build a variety of tools with one command. To build all of the tools contained herein, run the configure script here, e.g.:

./configure 
make

To install them (by default in /usr/local/bin, /usr/local/lib, etc), then do:

make install

(If the configure script can't determine your type of computer, give it the name as an argument, for instance ./configure sun4. You can use the script config.sub to test whether a name is recognized; if it is, config.sub translates it to a triplet specifying CPU, vendor, and OS.)

If you have more than one compiler on your system, it is often best to explicitly set CC in the environment before running configure, and to also set CC when running make. For example (assuming sh/bash/ksh):

CC=gcc ./configure
make

A similar example using csh:

setenv CC gcc
./configure
make

Much of the code and documentation enclosed is copyright by the Free Software Foundation, Inc. See the file COPYING or COPYING.LIB in the various directories, for a description of the GNU General Public License terms under which you can copy the files.

Authors

Credits

libkern implementation either uses some parts or is partially inspired by the following projects:

  • The Linux kernel released under the GNU General Public License (GPL) version 2.0.
  • The glibc library released under the GNU Lesser General Public License (LGPL) version 2.0.

License

libkern is licensed under the GNU General Public License (GPL) version 2.0 with linking exemption. This means you can link to the library with any program, commercial, open source or other. However, you cannot modify libkern and distribute it without supplying the source.