diff README @ 0:3e629dc19168

initial from svn dyncall-1745
author Daniel Adler
date Thu, 19 Mar 2015 22:24:28 +0100
parents
children 7ca57dbefed4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Thu Mar 19 22:24:28 2015 +0100
@@ -0,0 +1,122 @@
+dyncall - A Generic Dynamic FFI package
+=======================================
+
+dyncall is a low-level toolkit providing a portable abstraction for 
+handling native code dynamically at run time.
+It comprises three independent components, available as C libraries, namely:
+
+ - 'dyncall' for making function calls,
+ - 'dyncallback' or writing generic callback handlers, and
+ - 'dynload' for loading code.
+
+The package provides abstractions to the Application Binary Interface 
+of various hardware platforms such as x86, AMD64, ARM32/64, PowerPCC32/64,
+MIPS32/64 and SPARC32/64.
+
+Our releases are thoroughly tested across all supported platforms using a
+flexible test suite.
+
+A typical application for the use of dyncall is the back-end of a FFI 
+(foreign function interface) for scripting languages to connect with 
+the C/C++ world.
+
+The binary footprint of the package is approx. 10-20 kb, depending on
+the platform.
+Besides the test suite already mentioned, comprehensive documentation is
+available.
+
+
+Building the libraries
+----------------------
+
+Prequisites: 
+ - C compiler such as gcc, clang, sunpro or msvc.
+ - Assembler such as gas (gnu/apple), fbe or masm.
+ - Build system such as 'shell/make', cmake, nmake (windows) or mk (plan9).
+
+
+Supported Architectures and ABIs:
+---------------------------------
+
+ - x86     32/64-bit  (cdecl, fastcall, stdcall, C++ this calls, syscalls, plan9)
+ - ARM     AArch32/64 (32: ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs; 64: AAPCS64)
+ - MIPS    32/64-bit  (o32, n64, eabi)
+ - PowerPC 32/64-bit  (32: Mac OS X, System V; 64: System V little and big endian ELF ABI)
+ - Sparc   32/64-bit  (v7/8 and v9)
+
+NOTE: Callback support is currently available on
+      x86-32/64, arm32 softfloat ABIs, arm64, PPC64 and PPC32 Linux/OS X.
+
+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 libraries
+----------------------
+
+Using configure shell script and GNU/BSD/Sun make system.
+
+$ ./configure
+$ make
+$ make install
+
+Testing:
+
+$ make tests
+$ make run-tests
+
+
+Build 'out-of-source'
+---------------------
+
+$ cd <build_dir>
+$ <src_dir>/configure --prefix=<install_dir>
+$ make
+$ sudo make install
+
+
+Building using CMake
+--------------------
+
+$ cmake 
+$ make
+$ sudo make install
+
+
+Building on Windows
+-------------------
+
+See doc/README.Windows
+
+
+Platform-specific build details
+-------------------------------
+
+See doc/README.*
+
+
+Building the manual
+-------------------
+
+Make sure pdflatex is installed and run
+
+$ make docs
+
+
+Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3), the dyncall
+manual and platform-specific READMEs under doc/ for more information.
+