Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/facebook/luaffifb.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2015-04-21 03:08:45 +0300
committerSam Gross <colesbury@gmail.com>2015-04-28 20:58:45 +0300
commit5b0bd229cd348794b0cd399e280f9269c6c29620 (patch)
tree4c73996c91963e562da5317bab64ec649bff3620
parentbb1d732f2d4274387d6fb2f3fc58612d8338f0b9 (diff)
Dynamic libraries are .dylib on Darwin.
Changed to match luajit.
-rw-r--r--Makefile13
-rw-r--r--ffi.h5
2 files changed, 14 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index b2b5f2c..ca7cf62 100644
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,11 @@ CFLAGS=-fPIC -g -Wall -Werror $(LUA_CFLAGS) -fvisibility=hidden -Wno-unused-func
MODNAME=ffi
MODSO=$(MODNAME).so
+ifeq (Darwin, $(shell uname -s))
+ TESTSO=libtest_cdecl.dylib
+else
+ TESTSO=libtest_cdecl.so
+endif
all:
if [ `uname` = "Darwin" ]; then $(MAKE) macosx; else $(MAKE) posix; fi
@@ -23,10 +28,10 @@ macosx:
test_macosx:
$(MAKE) test_posix "SOCC=MACOSX_DEPLOYMENT_TARGET=10.3 $(CC) -dynamiclib -single_module -undefined dynamic_lookup $(SOCFLAGS)"
-posix: $(MODSO) test_cdecl.so
+posix: $(MODSO) $(TESTSO)
clean:
- rm -f *.o *.so call_*.h
+ rm -f *.o *.so call_*.h *.dylib
call_x86.h: call_x86.dasc dynasm/*.lua
$(LUA) dynasm/dynasm.lua -LN -o $@ $<
@@ -43,10 +48,10 @@ call_x64win.h: call_x86.dasc dynasm/*.lua
$(MODSO): ffi.o ctype.o parser.o call.o
$(SOCC) $^ -o $@
-test_cdecl.so: test.o
+$(TESTSO): test.o
$(SOCC) $^ -o $@
-test_posix: test_cdecl.so $(MODSO)
+test_posix: $(TESTSO) $(MODSO)
LD_LIBRARY_PATH=./ $(LUA) test.lua
diff --git a/ffi.h b/ffi.h
index 42f2dcd..a742af2 100644
--- a/ffi.h
+++ b/ffi.h
@@ -177,8 +177,13 @@ static char* luaL_prepbuffsize(luaL_Buffer* B, size_t sz) {
# define EnableWrite(data, size) do {DWORD old; VirtualProtect(data, size, PAGE_READWRITE, &old);} while (0)
#else
+#ifdef OS_OSX
+# define LIB_FORMAT_1 "%s.dylib"
+# define LIB_FORMAT_2 "lib%s.dylib"
+#else
# define LIB_FORMAT_1 "%s.so"
# define LIB_FORMAT_2 "lib%s.so"
+#endif
# define LoadLibraryA(name) dlopen(name, RTLD_LAZY | RTLD_GLOBAL)
# define GetProcAddressA(lib, name) dlsym(lib, name)
# define AllocPage(size) mmap(NULL, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0)