ext/immunio/Rakefile in immunio-1.2.1 vs ext/immunio/Rakefile in immunio-2.0.2
- old
+ new
@@ -1,9 +1,17 @@
-LIB_DIR = File.expand_path("../../../lib/immunio", __FILE__)
-LUA_HOOKS_DIR = File.expand_path("../../../lua-hooks", __FILE__)
+IMMUNIO_DIR = File.expand_path('../../../lib/immunio', __FILE__)
+LUA_HOOKS_DIR = File.expand_path('../../../lua-hooks', __FILE__)
+LUAJIT_SRC_DIR = File.join(LUA_HOOKS_DIR, 'ext/luajit/src')
+LIBIMMUNIO_SO = File.join(IMMUNIO_DIR, 'libimmunio.so')
+LIBLUAHOOKS_A = File.join(LUA_HOOKS_DIR, "libluahooks.#{Gem::Platform.local.os}.a")
+LIBLUAJIT_A = File.join(LUAJIT_SRC_DIR, 'libluajit.a')
+
task :default do
- cd LUA_HOOKS_DIR do
- sh "make libimmunio.so"
- cp "libimmunio.so", LIB_DIR
+ sh "make XCFLAGS='-fPIC -DLUAJIT_ENABLE_GC64' -C #{LUAJIT_SRC_DIR} #{File.basename(LIBLUAJIT_A)}"
+ os_type = %x{uname}.strip
+ if os_type == 'Darwin'
+ sh "cc -shared -o #{LIBIMMUNIO_SO} -Wl,-all_load #{LIBLUAJIT_A} #{LIBLUAHOOKS_A}"
+ else
+ sh "cc -shared -o #{LIBIMMUNIO_SO} -Wl,--whole-archive #{LIBLUAJIT_A} #{LIBLUAHOOKS_A} -Wl,--no-whole-archive"
end
-end
\ No newline at end of file
+end