< prev index next >

make/bsd/makefiles/saproc.make

Print this page
rev 6975 : 8043340: [macosx] Fix hard-wired paths to JavaVM.framework
Summary: Build system tweaks to allow building on OS X 10.9 and later
Reviewed-by:

@@ -1,7 +1,7 @@
 #
-# Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License version 2 only, as
 # published by the Free Software Foundation.

@@ -62,13 +62,26 @@
   SALIBS = -lutil -lthread_db
   SAARCH = $(ARCHFLAG)
 else
   ifeq ($(OS_VENDOR), Darwin)
     SASRCFILES = $(DARWIN_NON_STUB_SASRCFILES)
-    SALIBS = -g -framework Foundation -F/System/Library/Frameworks/JavaVM.framework/Frameworks -framework JavaNativeFoundation -framework Security -framework CoreFoundation
+    SALIBS = -g \
+             -framework Foundation \
+             -framework JavaNativeFoundation \
+             -framework Security \
+             -framework CoreFoundation
     #objc compiler blows up on -march=i586, perhaps it should not be included in the macosx intel 32-bit C++ compiles?
     SAARCH = $(subst -march=i586,,$(ARCHFLAG))
+
+    # This is needed to locate JavaNativeFoundation.framework
+    # JDK 8 doesn't have SYSROOT_CFLAGS, so we'll cobble it together here
+    SA_SYSROOT_FLAGS=
+    ifneq ($(SDKPATH),)
+      SA_SYSROOT_FLAGS += -isysroot "$(SDKPATH)" -iframework"$(SDKPATH)/System/Library/Frameworks"
+    endif
+    # always needed, even if SDKPATH is empty
+    SA_SYSROOT_FLAGS += -F"$(SDKPATH)/System/Library/Frameworks/JavaVM.framework/Frameworks"
   else
     SASRCFILES = $(SASRCDIR)/StubDebuggerLocal.c
     SALIBS = 
     SAARCH = $(ARCHFLAG)
   endif

@@ -98,26 +111,21 @@
 ifneq ($(OS_VENDOR), Darwin)
 SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE))
 endif
 SA_LFLAGS += $(LDFLAGS_HASH_STYLE)
 
-ifeq ($(OS_VENDOR), Darwin)
-  BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
-    -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]" "[:lower:]") \
-    -I/System/Library/Frameworks/JavaVM.framework/Headers
-else
-  BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
+BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
     -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]" "[:lower:]")
-endif
 
 $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
         $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
           echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
           exit 1; \
         fi
         @echo Making SA debugger back-end...
         $(QUIETLY) $(CC) -D$(BUILDARCH) -D_GNU_SOURCE                   \
+                   $(SA_SYSROOT_FLAGS)                                  \
                    $(SYMFLAG) $(SAARCH) $(SHARED_FLAG) $(PICFLAG)       \
                    -I$(SASRCDIR)                                        \
                    -I$(GENERATED)                                       \
                    $(BOOT_JAVA_INCLUDES)                                \
                    $(SASRCFILES)                                        \
< prev index next >