1 #
   2 # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
   3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4 #
   5 # This code is free software; you can redistribute it and/or modify it
   6 # under the terms of the GNU General Public License version 2 only, as
   7 # published by the Free Software Foundation.  Oracle designates this
   8 # particular file as subject to the "Classpath" exception as provided
   9 # by Oracle in the LICENSE file that accompanied this code.
  10 #
  11 # This code is distributed in the hope that it will be useful, but WITHOUT
  12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14 # version 2 for more details (a copy is included in the LICENSE file that
  15 # accompanied this code).
  16 #
  17 # You should have received a copy of the GNU General Public License version
  18 # 2 along with this work; if not, write to the Free Software Foundation,
  19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20 #
  21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22 # or visit www.oracle.com if you need additional information or have any
  23 # questions.
  24 #
  25 
  26 ifeq ($(OPENJDK_TARGET_OS), macosx)
  27 
  28   $(eval $(call SetupNativeCompilation,BUILD_LIBAPPLESCRIPTENGINE, \
  29       LIBRARY := AppleScriptEngine, \
  30       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
  31       SRC := $(JDK_TOPDIR)/src/macosx/native/apple/applescript, \
  32       LANG := C, \
  33       OPTIMIZATION := LOW, \
  34       CFLAGS := $(CFLAGS_JDKLIB) \
  35           -I$(JDK_TOPDIR)/src/macosx/native/apple/applescript \
  36           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
  37           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
  38       LDFLAGS := $(LDFLAGS_JDKLIB) \
  39           $(call SET_SHARED_LIBRARY_ORIGIN), \
  40       LDFLAGS_SUFFIX := -framework Cocoa \
  41           -framework Carbon \
  42           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
  43           -framework JavaNativeFoundation \
  44           $(LDFLAGS_JDKLIB_SUFFIX), \
  45       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libAppleScriptEngine, \
  46       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
  47 
  48   $(BUILD_LIBAPPLESCRIPTENGINE): $(BUILD_LIBJAVA)
  49 
  50   BUILD_LIBRARIES += $(BUILD_LIBAPPLESCRIPTENGINE)
  51 
  52 endif
  53 
  54 ##########################################################################################
  55 
  56 ifeq ($(OPENJDK_TARGET_OS), macosx)
  57 
  58   $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP, \
  59       LIBRARY := osxapp, \
  60       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
  61       SRC := $(JDK_TOPDIR)/src/macosx/native/sun/osxapp, \
  62       LANG := C, \
  63       OPTIMIZATION := LOW, \
  64       CFLAGS := $(CFLAGS_JDKLIB) \
  65           -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
  66           -I$(JDK_OUTPUTDIR)/gensrc_headers_icons \
  67           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
  68           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
  69       LDFLAGS := $(LDFLAGS_JDKLIB) \
  70           $(call SET_SHARED_LIBRARY_ORIGIN), \
  71       LDFLAGS_SUFFIX_macosx := \
  72           -framework Accelerate \
  73           -framework ApplicationServices \
  74           -framework AudioToolbox \
  75           -framework Carbon \
  76           -framework Cocoa \
  77           -framework Security \
  78           -framework ExceptionHandling \
  79           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
  80           -framework JavaNativeFoundation \
  81           -framework JavaRuntimeSupport \
  82           -framework OpenGL \
  83           -framework IOSurface \
  84           -framework QuartzCore, \
  85       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxapp, \
  86       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
  87 
  88   BUILD_LIBRARIES += $(BUILD_LIBOSXAPP)
  89 
  90 endif
  91 
  92 ##########################################################################################
  93 
  94 ifeq ($(OPENJDK_TARGET_OS), macosx)
  95 
  96   LIBOSX_DIRS := \
  97       $(JDK_TOPDIR)/src/macosx/native/com/apple/concurrent \
  98       $(JDK_TOPDIR)/src/macosx/native/com/apple/eio \
  99       $(JDK_TOPDIR)/src/macosx/native/apple/security \
 100       $(JDK_TOPDIR)/src/macosx/native/apple/launcher
 101 
 102   $(eval $(call SetupNativeCompilation,BUILD_LIBOSX, \
 103       LIBRARY := osx, \
 104       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 105       SRC := $(LIBOSX_DIRS), \
 106       LANG := C, \
 107       OPTIMIZATION := LOW, \
 108       CFLAGS := $(CFLAGS_JDKLIB) \
 109           $(foreach dir, $(LIBOSX_DIRS), -I$(dir)) \
 110           -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \
 111           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
 112           -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \
 113       LDFLAGS := $(LDFLAGS_JDKLIB) \
 114           $(call SET_SHARED_LIBRARY_ORIGIN), \
 115       LDFLAGS_SUFFIX_macosx := \
 116           -losxapp \
 117           -framework Cocoa \
 118           -framework ApplicationServices \
 119           -F/System/Library/Frameworks/JavaVM.framework/Frameworks \
 120           -framework JavaNativeFoundation \
 121           -framework JavaRuntimeSupport \
 122           -framework Security \
 123           -framework SystemConfiguration \
 124           $(LDFLAGS_JDKLIB_SUFFIX), \
 125       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosx, \
 126       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 127 
 128   BUILD_LIBRARIES += $(BUILD_LIBOSX)
 129 
 130   $(BUILD_LIBOSX): $(BUILD_LIBOSXAPP)
 131 
 132   $(BUILD_LIBOSX): $(BUILD_LIBJAVA)
 133 
 134 endif
 135 
 136 ##########################################################################################
 137 
 138 ifndef OPENJDK
 139   ifeq ($(OPENJDK_TARGET_OS), windows)
 140 
 141     ACCESSBRIDGE_SRCDIR := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge
 142 
 143     define SetupAccessBridge
 144       # Parameter 1 Suffix
 145       # Parameter 2 Machine
 146       # Parameter 3 ACCESSBRIDGE_ARCH_ suffix and name of directory where gensrc headers
 147       #             are found.
 148 
 149       $(call SetupNativeCompilation,BUILD_JAWTACCESSBRIDGE$1, \
 150           LIBRARY = JAWTAccessBridge$1, \
 151           OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 152           SRC := $(ACCESSBRIDGE_SRCDIR), \
 153           INCLUDE_FILES := JAWTAccessBridge.cpp, \
 154           LANG := C++, \
 155           OPTIMIZATION := LOW, \
 156           CFLAGS := $(CFLAGS_JDKLIB) \
 157               -DACCESSBRIDGE_ARCH_$3 \
 158               -I$(JDK_OUTPUTDIR)/gensrc_headers_ab/$3, \
 159           LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
 160               winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \
 161               ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
 162               -subsystem:windows -machine:$2 \
 163               -def:$(ACCESSBRIDGE_SRCDIR)/JAWTAccessBridge.DEF, \
 164           VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \
 165           RC_FLAGS := $(RC_FLAGS) \
 166               -D "JDK_FNAME=JAWTAccessBridge$1.dll" \
 167               -D "JDK_INTERNAL_NAME=JAWTAccessBridge$1" \
 168               -D "JDK_FTYPE=0x02L", \
 169           OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1, \
 170           DEBUG_SYMBOLS := true)
 171 
 172       $$(BUILD_JAWTACCESSBRIDGE$1): $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
 173 
 174       $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \
 175           LIBRARY = JavaAccessBridge$1, \
 176           OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 177           SRC := $(ACCESSBRIDGE_SRCDIR), \
 178           INCLUDE_FILES := AccessBridgeATInstance.cpp AccessBridgeDebug.cpp \
 179               AccessBridgeJavaEntryPoints.cpp \
 180               AccessBridgeMessages.cpp JavaAccessBridge.cpp, \
 181           LANG := C++, \
 182           OPTIMIZATION := LOW, \
 183           CFLAGS := $(CFLAGS_JDKLIB) \
 184               -DACCESSBRIDGE_ARCH_$3 \
 185               -I$(JDK_OUTPUTDIR)/gensrc_headers_ab/$3, \
 186           LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
 187               winspool.lib comdlg32.lib advapi32.lib shell32.lib \
 188               ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
 189               -subsystem:windows -machine:$2 \
 190               -def:$(ACCESSBRIDGE_SRCDIR)/JavaAccessBridge.DEF, \
 191           VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \
 192           RC_FLAGS := $(RC_FLAGS) \
 193               -D "JDK_FNAME=JavaAccessBridge$1.dll" \
 194               -D "JDK_INTERNAL_NAME=JavaAccessBridge$1" \
 195               -D "JDK_FTYPE=0x02L", \
 196           OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavaaccessbridge$1, \
 197           DEBUG_SYMBOLS := true)
 198 
 199       $(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1, \
 200           LIBRARY = WindowsAccessBridge$1, \
 201           OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 202           SRC := $(ACCESSBRIDGE_SRCDIR), \
 203           INCLUDE_FILES := AccessBridgeJavaVMInstance.cpp AccessBridgeMessageQueue.cpp \
 204               AccessBridgeMessages.cpp AccessBridgeWindowsEntryPoints.cpp \
 205               WinAccessBridge.cpp AccessBridgeDebug.cpp \
 206               AccessBridgeEventHandler.cpp, \
 207           LANG := C++, \
 208           OPTIMIZATION := LOW, \
 209           CFLAGS := $(filter-out -MD, $(CFLAGS_JDKLIB)) -MT \
 210               -DACCESSBRIDGE_ARCH_$3 \
 211               -I$(JDK_OUTPUTDIR)/gensrc_headers_ab/$3, \
 212           LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \
 213               winspool.lib comdlg32.lib advapi32.lib shell32.lib \
 214               ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \
 215               -subsystem:windows -machine:$2 \
 216               -def:$(ACCESSBRIDGE_SRCDIR)/WinAccessBridge.DEF, \
 217           VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \
 218           RC_FLAGS := $(RC_FLAGS) \
 219               -D "JDK_FNAME=WindowsAccessBridge$1.dll" \
 220               -D "JDK_INTERNAL_NAME=WindowsAccessBridge$1" \
 221               -D "JDK_FTYPE=0x02L", \
 222           OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libwindowsaccessbridge$1, \
 223           DEBUG_SYMBOLS := true)
 224 
 225       BUILD_LIBRARIES += $$(BUILD_JAWTACCESSBRIDGE$1) $$(BUILD_JAVAACCESSBRIDGE$1) \
 226           $$(BUILD_WINDOWSACCESSBRIDGE$1)
 227 
 228     endef
 229 
 230     ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
 231       $(eval $(call SetupAccessBridge,-32,I386,32))
 232       $(eval $(call SetupAccessBridge,,I386,legacy))
 233     else
 234       $(eval $(call SetupAccessBridge,-64,X64,64))
 235     endif
 236   endif
 237 endif