/libnih

NIH Utility Library

Primary LanguageCGNU General Public License v2.0GPL-2.0

libnih is a light-weight "standard library" of C functions to ease the
development of other libraries and applications.

Its goals are:

 * despite its name, to _not_ reimplement anything found in the
   standard C library or any library normally found in /lib;

 * use standard C types and conventions where appropriate;

 * have a simple and consistent programming interface;

 * be useful to library developers without needing to be exposed in
   the library's API;

 * not hide implementation details or structure contents, we're all
   adults after all.


Dependencies
------------

The D-Bus messaging system is required to build the libnih-dbus library
and nih-dbus-tool utility.  In order to query the availability of the
external library, the pkg-config tool is used; and in order to parse
D-Bus introspection data, the expat XML parsing library will be used.

The recommended versions are:

	* pkg-config 0.22
	* D-Bus 1.2.16
	* expat 2.0.0

These should all be available from the current release of any modern
Linux distribution.

For detailed compilation and installation instructions see the INSTALL
file.  If you've checked libnih out from revision control, or want to
hack on libnih, see the HACKING file.


Cross-compiling
---------------

libnih uses the nih-dbus-tool utility it builds during its own build
process to generate further sources to be built.  When cross-compiling
this will fail because the built nih-dbus-tool will most likely not be
able to run on the build architecture.

This can be solved by building and installing nih-dbus-tool for the
build architecture first, then when performing the cross-compile, the
installed copy will be used instead.

If installed into a common system directory, this is automatic; if not,
you can pass the path of the nih-dbus-tool binary to the configure
script, e.g.:

	./configure --build=i486-linux-gnu --host=gnueabi-linux-arm \
		NIH_DBUS_TOOL=/cross/bin/nih-dbus-tool