Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
autovar
buildsys
doc
dyncall
dyncallback
dynload
portasm
test
.gitignore
AUTHORS
BUGS
CMakeLists.txt
ChangeLog
LICENSE
Makefile.M
Makefile.embedded
Makefile.generic
Nmakefile
README
ToDo
configure
configure.bat
dynMakefile
mkfile

README

dyncall - A Generic Dynamic FFI package
=======================================

The dyncall software distribution comprises a low-level toolkit for
the implementation of Foreign Function Interfaces.
It comprises abstractions to the Application Binary Interface of a
number of hard- and software platforms.

The software package comprises three C libraries, namely:

 - Library dyncall for making function calls,
 - Library dyncallback or writing generic callback handlers, and
 - Library dynload for loading code.

The dyncall library provides a portable interface for calling 
C functions from within dynamic execution environments, such as
interpreters or application servers. 
The dyncallback library allows to implement a callback handler in C
for handling arbitrary C callbacks from within dynamic execution environments.
The dynload library provides a thin abstraction layer for loading of code
and also allows to enumerate the contents of shared librarys or DLLs.

Typical applications for dyncall are FFI (foreign function interface) packages
for scripting languages to connect with the C/C++ world.

The binary footprint of the whole package is approx. 20 kb.


Building the library
--------------------

Prequisites: 
 - C compiler such as gcc,clang,sunpro or msvc.
 - Assembler such as gas (GNU/apple), fbe or masm.
 
Supported Architectures and ABIs:
---------------------------------
 - x86     32/64-bit (cdecl, fastcall, stdcall, C++ this calls, Syscalls)
 - ARM     AArch32   (ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs)
 - MIPS    32/64-bit (o32, n64, eabi)
 - PowerPC 32-bit    (Mac OS X, System V)
 - Sparc   32/64-bit (v7/8 and v9)

Supported Operating Systems:
----------------------------
 - Android
 - *BSD
 - Haiku
 - iOS
 - Linux
 - Mac OS X
 - Microsoft Windows
 - Minix
 - Nintendo DS Homebrew
 - Plan9 / 9front
 - Playstation Portable Homebrew
 - ReactOS
 - Solaris

Building the library
--------------------
Using `homebrewed' configure shell script and GNU/BSD/Sun make system.

$ ./configure
$ make
$ make install

Testing:

$ make tests
$ make run-tests

Out-of-source building:
----------------------

$ cd <build_dir>
$ <src_dir>/configure --prefix=<install_dir>
$ make
$ sudo make install


Building using CMake
--------------------

$ cmake 
$ make
$ sudo make install


Please refer to http://www.dyncall.org, dyncall(3), the dyncall manual and
platform-specific READMEs under doc/ for more information.

Something went wrong with that request. Please try again.