diff --git a/plugins/jvm/uwsgiplugin.py b/plugins/jvm/uwsgiplugin.py index fec8c402..23c717fe 100644 --- a/plugins/jvm/uwsgiplugin.py +++ b/plugins/jvm/uwsgiplugin.py @@ -13,17 +13,25 @@ if arch in ('i686', 'x86', 'x86_32'): elif arch in ('x86_64',): arch = 'amd64' -known_jvms = ('/usr/lib/jvm/java-7-openjdk', '/usr/local/openjdk7', '/usr/lib/jvm/java-6-openjdk', '/usr/local/openjdk', '/usr/java' ) -for jvm in known_jvms: - if os.path.exists(jvm + '/include'): - JVM_INCPATH = ["-I%s/include/" % jvm, "-I%s/include/%s" % (jvm, operating_system)] - JVM_LIBPATH = ["-L%s/jre/lib/%s/server" % (jvm, arch)] - break - if os.path.exists("%s-%s/include" % (jvm, arch)): - jvm = "%s-%s" % (jvm, arch) - JVM_INCPATH = ["-I%s/include/" % jvm, "-I%s/include/%s" % (jvm, operating_system)] - JVM_LIBPATH = ["-L%s/jre/lib/%s/server" % (jvm, arch)] - break +# try to detect the JVM +if operating_system == 'darwin': + known_jvms = ('/System/Library/Frameworks/JavaVM.framework/Headers',) + for jvm in known_jvms: + if os.path.exists(jvm): + JVM_INCPATH = ["-Wno-deprecated-declarations", "-I%s" % jvm] + JVM_LIBPATH = ["-framework JavaVM"] +else: + known_jvms = ('/usr/lib/jvm/java-7-openjdk', '/usr/local/openjdk7', '/usr/lib/jvm/java-6-openjdk', '/usr/local/openjdk', '/usr/java' ) + for jvm in known_jvms: + if os.path.exists(jvm + '/include'): + JVM_INCPATH = ["-I%s/include/" % jvm, "-I%s/include/%s" % (jvm, operating_system)] + JVM_LIBPATH = ["-L%s/jre/lib/%s/server" % (jvm, arch)] + break + if os.path.exists("%s-%s/include" % (jvm, arch)): + jvm = "%s-%s" % (jvm, arch) + JVM_INCPATH = ["-I%s/include/" % jvm, "-I%s/include/%s" % (jvm, operating_system)] + JVM_LIBPATH = ["-L%s/jre/lib/%s/server" % (jvm, arch)] + break try: JVM_INCPATH = os.environ['UWSGICONFIG_JVM_INCPATH'] @@ -42,9 +50,19 @@ if not JVM_INCPATH or not JVM_LIBPATH: CFLAGS = JVM_INCPATH LDFLAGS = JVM_LIBPATH LIBS = ['-ljvm'] +if "-framework JavaVM" in JVM_LIBPATH: + LIBS = [] + GCC_LIST = ['jvm_plugin'] if os.environ.has_key('LD_RUN_PATH'): os.environ['LD_RUN_PATH'] += ':' + JVM_LIBPATH[0][2:] else: os.environ['LD_RUN_PATH'] = JVM_LIBPATH[0][2:] + +def post_build(config): + if os.system("javac %s/plugins/jvm/uwsgi.java" % os.getcwd()) != 0: + os._exit(1) + if os.system("jar cvf %s/plugins/jvm/uwsgi.jar %s/plugins/jvm/*.class" % (os.getcwd(), os.getcwd())) != 0: + os._exit(1) + print("*** uwsgi.jar available in %s/plugins/jvm ***" % os.getcwd()) diff --git a/uwsgiconfig.py b/uwsgiconfig.py index 1c63f9ee..0b499777 100644 --- a/uwsgiconfig.py +++ b/uwsgiconfig.py @@ -353,7 +353,7 @@ def build_uwsgi(uc, print_only=False): if uwsgi_os == 'Darwin': found_arch = False sanitized_ldflags = [] - for flag in up.LDFLAGS: + for flag in up['LDFLAGS']: if flag == '-arch': found_arch = True continue