summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugin-luacd.cc10
-rw-r--r--src/plugin-luapsx.cc18
2 files changed, 26 insertions, 2 deletions
diff --git a/src/plugin-luacd.cc b/src/plugin-luacd.cc
index 5b10abc..f418f26 100644
--- a/src/plugin-luacd.cc
+++ b/src/plugin-luacd.cc
@@ -1,6 +1,12 @@
#include <BLua.h>
#include <luacd.h>
+#ifndef WIN32
+#define WEAK __attribute__ ((weak))
+#else
+#define WEAK
+#endif
+
static void _init_plugin(Lua * L) {
static bool done = false;
if (done) return;
@@ -11,6 +17,10 @@ static void _init_plugin(Lua * L) {
extern "C" {
+WEAK void init_plugin(Lua * L) {
+ _init_plugin(L);
+}
+
void luacd_init(Lua * L) {
_init_plugin(L);
}
diff --git a/src/plugin-luapsx.cc b/src/plugin-luapsx.cc
index e1f820c..e8c7713 100644
--- a/src/plugin-luapsx.cc
+++ b/src/plugin-luapsx.cc
@@ -1,13 +1,27 @@
#include <BLua.h>
#include <luapsx.h>
-extern "C" {
+#ifndef WIN32
+#define WEAK __attribute__ ((weak))
+#else
+#define WEAK
+#endif
-void init_plugin(Lua * L) {
+static void _init_plugin(Lua * L) {
static bool done = false;
if (done) return;
done = true;
Luapsx::pushstatics(L);
}
+extern "C" {
+
+WEAK void init_plugin(Lua * L) {
+ _init_plugin(L);
+}
+
+void luapsx_init(Lua * L) {
+ _init_plugin(L);
+}
+
}