libMarshall
DeforaOS libMarshall
====================
About libMarshall
-----------------
libMarshall is a marshalling library, allowing the execution of function calls
of any prototype across a number of combinations of Operating Systems, hardware
architectures, and calling conventions. It is notably used by libApp, a
message-passing framework at the core of the DeforaOS Project.
Dependencies for libMarshall
----------------------------
libMarshall depends on the following components:
* pkg-config (or equivalent tool) from the freedesktop software collection, as
found in most software distributions already; otherwise at
<https://www.freedesktop.org/wiki/Software/pkg-config/>
* libSystem from the DeforaOS Project, as found at
<https://www.defora.org/os/project/27/libSystem> if not packaged for your
system.
And optionally:
* configure from the DeforaOS Project, likewise found at
<https://www.defora.org/os/project/16/configure>
* GTK-Doc (for the API documentation), found at
<https://www.gtk.org/gtk-doc/>
Configuring libMarshall
-----------------------
When building libMarshall from the development sources, it is necessary to
generate Makefiles with `configure(1)`. It should be enough to run this tool as
follows:
$ configure
Please refer to the documentation of DeforaOS configure for further
instructions.
A default set of Makefiles is provided with releases of this project in order
to help building and packaging. The Makefiles provided target the [NetBSD
Operating System](https://www.netbsd.org/) by default, but should work on most
platforms without changes.
Compiling libMarshall
---------------------
It is then possible to build the project with `make(1)` as usual. The following
command should therefore be enough:
$ make
To build libMarshall for installation in a different directory than the default
`/usr/local`, use the `PREFIX` variable as follows:
$ make PREFIX="/path/to/destination"
Then use the `install` target to effectively install libMarshall on the system.
libMarshall also supports `DESTDIR`, to be installed in a staging directory; for
instance:
$ make DESTDIR="/staging/directory" PREFIX="/another/prefix" install