aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorclsung <clsung@FreeBSD.org>2008-04-14 08:47:00 +0800
committerclsung <clsung@FreeBSD.org>2008-04-14 08:47:00 +0800
commitca28775a0fabba0ee11a760d403db3162073e261 (patch)
treea80627b0d2ed95998b0ad46931c905cb6ba0c999 /devel
parent73fcf8a7990bfd38587ed80bab4d23c052972557 (diff)
downloadfreebsd-ports-gnome-ca28775a0fabba0ee11a760d403db3162073e261.tar.gz
freebsd-ports-gnome-ca28775a0fabba0ee11a760d403db3162073e261.tar.zst
freebsd-ports-gnome-ca28775a0fabba0ee11a760d403db3162073e261.zip
The dyncall library encapsulates architecture-, OS- and compiler-specific
function call semantics in a virtual "bind parameters from left to right and then call" interface allowing programmers to call C functions in a completely dynamic manner. In other workds, instead of calling a function directly, the dyncall library provides a mechanism to push the function parameters manually and to issue the call afterwards. This means, that a program can determine at runtime what function to call, and what parameters to pass to it. The library is written in C and assembly and provides a very simple C interface to program against. The library comes in very handy to power flexible message systems, dynamic function call dispatch mechanisms, closure implementations or even to bridge different programming languages. When it comes to language bindings, the dyncall library provides a clean and portable C interface to dynamically issue calls to foreign code using small kernels written in assembly. Instead of providing code for every bridged function call, which unnecessarily results in code bloat, only a couple of instructions are used to invoke every possible call. WWW: http://www.dyncall.org PR: ports/122720 Submitted by: Tassilo Philipp <tphilipp at potion-studios.com>
Diffstat (limited to 'devel')
-rw-r--r--devel/Makefile1
-rw-r--r--devel/dyncall/Makefile35
-rw-r--r--devel/dyncall/distinfo3
-rw-r--r--devel/dyncall/pkg-descr20
-rw-r--r--devel/dyncall/pkg-plist10
5 files changed, 69 insertions, 0 deletions
diff --git a/devel/Makefile b/devel/Makefile
index d0c2050b7ff6..fa1c10c3e488 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -271,6 +271,7 @@
SUBDIR += dumb
SUBDIR += duplo
SUBDIR += dwarfdump
+ SUBDIR += dyncall
SUBDIR += e4graph
SUBDIR += e_dbus
SUBDIR += ebnf2yacc
diff --git a/devel/dyncall/Makefile b/devel/dyncall/Makefile
new file mode 100644
index 000000000000..671a7b8e99ab
--- /dev/null
+++ b/devel/dyncall/Makefile
@@ -0,0 +1,35 @@
+# New ports collection makefile for: dyncall
+# Date created: 05 April 2008
+# Whom: Tassilo Philipp <tphilipp@potion-studios.com>
+#
+# $FreeBSD$
+#
+
+PORTNAME= dyncall
+PORTVERSION= 0.1
+CATEGORIES= devel
+MASTER_SITES= http://www.dyncall.org/r0.1/
+
+MAINTAINER= tphilipp@potion-studios.com
+COMMENT= Highly dynamic multi-platform foreign function call interface library
+
+HAS_CONFIGURE= yes
+
+MAKEFILE= ${WRKSRC}/BSDmakefile
+
+# There is no install target in the BSD makefile of version 0.1 of the dyncall library, so
+# install it manually.
+
+do-install:
+ ${CP} ${WRKSRC}/dyncall/dyncall.h ${PREFIX}/include/dyncall.h
+ ${CP} ${WRKSRC}/dyncall/dyncall_callf.h ${PREFIX}/include/dyncall_callf.h
+ ${CP} ${WRKSRC}/dyncall/dyncall_config.h ${PREFIX}/include/dyncall_config.h
+ ${CP} ${WRKSRC}/dyncall/dyncall_macros.h ${PREFIX}/include/dyncall_macros.h
+ ${CP} ${WRKSRC}/dyncall/dyncall_signature.h ${PREFIX}/include/dyncall_signature.h
+ ${CP} ${WRKSRC}/dyncall/dyncall_types.h ${PREFIX}/include/dyncall_types.h
+ ${CP} ${WRKSRC}/dyncall/dyncall_value.h ${PREFIX}/include/dyncall_value.h
+ ${CP} ${WRKSRC}/dynload/dynload.h ${PREFIX}/include/dynload.h
+ ${CP} ${WRKSRC}/dyncall/libdyncall_s.a ${PREFIX}/lib/libdyncall_s.a
+ ${CP} ${WRKSRC}/dynload/libdynload_s.a ${PREFIX}/lib/libdynload_s.a
+
+.include <bsd.port.mk>
diff --git a/devel/dyncall/distinfo b/devel/dyncall/distinfo
new file mode 100644
index 000000000000..4646e19a5ad4
--- /dev/null
+++ b/devel/dyncall/distinfo
@@ -0,0 +1,3 @@
+MD5 (dyncall-0.1.tar.gz) = aaa539cca71f9584df83deae50303198
+SHA256 (dyncall-0.1.tar.gz) = 3c063b272d08818b514b62042166010dcafacb617befad175ce374ed2efc31ef
+SIZE (dyncall-0.1.tar.gz) = 112182
diff --git a/devel/dyncall/pkg-descr b/devel/dyncall/pkg-descr
new file mode 100644
index 000000000000..778bf94c19fa
--- /dev/null
+++ b/devel/dyncall/pkg-descr
@@ -0,0 +1,20 @@
+The dyncall library encapsulates architecture-, OS- and compiler-specific
+function call semantics in a virtual "bind parameters from left to right
+and then call" interface allowing programmers to call C functions in a
+completely dynamic manner. In other workds, instead of calling a function
+directly, the dyncall library provides a mechanism to push the function
+parameters manually and to issue the call afterwards.
+This means, that a program can determine at runtime what function to
+call, and what parameters to pass to it. The library is written in C and
+assembly and provides a very simple C interface to program against.
+
+The library comes in very handy to power flexible message systems,
+dynamic function call dispatch mechanisms, closure implementations or
+even to bridge different programming languages.
+When it comes to language bindings, the dyncall library provides a clean
+and portable C interface to dynamically issue calls to foreign code using
+small kernels written in assembly. Instead of providing code for every
+bridged function call, which unnecessarily results in code bloat, only a
+couple of instructions are used to invoke every possible call.
+
+WWW: http://www.dyncall.org
diff --git a/devel/dyncall/pkg-plist b/devel/dyncall/pkg-plist
new file mode 100644
index 000000000000..816411e4a10e
--- /dev/null
+++ b/devel/dyncall/pkg-plist
@@ -0,0 +1,10 @@
+include/dyncall.h
+include/dyncall_callf.h
+include/dyncall_config.h
+include/dyncall_macros.h
+include/dyncall_signature.h
+include/dyncall_types.h
+include/dyncall_value.h
+include/dynload.h
+lib/libdyncall_s.a
+lib/libdynload_s.a