Mercurial > pub > dyncall > dyncall
annotate README @ 372:bac52ab8869f
- updated manual platform support overview
- added win/ARM64 info to manual cconv reference
author | Tassilo Philipp |
---|---|
date | Fri, 25 Dec 2020 18:45:57 +0100 |
parents | 85c80b0c021c |
children | ed19b429a152 |
rev | line source |
---|---|
0 | 1 dyncall - A Generic Dynamic FFI package |
2 ======================================= | |
3 | |
4 dyncall is a low-level toolkit providing a portable abstraction for | |
5 handling native code dynamically at run time. | |
6 It comprises three independent components, available as C libraries, namely: | |
7 | |
8 - 'dyncall' for making function calls, | |
9 - 'dyncallback' or writing generic callback handlers, and | |
10 - 'dynload' for loading code. | |
11 | |
12 The package provides abstractions to the Application Binary Interface | |
7 | 13 of various hardware platforms such as x86, AMD64, ARM32/64, PowerPC32/64, |
0 | 14 MIPS32/64 and SPARC32/64. |
15 | |
16 Our releases are thoroughly tested across all supported platforms using a | |
17 flexible test suite. | |
18 | |
19 A typical application for the use of dyncall is the back-end of a FFI | |
20 (foreign function interface) for scripting languages to connect with | |
21 the C/C++ world. | |
22 | |
23 The binary footprint of the package is approx. 10-20 kb, depending on | |
24 the platform. | |
25 Besides the test suite already mentioned, comprehensive documentation is | |
26 available. | |
27 | |
28 | |
29 Building the libraries | |
30 ---------------------- | |
31 | |
32 Prequisites: | |
33 - C compiler such as gcc, clang, sunpro or msvc. | |
34 - Assembler such as gas (gnu/apple), fbe or masm. | |
35 - Build system such as 'shell/make', cmake, nmake (windows) or mk (plan9). | |
36 | |
37 | |
38 Supported Architectures and ABIs: | |
39 --------------------------------- | |
40 | |
41 - x86 32/64-bit (cdecl, fastcall, stdcall, C++ this calls, syscalls, plan9) | |
42 - ARM AArch32/64 (32: ARM/Thumb mode, v4t-v7, oabi/eabi, soft/hardfloat ABIs; 64: AAPCS64) | |
303 | 43 - MIPS 32/64-bit (o32, n64, eabi, with o32 and n64 for soft- and hardfloat) |
0 | 44 - PowerPC 32/64-bit (32: Mac OS X, System V; 64: System V little and big endian ELF ABI) |
45 - Sparc 32/64-bit (v7/8 and v9) | |
46 | |
47 | |
48 Supported Operating Systems: | |
49 ---------------------------- | |
50 | |
51 - Android | |
52 - *BSD | |
53 - Haiku | |
54 - iOS | |
55 - Linux | |
56 - Mac OS X | |
57 - Microsoft Windows | |
58 - Minix | |
59 - Nintendo DS Homebrew | |
60 - Plan9 / 9front | |
61 - Playstation Portable Homebrew | |
62 - ReactOS | |
63 - Solaris | |
64 | |
65 | |
66 Building the libraries | |
67 ---------------------- | |
68 | |
69 Using configure shell script and GNU/BSD/Sun make system. | |
70 | |
71 $ ./configure | |
72 $ make | |
73 $ make install | |
74 | |
75 Testing: | |
76 | |
77 $ make tests | |
78 $ make run-tests | |
79 | |
80 | |
81 Build 'out-of-source' | |
82 --------------------- | |
83 | |
84 $ cd <build_dir> | |
85 $ <src_dir>/configure --prefix=<install_dir> | |
86 $ make | |
87 $ sudo make install | |
88 | |
89 | |
90 Building using CMake | |
91 -------------------- | |
92 | |
93 $ cmake | |
94 $ make | |
95 $ sudo make install | |
96 | |
97 | |
98 Building on Windows | |
99 ------------------- | |
100 | |
101 See doc/README.Windows | |
102 | |
103 | |
104 Platform-specific build details | |
105 ------------------------------- | |
106 | |
107 See doc/README.* | |
108 | |
109 | |
110 Building the manual | |
111 ------------------- | |
112 | |
113 Make sure pdflatex is installed and run | |
114 | |
115 $ make docs | |
116 | |
117 | |
320
85c80b0c021c
- Darwin/macos fix for dlGetLibraryPath() to correctly fail on bogus handles
Tassilo Philipp
parents:
303
diff
changeset
|
118 Please refer to http://www.dyncall.org, dyncall(3), dyncallback(3), dynload(3), |
85c80b0c021c
- Darwin/macos fix for dlGetLibraryPath() to correctly fail on bogus handles
Tassilo Philipp
parents:
303
diff
changeset
|
119 the dyncall manual and platform-specific READMEs under doc/ for more information. |
0 | 120 |