diff --git a/binding.gyp b/binding.gyp index 670cb16b..e74bba38 100644 --- a/binding.gyp +++ b/binding.gyp @@ -79,10 +79,13 @@ ['OS=="mac"', { "include_dirs": [ - "/System/Library/Frameworks/JavaVM.framework/Headers", + "<(javahome)/include", + "<(javahome)/include/darwin" ], "libraries": [ - "-framework JavaVM" + "-L<(javahome)/jre/lib/server/", + "-Wl,-rpath,<(javahome)/jre/lib/server/", + "-ljvm" ] } ] diff --git a/mnm.js b/mnm.js index b19d30f3..38e8e75a 100755 --- a/mnm.js +++ b/mnm.js @@ -13,7 +13,10 @@ builder.appendUnique('CXXFLAGS', ['-DHAVE_CONFIG_H']); // MAC has a built in JVM if (existsSync("/System/Library/Frameworks/JavaVM.framework/")) { var jdkIncludeDir = process.env["JDK_INCLUDE_DIR"] || "/System/Library/Frameworks/JavaVM.framework/Headers"; + // if java home is set we assume a newer version of oracle's jdk here + if(!process.env["JDK_INCLUDE_DIR"] && process.env["JAVA_HOME"]) jdkIncludeDir = path.join(process.env["JAVA_HOME"], 'include'); builder.appendUnique('CXXFLAGS', '-I' + jdkIncludeDir); + builder.appendUnique('CXXFLAGS', '-I' + path.join(jdkIncludeDir, 'darwin')); builder.appendUnique('LINKFLAGS', ['-framework', 'JavaVM']); } else { var javaHome = builder.trimQuotes(process.env["JAVA_HOME"]);