diff --git a/makefiles/CompileLaunchers.gmk b/makefiles/CompileLaunchers.gmk index 2141e8c474520f45bfc071529423ae5812259b18..af5b3583758490fb350149ed36c462f61f248462 100644 --- a/makefiles/CompileLaunchers.gmk +++ b/makefiles/CompileLaunchers.gmk @@ -574,9 +574,7 @@ ifeq ($(OPENJDK_TARGET_OS), linux) BUILD_LAUNCHERS += $(JAVA_RMI_CGI) endif ifeq ($(OPENJDK_TARGET_OS), solaris) - ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) - BUILD_LAUNCHERS += $(JAVA_RMI_CGI) - endif + BUILD_LAUNCHERS += $(JAVA_RMI_CGI) endif # TODO: diff --git a/makefiles/CompileNativeLibraries.gmk b/makefiles/CompileNativeLibraries.gmk index 2aaa63fbc648e86c3823c386ff83147ebb0ac6f2..57ef12e32cb15e4e151bcf6de49aa74f2e1d83cf 100644 --- a/makefiles/CompileNativeLibraries.gmk +++ b/makefiles/CompileNativeLibraries.gmk @@ -56,9 +56,7 @@ BUILD_LIBRARIES = # Absolute paths to lib files on windows for use in LDFLAGS. Should figure out a more # elegant solution to this. -WIN_VERIFY_LIB := $(JDK_OUTPUTDIR)/objs/libverify/verify.lib WIN_JAVA_LIB := $(JDK_OUTPUTDIR)/objs/libjava/java.lib -WIN_AWT_LIB := $(JDK_OUTPUTDIR)/objs/libawt/awt.lib # Use this variable to set DEBUG_SYMBOLS true on windows for all libraries, but # not on other platforms. @@ -71,3382 +69,23 @@ ifdef OPENJDK DEBUG_ALL_BINARIES := true endif -# -# TODO replace with X_FLAGS / X_LIBS -# and add them to configure -# -OPENWIN_LIB := $(OPENWIN_HOME)/lib - -########################################################################################## - -BUILD_LIBFDLIBM_OPTIMIZATION := HIGH - -ifneq ($(OPENJDK_TARGET_OS), solaris) - BUILD_LIBFDLIBM_OPTIMIZATION := NONE -endif - -ifneq ($(OPENJDK_TARGET_OS), macosx) - $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \ - STATIC_LIBRARY := fdlibm, \ - OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ - SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ - LANG := C, \ - OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ - CFLAGS_windows_debug := -DLOGGING, \ - ARFLAGS := $(ARFLAGS), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -else - -# On macosx the old build does partial (incremental) linking of fdlibm instead of -# a plain static library. - $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \ - LIBRARY := fdlibm, \ - OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ - SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ - LANG := C, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ - LDFLAGS := -nostdlib -r -arch x86_64, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) - $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC) - $(call install-file) - -endif -BUILD_LIBRARIES += $(BUILD_LIBFDLIBM) - -########################################################################################## - -BUILD_LIBVERIFY_SRC := check_code.c check_format.c - -ifeq ($(OPENJDK_TARGET_OS), solaris) - ifneq ($(OPENJDK_TARGET_CPU), x86_64) - BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU) - endif -endif - -LIBVERIFY_OPTIMIZATION := HIGH -ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) - ifeq ($(ENABLE_DEBUG_SYMBOLS), true) - LIBVERIFY_OPTIMIZATION := LOW - endif -endif - - -$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \ - LIBRARY := verify, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/common, \ - INCLUDE_FILES := $(BUILD_LIBVERIFY_SRC), \ - LANG := C, \ - OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ - CFLAGS := $(CFLAGS_JDKLIB), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libverify/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_posix := -ljvm -lc, \ - LDFLAGS_SUFFIX_windows := jvm.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=verify.dll" \ - -D "JDK_INTERNAL_NAME=verify" \ - -D "JDK_FTYPE=0x2L", \ - REORDER := $(BUILD_LIBVERIFY_REORDER), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libverify, \ - DEBUG_SYMBOLS := true)) - -BUILD_LIBRARIES += $(BUILD_LIBVERIFY) - -########################################################################################## - -LIBJAVA_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \ - $(JDK_TOPDIR)/src/share/native/java/lang \ - $(JDK_TOPDIR)/src/share/native/java/lang/ref \ - $(JDK_TOPDIR)/src/share/native/java/lang/reflect \ - $(JDK_TOPDIR)/src/share/native/java/io \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \ - $(JDK_TOPDIR)/src/share/native/java/nio \ - $(JDK_TOPDIR)/src/share/native/java/security \ - $(JDK_TOPDIR)/src/share/native/common \ - $(JDK_TOPDIR)/src/share/native/sun/misc \ - $(JDK_TOPDIR)/src/share/native/sun/reflect \ - $(JDK_TOPDIR)/src/share/native/java/util \ - $(JDK_TOPDIR)/src/share/native/java/util/concurrent/atomic \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/common \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/util - -ifneq ($(OPENJDK_TARGET_OS), macosx) - LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/util/locale/provider -else - LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/util/locale/provider -endif - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/provider \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/io -endif - -LIBJAVA_CFLAGS := $(foreach dir, $(LIBJAVA_SRC_DIRS), -I$(dir)) \ - -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include \ - -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"' - -LIBJAVA_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \ - -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \ - -DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \ - -DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"' - -ifneq (, $(JDK_UPDATE_VERSION)) - LIBJAVA_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"' -endif - -LIBJAVA_EXCLUDE_FILES := check_code.c check_format.c jspawnhelper.c - -ifneq ($(OPENJDK_TARGET_OS), macosx) - LIBJAVA_EXCLUDE_FILES += java_props_macosx.c -else - BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c - BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c -endif - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBJAVA_EXCLUDE_FILES += \ - UNIXProcess_md.c \ - UnixFileSystem_md.c \ - FileSystemPreferences.c -else - LIBJAVA_EXCLUDE_FILES += \ - ProcessImpl_md.c \ - WinNTFileSystem_md.c \ - dirent_md.c \ - WindowsPreferences.c \ - sun/security/provider/WinCAPISeedGenerator.c \ - sun/io/Win32ErrorMode.c -endif - -ifeq ($(OPENJDK_TARGET_OS), solaris) - ifneq ($(OPENJDK_TARGET_CPU), x86_64) - LIBJAVA_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU) - endif -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \ - LIBRARY := java, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBJAVA_SRC_DIRS), \ - EXCLUDES := fdlibm/src zip, \ - EXCLUDE_FILES := $(LIBJAVA_EXCLUDE_FILES), \ - LANG := C, \ - OPTIMIZATION := HIGH, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(LIBJAVA_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjava/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_posix := -ljvm -lverify, \ - LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \ - LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ - LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ - -framework CoreFoundation \ - -framework Foundation \ - -framework Security -framework SystemConfiguration, \ - LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \ - jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ - shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \ - advapi32.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=java.dll" \ - -D "JDK_INTERNAL_NAME=java" \ - -D "JDK_FTYPE=0x2L", \ - REORDER := $(LIBJAVA_REORDER), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -BUILD_LIBRARIES += $(BUILD_LIBJAVA) - -$(BUILD_LIBJAVA): $(LIBJLI_BINARY) - -$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) - -$(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) - -########################################################################################## - -BUILD_LIBMLIB_SRC := $(JDK_TOPDIR)/src/share/native/sun/awt/medialib -BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \ - -I$(BUILD_LIBMLIB_SRC) \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/medialib - -BUILD_LIBMLIB_LDLIBS := -BUILD_LIBMLIB_IMAGE_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libmlib_image/mapfile-vers - -BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH - -ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) - BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT -endif - -ifneq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL) -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \ - LIBRARY := mlib_image, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBMLIB_SRC), \ - EXCLUDE_FILES := awt_ImagingLib.c mlib_c_ImageBlendTable.c, \ - LANG := C, \ - OPTIMIZATION := HIGHEST, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(BUILD_LIBMLIB_CFLAGS), \ - MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(BUILD_LIBMLIB_LDLIBS) \ - $(LDFLAGS_JDKLIB_SUFFIX), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=mlib_image.dll" \ - -D "JDK_INTERNAL_NAME=mlib_image" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBMLIB_IMAGE): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE) - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) - - BUILD_LIBMLIB_IMAGE_V_FILES := \ - mlib_v_ImageLookUp.c \ - mlib_ImageCreate.c \ - mlib_ImageAffine.c \ - mlib_ImageConvMxN.c \ - mlib_ImageConvKernelConvert.c \ - mlib_sys.c \ - mlib_ImageLookUp_64.c \ - mlib_ImageLookUp_Bit.c \ - mlib_ImageColorTrue2Index.c \ - mlib_c_ImageThresh1_U8.c \ - mlib_v_ImageLookUpS16S16Func.c \ - mlib_v_ImageLookUpS16S32Func.c \ - mlib_v_ImageLookUpS16U16Func.c \ - mlib_v_ImageLookUpS16U8Func.c \ - mlib_v_ImageLookUpS32S16Func.c \ - mlib_v_ImageLookUpS32S32Func.c \ - mlib_v_ImageLookUpS32U16Func.c \ - mlib_v_ImageLookUpS32U8Func.c \ - mlib_v_ImageLookUpSIS16S16Func.c \ - mlib_v_ImageLookUpSIS16S32Func.c \ - mlib_v_ImageLookUpSIS16U16Func.c \ - mlib_v_ImageLookUpSIS16U8Func.c \ - mlib_v_ImageLookUpSIS32S16Func.c \ - mlib_v_ImageLookUpSIS32S32Func.c \ - mlib_v_ImageLookUpSIS32U16Func.c \ - mlib_v_ImageLookUpSIS32U8Func.c \ - mlib_v_ImageLookUpSIU16S16Func.c \ - mlib_v_ImageLookUpSIU16S32Func.c \ - mlib_v_ImageLookUpSIU16U16Func.c \ - mlib_v_ImageLookUpSIU16U8Func.c \ - mlib_v_ImageLookUpSIU8S16Func.c \ - mlib_v_ImageLookUpSIU8S32Func.c \ - mlib_v_ImageLookUpSIU8U16Func.c \ - mlib_v_ImageLookUpSIU8U8Func.c \ - mlib_v_ImageLookUpU16S16Func.c \ - mlib_v_ImageLookUpU16S32Func.c \ - mlib_v_ImageLookUpU16U16Func.c \ - mlib_v_ImageLookUpU16U8Func.c \ - mlib_v_ImageLookUpU8S16Func.c \ - mlib_v_ImageLookUpU8S32Func.c \ - mlib_v_ImageLookUpU8U16Func.c \ - mlib_v_ImageLookUpU8U8Func.c \ - mlib_v_ImageAffineIndex_BC.c \ - mlib_v_ImageAffine_BC.c \ - mlib_v_ImageAffine_BC_S16.c \ - mlib_v_ImageAffine_BC_U16.c \ - mlib_v_ImageAffine_BL.c \ - mlib_v_ImageAffine_BL_S16.c \ - mlib_v_ImageAffine_BL_U16.c \ - mlib_v_ImageAffine_NN.c \ - mlib_v_ImageFilters.c \ - mlib_ImageAffineEdge.c \ - mlib_ImageAffine_BC_D64.c \ - mlib_ImageAffine_BC_F32.c \ - mlib_ImageAffine_BC_S32.c \ - mlib_ImageAffine_BL_D64.c \ - mlib_ImageAffine_BL_F32.c \ - mlib_ImageAffine_BL_S32.c \ - mlib_ImageAffine_NN.c \ - mlib_ImageAffine_NN_Bit.c \ - mlib_ImageFilters.c \ - mlib_ImageScanPoly.c \ - mlib_ImageConv_8nw.c \ - mlib_ImageConv_8ext.c \ - mlib_ImageConv_16nw.c \ - mlib_ImageConv_16ext.c \ - mlib_ImageConv_u16nw.c \ - mlib_ImageConv_u16ext.c \ - mlib_ImageConv_32nw.c \ - mlib_ImageConv_F32nw.c \ - mlib_ImageConvMxN_Fp.c \ - mlib_ImageConvMxN_ext.c \ - mlib_ImageConv_D64nw.c \ - mlib_ImageClipping.c \ - mlib_ImageConvCopyEdge_Bit.c \ - mlib_ImageConvClearEdge_Bit.c \ - mlib_ImageConv2x2_f.c \ - mlib_ImageConvClearEdge_Fp.c \ - mlib_v_ImageConvMxN_8.c \ - mlib_v_ImageConvClearEdge.c \ - mlib_v_ImageConvCopyEdge.c \ - mlib_v_ImageConvMxN_8ext.c \ - mlib_v_ImageConvVersion.c \ - mlib_v_ImageConv_8nw.c \ - mlib_ImageConvCopyEdge_Fp.c \ - mlib_v_ImageChannelInsert_1.c \ - mlib_v_ImageChannelExtract_43.c \ - mlib_v_ImageChannelExtract_1.c \ - mlib_ImageCopy_Bit.c \ - mlib_v_ImageCopy_f.c \ - mlib_ImageUtils.c \ - mlib_ImageDivTables.c - - BUILD_LIBMLIB_V_CFLAGS := $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS)) - - $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \ - LIBRARY := mlib_image_v, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \ - $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib, \ - LANG := C, \ - INCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_FILES), \ - OPTIMIZATION := HIGHEST, \ - CFLAGS := -xarch=sparcvis \ - $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il \ - $(BUILD_LIBMLIB_V_CFLAGS) \ - $(CFLAGS_JDKLIB), \ - MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image_v, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA) - - BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE_V) - -endif - -########################################################################################## - -LIBAWT_DIRS := \ - $(JDK_TOPDIR)/src/share/native/sun/awt \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image/gif \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ - $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \ - $(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - $(JDK_TOPDIR)/src/share/native/sun/awt/utility \ - $(JDK_TOPDIR)/src/share/native/sun/java2d \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ - $(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ - $(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image \ - $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/share/native/sun/font - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBAWT_DIRS += \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/d3d -else - LIBAWT_DIRS += \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 -endif - -LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \ - $(X_CFLAGS) \ - $(foreach dir, $(LIBAWT_DIRS), -I$(dir)) - -LIBAWT_FILES := \ - gifdecoder.c \ - imageInitIDs.c \ - img_globals.c \ - SurfaceData.c \ - Region.c \ - BufImgSurfaceData.c \ - Disposer.c \ - Trace.c \ - GraphicsPrimitiveMgr.c \ - Blit.c \ - BlitBg.c \ - ScaledBlit.c \ - FillRect.c \ - FillSpans.c \ - FillParallelogram.c \ - DrawParallelogram.c \ - DrawLine.c \ - DrawRect.c \ - DrawPolygons.c \ - DrawPath.c \ - FillPath.c \ - ProcessPath.c \ - MaskBlit.c \ - MaskFill.c \ - TransformHelper.c \ - AlphaMath.c \ - AlphaMacros.c \ - AnyByte.c \ - ByteBinary1Bit.c \ - ByteBinary2Bit.c \ - ByteBinary4Bit.c \ - ByteIndexed.c \ - ByteGray.c \ - Index8Gray.c \ - Index12Gray.c \ - AnyShort.c \ - Ushort555Rgb.c \ - Ushort565Rgb.c \ - Ushort4444Argb.c \ - Ushort555Rgbx.c \ - UshortGray.c \ - UshortIndexed.c \ - Any3Byte.c \ - ThreeByteBgr.c \ - AnyInt.c \ - IntArgb.c \ - IntArgbPre.c \ - IntArgbBm.c \ - IntRgb.c \ - IntBgr.c \ - IntRgbx.c \ - Any4Byte.c \ - FourByteAbgr.c \ - FourByteAbgrPre.c \ - BufferedMaskBlit.c \ - BufferedRenderPipe.c \ - ShapeSpanIterator.c \ - SpanClipRenderer.c \ - awt_ImageRep.c \ - awt_ImagingLib.c \ - awt_Mlib.c \ - awt_parseImage.c \ - DataBufferNative.c \ - dither.c \ - debug_assert.c \ - debug_mem.c \ - debug_trace.c \ - debug_util.c - -ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux)) - LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c -endif - -ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBAWT_FILES += awt_LoadLibrary.c img_colors.c - LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks -endif - -ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) - LIBAWT_CFLAGS += -DMLIB_ADD_SUFF - LIBAWT_CFLAGS += -xarch=sparcvis - LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il - LIBAWT_CFLAGS += \ - -I$(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \ - -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/medialib \ - -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops - - LIBAWT_DIRS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \ - $(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops - - LIBAWT_FILES += \ - vis_FuncArray.c \ - java2d_Mlib.c \ - mlib_ImageCreate.c \ - mlib_ImageZoom_NN.c \ - mlib_ImageCopy_Bit.c \ - mlib_sys.c \ - mlib_v_ImageClear.c \ - mlib_v_ImageClear_f.c \ - mlib_v_ImageConstXor.c \ - mlib_v_ImageCopy.c \ - mlib_v_ImageCopy_f.c \ - mlib_v_ImageXor.c \ - mlib_v_ImageZoom_NN_f.c \ - vis_Interp.c \ - vis_AlphaMacros.c \ - vis_AlphaMaskBlit.c \ - vis_AlphaMaskFill.c \ - vis_ByteGray.c \ - vis_ByteGray_FromRgb.c \ - vis_ByteGray_Mask.c \ - vis_ByteIndexed.c \ - vis_DrawLine.c \ - vis_FourByteAbgr.c \ - vis_IntArgb.c \ - vis_IntArgbPre.c \ - vis_IntArgbPre_Mask.c \ - vis_IntBgr.c \ - vis_IntRgb.c \ - vis_IntRgbx.c \ - vis_SrcMaskFill.c \ - vis_SrcOverMaskBlit.c \ - vis_SrcOverMaskFill.c \ - vis_FourByteAbgrPre.c \ - vis_GlyphList.c \ - vis_GlyphListXor.c \ - vis_IntArgbBm.c \ - vis_ThreeByteBgr.c \ - vis_UshortGray.c \ - vis_UshortGray_FromRgb.c \ - vis_XorBlit.c \ - mlib_v_ImageCopy_blk.s - - ifeq ($(OPENJDK_TARGET_CPU), sparcv9) - LIBAWT_ASFLAGS = -P -xarch=v9a - else - LIBAWT_ASFLAGS = -P -xarch=v8plusa - endif -else - LIBAWT_FILES += MapAccelFunc.c -endif - -ifneq ($(OPENJDK_TARGET_OS), solaris) - LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH -endif - -LIBAWT_LANG := C - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBAWT_FILES += AccelGlyphCache.c \ - ShaderList.c \ - CmdIDList.cpp \ - Hashtable.cpp \ - GDIHashtable.cpp \ - Devices.cpp \ - ObjectList.cpp \ - GDIBlitLoops.cpp \ - GDIRenderer.cpp \ - GDIWindowSurfaceData.cpp \ - WindowsFlags.cpp \ - WPrinterJob.cpp \ - awt_%.cpp \ - D3DBlitLoops.cpp \ - D3DBufImgOps.cpp \ - D3DContext.cpp \ - D3DGlyphCache.cpp \ - D3DGraphicsDevice.cpp \ - D3DMaskBlit.cpp \ - D3DMaskCache.cpp \ - D3DMaskFill.cpp \ - D3DPipelineManager.cpp \ - D3DPaints.cpp \ - D3DRenderer.cpp \ - D3DRenderQueue.cpp \ - D3DResourceManager.cpp \ - D3DSurfaceData.cpp \ - D3DTextRenderer.cpp \ - D3DVertexCacher.cpp \ - ShellFolder2.cpp \ - ThemeReader.cpp \ - ComCtl32Util.cpp \ - DllUtil.cpp \ - initIDs.cpp \ - MouseInfo.cpp \ - rect.c \ - OGLBlitLoops.c \ - OGLBufImgOps.c \ - OGLContext.c \ - OGLFuncs.c \ - OGLMaskBlit.c \ - OGLMaskFill.c \ - OGLPaints.c \ - OGLRenderQueue.c \ - OGLRenderer.c \ - OGLSurfaceData.c \ - OGLTextRenderer.c \ - OGLVertexCache.c \ - WGLGraphicsConfig.c \ - WGLSurfaceData.c - - LIBAWT_LANG := C++ - LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE - ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) - LIBAWT_CFLAGS += -DMLIB_OS64BIT - endif - - ifdef OPENJDK - LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/windows/resource/icons" - else - LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows" - endif - LIBAWT_VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/native/sun/windows/awt.rc -endif - -ifeq ($(MILESTONE), internal) - LIBAWT_CFLAGS += -DINTERNAL_BUILD -endif - -LIBAWT_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt/mapfile-vers -ifeq ($(OPENJDK_TARGET_OS), linux) - LIBAWT_MAPFILE := -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \ - LIBRARY := awt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBAWT_DIRS), \ - INCLUDE_FILES := $(LIBAWT_FILES), \ - LANG := $(LIBAWT_LANG), \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \ - ASFLAGS := $(LIBAWT_ASFLAGS), \ - MAPFILE := $(LIBAWT_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ - LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \ - LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \ - LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \ - -framework Cocoa \ - -framework OpenGL \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -framework JavaRuntimeSupport \ - -framework ApplicationServices \ - -framework AudioToolbox \ - -ljava, \ - LDFLAGS_SUFFIX_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \ - imm32.lib ole32.lib uuid.lib shell32.lib \ - comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \ - delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \ - -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \ - -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \ - -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \ - -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \ - -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll, \ - VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \ - RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \ - -D "JDK_FNAME=awt.dll" \ - -D "JDK_INTERNAL_NAME=awt" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBAWT): $(BUILD_LIBJAVA) - -ifeq ($(OPENJDK_TARGET_OS), macosx) - $(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE) -endif - -BUILD_LIBRARIES += $(BUILD_LIBAWT) - -########################################################################################## - -# TODO!! -# Even though this variable as a general name, it is -# only used on macos, in fontpath.c, as prefix for where to find fonts. -# -# It's used for libawt_headless _and_ libawt_xawt -# -X11_PATH := /usr/X11R6 - -ifneq ($(OPENJDK_TARGET_OS), windows) - ifndef BUILD_HEADLESS_ONLY - - LIBAWT_XAWT_DIRS := \ - $(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - $(JDK_TOPDIR)/src/share/native/sun/awt/utility \ - $(JDK_TOPDIR)/src/share/native/sun/font \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \ - $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/xawt \ - - LIBAWT_XAWT_CFLAGS := -DXAWT -DXAWT_HACK \ - -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \ - $(CUPS_CFLAGS) \ - $(foreach dir, $(LIBAWT_XAWT_DIRS), -I$(dir)) \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga - - ifeq ($(OPENJDK_TARGET_OS), solaris) - LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15 - endif - - ifeq ($(OPENJDK_TARGET_OS), linux) - ifndef OPENJDK - include $(JDK_TOPDIR)/make/closed/xawt.gmk - endif - - ifeq ($(DISABLE_XRENDER), true) - LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true - endif - endif - - ifeq ($(MILESTONE), internal) - LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD - endif - - LIBAWT_XAWT_FILES := \ - XlibWrapper.c \ - XWindow.c \ - XToolkit.c \ - X11Color.c \ - X11SurfaceData.c \ - awt_GraphicsEnv.c \ - awt_InputMethod.c \ - robot_common.c \ - awt_Robot.c \ - list.c \ - multiVis.c \ - initIDs.c \ - awt_util.c \ - awt_Desktop.c \ - awt_UNIXToolkit.c \ - X11FontScaler_md.c \ - X11TextRenderer_md.c \ - fontpath.c \ - awt_Insets.c \ - awt_Event.c \ - X11Renderer.c \ - X11PMBlitLoops.c \ - OGLBlitLoops.c \ - OGLBufImgOps.c \ - OGLContext.c \ - OGLFuncs.c \ - OGLMaskBlit.c \ - OGLMaskFill.c \ - OGLPaints.c \ - OGLRenderQueue.c \ - OGLRenderer.c \ - OGLSurfaceData.c \ - OGLTextRenderer.c \ - OGLVertexCache.c \ - GLXGraphicsConfig.c \ - GLXSurfaceData.c \ - AccelGlyphCache.c \ - awt_Font.c \ - multi_font.c \ - awt_AWTEvent.c \ - awt_DrawingSurface.c \ - jawt.c \ - CUPSfuncs.c \ - debug_assert.c \ - debug_mem.c \ - debug_trace.c \ - debug_util.c \ - awt_Plugin.c \ - gnome_interface.c \ - gtk2_interface.c \ - swing_GTKEngine.c \ - swing_GTKStyle.c \ - rect.c \ - sun_awt_X11_GtkFileDialogPeer.c \ - XRSurfaceData.c \ - XRBackendNative.c - - LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc - - ifeq ($(OPENJDK_TARGET_OS), linux) - # To match old build, add this to LDFLAGS instead of suffix. - LIBAWT_XAWT_LDFLAGS += -lpthread - endif - - ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBAWT_XAWT_LDFLAGS_SUFFIX += -lpthread - endif - - # On macosx, the shared library origin is set twice for this lib. - $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \ - LIBRARY := awt_xawt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBAWT_XAWT_DIRS), \ - INCLUDE_FILES := $(LIBAWT_XAWT_FILES), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \ - $(X_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_xawt/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS), \ - LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN) \ - $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ - LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \ - -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \ - -R$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \ - -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \ - -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \ - $(call SET_SHARED_LIBRARY_ORIGIN) \ - $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ - LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN) \ - $(call SET_SHARED_LIBRARY_ORIGIN). \ - $(call SET_SHARED_LIBRARY_ORIGIN) \ - $(call SET_SHARED_LIBRARY_ORIGIN)., \ - LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=xawt.dll" \ - -D "JDK_INTERNAL_NAME=xawt" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_xawt, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBAWT_XAWT): $(BUILD_LIBJAVA) - - $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT) - - BUILD_LIBRARIES += $(BUILD_LIBAWT_XAWT) - - endif -endif - -########################################################################################## - -BUILD_LIBZIP_EXCLUDES := -ifeq ($(USE_EXTERNAL_LIBZ), true) - LIBZ := -lz - LIBZIP_EXCLUDES += zlib-1.2.5 -else - ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 -endif - -BUILD_LIBZIP_REORDER := -ifeq ($(OPENJDK_TARGET_OS), solaris) - ifneq ($(OPENJDK_TARGET_CPU), x86_64) - BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU) - endif -endif - -ifeq ($(LIBZIP_CAN_USE_MMAP), true) - BUILD_LIBZIP_MMAP := -DUSE_MMAP -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \ - LIBRARY := zip, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - SRC := $(JDK_TOPDIR)/src/share/native/java/util/zip, \ - EXCLUDES := $(LIBZIP_EXCLUDES), \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(ZLIB_CPPFLAGS) \ - -I$(JDK_TOPDIR)/src/share/native/java/io \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io, \ - CFLAGS_posix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/mapfile-vers, \ - REORDER := $(BUILD_LIBZIP_REORDER), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN) \ - $(EXPORT_ZIP_FUNCS), \ - LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ - -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \ - $(WIN_JAVA_LIB), \ - LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ - LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ - LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=zip.dll" \ - -D "JDK_INTERNAL_NAME=zip" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libzip, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - -$(BUILD_LIBZIP): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBZIP) - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \ - LIBRARY := unpack, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack, \ - EXCLUDE_FILES := main.cpp, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CXXFLAGS_JDKLIB) \ - -DNO_ZLIB -DUNPACK_JNI -DFULL, \ - CFLAGS_release := -DPRODUCT, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libunpack/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_windows := -map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \ - jvm.lib $(WIN_JAVA_LIB), \ - LDFLAGS_SUFFIX_posix := -ljvm $(LIBCXX) -ljava -lc, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libunpack, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=unpack.dll" \ - -D "JDK_INTERNAL_NAME=unpack" \ - -D "JDK_FTYPE=0x2L", \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBUNPACK): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBUNPACK) - -ifeq ($(OPENJDK_TARGET_OS), windows) - $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(BUILD_LIBUNPACK) - $(ECHO) Copying $(@F) - $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX), %.map, $<) $@ - - $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(BUILD_LIBUNPACK) - $(ECHO) Copying $(@F) - $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX), %.pdb, $<) $@ -endif - -########################################################################################## - -LIBATTACH_EXCLUDE_FILES := -ifneq ($(OPENJDK_TARGET_OS), solaris) - LIBATTACH_EXCLUDE_FILES += SolarisVirtualMachine.c -endif -ifneq ($(OPENJDK_TARGET_OS), linux) - LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c -endif -ifneq ($(OPENJDK_TARGET_OS), macosx) - LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \ - LIBRARY := attach, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tools/attach, \ - EXCLUDE_FILES := $(LIBATTACH_EXCLUDE_FILES), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB), \ - CFLAGS_windows := /Gy, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libattach/mapfile-$(OPENJDK_TARGET_OS), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=attach.dll" \ - -D "JDK_INTERNAL_NAME=attach" \ - -D "JDK_FTYPE=0x2L", \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_solaris := -ldoor, \ - LDFLAGS_windows := /ORDER:@$(JDK_TOPDIR)/makefiles/mapfiles/libattach/reorder-windows-$(OPENJDK_TARGET_CPU), \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ - LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib psapi.lib, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libattach, \ - DEBUG_SYMBOLS := true)) - -$(BUILD_LIBATTACH): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBATTACH) - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \ - LIBRARY := dt_socket, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/transport/socket \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \ - -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \ - -I$(JDK_TOPDIR)/src/share/transport/socket \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket \ - -I$(JDK_TOPDIR)/src/share/back/export \ - -I$(JDK_TOPDIR)/src/share/back, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libdt_socket/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_linux := -lpthread, \ - LDFLAGS_SUFFIX_solaris := -lnsl -lsocket -lc, \ - LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=dt_socket.dll" \ - -D "JDK_INTERNAL_NAME=dt_socket" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdt_socket, \ - DEBUG_SYMBOLS := true)) - -$(BUILD_LIBDT_SOCKET): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBDT_SOCKET) - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), windows) - - $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM, \ - LIBRARY := dt_shmem, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \ - $(JDK_TOPDIR)/src/share/transport/shmem \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \ - -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \ - -I$(JDK_TOPDIR)/src/share/transport/shmem \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem \ - -I$(JDK_TOPDIR)/src/share/back/export, \ - LDFLAGS := $(LDFLAGS_JDKLIB), \ - LDFLAGS_windows := -export:jdwpTransport_OnLoad, \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=dt_shmem.dll" \ - -D "JDK_INTERNAL_NAME=dt_shmem" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdt_shmem, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM) - -endif # OPENJDK_TARGET_OS - -########################################################################################## -# JDWP_LOGGING causes log messages to be compiled into the library. -$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \ - LIBRARY := jdwp, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING \ - -I$(JDK_TOPDIR)/src/share/transport/export \ - -I$(JDK_TOPDIR)/src/share/back/export \ - -I$(JDK_TOPDIR)/src/share/npt \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \ - -I$(JDK_TOPDIR)/src/share/back \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back \ - -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjdwp/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_linux := $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := $(LIBDL) -lc, \ - LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jdwp.dll" \ - -D "JDK_INTERNAL_NAME=jdwp" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjdwp, \ - DEBUG_SYMBOLS := true)) - -$(BUILD_LIBJDWP): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBJDWP) - -########################################################################################## - -LIBJAAS_MAPFILE := -ifneq ($(OPENJDK_TARGET_OS), solaris) - LIBJAAS_EXCLUDE_FILES := Solaris.c -else - # only on solaris...wonder why - LIBJAAS_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjaas/mapfile-vers -endif - -LIBJAAS_NAME := jaas_unix -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBJAAS_NAME := jaas_nt -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS, \ - LIBRARY := $(LIBJAAS_NAME), \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/security/auth/module, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB), \ - MAPFILE := $(LIBJAAS_MAPFILE), \ - LDFLAGS := $(filter-out -ljava, $(LDFLAGS_JDKLIB)) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_windows := netapi32.lib user32.lib mpr.lib advapi32.lib, \ - LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - EXCLUDE_FILES := $(LIBJAAS_EXCLUDE_FILES), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=$(LIBJAAS_NAME).dll" \ - -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjaas, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBJAAS): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBJAAS) - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBJSDT, \ - LIBRARY := jsdt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tracing/dtrace, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsdt/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_linux := $(LIBDL), \ - LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL), \ - LDFLAGS_SUFFIX_macosx := $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jsdt.dll" \ - -D "JDK_INTERNAL_NAME=jsdt" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsdt, \ - DEBUG_SYMBOLS := true)) - -$(BUILD_LIBJSDT): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBJSDT) - -########################################################################################## - -# TODO: Update awt lib path when awt is converted -$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \ - LIBRARY := lcms, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \ - LANG := C, \ - OPTIMIZATION := HIGHEST, \ - CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \ - $(SHARED_LIBRARY_FLAGS) \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug, \ - CFLAGS_solaris := -xc99=no_lib, \ - CFLAGS_windows := -DCMS_IS_WINDOWS_, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/liblcms/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \ - LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ - LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ - LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ - LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=lcms.dll" \ - -D "JDK_INTERNAL_NAME=lcms" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -BUILD_LIBRARIES += $(BUILD_LIBLCMS) - -$(BUILD_LIBLCMS): $(BUILD_LIBAWT) - -########################################################################################## - -ifdef OPENJDK - BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers -else - BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed - BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg - BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) -endif - -BUILD_LIBJPEG_REORDER := -ifeq ($(OPENJDK_TARGET_OS), solaris) - ifneq ($(OPENJDK_TARGET_CPU), x86_64) - BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) - endif -endif - -# Suppress gcc warnings like "variable might be clobbered by 'longjmp' -# or 'vfork'": this warning indicates that some variable is placed to -# a register by optimized compiler and it's value might be lost on longjmp(). -# Recommended way to avoid such warning is to declare the variable as -# volatile to prevent the optimization. However, this approach does not -# work because we have to declare all variables as volatile in result. -#ifndef CROSS_COMPILE_ARCH -# CC_43_OR_NEWER := \ -# $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ -# \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) -# ifeq ($(CC_43_OR_NEWER), 1) -# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered -# endif -#endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ - LIBRARY := jpeg, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ - LANG := C, \ - OPTIMIZATION := HIGHEST, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ - MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jpeg.dll" \ - -D "JDK_INTERNAL_NAME=jpeg" \ - -D "JDK_FTYPE=0x2L", \ - REORDER := $(BUILD_LIBJPEG_REORDER), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBJPEG): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBJPEG) - -########################################################################################## - -ifndef OPENJDK - FONT_HEADERS := -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k - BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers - LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c -else - FONT_HEADERS := $(FREETYPE2_CFLAGS) - BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk - BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE2_LIBS) -endif - -LIBFONTMANAGER_OPTIMIZATION := HIGH - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \ - X11TextRenderer.c - LIBFONTMANAGER_OPTIMIZATION := HIGHEST -else - LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \ - lcdglyph.c -endif - -BUILD_LIBFONTMANAGER_CFLAGS_COMMON := \ - $(X_CFLAGS) \ - -DLE_STANDALONE -DHEADLESS \ - $(FONT_HEADERS) \ - -I$(JDK_TOPDIR)/src/share/native/sun/font \ - -I$(JDK_TOPDIR)/src/share/native/sun/font/layout \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d - -# Turn off aliasing with GCC for ExtensionSubtables.cpp -ifeq ($(OPENJDK_TARGET_OS), linux) - BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \ - LIBRARY := fontmanager, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/font \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font, \ - EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \ - AccelGlyphCache.c, \ - LANG := C++, \ - CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \ - CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \ - OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \ - CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \ - -DCC_NOEX, \ - MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \ - LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \ - LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ - LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ - LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ - -ljava -ljvm, \ - LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ - $(WIN_AWT_LIB), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=fontmanager.dll" \ - -D "JDK_INTERNAL_NAME=fontmanager" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfontmanager, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) - -ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris macosx)) - $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_XAWT) -endif - -BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER) - -########################################################################################## - -ifndef OPENJDK - - #ifeq ($(OPENJDK_TARGET_OS), linux) - # ifeq ("$(CC_VER_MAJOR)", "3") - # OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic - # endif - #endif - # - # The resulting size of the t2k lib file is (at least on linux) dependant on the order of - # the input .o files. Because of this the new build will differ in size to the old build. - BUILD_LIBT2K_CFLAGS_COMMON := -I$(JDK_TOPDIR)/src/share/native/sun/font \ - -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \ - -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \ - -I$(JDK_TOPDIR)/src/share/share/native/sun/font \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d - - $(eval $(call SetupNativeCompilation,BUILD_LIBT2K, \ - LIBRARY := t2k, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/font \ - $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \ - $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints, \ - EXCLUDE_FILES := orion.c, \ - LANG := C++, \ - OPTIMIZATION := HIGH, \ - CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \ - CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \ - CFLAGS_windows = -DCC_NOEX, \ - CXXFLAGS_windows = -DCC_NOEX, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libt2k/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_windows := user32.lib $(JDK_OUTPUTDIR)/objs/libfontmanager/fontmanager.lib, \ - LDFLAGS_SUFFIX_posix := $(LIBM) $(LIBCXX) -lfontmanager -ljava -ljvm -lc, \ - LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=t2k.dll" \ - -D "JDK_INTERNAL_NAME=t2k" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libt2k, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - # t2k is linked against fontmanager - $(BUILD_LIBT2K): $(BUILD_LIBFONTMANAGER) - - BUILD_LIBRARIES += $(BUILD_LIBT2K) -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), windows) - ifeq ($(OPENJDK_TARGET_CPU), x86) - KERNEL32_LIB := kernel32.lib - endif - $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \ - LIBRARY := jawt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows, \ - INCLUDE_FILES := jawt.cpp, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CXXFLAGS_JDKLIB) \ - -EHsc -DUNICODE -D_UNICODE \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows, \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \ - advapi32.lib $(WIN_AWT_LIB), \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jawt.dll" \ - -D "JDK_INTERNAL_NAME=jawt" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBJAWT): $(BUILD_LIBAWT) - - $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT) - $(ECHO) Copying $(@F) - $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@ - - BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) - -else # OPENJDK_TARGET_OS not windows - - JAWT_LIBS := - ifneq ($(OPENJDK_TARGET_OS), solaris) - JAWT_LIBS += -lawt - endif - - ifndef BUILD_HEADLESS_ONLY - JAWT_LIBS += -lawt_xawt - else - JAWT_LIBS += -lawt_headless - HEADLESS_CFLAG += -DHEADLESS - endif - - JAWT_FILES := jawt.c - ifeq ($(OPENJDK_TARGET_OS), macosx) - JAWT_FILES := jawt.m - JAWT_LIBS := -lawt_lwawt - endif - - $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \ - LIBRARY := jawt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ - $(JDK_TOPDIR)/src/macosx/native/sun/awt, \ - INCLUDE_FILES := $(JAWT_FILES), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB), \ - CFLAGS_linux := $(HEADLESS_CFLAG), \ - CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjawt/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ - LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ - LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \ - LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \ - -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - ifndef BUILD_HEADLESS_ONLY - $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT) - else - $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX) - endif - - ifeq ($(OPENJDK_TARGET_OS), macosx) - $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX) - endif - -endif # OPENJDK_TARGET_OS - -BUILD_LIBRARIES += $(BUILD_LIBJAWT) - -########################################################################################## - -LIBINSTRUMENT_SRC := $(JDK_TOPDIR)/src/share/instrument \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument - -LIBINSTRUMENT_FILES := \ - EncodingSupport.c \ - EncodingSupport_md.c \ - FileSystemSupport_md.c \ - InstrumentationImplNativeMethods.c \ - InvocationAdapter.c \ - JarFacade.c \ - JPLISAgent.c \ - JPLISAssert.c \ - JavaExceptions.c \ - PathCharsValidator.c \ - Reentrancy.c \ - Utilities.c \ - canonicalize_md.c - -LIBINSTRUMENT_DIR := $(JDK_OUTPUTDIR)/objs/libinstrument -LIBINSTRUMENT_CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/instrument \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument \ - -I$(JDK_TOPDIR)/src/share/bin - -LIBINSTRUMENT_LDFLAGS := -LIBINSTRUMENT_LDFLAGS_SUFFIX := - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBINSTRUMENT_LDFLAGS += $(JDK_OUTPUTDIR)/objs/jli_static.lib $(WIN_JAVA_LIB) \ - -export:Agent_OnAttach advapi32.lib - # Statically link the C runtime so that there are not dependencies on modules - # not on the search patch when invoked from the Windows system directory - # (or elsewhere). - LIBINSTRUMENT_CFLAGS := $(filter-out -MD, $(LIBINSTRUMENT_CFLAGS)) - # equivalent of strcasecmp is stricmp on Windows - LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \ - LIBRARY := instrument, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBINSTRUMENT_SRC), \ - INCLUDE_FILES := $(LIBINSTRUMENT_FILES), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(LIBINSTRUMENT_CFLAGS), \ - CFLAGS_debug := -DJPLIS_LOGGING, \ - CFLAGS_release := -DNO_JPLIS_LOGGING, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libinstrument/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN) \ - $(LIBINSTRUMENT_LDFLAGS), \ - LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ - LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ - LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \ - -framework Cocoa -framework Security -framework ApplicationServices, \ - LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \ - LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \ - LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \ - LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=instrument.dll" \ - -D "JDK_INTERNAL_NAME=instrument" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(LIBINSTRUMENT_DIR), \ - DEBUG_SYMBOLS := true)) - -ifneq (, $(findstring $(OPENJDK_TARGET_OS), macosx windows)) - $(BUILD_LIBINSTRUMENT): $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX) -else - $(BUILD_LIBINSTRUMENT): $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) -endif -$(BUILD_LIBINSTRUMENT): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBINSTRUMENT) - -########################################################################################## - -BUILD_LIBMANAGEMENT_SRC := $(JDK_TOPDIR)/src/share/native/sun/management \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/management - -BUILD_LIBMANAGEMENT_EXCLUDES := - -BUILD_LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/management - -ifneq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBMANAGEMENT_EXCLUDES += OperatingSystem_md.c -else - BUILD_LIBMANAGEMENT_EXCLUDES += UnixOperatingSystem_md.c -endif - -ifneq ($(OPENJDK_TARGET_OS), solaris) - BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c -endif - -ifneq ($(OPENJDK_TARGET_OS), linux) - BUILD_LIBMANAGEMENT_EXCLUDES += LinuxOperatingSystem.c -endif - -ifneq ($(OPENJDK_TARGET_OS), macosx) - BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c -endif - -LIBMANAGEMENT_OPTIMIZATION := HIGH -ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) - ifeq ($(ENABLE_DEBUG_SYMBOLS), true) - LIBMANAGEMENT_OPTIMIZATION := LOW - endif -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT, \ - LIBRARY := management, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBMANAGEMENT_SRC), \ - EXCLUDE_FILES := $(BUILD_LIBMANAGEMENT_EXCLUDES), \ - LANG := C, \ - OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \ - CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBMANAGEMENT_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libmanagement/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_solaris := -lkstat, \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ - LDFLAGS_SUFFIX_windows := jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=management.dll" \ - -D "JDK_INTERNAL_NAME=management" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmanagement, \ - DEBUG_SYMBOLS := true)) - -$(BUILD_LIBMANAGEMENT): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBMANAGEMENT) - -########################################################################################## - -BUILD_LIBHPROF_SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/hprof $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/hprof -BUILD_LIBHPROF_CFLAGS := -I$(JDK_TOPDIR)/src/share/demo/jvmti/hprof \ - -I$(JDK_TOPDIR)/src/share/npt \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \ - -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo - -BUILD_LIBHPROF_LDFLAGS := - -LIBHPROF_OPTIMIZATION := HIGHEST -ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) - ifeq ($(ENABLE_DEBUG_SYMBOLS), true) - LIBHPROF_OPTIMIZATION := LOW - endif -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBHPROF, \ - LIBRARY := hprof, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBHPROF_SRC), \ - LANG := C, \ - OPTIMIZATION := $(LIBHPROF_OPTIMIZATION), \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(BUILD_LIBHPROF_CFLAGS), \ - CFLAGS_debug := -DHPROF_LOGGING, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libhprof/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_windows := wsock32.lib winmm.lib advapi32.lib, \ - LDFLAGS_SUFFIX_linux := $(LIBDL), \ - LDFLAGS_SUFFIX_macosx := $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := -lsocket -lnsl $(LIBDL) -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=hprof.dll" \ - -D "JDK_INTERNAL_NAME=hprof" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libhprof_jvmti, \ - DEBUG_SYMBOLS := true)) - -BUILD_LIBRARIES += $(BUILD_LIBHPROF) - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA_CRW_DEMO, \ - LIBRARY := java_crw_demo, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjava_crw_demo/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=java_crw_demo.dll" \ - -D "JDK_INTERNAL_NAME=java_crw_demo" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava_crw_demo, \ - DEBUG_SYMBOLS := true)) - -BUILD_LIBRARIES += $(BUILD_LIBJAVA_CRW_DEMO) - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \ - LIBRARY := npt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/npt \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnpt/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_macosx := -liconv, \ - LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=npt.dll" \ - -D "JDK_INTERNAL_NAME=npt" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnpt, \ - DEBUG_SYMBOLS := true)) - -BUILD_LIBRARIES += $(BUILD_LIBNPT) - -########################################################################################## - -LIBNET_SRC_DIRS := $(JDK_TOPDIR)/src/share/native/java/net \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/dns \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/spi - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/www/protocol/http/ntlm -else - LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/sdp -endif - -LIBNET_CFLAGS := $(foreach dir, $(LIBNET_SRC_DIRS), -I$(dir)) - -LIBNET_EXCLUDE_FILES := -ifneq ($(OPENJDK_TARGET_OS), linux) - LIBNET_EXCLUDE_FILES += linux_close.c -endif - -ifneq ($(OPENJDK_TARGET_OS), macosx) - LIBNET_EXCLUDE_FILES += bsd_close.c -endif - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c -else - LIBNET_EXCLUDE_FILES += TwoStacksPlainSocketImpl.c DualStackPlainSocketImpl.c \ - TwoStacksPlainDatagramSocketImpl.c DualStackPlainDatagramSocketImpl.c \ - NTLMAuthSequence.c NetworkInterface_winXP.c -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \ - LIBRARY := net, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBNET_SRC_DIRS), \ - EXCLUDE_FILES := $(LIBNET_EXCLUDE_FILES), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(LIBNET_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnet/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \ - LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \ - LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \ - LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \ - delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \ - -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=net.dll" \ - -D "JDK_INTERNAL_NAME=net" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnet, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBNET): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBNET) - -$(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties - $(ECHO) $(LOG_INFO) Copying $(@F) - $(call install-file) - -COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties - -ifeq ($(OPENJDK_TARGET_OS), solaris) - $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template: $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template - $(ECHO) $(LOG_INFO) Copying $(@F) - $(call install-file) - - COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template -endif - -########################################################################################## - -BUILD_LIBNIO_SRC := \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/nio \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs - -BUILD_LIBNIO_CFLAGS := \ - -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ - -I$(JDK_TOPDIR)/src/share/native/java/io \ - -I$(JDK_TOPDIR)/src/share/native/java/net \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net - -BUILD_LIBNIO_FILES := \ - DatagramChannelImpl.c \ - DatagramDispatcher.c \ - FileChannelImpl.c \ - FileDispatcherImpl.c \ - FileKey.c \ - IOUtil.c \ - MappedByteBuffer.c \ - Net.c \ - ServerSocketChannelImpl.c \ - SocketChannelImpl.c \ - SocketDispatcher.c - -ifeq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBNIO_FILES += \ - Iocp.c \ - RegistryFileTypeDetector.c \ - WindowsAsynchronousFileChannelImpl.c \ - WindowsAsynchronousServerSocketChannelImpl.c \ - WindowsAsynchronousSocketChannelImpl.c \ - WindowsNativeDispatcher.c \ - WindowsSelectorImpl.c -endif - -ifeq ($(OPENJDK_TARGET_OS), linux) - BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) - BUILD_LIBNIO_FILES += \ - EPoll.c \ - EPollArrayWrapper.c \ - EPollPort.c \ - InheritedChannel.c \ - NativeThread.c \ - PollArrayWrapper.c \ - UnixAsynchronousServerSocketChannelImpl.c \ - UnixAsynchronousSocketChannelImpl.c \ - GnomeFileTypeDetector.c \ - MagicFileTypeDetector.c \ - LinuxNativeDispatcher.c \ - LinuxWatchService.c \ - UnixCopyFile.c \ - UnixNativeDispatcher.c -endif - -ifeq ($(OPENJDK_TARGET_OS), macosx) - BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) - BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch - BUILD_LIBNIO_FILES += \ - InheritedChannel.c \ - NativeThread.c \ - PollArrayWrapper.c \ - UnixAsynchronousServerSocketChannelImpl.c \ - UnixAsynchronousSocketChannelImpl.c \ - BsdNativeDispatcher.c \ - MacOSXNativeDispatcher.c \ - UnixCopyFile.c \ - UnixNativeDispatcher.c \ - KQueue.c \ - KQueuePort.c \ - KQueueArrayWrapper.c -endif - -ifeq ($(OPENJDK_TARGET_OS), solaris) - BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) - BUILD_LIBNIO_FILES += \ - DevPollArrayWrapper.c \ - InheritedChannel.c \ - NativeThread.c \ - PollArrayWrapper.c \ - SolarisEventPort.c \ - UnixAsynchronousServerSocketChannelImpl.c \ - UnixAsynchronousSocketChannelImpl.c \ - GnomeFileTypeDetector.c \ - SolarisNativeDispatcher.c \ - SolarisWatchService.c \ - UnixCopyFile.c \ - UnixNativeDispatcher.c -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \ - LIBRARY := nio, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBNIO_SRC), \ - INCLUDE_FILES := $(BUILD_LIBNIO_FILES), \ - LANG := C, \ - OPTIMIZATION := HIGH, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(BUILD_LIBNIO_CFLAGS), \ - MAPFILE := $(BUILD_LIBNIO_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_linux := -ljava -lnet -lpthread $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \ - -lsendfile -ljava -lnet -lc, \ - LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \ - $(JDK_OUTPUTDIR)/objs/libnet/net.lib \ - advapi32.lib, \ - LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \ - LDFLAGS_SUFFIX :=, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=nio.dll" \ - -D "JDK_INTERNAL_NAME=nio" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnio, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -BUILD_LIBRARIES += $(BUILD_LIBNIO) - -$(BUILD_LIBNIO): $(BUILD_LIBNET) - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS_API), posix) - - ifneq ($(OPENJDK_TARGET_OS), macosx) - - SCTP_WERROR := -Werror - ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc) - SCTP_WERROR := - endif - - $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \ - LIBRARY := sctp, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ - -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \ - -I$(JDK_TOPDIR)/src/share/native/java/net \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net, \ - CFLAGS_linux := $(SCTP_WERROR), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsctp/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \ - LDFLAGS_SUFFIX_posix := -lnio -lnet, \ - LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \ - LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBSCTP) - - $(BUILD_LIBSCTP): $(BUILD_LIBNIO) - endif -endif - -########################################################################################## - -BUILD_LIBJLI_SRC_DIRS := $(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin -LIBJLI_CFLAGS := $(CFLAGS_JDKLIB) $(foreach dir, $(BUILD_LIBJLI_SRC_DIRS), -I$(dir)) - -BUILD_LIBJLI_FILES := \ - java.c \ - splashscreen_stubs.c \ - parse_manifest.c \ - version_comp.c \ - wildcard.c \ - jli_util.c - -ifeq ($(JVM_VARIANT_ZERO), true) - ERGO_FAMILY := zero -else - ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) - ERGO_FAMILY := i586 - else - ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) - endif -endif - -ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin - BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin - BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c - - BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c - BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c -endif - -ifeq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBJLI_FILES += java_md.c \ - cmdtoargs.c - # Staticically link with c runtime on windows. - LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS)) -else ifneq ($(OPENJDK_TARGET_OS), macosx) - - BUILD_LIBJLI_FILES += java_md_common.c - BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c - - ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c - - # if the architecture specific ergo file exists then - # use it, else use the generic definitions from ergo.c - ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)), ) - BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE) - else # !ERGO_ARCH_FILE - LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO - endif # ERGO_ARCH_FILE -endif #WINDOWS - -# Append defines depending on target platform -LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS) - -ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" -endif - -ifneq ($(USE_EXTERNAL_LIBZ), true) - BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 - LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS) - BUILD_LIBJLI_FILES += \ - inflate.c \ - inftrees.c \ - inffast.c \ - zadler32.c \ - zcrc32.c \ - zutil.c -endif - -ifeq ($(OPENJDK_TARGET_OS), windows) - LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) -else - LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli -endif - -$(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \ - LIBRARY := jli, \ - OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ - SRC := $(BUILD_LIBJLI_SRC_DIRS), \ - INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ - LANG := C, \ - OPTIMIZATION := HIGH, \ - CFLAGS := $(LIBJLI_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjli/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ - LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ - LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ - LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ - LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ - LDFLAGS_SUFFIX_macosx := $(LIBZ), \ - LDFLAGS_SUFFIX_windows := \ - -export:JLI_Launch \ - -export:JLI_ManifestIterate \ - -export:JLI_SetTraceLauncher \ - -export:JLI_ReportErrorMessage \ - -export:JLI_ReportErrorMessageSys \ - -export:JLI_ReportMessage \ - -export:JLI_ReportExceptionDescription \ - -export:JLI_MemAlloc \ - -export:JLI_CmdToArgs \ - -export:JLI_GetStdArgc \ - -export:JLI_GetStdArgs \ - advapi32.lib \ - comctl32.lib \ - user32.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jli.dll" \ - -D "JDK_INTERNAL_NAME=jli" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -BUILD_LIBRARIES += $(BUILD_LIBJLI) - -# On windows, the static library has the same suffix as the import library created by -# with the shared library, so the static library is given a different name. No harm -# in doing it for all platform to reduce complexity. -ifeq ($(OPENJDK_TARGET_OS), windows) - $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ - STATIC_LIBRARY := jli_static, \ - OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ - SRC := $(BUILD_LIBJLI_SRC_DIRS), \ - INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ - LANG := C, \ - OPTIMIZATION := HIGH, \ - CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ - ARFLAGS := $(ARFLAGS), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC) - -else ifeq ($(OPENJDK_TARGET_OS), macosx) - # - # On macosx they do partial (incremental) linking of libjli_static.a - # code it here...rather than add support to NativeCompilation - # as this is first time I see it - $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ - LIBRARY := jli_static, \ - OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ - SRC := $(BUILD_LIBJLI_SRC_DIRS), \ - INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ - LANG := C, \ - OPTIMIZATION := HIGH, \ - CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ - LDFLAGS := -nostdlib -r, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC) - $(call install-file) - - BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a -endif - -########################################################################################## - -ifndef OPENJDK - ifeq ($(ENABLE_JFR), true) - - $(eval $(call SetupNativeCompilation,BUILD_LIBJFR, \ - LIBRARY := jfr, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/closed/share/native/oracle/jfr, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/closed/share/javavm/export, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjfr/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jfr.dll" \ - -D "JDK_INTERNAL_NAME=jfr" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjfr, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBJFR) - -endif -endif - -########################################################################################## - -ifndef OPENJDK - - BUILD_LIBKCMS_EXCLUDE_FILES := - ifeq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBKCMS_EXCLUDE_FILES += ukcpmgr.c unixmem.c - else - BUILD_LIBKCMS_EXCLUDE_FILES += cmmdll.c registry.c spxffile.c sysinfo.c winmem.c wkcpmgr.c - endif - - BUILD_LIBKCMS_FLAGS := $(CFLAGS_JDKLIB) - - ifeq ($(OPENJDK_TARGET_OS), solaris) - # This particular library uses a feature called PIC_CODE_SMALL (on solaris) - # implement it like this...since it's only used here - BUILD_LIBKCMS_FLAGS := $(patsubst -KPIC, -Kpic, $(BUILD_LIBKCMS_FLAGS)) - else ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc) - BUILD_LIBKCMS_FLAGS := $(patsubst -fPIC, -fpic, $(BUILD_LIBKCMS_FLAGS)) - endif - - $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS, \ - LIBRARY := kcms, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms, \ - LANG := C, \ - EXCLUDE_FILES := $(BUILD_LIBKCMS_EXCLUDE_FILES), \ - OPTIMIZATION := LOW, \ - CFLAGS := $(BUILD_LIBKCMS_FLAGS) \ - -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST, \ - CFLAGS_linux := -Wno-missing-field-initializers, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libkcms/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_linux := -lc -lpthread, \ - LDFLAGS_SUFFIX_solaris := -lc, \ - LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \ - LDFLAGS_SUFFIX_posix := -lm -ljava -ljvm, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=kcms.dll" \ - -D "JDK_INTERNAL_NAME=kcms" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkcms, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBKCMS): $(BUILD_LIBJAVA) - - BUILD_LIBRARIES += $(BUILD_LIBKCMS) - -endif - -########################################################################################## - -ifndef OPENJDK - ifeq ($(OPENJDK_TARGET_OS), solaris) - ifneq ($(OPENJDK_TARGET_CPU), x86_64) - - ifeq ($(shell if test "$(OS_VERSION_MAJOR)" -eq 5 -a "$(OS_VERSION_MINOR)" -le 10; then $(ECHO) ok; fi), ok) - - SUNWJDGA_MAPFILE := - ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) - SUNWJDGA_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjdga/mapfile-vers - endif - - $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \ - LIBRARY := sunwjdga, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/solaris/native/sun/jdga, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/javavm/export \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \ - -I$(OPENWIN_HOME)/include, \ - MAPFILE := $(SUNWJDGA_MAPFILE), \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunwjdga, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA) - - endif - endif - endif -endif - -########################################################################################## - -ifeq ($(BUILD_HEADLESS), true) - ifneq ($(OPENJDK_TARGET_OS), windows) - - LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/share/native/sun/font \ - $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/solaris/native/sun/font \ - $(JDK_TOPDIR)/src/solaris/native/sun/awt \ - $(JDK_TOPDIR)/src/solaris/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/solaris/native/sun/java2d/x11 - - ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBAWT_HEADLESS_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/font - endif - - LIBAWT_HEADLESS_CFLAGS := -DHEADLESS=true \ - -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \ - $(CUPS_CFLAGS) \ - $(X_CFLAGS) \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \ - $(foreach dir, $(LIBAWT_HEADLESS_DIRS), -I$(dir)) - - ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBAWT_HEADLESS_CFLAGS += \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks - endif - - LIBAWT_HEADLESS_FILES := \ - awt_Font.c \ - HeadlessToolkit.c \ - fontpath.c \ - VDrawingArea.c \ - X11Color.c \ - X11Renderer.c \ - X11PMBlitLoops.c \ - X11SurfaceData.c \ - X11FontScaler_md.c \ - X11TextRenderer_md.c \ - OGLBlitLoops.c \ - OGLBufImgOps.c \ - OGLContext.c \ - OGLFuncs.c \ - OGLMaskBlit.c \ - OGLMaskFill.c \ - OGLPaints.c \ - OGLRenderQueue.c \ - OGLRenderer.c \ - OGLSurfaceData.c \ - OGLTextRenderer.c \ - OGLVertexCache.c \ - GLXGraphicsConfig.c \ - GLXSurfaceData.c \ - AccelGlyphCache.c \ - CUPSfuncs.c - - ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBAWT_HEADLESS_FILES += \ - AWTFont.m \ - AWTStrike.m \ - CCharToGlyphMapper.m \ - CGGlyphImages.m \ - CGGlyphOutlines.m \ - CoreTextSupport.m - endif - - LIBAWT_HEADLESS_REORDER := - ifeq ($(OPENJDK_TARGET_OS), solaris) - ifneq ($(OPENJDK_TARGET_CPU), x86_64) - LIBAWT_HEADLESS_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU) - endif - endif - - $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \ - LIBRARY := awt_headless, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBAWT_HEADLESS_DIRS), \ - INCLUDE_FILES := $(LIBAWT_HEADLESS_FILES), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ - LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..) \ - -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \ - -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ - LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \ - REORDER := $(LIBAWT_HEADLESS_REORDER), \ - LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ - LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ - LDFLAGS_SUFFIX_macosx := -ljvm $(LIBCXX) -lawt $(LIBDL) -ljava \ - -framework Accelerate \ - -framework ApplicationServices \ - -framework Cocoa \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -framework JavaRuntimeSupport, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT) - - BUILD_LIBRARIES += $(BUILD_LIBAWT_HEADLESS) - - endif -endif - -########################################################################################## - -ifndef BUILD_HEADLESS_ONLY - LIBSPLASHSCREEN_DIRS := \ - $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \ - $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \ - $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen - - ifeq ($(USE_EXTERNAL_LIBGIF), true) - GIFLIB_LDFLAGS := -lgif - else - LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib - GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib - endif - - ifneq ($(OPENJDK_TARGET_OS), macosx) - LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen - else - LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen - endif - - LIBSPLASHSCREEN_CFLAGS := -DSPLASHSCREEN -DPNG_NO_MMX_CODE \ - $(foreach dir, $(LIBSPLASHSCREEN_DIRS), -I$(dir)) - - ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBSPLASHSCREEN_CFLAGS := -I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \ - $(LIBSPLASHSCREEN_CFLAGS) \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks - LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX - LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp - - LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0 - LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0 - LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0 - LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0 - LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0 - LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0 - LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0 - - else ifneq ($(OPENJDK_TARGET_OS), windows) - LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions - else - LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32 - endif - - LIBSPLASHSCREEN_LDFLAGS_SUFFIX := - - ifneq ($(USE_EXTERNAL_LIBZ), true) - LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 - LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS) - endif - - ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \ - -framework ApplicationServices \ - -framework Foundation \ - -framework Cocoa \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation - else ifneq ($(OPENJDK_TARGET_OS), windows) - LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread - else # OPENJDK_TARGET_OS - LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll - endif # OPENJDK_TARGET_OS - - $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN, \ - LIBRARY := splashscreen, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBSPLASHSCREEN_DIRS), \ - EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=splashscreen.dll" \ - -D "JDK_INTERNAL_NAME=splashscreen" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsplashscreen, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(LIBSPLASHSCREEN) - - ifeq ($(OPENJDK_TARGET_OS), macosx) - $(LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX) - endif - -endif - -########################################################################################## - -ifndef OPENJDK - - LIBDCPR_SRC_DIRS := \ - $(JDK_TOPDIR)/src/closed/share/native/sun/dc/doe \ - $(JDK_TOPDIR)/src/closed/share/native/sun/dc/path \ - $(JDK_TOPDIR)/src/closed/share/native/sun/dc/pr \ - $(JDK_TOPDIR)/src/closed/share/native/sun/dc/util - - LIBDCPR_CFLAGS := $(foreach dir, $(LIBDCPR_SRC_DIRS), -I$(dir)) \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe - - $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR, \ - LIBRARY := dcpr, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBDCPR_SRC_DIRS), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(LIBDCPR_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libdcpr/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(LIBM) $(LDFLAGS_JDKLIB_SUFFIX), \ - LDFLAGS_SUFFIX_posix := -lm, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=dcpr.dll" \ - -D "JDK_INTERNAL_NAME=dcpr" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdcpr, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBDCPR): $(BUILD_LIBJAVA) - - BUILD_LIBRARIES += $(BUILD_LIBDCPR) - -endif - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \ - LIBRARY := j2pcsc, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio, \ - LANG := C, \ - CFLAGS_posix := -D__sun_jdk, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2pcsc/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_posix := $(LIBDL), \ - LDFLAGS_SUFFIX_windows := winscard.lib, \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=j2pcsc.dll" \ - -D "JDK_INTERNAL_NAME=j2pcsc" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pcsc, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC) - -########################################################################################## - -ifneq ($(OPENJDK_TARGET_OS), windows) - $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS, \ - LIBRARY := j2gss, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2gss/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2gss, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBJ2GSS) -endif - -########################################################################################## - -ifneq ($(BUILD_CRYPTO), no) - BUILD_LIBKRB5_NAME := - ifeq ($(OPENJDK_TARGET_OS), windows) - BUILD_LIBKRB5_NAME := w2k_lsa_auth - BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5 - BUILD_LIBKRB5_LIBS := advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \ - gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \ - ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib - else ifeq ($(OPENJDK_TARGET_OS), macosx) - BUILD_LIBKRB5_NAME := osxkrb5 - BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/share/native/sun/security/krb5 - BUILD_LIBKRB5_LIBS := -framework Kerberos - endif - - ifneq ($(BUILD_LIBKRB5_NAME), ) - $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5, \ - LIBRARY := $(BUILD_LIBKRB5_NAME), \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(BUILD_LIBKRB5_SRC), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(BUILD_LIBKRB5_LIBS), \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=$(BUILD_LIBKRB5_NAME).dll" \ - -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkrb5, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBKRB5) - endif -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), windows) - - $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \ - LIBRARY := sunmscapi, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := Crypt32.Lib advapi32.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=sunmscapi.dll" \ - -D "JDK_INTERNAL_NAME=sunmscapi" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunmscapi, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI) -endif - -########################################################################################## - -$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \ - LIBRARY := j2pkcs11, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ - $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ - -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ - -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2pkcs11/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_posix := $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=j2pkcs11.dll" \ - -D "JDK_INTERNAL_NAME=j2pkcs11" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pkcs11, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11) - -########################################################################################## - -ifeq ($(ENABLE_INTREE_EC), yes) - - BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \ - -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl - - # - # On sol-sparc...all libraries are compiled with -xregs=no%appl - # (set in CFLAGS_REQUIRED_sparc) - # - # except!!! libsunec.so - # - ECC_JNI_SOLSPARC_FILTER := - ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) - ECC_JNI_SOLSPARC_FILTER := -xregs=no%appl - endif - - $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \ - LIBRARY := sunec, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec \ - $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \ - $(BUILD_LIBSUNEC_FLAGS) \ - -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \ - CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \ - $(BUILD_LIBSUNEC_FLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsunec/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \ - LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(LIBCXX), \ - LDFLAGS_SUFFIX_linux := -lc, \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=sunec.dll" \ - -D "JDK_INTERNAL_NAME=sunec" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunec, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBSUNEC) -endif - -########################################################################################## - -LIBJSOUND_SRC_DIRS := \ - $(JDK_TOPDIR)/src/share/native/com/sun/media/sound \ - $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/media/sound - -LIBJSOUND_SRC_FILES := Utilities.c Platform.c - -LIBJSOUND_LANG := C -LIBJSOUND_CFLAGS := $(foreach dir, $(LIBJSOUND_SRC_DIRS), -I$(dir)) - -EXTRA_SOUND_JNI_LIBS := - -LIBJSOUND_MIDIFILES := \ - MidiInDevice.c \ - MidiInDeviceProvider.c \ - MidiOutDevice.c \ - MidiOutDeviceProvider.c \ - PlatformMidi.c - -# files needed for ports -LIBJSOUND_PORTFILES := \ - PortMixerProvider.c \ - PortMixer.c - -# files needed for direct audio -LIBJSOUND_DAUDIOFILES := \ - DirectAudioDeviceProvider.c \ - DirectAudioDevice.c - -ifeq ($(OPENJDK_TARGET_OS), windows) - EXTRA_SOUND_JNI_LIBS += jsoundds - LIBJSOUND_CFLAGS += -DX_PLATFORM=X_WINDOWS \ - -DUSE_PLATFORM_MIDI_OUT=TRUE \ - -DUSE_PLATFORM_MIDI_IN=TRUE \ - -DUSE_PORTS=TRUE - LIBJSOUND_SRC_FILES += \ - PLATFORM_API_WinOS_MidiIn.cpp \ - PLATFORM_API_WinOS_MidiOut.c \ - PLATFORM_API_WinOS_Util.c \ - PLATFORM_API_WinOS_Ports.c - LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES) - LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES) -endif # OPENJDK_TARGET_OS windows - -ifeq ($(OPENJDK_TARGET_OS), linux) - EXTRA_SOUND_JNI_LIBS += jsoundalsa - LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX -endif # OPENJDK_TARGET_OS linux - -ifeq ($(OPENJDK_TARGET_OS), macosx) - LIBJSOUND_LANG := C++ - LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \ - -DUSE_PORTS=TRUE \ - -DUSE_DAUDIO=TRUE \ - -DUSE_PLATFORM_MIDI_OUT=TRUE \ - -DUSE_PLATFORM_MIDI_IN=TRUE - LIBJSOUND_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/com/sun/media/sound - LIBJSOUND_SRC_FILES += \ - PLATFORM_API_MacOSX_Utils.cpp \ - PLATFORM_API_MacOSX_PCM.cpp \ - PLATFORM_API_MacOSX_Ports.cpp \ - PLATFORM_API_MacOSX_MidiIn.c \ - PLATFORM_API_MacOSX_MidiOut.c \ - PLATFORM_API_MacOSX_MidiUtils.c - LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES) - LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES) - LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES) -endif # OPENJDK_TARGET_OS macosx - -ifeq ($(OPENJDK_TARGET_OS), solaris) - LIBJSOUND_CFLAGS += -DX_PLATFORM=X_SOLARIS \ - -DUSE_PORTS=TRUE \ - -DUSE_DAUDIO=TRUE - LIBJSOUND_SRC_FILES += \ - PLATFORM_API_SolarisOS_Utils.c \ - PLATFORM_API_SolarisOS_Ports.c \ - PLATFORM_API_SolarisOS_PCM.c - LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES) - LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES) - LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES) -endif # OPENJDK_TARGET_OS solaris - - -ifeq ($(JVM_VARIANT_ZERO), true) - LIBJSOUND_CFLAGS += -DX_ARCH=X_ZERO -else - ifeq ($(OPENJDK_TARGET_CPU), x86) - LIBJSOUND_CFLAGS += -DX_ARCH=X_I586 - endif - - ifeq ($(OPENJDK_TARGET_CPU), sparc) - LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARC - endif - - ifeq ($(OPENJDK_TARGET_CPU), sparcv9) - LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARCV9 - endif - - ifeq ($(OPENJDK_TARGET_CPU), x86_64) - LIBJSOUND_CFLAGS += -DX_ARCH=X_AMD64 - endif - - ifeq ($(OPENJDK_TARGET_CPU), arm) - LIBJSOUND_CFLAGS += -DX_ARCH=X_ARM - endif - - ifeq ($(OPENJDK_TARGET_CPU), ppc) - LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC - endif -endif - -LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"' - -$(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND, \ - LIBRARY := jsound, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBJSOUND_SRC_DIRS), \ - INCLUDE_FILES := $(LIBJSOUND_SRC_FILES), \ - LANG := $(LIBJSOUND_LANG), \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(LIBJSOUND_CFLAGS), \ - CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsound/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_macosx := -framework CoreAudio -framework CoreFoundation \ - -framework CoreServices -framework AudioUnit $(LIBCXX) \ - -framework CoreMIDI -framework AudioToolbox, \ - LDFLAGS_windows := $(WIN_JAVA_LIB) advapi32.lib winmm.lib, \ - LDFLAGS_SUFFIX_posix := -ljava -ljvm, \ - LDFLAGS_SUFFIX_solaris := -lc, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jsound.dll" \ - -D "JDK_INTERNAL_NAME=jsound" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsound, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - -$(BUILD_LIBJSOUND): $(BUILD_LIBJAVA) - -BUILD_LIBRARIES += $(BUILD_LIBJSOUND) - -########################################################################################## - -ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)), ) - - $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA, \ - LIBRARY := jsoundalsa, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBJSOUND_SRC_DIRS), \ - INCLUDE_FILES := Utilities.c $(LIBJSOUND_MIDIFILES) $(LIBJSOUND_PORTFILES) \ - $(LIBJSOUND_DAUDIOFILES) \ - PLATFORM_API_LinuxOS_ALSA_CommonUtils.c \ - PLATFORM_API_LinuxOS_ALSA_PCM.c \ - PLATFORM_API_LinuxOS_ALSA_PCMUtils.c \ - PLATFORM_API_LinuxOS_ALSA_MidiIn.c \ - PLATFORM_API_LinuxOS_ALSA_MidiOut.c \ - PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \ - PLATFORM_API_LinuxOS_ALSA_Ports.c, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \ - $(LIBJSOUND_CFLAGS) \ - -DUSE_DAUDIO=TRUE \ - -DUSE_PORTS=TRUE \ - -DUSE_PLATFORM_MIDI_OUT=TRUE \ - -DUSE_PLATFORM_MIDI_IN=TRUE, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsoundalsa/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBJSOUNDALSA): $(BUILD_LIBJAVA) - - BUILD_LIBRARIES += $(BUILD_LIBJSOUNDALSA) - -endif - -########################################################################################## - -ifneq ($(filter jsoundds, $(EXTRA_SOUND_JNI_LIBS)), ) - - $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS, \ - LIBRARY := jsoundds, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBJSOUND_SRC_DIRS), \ - INCLUDE_FILES := Utilities.c $(LIBJSOUND_DAUDIOFILES) \ - PLATFORM_API_WinOS_DirectSound.cpp, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(LIBJSOUND_CFLAGS) \ - -DUSE_DAUDIO=TRUE, \ - LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX) dsound.lib winmm.lib user32.lib ole32.lib, \ - VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ - RC_FLAGS := $(RC_FLAGS) \ - -D "JDK_FNAME=jsoundds.dll" \ - -D "JDK_INTERNAL_NAME=jsoundds" \ - -D "JDK_FTYPE=0x2L", \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundds, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBJSOUNDDS): $(BUILD_LIBJAVA) - - BUILD_LIBRARIES += $(BUILD_LIBJSOUNDDS) - -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), solaris) - ifndef OPENJDK - - $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO, \ - LIBRARY := j2ucrypto, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ - MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2ucrypto/mapfile-vers, \ - LDFLAGS := $(LDFLAGS_JDKLIB), \ - LDFLAGS_SUFFIX := $(LIBDL), \ - LDFLAGS_SUFFIX_solaris := -lc, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2ucrypto, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(BUILD_LIBJ2UCRYPTO): $(BUILD_LIBJAVA) - - BUILD_LIBRARIES += $(BUILD_LIBJ2UCRYPTO) - - endif -endif - ########################################################################################## -ifeq ($(OPENJDK_TARGET_OS), macosx) +include lib/CoreLibraries.gmk - $(eval $(call SetupNativeCompilation,BUILD_LIBAPPLESCRIPTENGINE, \ - LIBRARY := AppleScriptEngine, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/macosx/native/apple/applescript, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/macosx/native/apple/applescript \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := -framework Cocoa \ - -framework Carbon \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - $(LDFLAGS_JDKLIB_SUFFIX), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libAppleScriptEngine, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) +include lib/PlatformLibraries.gmk - $(BUILD_LIBAPPLESCRIPTENGINE): $(BUILD_LIBJAVA) +include lib/NetworkingLibraries.gmk - BUILD_LIBRARIES += $(BUILD_LIBAPPLESCRIPTENGINE) +include lib/NioLibraries.gmk -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), macosx) - - $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP, \ - LIBRARY := osxapp, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/macosx/native/sun/osxapp, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ - -I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_macosx := \ - -framework Accelerate \ - -framework ApplicationServices \ - -framework AudioToolbox \ - -framework Carbon \ - -framework Cocoa \ - -framework Security \ - -framework ExceptionHandling \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -framework JavaRuntimeSupport \ - -framework OpenGL \ - -framework IOSurface \ - -framework QuartzCore, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxapp, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBOSXAPP) - -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), macosx) - - LIBOSX_DIRS := \ - $(JDK_TOPDIR)/src/macosx/native/com/apple/concurrent \ - $(JDK_TOPDIR)/src/macosx/native/java/util \ - $(JDK_TOPDIR)/src/macosx/native/com/apple/eio \ - $(JDK_TOPDIR)/src/macosx/native/apple/security \ - $(JDK_TOPDIR)/src/macosx/native/apple/launcher - - $(eval $(call SetupNativeCompilation,BUILD_LIBOSX, \ - LIBRARY := osx, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBOSX_DIRS), \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(foreach dir, $(LIBOSX_DIRS), -I$(dir)) \ - -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_macosx := \ - -losxapp \ - -framework Cocoa \ - -framework ApplicationServices \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -framework JavaRuntimeSupport \ - -framework Security \ - -framework SystemConfiguration \ - $(LDFLAGS_JDKLIB_SUFFIX), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosx, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBOSX) - - $(BUILD_LIBOSX): $(BUILD_LIBOSXAPP) - - $(BUILD_LIBOSX): $(BUILD_LIBJAVA) - -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), macosx) - - LIBAWT_LWAWT_FILES := \ - awt.m \ - ApplicationDelegate.m \ - CFRetainedResource.m \ - CGLGraphicsConfig.m \ - CGLSurfaceData.m \ - CGLLayer.m \ - CGraphicsConfig.m \ - CGraphicsDevice.m \ - CGraphicsEnv.m \ - CCharToGlyphMapper.m \ - CSystemColors.m \ - AWTFont.m \ - CGGlyphOutlines.m \ - CGGlyphImages.m \ - CoreTextSupport.m \ - AWTStrike.m \ - InitIDs.m \ - AWTEvent.m \ - AWTView.m \ - AWTWindow.m \ - AWTSurfaceLayers.m \ - CCursorManager.m \ - CClipboard.m \ - CDataTransferer.m \ - CDragSource.m \ - CDragSourceContextPeer.m \ - CDropTarget.m \ - CDropTargetContextPeer.m \ - CInputMethod.m \ - CDesktopPeer.m \ - OSVersion.m \ - DnDUtilities.m \ - CFileDialog.m \ - CImage.m \ - CMenu.m \ - CMenuBar.m \ - CMenuComponent.m \ - CMenuItem.m \ - CPopupMenu.m \ - CRobot.m \ - CTrayIcon.m \ - CWrapper.m \ - JavaAccessibilityAction.m \ - JavaAccessibilityUtilities.m \ - JavaComponentAccessibility.m \ - JavaTextAccessibility.m \ - LWCToolkit.m \ - GeomUtilities.m \ - CPrinterJob.m \ - PrintModel.m \ - PrinterSurfaceData.m \ - PrinterView.m \ - QuartzSurfaceData.m \ - QuartzRenderer.m \ - CTextPipe.m \ - ImageSurfaceData.m \ - awt_DrawingSurface.m \ - \ - OGLBlitLoops.c \ - OGLBufImgOps.c \ - OGLContext.c \ - OGLFuncs.c \ - OGLMaskBlit.c \ - OGLMaskFill.c \ - OGLPaints.c \ - OGLRenderQueue.c \ - OGLRenderer.c \ - OGLSurfaceData.c \ - OGLTextRenderer.c \ - OGLVertexCache.c \ - AccelGlyphCache.c \ - CUPSfuncs.c - - - LIBAWT_LWAWT_DIRS := \ - $(JDK_TOPDIR)/src/macosx/native/sun/awt \ - $(JDK_TOPDIR)/src/macosx/native/sun/font \ - $(JDK_TOPDIR)/src/macosx/native/sun/java2d/opengl \ - $(JDK_TOPDIR)/src/solaris/native/sun/awt \ - $(JDK_TOPDIR)/src/share/native/sun/font \ - $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ - - $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \ - LIBRARY := awt_lwawt, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(LIBAWT_LWAWT_DIRS), \ - LANG := C, \ - INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - $(X_CFLAGS) \ - $(X_LIBS) \ - $(foreach dir, $(LIBAWT_LWAWT_DIRS), -I$(dir)) \ - -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ - -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ - -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \ - -framework Accelerate \ - -framework ApplicationServices \ - -framework AudioToolbox \ - -framework Carbon \ - -framework Cocoa \ - -framework Security \ - -framework ExceptionHandling \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -framework JavaRuntimeSupport \ - -framework OpenGL \ - -framework QuartzCore -ljava, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_lwawt, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT) - - $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT) - - $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE) - - $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBOSXAPP) - - $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBJAVA) - -endif +include lib/SecurityLibraries.gmk -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), macosx) - - $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \ - LIBRARY := osxui, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(JDK_TOPDIR)/src/macosx/native/com/apple/laf, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \ - -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ - -I$(JDK_TOPDIR)/src/macosx/native/sun/awt \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN) \ - -Xlinker -rpath -Xlinker @loader_path, \ - LDFLAGS_SUFFIX_macosx := -lawt -losxapp -lawt_lwawt \ - -framework Cocoa \ - -framework Carbon \ - -framework ApplicationServices \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -framework JavaRuntimeSupport \ - -ljava -ljvm, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxui, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - BUILD_LIBRARIES += $(BUILD_LIBOSXUI) - - $(BUILD_LIBOSXUI): $(BUILD_LIBAWT) - - $(BUILD_LIBOSXUI): $(BUILD_LIBOSXAPP) - - $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT) - - #$(BUILD_LIBOSXUI): $(BUILD_LIBJAVA) - -endif - -########################################################################################## - -ifeq ($(OPENJDK_TARGET_OS), macosx) - - # Ugly hack to mimic behaviour in old build where this is built as an xcode project. - SET_SHARED_LIBRARY_NAME = -Xlinker -install_name -Xlinker /usr/local/lib/libJObjC.dylib - - $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC32, \ - LIBRARY := JObjC, \ - OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc32, \ - SRC := $(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \ - $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := -fpascal-strings \ - -fobjc-gc \ - -gdwarf-2 \ - $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -m32, \ - LDFLAGS := $(LDFLAGS_JDKLIB) \ - -m32, \ - LDFLAGS_SUFFIX := -framework Foundation -framework JavaVM \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -lffi, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc32, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) - - $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64, \ - LIBRARY := JObjC, \ - OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc64, \ - SRC := $(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \ - $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native, \ - LANG := C, \ - OPTIMIZATION := LOW, \ - CFLAGS := -fpascal-strings \ - -fobjc-gc \ - -gdwarf-2 \ - $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - , \ - LDFLAGS := -fpascal-strings \ - -fobjc-gc \ - -gdwarf-2 \ - $(LDFLAGS_JDKLIB) \ - $(call SET_SHARED_LIBRARY_ORIGIN), \ - LDFLAGS_SUFFIX := -framework Foundation -framework JavaVM \ - -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ - -framework JavaNativeFoundation \ - -lffi, \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc64, \ - DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) +include lib/ServiceabilityLibraries.gmk - $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX): $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64) - $(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64) - - BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX) - -endif - -########################################################################################## - -ifndef OPENJDK - ifeq ($(OPENJDK_TARGET_OS), windows) - - ACCESSBRIDGE_SRCDIR := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge - - define SetupAccessBridge - # Parameter 1 Suffix - # Parameter 2 Machine - # Parameter 3 ACCESSBRIDGE_ARCH_ suffix - - $(call SetupNativeCompilation,BUILD_JAWTACCESSBRIDGE$1, \ - LIBRARY = JAWTAccessBridge$1, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(ACCESSBRIDGE_SRCDIR), \ - INCLUDE_FILES := JAWTAccessBridge.cpp, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -DACCESSBRIDGE_ARCH_$3, \ - LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ - winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \ - ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ - -subsystem:windows -machine:$2 \ - -def:$(ACCESSBRIDGE_SRCDIR)/JAWTAccessBridge.DEF, \ - VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ - RC_FLAGS := $(RC_FLAGS), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1, \ - DEBUG_SYMBOLS := true) - - $$(BUILD_JAWTACCESSBRIDGE$1): $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) - - $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \ - LIBRARY = JavaAccessBridge$1, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(ACCESSBRIDGE_SRCDIR), \ - INCLUDE_FILES := AccessBridgeATInstance.cpp AccessBridgeDebug.cpp \ - AccessBridgeJavaEntryPoints.cpp \ - AccessBridgeMessages.cpp JavaAccessBridge.cpp, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(CFLAGS_JDKLIB) \ - -DACCESSBRIDGE_ARCH_$3, \ - LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ - winspool.lib comdlg32.lib advapi32.lib shell32.lib \ - ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ - -subsystem:windows -machine:$2 \ - -def:$(ACCESSBRIDGE_SRCDIR)/JavaAccessBridge.DEF, \ - VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ - RC_FLAGS := $(RC_FLAGS), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavaaccessbridge$1, \ - DEBUG_SYMBOLS := true) - - $(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1, \ - LIBRARY = WindowsAccessBridge$1, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ - SRC := $(ACCESSBRIDGE_SRCDIR), \ - INCLUDE_FILES := AccessBridgeJavaVMInstance.cpp AccessBridgeMessageQueue.cpp \ - AccessBridgeMessages.cpp AccessBridgeWindowsEntryPoints.cpp \ - WinAccessBridge.cpp AccessBridgeDebug.cpp \ - AccessBridgeEventHandler.cpp, \ - LANG := C++, \ - OPTIMIZATION := LOW, \ - CFLAGS := $(filter-out -MD, $(CFLAGS_JDKLIB)) -MT \ - -DACCESSBRIDGE_ARCH_$3, \ - LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ - winspool.lib comdlg32.lib advapi32.lib shell32.lib \ - ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ - -subsystem:windows -machine:$2 \ - -def:$(ACCESSBRIDGE_SRCDIR)/WinAccessBridge.DEF, \ - VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ - RC_FLAGS := $(RC_FLAGS), \ - OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libwindowsaccessbridge$1, \ - DEBUG_SYMBOLS := true) - - BUILD_LIBRARIES += $$(BUILD_JAWTACCESSBRIDGE$1) $$(BUILD_JAVAACCESSBRIDGE$1) \ - $$(BUILD_WINDOWSACCESSBRIDGE$1) - - endef - - ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) - $(eval $(call SetupAccessBridge,-32,I386,32)) - $(eval $(call SetupAccessBridge,,I386,LEGACY)) - else - $(eval $(call SetupAccessBridge,-64,X64,64)) - endif - endif -endif +include lib/Awt2dLibraries.gmk +include lib/SoundLibraries.gmk ########################################################################################## diff --git a/makefiles/CopyIntoClasses.gmk b/makefiles/CopyIntoClasses.gmk index 2eb496b24467cfbfa5f6ab9ec578db44d2587be3..ddf5ae8b1e25e1892d24a874245e392d67a2f3ea 100644 --- a/makefiles/CopyIntoClasses.gmk +++ b/makefiles/CopyIntoClasses.gmk @@ -91,7 +91,7 @@ ifndef OPENJDK $(SWING_PLAF_WINDOWS_RESOURCES_DIR_CLOSED)/icons/JavaCup32.png endif -ifndef OPENJDK +ifeq ($(ENABLE_JFR), true) JFR_CONFIGURATION_DIR_CLOSED = $(JDK_TOPDIR)/src/closed/share/classes/oracle/jrockit/jfr/settings COPY_FILES += \ $(JFR_CONFIGURATION_DIR_CLOSED)/jfc.xsd diff --git a/makefiles/lib/Awt2dLibraries.gmk b/makefiles/lib/Awt2dLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..a7a91ef6965c56eeeb4eeb44b43603fda8be9581 --- /dev/null +++ b/makefiles/lib/Awt2dLibraries.gmk @@ -0,0 +1,1525 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# +# TODO replace with X_FLAGS / X_LIBS +# and add them to configure +# +OPENWIN_LIB := $(OPENWIN_HOME)/lib + +WIN_AWT_LIB := $(JDK_OUTPUTDIR)/objs/libawt/awt.lib + +########################################################################################## + +BUILD_LIBMLIB_SRC := $(JDK_TOPDIR)/src/share/native/sun/awt/medialib +BUILD_LIBMLIB_CFLAGS := -D__USE_J2D_NAMES -D__MEDIALIB_OLD_NAMES \ + -I$(BUILD_LIBMLIB_SRC) \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/medialib + +BUILD_LIBMLIB_LDLIBS := +BUILD_LIBMLIB_IMAGE_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libmlib_image/mapfile-vers + +BUILD_LIBMLIB_CFLAGS += -DMLIB_NO_LIBSUNMATH + +ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) + BUILD_LIBMLIB_CFLAGS += -DMLIB_OS64BIT +endif + +ifneq ($(OPENJDK_TARGET_OS), windows) + BUILD_LIBMLIB_LDLIBS += $(LIBM) $(LIBDL) +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE, \ + LIBRARY := mlib_image, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(BUILD_LIBMLIB_SRC), \ + EXCLUDE_FILES := awt_ImagingLib.c mlib_c_ImageBlendTable.c, \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBMLIB_CFLAGS), \ + MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(BUILD_LIBMLIB_LDLIBS) \ + $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=mlib_image.dll" \ + -D "JDK_INTERNAL_NAME=mlib_image" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBMLIB_IMAGE): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE) + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) + + BUILD_LIBMLIB_IMAGE_V_FILES := \ + mlib_v_ImageLookUp.c \ + mlib_ImageCreate.c \ + mlib_ImageAffine.c \ + mlib_ImageConvMxN.c \ + mlib_ImageConvKernelConvert.c \ + mlib_sys.c \ + mlib_ImageLookUp_64.c \ + mlib_ImageLookUp_Bit.c \ + mlib_ImageColorTrue2Index.c \ + mlib_c_ImageThresh1_U8.c \ + mlib_v_ImageLookUpS16S16Func.c \ + mlib_v_ImageLookUpS16S32Func.c \ + mlib_v_ImageLookUpS16U16Func.c \ + mlib_v_ImageLookUpS16U8Func.c \ + mlib_v_ImageLookUpS32S16Func.c \ + mlib_v_ImageLookUpS32S32Func.c \ + mlib_v_ImageLookUpS32U16Func.c \ + mlib_v_ImageLookUpS32U8Func.c \ + mlib_v_ImageLookUpSIS16S16Func.c \ + mlib_v_ImageLookUpSIS16S32Func.c \ + mlib_v_ImageLookUpSIS16U16Func.c \ + mlib_v_ImageLookUpSIS16U8Func.c \ + mlib_v_ImageLookUpSIS32S16Func.c \ + mlib_v_ImageLookUpSIS32S32Func.c \ + mlib_v_ImageLookUpSIS32U16Func.c \ + mlib_v_ImageLookUpSIS32U8Func.c \ + mlib_v_ImageLookUpSIU16S16Func.c \ + mlib_v_ImageLookUpSIU16S32Func.c \ + mlib_v_ImageLookUpSIU16U16Func.c \ + mlib_v_ImageLookUpSIU16U8Func.c \ + mlib_v_ImageLookUpSIU8S16Func.c \ + mlib_v_ImageLookUpSIU8S32Func.c \ + mlib_v_ImageLookUpSIU8U16Func.c \ + mlib_v_ImageLookUpSIU8U8Func.c \ + mlib_v_ImageLookUpU16S16Func.c \ + mlib_v_ImageLookUpU16S32Func.c \ + mlib_v_ImageLookUpU16U16Func.c \ + mlib_v_ImageLookUpU16U8Func.c \ + mlib_v_ImageLookUpU8S16Func.c \ + mlib_v_ImageLookUpU8S32Func.c \ + mlib_v_ImageLookUpU8U16Func.c \ + mlib_v_ImageLookUpU8U8Func.c \ + mlib_v_ImageAffineIndex_BC.c \ + mlib_v_ImageAffine_BC.c \ + mlib_v_ImageAffine_BC_S16.c \ + mlib_v_ImageAffine_BC_U16.c \ + mlib_v_ImageAffine_BL.c \ + mlib_v_ImageAffine_BL_S16.c \ + mlib_v_ImageAffine_BL_U16.c \ + mlib_v_ImageAffine_NN.c \ + mlib_v_ImageFilters.c \ + mlib_ImageAffineEdge.c \ + mlib_ImageAffine_BC_D64.c \ + mlib_ImageAffine_BC_F32.c \ + mlib_ImageAffine_BC_S32.c \ + mlib_ImageAffine_BL_D64.c \ + mlib_ImageAffine_BL_F32.c \ + mlib_ImageAffine_BL_S32.c \ + mlib_ImageAffine_NN.c \ + mlib_ImageAffine_NN_Bit.c \ + mlib_ImageFilters.c \ + mlib_ImageScanPoly.c \ + mlib_ImageConv_8nw.c \ + mlib_ImageConv_8ext.c \ + mlib_ImageConv_16nw.c \ + mlib_ImageConv_16ext.c \ + mlib_ImageConv_u16nw.c \ + mlib_ImageConv_u16ext.c \ + mlib_ImageConv_32nw.c \ + mlib_ImageConv_F32nw.c \ + mlib_ImageConvMxN_Fp.c \ + mlib_ImageConvMxN_ext.c \ + mlib_ImageConv_D64nw.c \ + mlib_ImageClipping.c \ + mlib_ImageConvCopyEdge_Bit.c \ + mlib_ImageConvClearEdge_Bit.c \ + mlib_ImageConv2x2_f.c \ + mlib_ImageConvClearEdge_Fp.c \ + mlib_v_ImageConvMxN_8.c \ + mlib_v_ImageConvClearEdge.c \ + mlib_v_ImageConvCopyEdge.c \ + mlib_v_ImageConvMxN_8ext.c \ + mlib_v_ImageConvVersion.c \ + mlib_v_ImageConv_8nw.c \ + mlib_ImageConvCopyEdge_Fp.c \ + mlib_v_ImageChannelInsert_1.c \ + mlib_v_ImageChannelExtract_43.c \ + mlib_v_ImageChannelExtract_1.c \ + mlib_ImageCopy_Bit.c \ + mlib_v_ImageCopy_f.c \ + mlib_ImageUtils.c \ + mlib_ImageDivTables.c + + BUILD_LIBMLIB_V_CFLAGS := $(filter-out -DMLIB_NO_LIBSUNMATH, $(BUILD_LIBMLIB_CFLAGS)) + + $(eval $(call SetupNativeCompilation,BUILD_LIBMLIB_IMAGE_V, \ + LIBRARY := mlib_image_v, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \ + $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib, \ + LANG := C, \ + INCLUDE_FILES := $(BUILD_LIBMLIB_IMAGE_V_FILES), \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := -xarch=sparcvis \ + $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il \ + $(BUILD_LIBMLIB_V_CFLAGS) \ + $(CFLAGS_JDKLIB), \ + MAPFILE := $(BUILD_LIBMLIB_IMAGE_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(BUILD_LIBMLIB_LDLIBS) -ljava -ljvm \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmlib_image_v, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBMLIB_IMAGE_V): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBMLIB_IMAGE_V) + +endif + +########################################################################################## + +LIBAWT_DIRS := \ + $(JDK_TOPDIR)/src/share/native/sun/awt \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/gif \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ + $(JDK_TOPDIR)/src/share/native/sun/awt/medialib \ + $(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + $(JDK_TOPDIR)/src/share/native/sun/awt/utility \ + $(JDK_TOPDIR)/src/share/native/sun/java2d \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ + $(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ + $(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image \ + $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/share/native/sun/font + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBAWT_DIRS += \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/d3d +else + LIBAWT_DIRS += \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 +endif + +LIBAWT_CFLAGS += -D__MEDIALIB_OLD_NAMES -D__USE_J2D_NAMES \ + $(X_CFLAGS) \ + $(foreach dir, $(LIBAWT_DIRS), -I$(dir)) + +LIBAWT_FILES := \ + gifdecoder.c \ + imageInitIDs.c \ + img_globals.c \ + SurfaceData.c \ + Region.c \ + BufImgSurfaceData.c \ + Disposer.c \ + Trace.c \ + GraphicsPrimitiveMgr.c \ + Blit.c \ + BlitBg.c \ + ScaledBlit.c \ + FillRect.c \ + FillSpans.c \ + FillParallelogram.c \ + DrawParallelogram.c \ + DrawLine.c \ + DrawRect.c \ + DrawPolygons.c \ + DrawPath.c \ + FillPath.c \ + ProcessPath.c \ + MaskBlit.c \ + MaskFill.c \ + TransformHelper.c \ + AlphaMath.c \ + AlphaMacros.c \ + AnyByte.c \ + ByteBinary1Bit.c \ + ByteBinary2Bit.c \ + ByteBinary4Bit.c \ + ByteIndexed.c \ + ByteGray.c \ + Index8Gray.c \ + Index12Gray.c \ + AnyShort.c \ + Ushort555Rgb.c \ + Ushort565Rgb.c \ + Ushort4444Argb.c \ + Ushort555Rgbx.c \ + UshortGray.c \ + UshortIndexed.c \ + Any3Byte.c \ + ThreeByteBgr.c \ + AnyInt.c \ + IntArgb.c \ + IntArgbPre.c \ + IntArgbBm.c \ + IntRgb.c \ + IntBgr.c \ + IntRgbx.c \ + Any4Byte.c \ + FourByteAbgr.c \ + FourByteAbgrPre.c \ + BufferedMaskBlit.c \ + BufferedRenderPipe.c \ + ShapeSpanIterator.c \ + SpanClipRenderer.c \ + awt_ImageRep.c \ + awt_ImagingLib.c \ + awt_Mlib.c \ + awt_parseImage.c \ + DataBufferNative.c \ + dither.c \ + debug_assert.c \ + debug_mem.c \ + debug_trace.c \ + debug_util.c + +ifneq (, $(filter $(OPENJDK_TARGET_OS), solaris linux)) + LIBAWT_FILES += awt_LoadLibrary.c initIDs.c img_colors.c +endif + +ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBAWT_FILES += awt_LoadLibrary.c img_colors.c + LIBAWT_CFLAGS += -F/System/Library/Frameworks/JavaVM.framework/Frameworks +endif + +ifeq ($(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH), solaris-sparc) + LIBAWT_CFLAGS += -DMLIB_ADD_SUFF + LIBAWT_CFLAGS += -xarch=sparcvis + LIBAWT_CFLAGS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib/vis_$(OPENJDK_TARGET_CPU_BITS).il + LIBAWT_CFLAGS += \ + -I$(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \ + -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/medialib \ + -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops + + LIBAWT_DIRS += $(JDK_TOPDIR)/src/solaris/native/sun/awt/medialib \ + $(JDK_TOPDIR)/src/solaris/native/sun/java2d/loops + + LIBAWT_FILES += \ + vis_FuncArray.c \ + java2d_Mlib.c \ + mlib_ImageCreate.c \ + mlib_ImageZoom_NN.c \ + mlib_ImageCopy_Bit.c \ + mlib_sys.c \ + mlib_v_ImageClear.c \ + mlib_v_ImageClear_f.c \ + mlib_v_ImageConstXor.c \ + mlib_v_ImageCopy.c \ + mlib_v_ImageCopy_f.c \ + mlib_v_ImageXor.c \ + mlib_v_ImageZoom_NN_f.c \ + vis_Interp.c \ + vis_AlphaMacros.c \ + vis_AlphaMaskBlit.c \ + vis_AlphaMaskFill.c \ + vis_ByteGray.c \ + vis_ByteGray_FromRgb.c \ + vis_ByteGray_Mask.c \ + vis_ByteIndexed.c \ + vis_DrawLine.c \ + vis_FourByteAbgr.c \ + vis_IntArgb.c \ + vis_IntArgbPre.c \ + vis_IntArgbPre_Mask.c \ + vis_IntBgr.c \ + vis_IntRgb.c \ + vis_IntRgbx.c \ + vis_SrcMaskFill.c \ + vis_SrcOverMaskBlit.c \ + vis_SrcOverMaskFill.c \ + vis_FourByteAbgrPre.c \ + vis_GlyphList.c \ + vis_GlyphListXor.c \ + vis_IntArgbBm.c \ + vis_ThreeByteBgr.c \ + vis_UshortGray.c \ + vis_UshortGray_FromRgb.c \ + vis_XorBlit.c \ + mlib_v_ImageCopy_blk.s + + ifeq ($(OPENJDK_TARGET_CPU), sparcv9) + LIBAWT_ASFLAGS = -P -xarch=v9a + else + LIBAWT_ASFLAGS = -P -xarch=v8plusa + endif +else + LIBAWT_FILES += MapAccelFunc.c +endif + +ifneq ($(OPENJDK_TARGET_OS), solaris) + LIBAWT_CFLAGS += -DMLIB_NO_LIBSUNMATH +endif + +LIBAWT_LANG := C + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBAWT_FILES += AccelGlyphCache.c \ + ShaderList.c \ + CmdIDList.cpp \ + Hashtable.cpp \ + GDIHashtable.cpp \ + Devices.cpp \ + ObjectList.cpp \ + GDIBlitLoops.cpp \ + GDIRenderer.cpp \ + GDIWindowSurfaceData.cpp \ + WindowsFlags.cpp \ + WPrinterJob.cpp \ + awt_%.cpp \ + D3DBlitLoops.cpp \ + D3DBufImgOps.cpp \ + D3DContext.cpp \ + D3DGlyphCache.cpp \ + D3DGraphicsDevice.cpp \ + D3DMaskBlit.cpp \ + D3DMaskCache.cpp \ + D3DMaskFill.cpp \ + D3DPipelineManager.cpp \ + D3DPaints.cpp \ + D3DRenderer.cpp \ + D3DRenderQueue.cpp \ + D3DResourceManager.cpp \ + D3DSurfaceData.cpp \ + D3DTextRenderer.cpp \ + D3DVertexCacher.cpp \ + ShellFolder2.cpp \ + ThemeReader.cpp \ + ComCtl32Util.cpp \ + DllUtil.cpp \ + initIDs.cpp \ + MouseInfo.cpp \ + rect.c \ + OGLBlitLoops.c \ + OGLBufImgOps.c \ + OGLContext.c \ + OGLFuncs.c \ + OGLMaskBlit.c \ + OGLMaskFill.c \ + OGLPaints.c \ + OGLRenderQueue.c \ + OGLRenderer.c \ + OGLSurfaceData.c \ + OGLTextRenderer.c \ + OGLVertexCache.c \ + WGLGraphicsConfig.c \ + WGLSurfaceData.c + + LIBAWT_LANG := C++ + LIBAWT_CFLAGS += -EHsc -DUNICODE -D_UNICODE + ifeq ($(OPENJDK_TARGET_CPU_BITS), 64) + LIBAWT_CFLAGS += -DMLIB_OS64BIT + endif + + ifdef OPENJDK + LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/windows/resource/icons" + else + LIBAWT_RC_FLAGS := -i "$(JDK_TOPDIR)/src/closed/windows/native/sun/windows" + endif + LIBAWT_VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/native/sun/windows/awt.rc +endif + +ifeq ($(MILESTONE), internal) + LIBAWT_CFLAGS += -DINTERNAL_BUILD +endif + +LIBAWT_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt/mapfile-vers +ifeq ($(OPENJDK_TARGET_OS), linux) + LIBAWT_MAPFILE := +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBAWT, \ + LIBRARY := awt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBAWT_DIRS), \ + INCLUDE_FILES := $(LIBAWT_FILES), \ + LANG := $(LIBAWT_LANG), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_CFLAGS), \ + ASFLAGS := $(LIBAWT_ASFLAGS), \ + MAPFILE := $(LIBAWT_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_solaris := -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ + LDFLAGS_SUFFIX_linux := -ljvm $(LIBM) $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_solaris := -ljvm $(LIBM) $(LIBDL) -ljava -lc, \ + LDFLAGS_SUFFIX_macosx := -lmlib_image -ljvm $(LIBM) \ + -framework Cocoa \ + -framework OpenGL \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -framework JavaRuntimeSupport \ + -framework ApplicationServices \ + -framework AudioToolbox \ + -ljava, \ + LDFLAGS_SUFFIX_windows := kernel32.lib user32.lib gdi32.lib winspool.lib \ + imm32.lib ole32.lib uuid.lib shell32.lib \ + comdlg32.lib winmm.lib comctl32.lib shlwapi.lib \ + delayimp.lib jvm.lib $(WIN_JAVA_LIB) advapi32.lib \ + -DELAYLOAD:user32.dll -DELAYLOAD:gdi32.dll \ + -DELAYLOAD:shell32.dll -DELAYLOAD:winmm.dll \ + -DELAYLOAD:winspool.drv -DELAYLOAD:imm32.dll \ + -DELAYLOAD:ole32.dll -DELAYLOAD:comdlg32.dll \ + -DELAYLOAD:comctl32.dll -DELAYLOAD:shlwapi.dll, \ + VERSIONINFO_RESOURCE := $(LIBAWT_VERSIONINFO_RESOURCE), \ + RC_FLAGS := $(RC_FLAGS) $(LIBAWT_RC_FLAGS) \ + -D "JDK_FNAME=awt.dll" \ + -D "JDK_INTERNAL_NAME=awt" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBAWT): $(BUILD_LIBJAVA) + +ifeq ($(OPENJDK_TARGET_OS), macosx) + $(BUILD_LIBAWT): $(BUILD_LIBMLIB_IMAGE) +endif + +BUILD_LIBRARIES += $(BUILD_LIBAWT) + +########################################################################################## + +# TODO!! +# Even though this variable as a general name, it is +# only used on macos, in fontpath.c, as prefix for where to find fonts. +# +# It's used for libawt_headless _and_ libawt_xawt +# +X11_PATH := /usr/X11R6 + +ifneq ($(OPENJDK_TARGET_OS), windows) + ifndef BUILD_HEADLESS_ONLY + + LIBAWT_XAWT_DIRS := \ + $(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + $(JDK_TOPDIR)/src/share/native/sun/awt/utility \ + $(JDK_TOPDIR)/src/share/native/sun/font \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \ + $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/x11 \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/xawt \ + + LIBAWT_XAWT_CFLAGS := -DXAWT -DXAWT_HACK \ + -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \ + $(CUPS_CFLAGS) \ + $(foreach dir, $(LIBAWT_XAWT_DIRS), -I$(dir)) \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga + + ifeq ($(OPENJDK_TARGET_OS), solaris) + LIBAWT_XAWT_CFLAGS += -DFUNCPROTO=15 + endif + + ifeq ($(OPENJDK_TARGET_OS), linux) + ifndef OPENJDK + include $(JDK_TOPDIR)/make/closed/xawt.gmk + endif + + ifeq ($(DISABLE_XRENDER), true) + LIBAWT_XAWT_CFLAGS += -DDISABLE_XRENDER_BY_DEFAULT=true + endif + endif + + ifeq ($(MILESTONE), internal) + LIBAWT_XAWT_CFLAGS += -DINTERNAL_BUILD + endif + + LIBAWT_XAWT_FILES := \ + XlibWrapper.c \ + XWindow.c \ + XToolkit.c \ + X11Color.c \ + X11SurfaceData.c \ + awt_GraphicsEnv.c \ + awt_InputMethod.c \ + robot_common.c \ + awt_Robot.c \ + list.c \ + multiVis.c \ + initIDs.c \ + awt_util.c \ + awt_Desktop.c \ + awt_UNIXToolkit.c \ + X11FontScaler_md.c \ + X11TextRenderer_md.c \ + fontpath.c \ + awt_Insets.c \ + awt_Event.c \ + X11Renderer.c \ + X11PMBlitLoops.c \ + OGLBlitLoops.c \ + OGLBufImgOps.c \ + OGLContext.c \ + OGLFuncs.c \ + OGLMaskBlit.c \ + OGLMaskFill.c \ + OGLPaints.c \ + OGLRenderQueue.c \ + OGLRenderer.c \ + OGLSurfaceData.c \ + OGLTextRenderer.c \ + OGLVertexCache.c \ + GLXGraphicsConfig.c \ + GLXSurfaceData.c \ + AccelGlyphCache.c \ + awt_Font.c \ + multi_font.c \ + awt_AWTEvent.c \ + awt_DrawingSurface.c \ + jawt.c \ + CUPSfuncs.c \ + debug_assert.c \ + debug_mem.c \ + debug_trace.c \ + debug_util.c \ + awt_Plugin.c \ + gnome_interface.c \ + gtk2_interface.c \ + swing_GTKEngine.c \ + swing_GTKStyle.c \ + rect.c \ + sun_awt_X11_GtkFileDialogPeer.c \ + XRSurfaceData.c \ + XRBackendNative.c + + LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst -lXi -ljava -ljvm -lc + + ifeq ($(OPENJDK_TARGET_OS), linux) + # To match old build, add this to LDFLAGS instead of suffix. + LIBAWT_XAWT_LDFLAGS += -lpthread + endif + + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBAWT_XAWT_LDFLAGS_SUFFIX += -lpthread + endif + + # On macosx, the shared library origin is set twice for this lib. + $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_XAWT, \ + LIBRARY := awt_xawt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBAWT_XAWT_DIRS), \ + INCLUDE_FILES := $(LIBAWT_XAWT_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_XAWT_CFLAGS) \ + $(X_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_xawt/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(X_LIBS) $(LIBAWT_XAWT_LDFLAGS), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \ + -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \ + -R$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) \ + -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) \ + -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(call SET_SHARED_LIBRARY_ORIGIN). \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(call SET_SHARED_LIBRARY_ORIGIN)., \ + LDFLAGS_SUFFIX := $(LIBAWT_XAWT_LDFLAGS_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=xawt.dll" \ + -D "JDK_INTERNAL_NAME=xawt" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_xawt, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBAWT_XAWT): $(BUILD_LIBJAVA) + + $(BUILD_LIBAWT_XAWT): $(BUILD_LIBAWT) + + BUILD_LIBRARIES += $(BUILD_LIBAWT_XAWT) + + endif +endif + +########################################################################################## + +# TODO: Update awt lib path when awt is converted +$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS, \ + LIBRARY := lcms, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms, \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(filter-out -xc99=%none, $(CFLAGS_JDKLIB)) \ + $(SHARED_LIBRARY_FLAGS) \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug, \ + CFLAGS_solaris := -xc99=no_lib, \ + CFLAGS_windows := -DCMS_IS_WINDOWS_, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/liblcms/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_solaris := /usr/lib$(OPENJDK_TARGET_CPU_ISADIR)/libm.so.2, \ + LDFLAGS_windows := $(WIN_AWT_LIB) $(WIN_JAVA_LIB), \ + LDFLAGS_SUFFIX_solaris := -lawt -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := $(LIBM) -lawt -ljava -ljvm, \ + LDFLAGS_SUFFIX_linux := -lm -lawt -ljava -ljvm, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=lcms.dll" \ + -D "JDK_INTERNAL_NAME=lcms" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/liblcms, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +BUILD_LIBRARIES += $(BUILD_LIBLCMS) + +$(BUILD_LIBLCMS): $(BUILD_LIBAWT) + +########################################################################################## + +ifdef OPENJDK + BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers +else + BUILD_LIBJPEG_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/mapfile-vers-closed + BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg + BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC) +endif + +BUILD_LIBJPEG_REORDER := +ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) + BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(OPENJDK_TARGET_CPU) + endif +endif + +# Suppress gcc warnings like "variable might be clobbered by 'longjmp' +# or 'vfork'": this warning indicates that some variable is placed to +# a register by optimized compiler and it's value might be lost on longjmp(). +# Recommended way to avoid such warning is to declare the variable as +# volatile to prevent the optimization. However, this approach does not +# work because we have to declare all variables as volatile in result. +#ifndef CROSS_COMPILE_ARCH +# CC_43_OR_NEWER := \ +# $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ +# \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) +# ifeq ($(CC_43_OR_NEWER), 1) +# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered +# endif +#endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG, \ + LIBRARY := jpeg, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(BUILD_LIBJPEG_CLOSED_SRC) \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ + LANG := C, \ + OPTIMIZATION := HIGHEST, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBJPEG_CLOSED_INCLUDES) \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg, \ + MAPFILE := $(BUILD_LIBJPEG_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := $(WIN_JAVA_LIB) jvm.lib, \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jpeg.dll" \ + -D "JDK_INTERNAL_NAME=jpeg" \ + -D "JDK_FTYPE=0x2L", \ + REORDER := $(BUILD_LIBJPEG_REORDER), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjpeg, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBJPEG): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBJPEG) + +########################################################################################## + +ifndef OPENJDK + FONT_HEADERS := -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k + BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers + LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c +else + FONT_HEADERS := $(FREETYPE2_CFLAGS) + BUILD_LIBFONTMANAGER_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk + BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE2_LIBS) +endif + +LIBFONTMANAGER_OPTIMIZATION := HIGH + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \ + X11TextRenderer.c + LIBFONTMANAGER_OPTIMIZATION := HIGHEST +else + LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \ + lcdglyph.c +endif + +BUILD_LIBFONTMANAGER_CFLAGS_COMMON := \ + $(X_CFLAGS) \ + -DLE_STANDALONE -DHEADLESS \ + $(FONT_HEADERS) \ + -I$(JDK_TOPDIR)/src/share/native/sun/font \ + -I$(JDK_TOPDIR)/src/share/native/sun/font/layout \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d + +# Turn off aliasing with GCC for ExtensionSubtables.cpp +ifeq ($(OPENJDK_TARGET_OS), linux) + BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \ + LIBRARY := fontmanager, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/font \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font, \ + EXCLUDE_FILES := $(LIBFONTMANAGER_EXCLUDE_FILES) \ + AccelGlyphCache.c, \ + LANG := C++, \ + CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON), \ + OPTIMIZATION := $(LIBFONTMANAGER_OPTIMIZATION), \ + CFLAGS_windows = -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \ + -DCC_NOEX, \ + MAPFILE := $(BUILD_LIBFONTMANAGER_MAPFILE), \ + LDFLAGS := $(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(BUILD_LIBFONTMANAGER_FONTLIB), \ + LDFLAGS_SUFFIX_linux := -lawt $(LIBM) $(LIBCXX) -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt -lc $(LIBM) $(LIBCXX) -ljava -ljvm, \ + LDFLAGS_SUFFIX_macosx := -lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup \ + -ljava -ljvm, \ + LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib gdi32.lib \ + $(WIN_AWT_LIB), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=fontmanager.dll" \ + -D "JDK_INTERNAL_NAME=fontmanager" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfontmanager, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT) + +ifneq (, $(findstring $(OPENJDK_TARGET_OS), solaris macosx)) + $(BUILD_LIBFONTMANAGER): $(BUILD_LIBAWT_XAWT) +endif + +BUILD_LIBRARIES += $(BUILD_LIBFONTMANAGER) + +########################################################################################## + +ifndef OPENJDK + + #ifeq ($(OPENJDK_TARGET_OS), linux) + # ifeq ("$(CC_VER_MAJOR)", "3") + # OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic + # endif + #endif + # + # The resulting size of the t2k lib file is (at least on linux) dependant on the order of + # the input .o files. Because of this the new build will differ in size to the old build. + BUILD_LIBT2K_CFLAGS_COMMON := -I$(JDK_TOPDIR)/src/share/native/sun/font \ + -I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \ + -I$(JDK_TOPDIR)/src/closed/share/native/sun/font \ + -I$(JDK_TOPDIR)/src/share/share/native/sun/font \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/font \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d + + $(eval $(call SetupNativeCompilation,BUILD_LIBT2K, \ + LIBRARY := t2k, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/font \ + $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \ + $(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints, \ + EXCLUDE_FILES := orion.c, \ + LANG := C++, \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON), \ + CFLAGS_windows = -DCC_NOEX, \ + CXXFLAGS_windows = -DCC_NOEX, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libt2k/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := user32.lib $(JDK_OUTPUTDIR)/objs/libfontmanager/fontmanager.lib, \ + LDFLAGS_SUFFIX_posix := $(LIBM) $(LIBCXX) -lfontmanager -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_solaris := -lawt -lawt_xawt, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=t2k.dll" \ + -D "JDK_INTERNAL_NAME=t2k" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libt2k, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + # t2k is linked against fontmanager + $(BUILD_LIBT2K): $(BUILD_LIBFONTMANAGER) + + BUILD_LIBRARIES += $(BUILD_LIBT2K) +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), windows) + ifeq ($(OPENJDK_TARGET_CPU), x86) + KERNEL32_LIB := kernel32.lib + endif + $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \ + LIBRARY := jawt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows, \ + INCLUDE_FILES := jawt.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CXXFLAGS_JDKLIB) \ + -EHsc -DUNICODE -D_UNICODE \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/windows \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d/windows, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(KERNEL32_LIB) $(LDFLAGS_CXX_JDK) \ + advapi32.lib $(WIN_AWT_LIB), \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jawt.dll" \ + -D "JDK_INTERNAL_NAME=jawt" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBJAWT): $(BUILD_LIBAWT) + + $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): $(BUILD_LIBJAWT) + $(ECHO) Copying $(@F) + $(CP) $(JDK_OUTPUTDIR)/objs/libjawt/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@ + + BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) + +else # OPENJDK_TARGET_OS not windows + + JAWT_LIBS := + ifneq ($(OPENJDK_TARGET_OS), solaris) + JAWT_LIBS += -lawt + endif + + ifndef BUILD_HEADLESS_ONLY + JAWT_LIBS += -lawt_xawt + else + JAWT_LIBS += -lawt_headless + HEADLESS_CFLAG += -DHEADLESS + endif + + JAWT_FILES := jawt.c + ifeq ($(OPENJDK_TARGET_OS), macosx) + JAWT_FILES := jawt.m + JAWT_LIBS := -lawt_lwawt + endif + + $(eval $(call SetupNativeCompilation,BUILD_LIBJAWT, \ + LIBRARY := jawt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt \ + $(JDK_TOPDIR)/src/macosx/native/sun/awt, \ + INCLUDE_FILES := $(JAWT_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB), \ + CFLAGS_linux := $(HEADLESS_CFLAG), \ + CFLAGS_macosx := -I$(JDK_TOPDIR)/src/solaris/native/sun/awt, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjawt/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_solaris := -L$(OPENWIN_HOME)/sfw/lib$(OPENJDK_TARGET_CPU_ISADIR) -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ + LDFLAGS_SUFFIX_linux := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_solaris := $(JAWT_LIBS) $(LDFLAGS_JDKLIB_SUFFIX) -lXrender, \ + LDFLAGS_SUFFIX_macosx := -Xlinker -rpath -Xlinker @loader_path $(JAWT_LIBS) \ + -framework Cocoa $(LDFLAGS_JDKLIB_SUFFIX), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawt, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + ifndef BUILD_HEADLESS_ONLY + $(BUILD_LIBJAWT): $(BUILD_LIBAWT_XAWT) + else + $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_headless$(SHARED_LIBRARY_SUFFIX) + endif + + ifeq ($(OPENJDK_TARGET_OS), macosx) + $(BUILD_LIBJAWT): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)awt_lwawt$(SHARED_LIBRARY_SUFFIX) + endif + +endif # OPENJDK_TARGET_OS + +BUILD_LIBRARIES += $(BUILD_LIBJAWT) + +########################################################################################## + +ifndef OPENJDK + + BUILD_LIBKCMS_EXCLUDE_FILES := + ifeq ($(OPENJDK_TARGET_OS), windows) + BUILD_LIBKCMS_EXCLUDE_FILES += ukcpmgr.c unixmem.c + else + BUILD_LIBKCMS_EXCLUDE_FILES += cmmdll.c registry.c spxffile.c sysinfo.c winmem.c wkcpmgr.c + endif + + BUILD_LIBKCMS_FLAGS := $(CFLAGS_JDKLIB) + + ifeq ($(OPENJDK_TARGET_OS), solaris) + # This particular library uses a feature called PIC_CODE_SMALL (on solaris) + # implement it like this...since it's only used here + BUILD_LIBKCMS_FLAGS := $(patsubst -KPIC, -Kpic, $(BUILD_LIBKCMS_FLAGS)) + else ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc) + BUILD_LIBKCMS_FLAGS := $(patsubst -fPIC, -fpic, $(BUILD_LIBKCMS_FLAGS)) + endif + + $(eval $(call SetupNativeCompilation,BUILD_LIBKCMS, \ + LIBRARY := kcms, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms, \ + LANG := C, \ + EXCLUDE_FILES := $(BUILD_LIBKCMS_EXCLUDE_FILES), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(BUILD_LIBKCMS_FLAGS) \ + -DJAVACMM -DFUT_CALC_EX -DNO_FUT_GCONST, \ + CFLAGS_linux := -Wno-missing-field-initializers, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libkcms/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := -lc -lpthread, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib user32.lib version.lib, \ + LDFLAGS_SUFFIX_posix := -lm -ljava -ljvm, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/closed/share/native/sun/java2d/cmm/kcms/cmm.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=kcms.dll" \ + -D "JDK_INTERNAL_NAME=kcms" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkcms, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBKCMS): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBKCMS) + +endif + +########################################################################################## + +ifndef OPENJDK + ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) + + ifeq ($(shell if test "$(OS_VERSION_MAJOR)" -eq 5 -a "$(OS_VERSION_MINOR)" -le 10; then $(ECHO) ok; fi), ok) + + SUNWJDGA_MAPFILE := + ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) + SUNWJDGA_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjdga/mapfile-vers + endif + + $(eval $(call SetupNativeCompilation,BUILD_LIBSUNWJDGA, \ + LIBRARY := sunwjdga, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/solaris/native/sun/jdga, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/javavm/export \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/javavm/export \ + -I$(OPENWIN_HOME)/include, \ + MAPFILE := $(SUNWJDGA_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -ldga -lX11 $(LIBDL) -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunwjdga, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBSUNWJDGA) + + endif + endif + endif +endif + +########################################################################################## + +ifeq ($(BUILD_HEADLESS), true) + ifneq ($(OPENJDK_TARGET_OS), windows) + + LIBAWT_HEADLESS_DIRS := $(JDK_TOPDIR)/src/share/native/sun/font \ + $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/solaris/native/sun/font \ + $(JDK_TOPDIR)/src/solaris/native/sun/awt \ + $(JDK_TOPDIR)/src/solaris/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/solaris/native/sun/java2d/x11 + + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBAWT_HEADLESS_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/font + endif + + LIBAWT_HEADLESS_CFLAGS := -DHEADLESS=true \ + -DX11_PATH=\"$(X11_PATH)\" -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" \ + $(CUPS_CFLAGS) \ + $(X_CFLAGS) \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/jdga \ + $(foreach dir, $(LIBAWT_HEADLESS_DIRS), -I$(dir)) + + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBAWT_HEADLESS_CFLAGS += \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks + endif + + LIBAWT_HEADLESS_FILES := \ + awt_Font.c \ + HeadlessToolkit.c \ + fontpath.c \ + VDrawingArea.c \ + X11Color.c \ + X11Renderer.c \ + X11PMBlitLoops.c \ + X11SurfaceData.c \ + X11FontScaler_md.c \ + X11TextRenderer_md.c \ + OGLBlitLoops.c \ + OGLBufImgOps.c \ + OGLContext.c \ + OGLFuncs.c \ + OGLMaskBlit.c \ + OGLMaskFill.c \ + OGLPaints.c \ + OGLRenderQueue.c \ + OGLRenderer.c \ + OGLSurfaceData.c \ + OGLTextRenderer.c \ + OGLVertexCache.c \ + GLXGraphicsConfig.c \ + GLXSurfaceData.c \ + AccelGlyphCache.c \ + CUPSfuncs.c + + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBAWT_HEADLESS_FILES += \ + AWTFont.m \ + AWTStrike.m \ + CCharToGlyphMapper.m \ + CGGlyphImages.m \ + CGGlyphOutlines.m \ + CoreTextSupport.m + endif + + LIBAWT_HEADLESS_REORDER := + ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) + LIBAWT_HEADLESS_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/reorder-$(OPENJDK_TARGET_CPU) + endif + endif + + $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_HEADLESS, \ + LIBRARY := awt_headless, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBAWT_HEADLESS_DIRS), \ + INCLUDE_FILES := $(LIBAWT_HEADLESS_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBAWT_HEADLESS_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libawt_headless/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..) \ + -R/usr/dt/lib$(OPENJDK_TARGET_CPU_ISADIR) \ + -R$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR), \ + LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN)., \ + REORDER := $(LIBAWT_HEADLESS_REORDER), \ + LDFLAGS_SUFFIX_linux := -ljvm -lawt -lm $(LIBDL) -ljava, \ + LDFLAGS_SUFFIX_solaris := $(LIBDL) -ljvm -lawt -lm -ljava $(LIBCXX) -lc, \ + LDFLAGS_SUFFIX_macosx := -ljvm $(LIBCXX) -lawt $(LIBDL) -ljava \ + -framework Accelerate \ + -framework ApplicationServices \ + -framework Cocoa \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -framework JavaRuntimeSupport, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_headless, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBAWT_HEADLESS): $(BUILD_LIBAWT) + + BUILD_LIBRARIES += $(BUILD_LIBAWT_HEADLESS) + + endif +endif + +########################################################################################## + +ifndef BUILD_HEADLESS_ONLY + LIBSPLASHSCREEN_DIRS := \ + $(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg \ + $(JDK_TOPDIR)/src/share/native/sun/awt/libpng \ + $(JDK_TOPDIR)/src/share/native/sun/awt/splashscreen + + ifeq ($(USE_EXTERNAL_LIBGIF), true) + GIFLIB_LDFLAGS := -lgif + else + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/sun/awt/giflib + GIFLIB_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/awt/giflib + endif + + ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/awt/splashscreen + else + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen + endif + + LIBSPLASHSCREEN_CFLAGS := -DSPLASHSCREEN -DPNG_NO_MMX_CODE \ + $(foreach dir, $(LIBSPLASHSCREEN_DIRS), -I$(dir)) + + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_CFLAGS := -I$(JDK_TOPDIR)/src/macosx/native/sun/awt/splashscreen \ + $(LIBSPLASHSCREEN_CFLAGS) \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks + LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX + LIBSPLASHSCREEN_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp + + LIBSPLASHSCREEN_java_awt_SplashScreen.c_CFLAGS := -x objective-c -O0 + LIBSPLASHSCREEN_splashscreen_gfx_impl.c_CFLAGS := -x objective-c -O0 + LIBSPLASHSCREEN_splashscreen_gif.c_CFLAGS := -x objective-c -O0 + LIBSPLASHSCREEN_splashscreen_impl.c_CFLAGS := -x objective-c -O0 + LIBSPLASHSCREEN_splashscreen_jpeg.c_CFLAGS := -x objective-c -O0 + LIBSPLASHSCREEN_splashscreen_png.c_CFLAGS := -x objective-c -O0 + LIBSPLASHSCREEN_splashscreen_sys.m_CFLAGS := -O0 + + else ifneq ($(OPENJDK_TARGET_OS), windows) + LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 -I$(OPENWIN_HOME)/include -I$(OPENWIN_HOME)/include/X11/extensions + else + LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32 + endif + + LIBSPLASHSCREEN_LDFLAGS_SUFFIX := + + ifneq ($(USE_EXTERNAL_LIBZ), true) + LIBSPLASHSCREEN_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 + LIBSPLASHSCREEN_CFLAGS += $(ZLIB_CPPFLAGS) + endif + + ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBSPLASHSCREEN_LDFLAGS_SUFFIX += $(LIBM) -lpthread -liconv -losxapp \ + -framework ApplicationServices \ + -framework Foundation \ + -framework Cocoa \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation + else ifneq ($(OPENJDK_TARGET_OS), windows) + LIBSPLASHSCREEN_LDFLAGS_SUFFIX += -L$(OPENWIN_LIB)$(OPENJDK_TARGET_CPU_ISADIR) -lX11 -lXext $(LIBM) -lpthread + else # OPENJDK_TARGET_OS + LIBSPLASHSCREEN_LDFLAGS_SUFFIX += kernel32.lib user32.lib gdi32.lib delayimp.lib -DELAYLOAD:user32.dll + endif # OPENJDK_TARGET_OS + + $(eval $(call SetupNativeCompilation,LIBSPLASHSCREEN, \ + LIBRARY := splashscreen, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBSPLASHSCREEN_DIRS), \ + EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(LIBSPLASHSCREEN_CFLAGS) $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsplashscreen/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBSPLASHSCREEN_LDFLAGS_SUFFIX) $(LIBZ) $(GIFLIB_LDFLAGS), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=splashscreen.dll" \ + -D "JDK_INTERNAL_NAME=splashscreen" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsplashscreen, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(LIBSPLASHSCREEN) + + ifeq ($(OPENJDK_TARGET_OS), macosx) + $(LIBSPLASHSCREEN): $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)osxapp$(SHARED_LIBRARY_SUFFIX) + endif + +endif + +########################################################################################## + +ifndef OPENJDK + + LIBDCPR_SRC_DIRS := \ + $(JDK_TOPDIR)/src/closed/share/native/sun/dc/doe \ + $(JDK_TOPDIR)/src/closed/share/native/sun/dc/path \ + $(JDK_TOPDIR)/src/closed/share/native/sun/dc/pr \ + $(JDK_TOPDIR)/src/closed/share/native/sun/dc/util + + LIBDCPR_CFLAGS := $(foreach dir, $(LIBDCPR_SRC_DIRS), -I$(dir)) \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe + + $(eval $(call SetupNativeCompilation,BUILD_LIBDCPR, \ + LIBRARY := dcpr, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBDCPR_SRC_DIRS), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBDCPR_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libdcpr/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBM) $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_posix := -lm, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=dcpr.dll" \ + -D "JDK_INTERNAL_NAME=dcpr" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdcpr, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBDCPR): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBDCPR) + +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), macosx) + + LIBAWT_LWAWT_FILES := \ + awt.m \ + ApplicationDelegate.m \ + CFRetainedResource.m \ + CGLGraphicsConfig.m \ + CGLSurfaceData.m \ + CGLLayer.m \ + CGraphicsConfig.m \ + CGraphicsDevice.m \ + CGraphicsEnv.m \ + CCharToGlyphMapper.m \ + CSystemColors.m \ + AWTFont.m \ + CGGlyphOutlines.m \ + CGGlyphImages.m \ + CoreTextSupport.m \ + AWTStrike.m \ + InitIDs.m \ + AWTEvent.m \ + AWTView.m \ + AWTWindow.m \ + AWTSurfaceLayers.m \ + CCursorManager.m \ + CClipboard.m \ + CDataTransferer.m \ + CDragSource.m \ + CDragSourceContextPeer.m \ + CDropTarget.m \ + CDropTargetContextPeer.m \ + CInputMethod.m \ + CDesktopPeer.m \ + OSVersion.m \ + DnDUtilities.m \ + CFileDialog.m \ + CImage.m \ + CMenu.m \ + CMenuBar.m \ + CMenuComponent.m \ + CMenuItem.m \ + CPopupMenu.m \ + CRobot.m \ + CTrayIcon.m \ + CWrapper.m \ + JavaAccessibilityAction.m \ + JavaAccessibilityUtilities.m \ + JavaComponentAccessibility.m \ + JavaTextAccessibility.m \ + LWCToolkit.m \ + GeomUtilities.m \ + CPrinterJob.m \ + PrintModel.m \ + PrinterSurfaceData.m \ + PrinterView.m \ + QuartzSurfaceData.m \ + QuartzRenderer.m \ + CTextPipe.m \ + ImageSurfaceData.m \ + awt_DrawingSurface.m \ + \ + OGLBlitLoops.c \ + OGLBufImgOps.c \ + OGLContext.c \ + OGLFuncs.c \ + OGLMaskBlit.c \ + OGLMaskFill.c \ + OGLPaints.c \ + OGLRenderQueue.c \ + OGLRenderer.c \ + OGLSurfaceData.c \ + OGLTextRenderer.c \ + OGLVertexCache.c \ + AccelGlyphCache.c \ + CUPSfuncs.c + + + LIBAWT_LWAWT_DIRS := \ + $(JDK_TOPDIR)/src/macosx/native/sun/awt \ + $(JDK_TOPDIR)/src/macosx/native/sun/font \ + $(JDK_TOPDIR)/src/macosx/native/sun/java2d/opengl \ + $(JDK_TOPDIR)/src/solaris/native/sun/awt \ + $(JDK_TOPDIR)/src/share/native/sun/font \ + $(JDK_TOPDIR)/src/share/native/sun/java2d/opengl \ + + $(eval $(call SetupNativeCompilation,BUILD_LIBAWT_LWAWT, \ + LIBRARY := awt_lwawt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBAWT_LWAWT_DIRS), \ + LANG := C, \ + INCLUDE_FILES := $(LIBAWT_LWAWT_FILES), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(X_CFLAGS) \ + $(X_LIBS) \ + $(foreach dir, $(LIBAWT_LWAWT_DIRS), -I$(dir)) \ + -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/solaris/native/sun/java2d \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \ + -I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \ + -I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_macosx := -lawt -lmlib_image -losxapp -ljvm $(LIBM) \ + -framework Accelerate \ + -framework ApplicationServices \ + -framework AudioToolbox \ + -framework Carbon \ + -framework Cocoa \ + -framework Security \ + -framework ExceptionHandling \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -framework JavaRuntimeSupport \ + -framework OpenGL \ + -framework QuartzCore -ljava, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libawt_lwawt, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBAWT_LWAWT) + + $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBAWT) + + $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBMLIB_IMAGE) + + $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBOSXAPP) + + $(BUILD_LIBAWT_LWAWT): $(BUILD_LIBJAVA) + +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), macosx) + + $(eval $(call SetupNativeCompilation,BUILD_LIBOSXUI, \ + LIBRARY := osxui, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/macosx/native/com/apple/laf, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/macosx/native/com/apple/laf \ + -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ + -I$(JDK_TOPDIR)/src/macosx/native/sun/awt \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ + -Xlinker -rpath -Xlinker @loader_path, \ + LDFLAGS_SUFFIX_macosx := -lawt -losxapp -lawt_lwawt \ + -framework Cocoa \ + -framework Carbon \ + -framework ApplicationServices \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -framework JavaRuntimeSupport \ + -ljava -ljvm, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxui, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBOSXUI) + + $(BUILD_LIBOSXUI): $(BUILD_LIBAWT) + + $(BUILD_LIBOSXUI): $(BUILD_LIBOSXAPP) + + $(BUILD_LIBOSXUI): $(BUILD_LIBAWT_LWAWT) + + #$(BUILD_LIBOSXUI): $(BUILD_LIBJAVA) + +endif diff --git a/makefiles/lib/CoreLibraries.gmk b/makefiles/lib/CoreLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..29c1d5fc08a5a6dc59884c9317f1e8c48fbe5bd5 --- /dev/null +++ b/makefiles/lib/CoreLibraries.gmk @@ -0,0 +1,510 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +WIN_VERIFY_LIB := $(JDK_OUTPUTDIR)/objs/libverify/verify.lib + +########################################################################################## + +BUILD_LIBFDLIBM_OPTIMIZATION := HIGH + +ifneq ($(OPENJDK_TARGET_OS), solaris) + BUILD_LIBFDLIBM_OPTIMIZATION := NONE +endif + +ifneq ($(OPENJDK_TARGET_OS), macosx) + $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \ + STATIC_LIBRARY := fdlibm, \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ + SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ + LANG := C, \ + OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ + CFLAGS_windows_debug := -DLOGGING, \ + ARFLAGS := $(ARFLAGS), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +else + + # On macosx the old build does partial (incremental) linking of fdlibm instead of + # a plain static library. + $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM_MAC, \ + LIBRARY := fdlibm, \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ + SRC := $(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src, \ + LANG := C, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \ + LDFLAGS := -nostdlib -r -arch x86_64, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBFDLIBM := $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) + $(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC) + $(call install-file) + +endif + +BUILD_LIBRARIES += $(BUILD_LIBFDLIBM) + +########################################################################################## + +BUILD_LIBVERIFY_SRC := check_code.c check_format.c + +ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) + BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU) + endif +endif + +LIBVERIFY_OPTIMIZATION := HIGH +ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + LIBVERIFY_OPTIMIZATION := LOW + endif +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \ + LIBRARY := verify, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/common, \ + INCLUDE_FILES := $(BUILD_LIBVERIFY_SRC), \ + LANG := C, \ + OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \ + CFLAGS := $(CFLAGS_JDKLIB), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libverify/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_posix := -ljvm -lc, \ + LDFLAGS_SUFFIX_windows := jvm.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=verify.dll" \ + -D "JDK_INTERNAL_NAME=verify" \ + -D "JDK_FTYPE=0x2L", \ + REORDER := $(BUILD_LIBVERIFY_REORDER), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libverify, \ + DEBUG_SYMBOLS := true)) + +BUILD_LIBRARIES += $(BUILD_LIBVERIFY) + +########################################################################################## + +LIBJAVA_SRC_DIRS := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/lang \ + $(JDK_TOPDIR)/src/share/native/java/lang \ + $(JDK_TOPDIR)/src/share/native/java/lang/ref \ + $(JDK_TOPDIR)/src/share/native/java/lang/reflect \ + $(JDK_TOPDIR)/src/share/native/java/io \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \ + $(JDK_TOPDIR)/src/share/native/java/nio \ + $(JDK_TOPDIR)/src/share/native/java/security \ + $(JDK_TOPDIR)/src/share/native/common \ + $(JDK_TOPDIR)/src/share/native/sun/misc \ + $(JDK_TOPDIR)/src/share/native/sun/reflect \ + $(JDK_TOPDIR)/src/share/native/java/util \ + $(JDK_TOPDIR)/src/share/native/java/util/concurrent/atomic \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/common \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/util + +ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/util/locale/provider +else + LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/sun/util/locale/provider +endif + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBJAVA_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/provider \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/io +endif + +LIBJAVA_CFLAGS := $(foreach dir, $(LIBJAVA_SRC_DIRS), -I$(dir)) \ + -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include \ + -DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"' + +LIBJAVA_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \ + -DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \ + -DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \ + -DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"' + +ifneq (, $(JDK_UPDATE_VERSION)) + LIBJAVA_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"' +endif + +LIBJAVA_EXCLUDE_FILES := check_code.c check_format.c jspawnhelper.c + +ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBJAVA_EXCLUDE_FILES += java_props_macosx.c +else + BUILD_LIBJAVA_java_props_md.c_CFLAGS := -x objective-c + BUILD_LIBJAVA_java_props_macosx.c_CFLAGS := -x objective-c +endif + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBJAVA_EXCLUDE_FILES += \ + UNIXProcess_md.c \ + UnixFileSystem_md.c \ + FileSystemPreferences.c +else + LIBJAVA_EXCLUDE_FILES += \ + ProcessImpl_md.c \ + WinNTFileSystem_md.c \ + dirent_md.c \ + WindowsPreferences.c \ + sun/security/provider/WinCAPISeedGenerator.c \ + sun/io/Win32ErrorMode.c +endif + +ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) + LIBJAVA_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU) + endif +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \ + LIBRARY := java, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBJAVA_SRC_DIRS), \ + EXCLUDES := fdlibm/src zip, \ + EXCLUDE_FILES := $(LIBJAVA_EXCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBJAVA_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjava/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_posix := -ljvm -lverify, \ + LDFLAGS_SUFFIX_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \ + LDFLAGS_SUFFIX_macosx := -L$(JDK_OUTPUTDIR)/objs/ -lfdlibm \ + -framework CoreFoundation \ + -framework Foundation \ + -framework Security -framework SystemConfiguration, \ + LDFLAGS_SUFFIX_windows := -export:winFileHandleOpen -export:handleLseek \ + jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \ + shell32.lib delayimp.lib -DELAYLOAD:shell32.dll \ + advapi32.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=java.dll" \ + -D "JDK_INTERNAL_NAME=java" \ + -D "JDK_FTYPE=0x2L", \ + REORDER := $(LIBJAVA_REORDER), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +BUILD_LIBRARIES += $(BUILD_LIBJAVA) + +$(BUILD_LIBJAVA): $(LIBJLI_BINARY) + +$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY) + +$(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM) + +########################################################################################## + +BUILD_LIBZIP_EXCLUDES := +ifeq ($(USE_EXTERNAL_LIBZ), true) + LIBZ := -lz + LIBZIP_EXCLUDES += zlib-1.2.5 +else + ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 +endif + +BUILD_LIBZIP_REORDER := +ifeq ($(OPENJDK_TARGET_OS), solaris) + ifneq ($(OPENJDK_TARGET_CPU), x86_64) + BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/reorder-$(OPENJDK_TARGET_CPU) + endif +endif + +ifeq ($(LIBZIP_CAN_USE_MMAP), true) + BUILD_LIBZIP_MMAP := -DUSE_MMAP +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBZIP, \ + LIBRARY := zip, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + SRC := $(JDK_TOPDIR)/src/share/native/java/util/zip, \ + EXCLUDES := $(LIBZIP_EXCLUDES), \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(ZLIB_CPPFLAGS) \ + -I$(JDK_TOPDIR)/src/share/native/java/io \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io, \ + CFLAGS_posix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libzip/mapfile-vers, \ + REORDER := $(BUILD_LIBZIP_REORDER), \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(EXPORT_ZIP_FUNCS), \ + LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \ + -export:ZIP_ReadEntry -export:ZIP_GetNextEntry jvm.lib \ + $(WIN_JAVA_LIB), \ + LDFLAGS_SUFFIX_linux := -ljvm -ljava $(LIBZ), \ + LDFLAGS_SUFFIX_solaris := -ljvm -ljava $(LIBZ) -lc, \ + LDFLAGS_SUFFIX_macosx := $(LIBZ) -ljava -ljvm, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=zip.dll" \ + -D "JDK_INTERNAL_NAME=zip" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libzip, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + +$(BUILD_LIBZIP): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBZIP) + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK, \ + LIBRARY := unpack, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack, \ + EXCLUDE_FILES := main.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CXXFLAGS_JDKLIB) \ + -DNO_ZLIB -DUNPACK_JNI -DFULL, \ + CFLAGS_release := -DPRODUCT, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libunpack/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := -map:$(JDK_OUTPUTDIR)/objs/unpack.map -debug \ + jvm.lib $(WIN_JAVA_LIB), \ + LDFLAGS_SUFFIX_posix := -ljvm $(LIBCXX) -ljava -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libunpack, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=unpack.dll" \ + -D "JDK_INTERNAL_NAME=unpack" \ + -D "JDK_FTYPE=0x2L", \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBUNPACK): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBUNPACK) + +ifeq ($(OPENJDK_TARGET_OS), windows) + $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(BUILD_LIBUNPACK) + $(ECHO) Copying $(@F) + $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX), %.map, $<) $@ + + $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(BUILD_LIBUNPACK) + $(ECHO) Copying $(@F) + $(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX), %.pdb, $<) $@ +endif + +########################################################################################## + +BUILD_LIBJLI_SRC_DIRS := $(JDK_TOPDIR)/src/share/bin $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin +LIBJLI_CFLAGS := $(CFLAGS_JDKLIB) $(foreach dir, $(BUILD_LIBJLI_SRC_DIRS), -I$(dir)) + +BUILD_LIBJLI_FILES := \ + java.c \ + splashscreen_stubs.c \ + parse_manifest.c \ + version_comp.c \ + wildcard.c \ + jli_util.c + +ifeq ($(JVM_VARIANT_ZERO), true) + ERGO_FAMILY := zero +else + ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86) + ERGO_FAMILY := i586 + else + ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH) + endif +endif + +ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBJLI_CFLAGS += -I$(JDK_TOPDIR)/src/macosx/bin + BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/bin + BUILD_LIBJLI_FILES += java_md_common.c java_md_macosx.c + + BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c + BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c +endif + +ifeq ($(OPENJDK_TARGET_OS), windows) + BUILD_LIBJLI_FILES += java_md.c \ + cmdtoargs.c + # Staticically link with c runtime on windows. + LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS)) +else ifneq ($(OPENJDK_TARGET_OS), macosx) + + BUILD_LIBJLI_FILES += java_md_common.c + BUILD_LIBJLI_FILES += java_md_solinux.c ergo.c + + ERGO_ARCH_FILE = ergo_$(ERGO_FAMILY).c + + # if the architecture specific ergo file exists then + # use it, else use the generic definitions from ergo.c + ifneq ($(wildcard $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/bin/$(ERGO_ARCH_FILE)), ) + BUILD_LIBJLI_FILES += $(ERGO_ARCH_FILE) + else # !ERGO_ARCH_FILE + LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO + endif # ERGO_ARCH_FILE +endif #WINDOWS + +# Append defines depending on target platform +LIBJLI_CFLAGS += $(OPENJDK_TARGET_CPU_JLI_CFLAGS) + +ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\" +endif + +ifneq ($(USE_EXTERNAL_LIBZ), true) + BUILD_LIBJLI_SRC_DIRS += $(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 + LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS) + BUILD_LIBJLI_FILES += \ + inflate.c \ + inftrees.c \ + inffast.c \ + zadler32.c \ + zcrc32.c \ + zutil.c +endif + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE) +else + LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \ + LIBRARY := jli, \ + OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \ + SRC := $(BUILD_LIBJLI_SRC_DIRS), \ + INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(LIBJLI_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjli/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/..), \ + LDFLAGS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) $(LIBDL) -lc -lpthread, \ + LDFLAGS_SUFFIX_macosx := $(LIBZ), \ + LDFLAGS_SUFFIX_windows := \ + -export:JLI_Launch \ + -export:JLI_ManifestIterate \ + -export:JLI_SetTraceLauncher \ + -export:JLI_ReportErrorMessage \ + -export:JLI_ReportErrorMessageSys \ + -export:JLI_ReportMessage \ + -export:JLI_ReportExceptionDescription \ + -export:JLI_MemAlloc \ + -export:JLI_CmdToArgs \ + -export:JLI_GetStdArgc \ + -export:JLI_GetStdArgs \ + advapi32.lib \ + comctl32.lib \ + user32.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jli.dll" \ + -D "JDK_INTERNAL_NAME=jli" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +BUILD_LIBRARIES += $(BUILD_LIBJLI) + +# On windows, the static library has the same suffix as the import library created by +# with the shared library, so the static library is given a different name. No harm +# in doing it for all platform to reduce complexity. +ifeq ($(OPENJDK_TARGET_OS), windows) + $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ + STATIC_LIBRARY := jli_static, \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ + SRC := $(BUILD_LIBJLI_SRC_DIRS), \ + INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \ + ARFLAGS := $(ARFLAGS), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBJLI_STATIC) + +else ifeq ($(OPENJDK_TARGET_OS), macosx) + # + # On macosx they do partial (incremental) linking of libjli_static.a + # code it here...rather than add support to NativeCompilation + # as this is first time I see it + $(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \ + LIBRARY := jli_static, \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \ + SRC := $(BUILD_LIBJLI_SRC_DIRS), \ + INCLUDE_FILES := $(BUILD_LIBJLI_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \ + LDFLAGS := -nostdlib -r, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjli_static, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(JDK_OUTPUTDIR)/objs/libjli_static.a: $(BUILD_LIBJLI_STATIC) + $(call install-file) + + BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/objs/libjli_static.a +endif + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBNPT, \ + LIBRARY := npt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/npt $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/npt \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnpt/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_macosx := -liconv, \ + LDFLAGS_SUFFIX_windows := -export:nptInitialize -export:nptTerminate, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=npt.dll" \ + -D "JDK_INTERNAL_NAME=npt" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnpt, \ + DEBUG_SYMBOLS := true)) + +BUILD_LIBRARIES += $(BUILD_LIBNPT) diff --git a/makefiles/lib/NetworkingLibraries.gmk b/makefiles/lib/NetworkingLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..546565af91b987c4d6215d62ce9157c022aee10e --- /dev/null +++ b/makefiles/lib/NetworkingLibraries.gmk @@ -0,0 +1,98 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +LIBNET_SRC_DIRS := $(JDK_TOPDIR)/src/share/native/java/net \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/dns \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/spi + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/www/protocol/http/ntlm +else + LIBNET_SRC_DIRS += $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/net/sdp +endif + +LIBNET_CFLAGS := $(foreach dir, $(LIBNET_SRC_DIRS), -I$(dir)) + +LIBNET_EXCLUDE_FILES := +ifneq ($(OPENJDK_TARGET_OS), linux) + LIBNET_EXCLUDE_FILES += linux_close.c +endif + +ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBNET_EXCLUDE_FILES += bsd_close.c +endif + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBNET_EXCLUDE_FILES += PlainSocketImpl.c PlainDatagramSocketImpl.c SdpSupport.c +else + LIBNET_EXCLUDE_FILES += TwoStacksPlainSocketImpl.c DualStackPlainSocketImpl.c \ + TwoStacksPlainDatagramSocketImpl.c DualStackPlainDatagramSocketImpl.c \ + NTLMAuthSequence.c NetworkInterface_winXP.c +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \ + LIBRARY := net, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBNET_SRC_DIRS), \ + EXCLUDE_FILES := $(LIBNET_EXCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBNET_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnet/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_macosx := -ljvm -ljava, \ + LDFLAGS_SUFFIX_solaris := -ljvm -ljava -lnsl -lsocket $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBDL) -ljvm -lpthread -ljava, \ + LDFLAGS_SUFFIX_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib \ + delayimp.lib $(WIN_JAVA_LIB) advapi32.lib \ + -DELAYLOAD:secur32.dll -DELAYLOAD:iphlpapi.dll, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=net.dll" \ + -D "JDK_INTERNAL_NAME=net" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnet, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBNET): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBNET) + +$(JDK_OUTPUTDIR)/lib/net.properties: $(JDK_TOPDIR)/src/share/lib/net.properties + $(ECHO) $(LOG_INFO) Copying $(@F) + $(call install-file) + +COPY_FILES += $(JDK_OUTPUTDIR)/lib/net.properties + +ifeq ($(OPENJDK_TARGET_OS), solaris) + $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template: $(JDK_TOPDIR)/src/${OPENJDK_TARGET_OS_API_DIR}/lib/sdp/sdp.conf.template + $(ECHO) $(LOG_INFO) Copying $(@F) + $(call install-file) + + COPY_FILES += $(JDK_OUTPUTDIR)/lib/sdp/sdp.conf.template +endif diff --git a/makefiles/lib/NioLibraries.gmk b/makefiles/lib/NioLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..2896eeea84f7d56f5785dd2a01e467f768680bb0 --- /dev/null +++ b/makefiles/lib/NioLibraries.gmk @@ -0,0 +1,185 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +BUILD_LIBNIO_SRC := \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/nio \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs + +BUILD_LIBNIO_CFLAGS := \ + -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ + -I$(JDK_TOPDIR)/src/share/native/java/io \ + -I$(JDK_TOPDIR)/src/share/native/java/net \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net + +BUILD_LIBNIO_FILES := \ + DatagramChannelImpl.c \ + DatagramDispatcher.c \ + FileChannelImpl.c \ + FileDispatcherImpl.c \ + FileKey.c \ + IOUtil.c \ + MappedByteBuffer.c \ + Net.c \ + ServerSocketChannelImpl.c \ + SocketChannelImpl.c \ + SocketDispatcher.c + +ifeq ($(OPENJDK_TARGET_OS), windows) + BUILD_LIBNIO_FILES += \ + Iocp.c \ + RegistryFileTypeDetector.c \ + WindowsAsynchronousFileChannelImpl.c \ + WindowsAsynchronousServerSocketChannelImpl.c \ + WindowsAsynchronousSocketChannelImpl.c \ + WindowsNativeDispatcher.c \ + WindowsSelectorImpl.c +endif + +ifeq ($(OPENJDK_TARGET_OS), linux) + BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) + BUILD_LIBNIO_FILES += \ + EPoll.c \ + EPollArrayWrapper.c \ + EPollPort.c \ + InheritedChannel.c \ + NativeThread.c \ + PollArrayWrapper.c \ + UnixAsynchronousServerSocketChannelImpl.c \ + UnixAsynchronousSocketChannelImpl.c \ + GnomeFileTypeDetector.c \ + MagicFileTypeDetector.c \ + LinuxNativeDispatcher.c \ + LinuxWatchService.c \ + UnixCopyFile.c \ + UnixNativeDispatcher.c +endif + +ifeq ($(OPENJDK_TARGET_OS), macosx) + BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) + BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/macosx/native/sun/nio/ch + BUILD_LIBNIO_FILES += \ + InheritedChannel.c \ + NativeThread.c \ + PollArrayWrapper.c \ + UnixAsynchronousServerSocketChannelImpl.c \ + UnixAsynchronousSocketChannelImpl.c \ + BsdNativeDispatcher.c \ + MacOSXNativeDispatcher.c \ + UnixCopyFile.c \ + UnixNativeDispatcher.c \ + KQueue.c \ + KQueuePort.c \ + KQueueArrayWrapper.c +endif + +ifeq ($(OPENJDK_TARGET_OS), solaris) + BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS) + BUILD_LIBNIO_FILES += \ + DevPollArrayWrapper.c \ + InheritedChannel.c \ + NativeThread.c \ + PollArrayWrapper.c \ + SolarisEventPort.c \ + UnixAsynchronousServerSocketChannelImpl.c \ + UnixAsynchronousSocketChannelImpl.c \ + GnomeFileTypeDetector.c \ + SolarisNativeDispatcher.c \ + SolarisWatchService.c \ + UnixCopyFile.c \ + UnixNativeDispatcher.c +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \ + LIBRARY := nio, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(BUILD_LIBNIO_SRC), \ + INCLUDE_FILES := $(BUILD_LIBNIO_FILES), \ + LANG := C, \ + OPTIMIZATION := HIGH, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBNIO_CFLAGS), \ + MAPFILE := $(BUILD_LIBNIO_MAPFILE), \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(BUILD_LIBNIO_LDFLAGS) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := -ljava -lnet -lpthread $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \ + -lsendfile -ljava -lnet -lc, \ + LDFLAGS_SUFFIX_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \ + $(JDK_OUTPUTDIR)/objs/libnet/net.lib \ + advapi32.lib, \ + LDFLAGS_SUFFIX_macosx := -ljava -lnet -pthread -framework CoreFoundation, \ + LDFLAGS_SUFFIX :=, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=nio.dll" \ + -D "JDK_INTERNAL_NAME=nio" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libnio, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +BUILD_LIBRARIES += $(BUILD_LIBNIO) + +$(BUILD_LIBNIO): $(BUILD_LIBNET) + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS_API), posix) + + ifneq ($(OPENJDK_TARGET_OS), macosx) + + SCTP_WERROR := -Werror + ifeq ($(OPENJDK_TARGET_CPU_ARCH), ppc) + SCTP_WERROR := + endif + + $(eval $(call SetupNativeCompilation,BUILD_LIBSCTP, \ + LIBRARY := sctp, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch/sctp, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \ + -I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \ + -I$(JDK_TOPDIR)/src/share/native/java/net \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/ch \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/net, \ + CFLAGS_linux := $(SCTP_WERROR), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsctp/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := -lpthread $(LIBDL) -ljava -ljvm, \ + LDFLAGS_SUFFIX_posix := -lnio -lnet, \ + LDFLAGS_SUFFIX_solaris := -lsocket -ljava -ljvm -lc, \ + LDFLAGS_SUFFIX_macosx := -ljava -ljvm, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsctp, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBSCTP) + + $(BUILD_LIBSCTP): $(BUILD_LIBNIO) + endif +endif diff --git a/makefiles/lib/PlatformLibraries.gmk b/makefiles/lib/PlatformLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..7684bddeece4c9ce030ab7c75bcd918cee7fab09 --- /dev/null +++ b/makefiles/lib/PlatformLibraries.gmk @@ -0,0 +1,283 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +ifeq ($(OPENJDK_TARGET_OS), macosx) + + $(eval $(call SetupNativeCompilation,BUILD_LIBAPPLESCRIPTENGINE, \ + LIBRARY := AppleScriptEngine, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/macosx/native/apple/applescript, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/macosx/native/apple/applescript \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := -framework Cocoa \ + -framework Carbon \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + $(LDFLAGS_JDKLIB_SUFFIX), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libAppleScriptEngine, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBAPPLESCRIPTENGINE): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBAPPLESCRIPTENGINE) + +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), macosx) + + $(eval $(call SetupNativeCompilation,BUILD_LIBOSXAPP, \ + LIBRARY := osxapp, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/macosx/native/sun/osxapp, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ + -I$(JDK_OUTPUTDIR)/gensrc/sun/osxapp \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_macosx := \ + -framework Accelerate \ + -framework ApplicationServices \ + -framework AudioToolbox \ + -framework Carbon \ + -framework Cocoa \ + -framework Security \ + -framework ExceptionHandling \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -framework JavaRuntimeSupport \ + -framework OpenGL \ + -framework IOSurface \ + -framework QuartzCore, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosxapp, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBOSXAPP) + +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), macosx) + + LIBOSX_DIRS := \ + $(JDK_TOPDIR)/src/macosx/native/com/apple/concurrent \ + $(JDK_TOPDIR)/src/macosx/native/java/util \ + $(JDK_TOPDIR)/src/macosx/native/com/apple/eio \ + $(JDK_TOPDIR)/src/macosx/native/apple/security \ + $(JDK_TOPDIR)/src/macosx/native/apple/launcher + + $(eval $(call SetupNativeCompilation,BUILD_LIBOSX, \ + LIBRARY := osx, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBOSX_DIRS), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(foreach dir, $(LIBOSX_DIRS), -I$(dir)) \ + -I$(JDK_TOPDIR)/src/macosx/native/sun/osxapp \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_macosx := \ + -losxapp \ + -framework Cocoa \ + -framework ApplicationServices \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -framework JavaRuntimeSupport \ + -framework Security \ + -framework SystemConfiguration \ + $(LDFLAGS_JDKLIB_SUFFIX), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libosx, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBOSX) + + $(BUILD_LIBOSX): $(BUILD_LIBOSXAPP) + + $(BUILD_LIBOSX): $(BUILD_LIBJAVA) + +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), macosx) + + $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC32, \ + LIBRARY := JObjC, \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc32, \ + SRC := $(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \ + $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := -fpascal-strings \ + -fobjc-gc \ + -gdwarf-2 \ + $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -m32, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + -m32, \ + LDFLAGS_SUFFIX := -framework Foundation -framework JavaVM \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -lffi, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc32, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(eval $(call SetupNativeCompilation,BUILD_LIBJOBJC64, \ + LIBRARY := JObjC, \ + OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc64, \ + SRC := $(JDK_TOPDIR)/src/macosx/native/jobjc/src/core/native \ + $(JDK_TOPDIR)/src/macosx/native/jobjc/src/runtime-additions/native, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := -fpascal-strings \ + -fobjc-gc \ + -gdwarf-2 \ + $(CFLAGS_JDKLIB) -I$(JDK_OUTPUTDIR)/gensrc_headers_jobjc \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + , \ + LDFLAGS := -fpascal-strings \ + -fobjc-gc \ + -gdwarf-2 \ + $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := -framework Foundation -framework JavaVM \ + -F/System/Library/Frameworks/JavaVM.framework/Frameworks \ + -framework JavaNativeFoundation \ + -lffi, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjobjc64, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX): $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64) + $(LIPO) -create -output $@ $(BUILD_LIBJOBJC32) $(BUILD_LIBJOBJC64) + + BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)JObjC$(SHARED_LIBRARY_SUFFIX) + +endif + +########################################################################################## + +ifndef OPENJDK + ifeq ($(OPENJDK_TARGET_OS), windows) + + ACCESSBRIDGE_SRCDIR := $(JDK_TOPDIR)/src/closed/windows/native/sun/bridge + + define SetupAccessBridge + # Parameter 1 Suffix + # Parameter 2 Machine + # Parameter 3 ACCESSBRIDGE_ARCH_ suffix + + $(call SetupNativeCompilation,BUILD_JAWTACCESSBRIDGE$1, \ + LIBRARY = JAWTAccessBridge$1, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(ACCESSBRIDGE_SRCDIR), \ + INCLUDE_FILES := JAWTAccessBridge.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -DACCESSBRIDGE_ARCH_$3, \ + LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ + winspool.lib jawt.lib comdlg32.lib advapi32.lib shell32.lib \ + ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ + -subsystem:windows -machine:$2 \ + -def:$(ACCESSBRIDGE_SRCDIR)/JAWTAccessBridge.DEF, \ + VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ + RC_FLAGS := $(RC_FLAGS), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjawtaccessbridge$1, \ + DEBUG_SYMBOLS := true) + + $$(BUILD_JAWTACCESSBRIDGE$1): $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) + + $(call SetupNativeCompilation,BUILD_JAVAACCESSBRIDGE$1, \ + LIBRARY = JavaAccessBridge$1, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(ACCESSBRIDGE_SRCDIR), \ + INCLUDE_FILES := AccessBridgeATInstance.cpp AccessBridgeDebug.cpp \ + AccessBridgeJavaEntryPoints.cpp \ + AccessBridgeMessages.cpp JavaAccessBridge.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -DACCESSBRIDGE_ARCH_$3, \ + LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ + winspool.lib comdlg32.lib advapi32.lib shell32.lib \ + ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ + -subsystem:windows -machine:$2 \ + -def:$(ACCESSBRIDGE_SRCDIR)/JavaAccessBridge.DEF, \ + VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ + RC_FLAGS := $(RC_FLAGS), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjavaaccessbridge$1, \ + DEBUG_SYMBOLS := true) + + $(call SetupNativeCompilation,BUILD_WINDOWSACCESSBRIDGE$1, \ + LIBRARY = WindowsAccessBridge$1, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(ACCESSBRIDGE_SRCDIR), \ + INCLUDE_FILES := AccessBridgeJavaVMInstance.cpp AccessBridgeMessageQueue.cpp \ + AccessBridgeMessages.cpp AccessBridgeWindowsEntryPoints.cpp \ + WinAccessBridge.cpp AccessBridgeDebug.cpp \ + AccessBridgeEventHandler.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(filter-out -MD, $(CFLAGS_JDKLIB)) -MT \ + -DACCESSBRIDGE_ARCH_$3, \ + LDFLAGS := $(LDFLAGS_JDKLIB) kernel32.lib user32.lib gdi32.lib \ + winspool.lib comdlg32.lib advapi32.lib shell32.lib \ + ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib \ + -subsystem:windows -machine:$2 \ + -def:$(ACCESSBRIDGE_SRCDIR)/WinAccessBridge.DEF, \ + VERSIONINFO_RESOURCE := $(ACCESSBRIDGE_SRCDIR)/AccessBridgeStatusWindow.rc, \ + RC_FLAGS := $(RC_FLAGS), \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libwindowsaccessbridge$1, \ + DEBUG_SYMBOLS := true) + + BUILD_LIBRARIES += $$(BUILD_JAWTACCESSBRIDGE$1) $$(BUILD_JAVAACCESSBRIDGE$1) \ + $$(BUILD_WINDOWSACCESSBRIDGE$1) + + endef + + ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) + $(eval $(call SetupAccessBridge,-32,I386,32)) + $(eval $(call SetupAccessBridge,,I386,LEGACY)) + else + $(eval $(call SetupAccessBridge,-64,X64,64)) + endif + endif +endif diff --git a/makefiles/lib/SecurityLibraries.gmk b/makefiles/lib/SecurityLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..779504f5f842b9b6736676d09b95596fe9d8ae5e --- /dev/null +++ b/makefiles/lib/SecurityLibraries.gmk @@ -0,0 +1,289 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +LIBJAAS_MAPFILE := +ifneq ($(OPENJDK_TARGET_OS), solaris) + LIBJAAS_EXCLUDE_FILES := Solaris.c +else + # only on solaris...wonder why + LIBJAAS_MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjaas/mapfile-vers +endif + +LIBJAAS_NAME := jaas_unix +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBJAAS_NAME := jaas_nt +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS, \ + LIBRARY := $(LIBJAAS_NAME), \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/security/auth/module, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB), \ + MAPFILE := $(LIBJAAS_MAPFILE), \ + LDFLAGS := $(filter-out -ljava, $(LDFLAGS_JDKLIB)) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := netapi32.lib user32.lib mpr.lib advapi32.lib, \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + EXCLUDE_FILES := $(LIBJAAS_EXCLUDE_FILES), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=$(LIBJAAS_NAME).dll" \ + -D "JDK_INTERNAL_NAME=$(LIBJAAS_NAME)" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjaas, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBJAAS): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBJAAS) + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PCSC, \ + LIBRARY := j2pcsc, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio, \ + LANG := C, \ + CFLAGS_posix := -D__sun_jdk, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/smartcardio \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/smartcardio/MUSCLE, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2pcsc/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_posix := $(LIBDL), \ + LDFLAGS_SUFFIX_windows := winscard.lib, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=j2pcsc.dll" \ + -D "JDK_INTERNAL_NAME=j2pcsc" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pcsc, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +BUILD_LIBRARIES += $(BUILD_LIBJ2PCSC) + +########################################################################################## + +ifneq ($(OPENJDK_TARGET_OS), windows) + $(eval $(call SetupNativeCompilation,BUILD_LIBJ2GSS, \ + LIBRARY := j2gss, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/jgss/wrapper \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/jgss/wrapper, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2gss/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2gss, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBJ2GSS) +endif + +########################################################################################## + +ifneq ($(BUILD_CRYPTO), no) + BUILD_LIBKRB5_NAME := + ifeq ($(OPENJDK_TARGET_OS), windows) + BUILD_LIBKRB5_NAME := w2k_lsa_auth + BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5 + BUILD_LIBKRB5_LIBS := advapi32.lib Secur32.lib netapi32.lib kernel32.lib user32.lib \ + gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib \ + ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib + else ifeq ($(OPENJDK_TARGET_OS), macosx) + BUILD_LIBKRB5_NAME := osxkrb5 + BUILD_LIBKRB5_SRC := $(JDK_TOPDIR)/src/share/native/sun/security/krb5 + BUILD_LIBKRB5_LIBS := -framework Kerberos + endif + + ifneq ($(BUILD_LIBKRB5_NAME), ) + $(eval $(call SetupNativeCompilation,BUILD_LIBKRB5, \ + LIBRARY := $(BUILD_LIBKRB5_NAME), \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(BUILD_LIBKRB5_SRC), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/krb5 \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/krb5, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(BUILD_LIBKRB5_LIBS), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=$(BUILD_LIBKRB5_NAME).dll" \ + -D "JDK_INTERNAL_NAME=$(BUILD_LIBKRB5_NAME)" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libkrb5, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBKRB5) + endif +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), windows) + + $(eval $(call SetupNativeCompilation,BUILD_LIBSUNMSCAPI, \ + LIBRARY := sunmscapi, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/mscapi, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := Crypt32.Lib advapi32.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=sunmscapi.dll" \ + -D "JDK_INTERNAL_NAME=sunmscapi" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunmscapi, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBSUNMSCAPI) +endif + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBJ2PKCS11, \ + LIBRARY := j2pkcs11, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ + $(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11 \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11 \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/pkcs11/wrapper \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/security/pkcs11/wrapper, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2pkcs11/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_posix := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=j2pkcs11.dll" \ + -D "JDK_INTERNAL_NAME=j2pkcs11" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2pkcs11, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +BUILD_LIBRARIES += $(BUILD_LIBJ2PKCS11) + +########################################################################################## + +ifeq ($(ENABLE_INTREE_EC), yes) + + BUILD_LIBSUNEC_FLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/security/ec \ + -I$(JDK_TOPDIR)/src/share/native/sun/security/ec/impl + + # + # On sol-sparc...all libraries are compiled with -xregs=no%appl + # (set in CFLAGS_REQUIRED_sparc) + # + # except!!! libsunec.so + # + ECC_JNI_SOLSPARC_FILTER := + ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc) + ECC_JNI_SOLSPARC_FILTER := -xregs=no%appl + endif + + $(eval $(call SetupNativeCompilation,BUILD_LIBSUNEC, \ + LIBRARY := sunec, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/security/ec \ + $(JDK_TOPDIR)/src/share/native/sun/security/ec/impl, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CFLAGS_JDKLIB)) \ + $(BUILD_LIBSUNEC_FLAGS) \ + -DMP_API_COMPATIBLE -DNSS_ECC_MORE_THAN_SUITE_B, \ + CXXFLAGS := $(filter-out $(ECC_JNI_SOLSPARC_FILTER), $(CXXFLAGS_JDKLIB)) \ + $(BUILD_LIBSUNEC_FLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libsunec/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK), \ + LDFLAGS_macosx := $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LIBCXX), \ + LDFLAGS_SUFFIX_linux := -lc, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=sunec.dll" \ + -D "JDK_INTERNAL_NAME=sunec" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libsunec, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBSUNEC) +endif + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), solaris) + ifndef OPENJDK + + $(eval $(call SetupNativeCompilation,BUILD_LIBJ2UCRYPTO, \ + LIBRARY := j2ucrypto, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/closed/solaris/native/com/oracle/security/ucrypto, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libj2ucrypto/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB), \ + LDFLAGS_SUFFIX := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libj2ucrypto, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBJ2UCRYPTO): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBJ2UCRYPTO) + + endif +endif diff --git a/makefiles/lib/ServiceabilityLibraries.gmk b/makefiles/lib/ServiceabilityLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..0cc5ad96a88e41177103cd16920622709c0798c6 --- /dev/null +++ b/makefiles/lib/ServiceabilityLibraries.gmk @@ -0,0 +1,431 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +LIBATTACH_EXCLUDE_FILES := +ifneq ($(OPENJDK_TARGET_OS), solaris) + LIBATTACH_EXCLUDE_FILES += SolarisVirtualMachine.c +endif +ifneq ($(OPENJDK_TARGET_OS), linux) + LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c +endif +ifneq ($(OPENJDK_TARGET_OS), macosx) + LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \ + LIBRARY := attach, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tools/attach, \ + EXCLUDE_FILES := $(LIBATTACH_EXCLUDE_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB), \ + CFLAGS_windows := /Gy, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libattach/mapfile-$(OPENJDK_TARGET_OS), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=attach.dll" \ + -D "JDK_INTERNAL_NAME=attach" \ + -D "JDK_FTYPE=0x2L", \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_solaris := -ldoor, \ + LDFLAGS_windows := /ORDER:@$(JDK_TOPDIR)/makefiles/mapfiles/libattach/reorder-windows-$(OPENJDK_TARGET_CPU), \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib psapi.lib, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libattach, \ + DEBUG_SYMBOLS := true)) + +$(BUILD_LIBATTACH): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBATTACH) + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \ + LIBRARY := dt_socket, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/transport/socket \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \ + -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \ + -I$(JDK_TOPDIR)/src/share/transport/socket \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket \ + -I$(JDK_TOPDIR)/src/share/back/export \ + -I$(JDK_TOPDIR)/src/share/back, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libdt_socket/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := -lpthread, \ + LDFLAGS_SUFFIX_solaris := -lnsl -lsocket -lc, \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=dt_socket.dll" \ + -D "JDK_INTERNAL_NAME=dt_socket" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdt_socket, \ + DEBUG_SYMBOLS := true)) + +$(BUILD_LIBDT_SOCKET): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBDT_SOCKET) + +########################################################################################## + +ifeq ($(OPENJDK_TARGET_OS), windows) + + $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM, \ + LIBRARY := dt_shmem, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \ + $(JDK_TOPDIR)/src/share/transport/shmem \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \ + -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \ + -I$(JDK_TOPDIR)/src/share/transport/shmem \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem \ + -I$(JDK_TOPDIR)/src/share/back/export, \ + LDFLAGS := $(LDFLAGS_JDKLIB), \ + LDFLAGS_windows := -export:jdwpTransport_OnLoad, \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=dt_shmem.dll" \ + -D "JDK_INTERNAL_NAME=dt_shmem" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdt_shmem, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM) + +endif # OPENJDK_TARGET_OS + +########################################################################################## + +# JDWP_LOGGING causes log messages to be compiled into the library. +$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \ + LIBRARY := jdwp, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING \ + -I$(JDK_TOPDIR)/src/share/transport/export \ + -I$(JDK_TOPDIR)/src/share/back/export \ + -I$(JDK_TOPDIR)/src/share/npt \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \ + -I$(JDK_TOPDIR)/src/share/back \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back \ + -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjdwp/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jdwp.dll" \ + -D "JDK_INTERNAL_NAME=jdwp" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjdwp, \ + DEBUG_SYMBOLS := true)) + +$(BUILD_LIBJDWP): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBJDWP) + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBJSDT, \ + LIBRARY := jsdt, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tracing/dtrace, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsdt/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_linux := $(LIBDL), \ + LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL), \ + LDFLAGS_SUFFIX_macosx := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jsdt.dll" \ + -D "JDK_INTERNAL_NAME=jsdt" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsdt, \ + DEBUG_SYMBOLS := true)) + +$(BUILD_LIBJSDT): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBJSDT) + +########################################################################################## + +LIBINSTRUMENT_SRC := $(JDK_TOPDIR)/src/share/instrument \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument + +LIBINSTRUMENT_FILES := \ + EncodingSupport.c \ + EncodingSupport_md.c \ + FileSystemSupport_md.c \ + InstrumentationImplNativeMethods.c \ + InvocationAdapter.c \ + JarFacade.c \ + JPLISAgent.c \ + JPLISAssert.c \ + JavaExceptions.c \ + PathCharsValidator.c \ + Reentrancy.c \ + Utilities.c \ + canonicalize_md.c + +LIBINSTRUMENT_DIR := $(JDK_OUTPUTDIR)/objs/libinstrument +LIBINSTRUMENT_CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/instrument \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument \ + -I$(JDK_TOPDIR)/src/share/bin + +LIBINSTRUMENT_LDFLAGS := +LIBINSTRUMENT_LDFLAGS_SUFFIX := + +ifeq ($(OPENJDK_TARGET_OS), windows) + LIBINSTRUMENT_LDFLAGS += $(JDK_OUTPUTDIR)/objs/jli_static.lib $(WIN_JAVA_LIB) \ + -export:Agent_OnAttach advapi32.lib + # Statically link the C runtime so that there are not dependencies on modules + # not on the search patch when invoked from the Windows system directory + # (or elsewhere). + LIBINSTRUMENT_CFLAGS := $(filter-out -MD, $(LIBINSTRUMENT_CFLAGS)) + # equivalent of strcasecmp is stricmp on Windows + LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \ + LIBRARY := instrument, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBINSTRUMENT_SRC), \ + INCLUDE_FILES := $(LIBINSTRUMENT_FILES), \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(LIBINSTRUMENT_CFLAGS), \ + CFLAGS_debug := -DJPLIS_LOGGING, \ + CFLAGS_release := -DNO_JPLIS_LOGGING, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libinstrument/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN) \ + $(LIBINSTRUMENT_LDFLAGS), \ + LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ + LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \ + LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \ + -framework Cocoa -framework Security -framework ApplicationServices, \ + LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \ + LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \ + LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \ + LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=instrument.dll" \ + -D "JDK_INTERNAL_NAME=instrument" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(LIBINSTRUMENT_DIR), \ + DEBUG_SYMBOLS := true)) + +ifneq (, $(findstring $(OPENJDK_TARGET_OS), macosx windows)) + $(BUILD_LIBINSTRUMENT): $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX) +else + $(BUILD_LIBINSTRUMENT): $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX) +endif +$(BUILD_LIBINSTRUMENT): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBINSTRUMENT) + +########################################################################################## + +BUILD_LIBMANAGEMENT_SRC := $(JDK_TOPDIR)/src/share/native/sun/management \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/management + +BUILD_LIBMANAGEMENT_EXCLUDES := + +BUILD_LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/management + +ifneq ($(OPENJDK_TARGET_OS), windows) + BUILD_LIBMANAGEMENT_EXCLUDES += OperatingSystem_md.c +else + BUILD_LIBMANAGEMENT_EXCLUDES += UnixOperatingSystem_md.c +endif + +ifneq ($(OPENJDK_TARGET_OS), solaris) + BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c +endif + +ifneq ($(OPENJDK_TARGET_OS), linux) + BUILD_LIBMANAGEMENT_EXCLUDES += LinuxOperatingSystem.c +endif + +ifneq ($(OPENJDK_TARGET_OS), macosx) + BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c +endif + +LIBMANAGEMENT_OPTIMIZATION := HIGH +ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + LIBMANAGEMENT_OPTIMIZATION := LOW + endif +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT, \ + LIBRARY := management, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(BUILD_LIBMANAGEMENT_SRC), \ + EXCLUDE_FILES := $(BUILD_LIBMANAGEMENT_EXCLUDES), \ + LANG := C, \ + OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \ + CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBMANAGEMENT_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libmanagement/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_solaris := -lkstat, \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \ + LDFLAGS_SUFFIX_windows := jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=management.dll" \ + -D "JDK_INTERNAL_NAME=management" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmanagement, \ + DEBUG_SYMBOLS := true)) + +$(BUILD_LIBMANAGEMENT): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBMANAGEMENT) + +########################################################################################## + +BUILD_LIBHPROF_SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/hprof $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/hprof +BUILD_LIBHPROF_CFLAGS := -I$(JDK_TOPDIR)/src/share/demo/jvmti/hprof \ + -I$(JDK_TOPDIR)/src/share/npt \ + -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \ + -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo + +BUILD_LIBHPROF_LDFLAGS := + +LIBHPROF_OPTIMIZATION := HIGHEST +ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), ) + ifeq ($(ENABLE_DEBUG_SYMBOLS), true) + LIBHPROF_OPTIMIZATION := LOW + endif +endif + +$(eval $(call SetupNativeCompilation,BUILD_LIBHPROF, \ + LIBRARY := hprof, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(BUILD_LIBHPROF_SRC), \ + LANG := C, \ + OPTIMIZATION := $(LIBHPROF_OPTIMIZATION), \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(BUILD_LIBHPROF_CFLAGS), \ + CFLAGS_debug := -DHPROF_LOGGING, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libhprof/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_windows := wsock32.lib winmm.lib advapi32.lib, \ + LDFLAGS_SUFFIX_linux := $(LIBDL), \ + LDFLAGS_SUFFIX_macosx := $(LIBDL), \ + LDFLAGS_SUFFIX_solaris := -lsocket -lnsl $(LIBDL) -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=hprof.dll" \ + -D "JDK_INTERNAL_NAME=hprof" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libhprof_jvmti, \ + DEBUG_SYMBOLS := true)) + +BUILD_LIBRARIES += $(BUILD_LIBHPROF) + +########################################################################################## + +$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA_CRW_DEMO, \ + LIBRARY := java_crw_demo, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjava_crw_demo/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=java_crw_demo.dll" \ + -D "JDK_INTERNAL_NAME=java_crw_demo" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava_crw_demo, \ + DEBUG_SYMBOLS := true)) + +BUILD_LIBRARIES += $(BUILD_LIBJAVA_CRW_DEMO) + +########################################################################################## + +ifndef OPENJDK + ifeq ($(ENABLE_JFR), true) + + $(eval $(call SetupNativeCompilation,BUILD_LIBJFR, \ + LIBRARY := jfr, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(JDK_TOPDIR)/src/closed/share/native/oracle/jfr, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + -I$(JDK_TOPDIR)/src/closed/share/javavm/export, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjfr/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jfr.dll" \ + -D "JDK_INTERNAL_NAME=jfr" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjfr, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + BUILD_LIBRARIES += $(BUILD_LIBJFR) + + endif +endif diff --git a/makefiles/lib/SoundLibraries.gmk b/makefiles/lib/SoundLibraries.gmk new file mode 100644 index 0000000000000000000000000000000000000000..dc507ab58cf330a95090f719a0e51f47eb0e80be --- /dev/null +++ b/makefiles/lib/SoundLibraries.gmk @@ -0,0 +1,237 @@ +# +# Copyright (c) 2011, 2013, 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. Oracle designates this +# particular file as subject to the "Classpath" exception as provided +# by Oracle in the LICENSE file that accompanied this code. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +LIBJSOUND_SRC_DIRS := \ + $(JDK_TOPDIR)/src/share/native/com/sun/media/sound \ + $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/com/sun/media/sound + +LIBJSOUND_SRC_FILES := Utilities.c Platform.c + +LIBJSOUND_LANG := C +LIBJSOUND_CFLAGS := $(foreach dir, $(LIBJSOUND_SRC_DIRS), -I$(dir)) + +EXTRA_SOUND_JNI_LIBS := + +LIBJSOUND_MIDIFILES := \ + MidiInDevice.c \ + MidiInDeviceProvider.c \ + MidiOutDevice.c \ + MidiOutDeviceProvider.c \ + PlatformMidi.c + +# files needed for ports +LIBJSOUND_PORTFILES := \ + PortMixerProvider.c \ + PortMixer.c + +# files needed for direct audio +LIBJSOUND_DAUDIOFILES := \ + DirectAudioDeviceProvider.c \ + DirectAudioDevice.c + +ifeq ($(OPENJDK_TARGET_OS), windows) + EXTRA_SOUND_JNI_LIBS += jsoundds + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_WINDOWS \ + -DUSE_PLATFORM_MIDI_OUT=TRUE \ + -DUSE_PLATFORM_MIDI_IN=TRUE \ + -DUSE_PORTS=TRUE + LIBJSOUND_SRC_FILES += \ + PLATFORM_API_WinOS_MidiIn.cpp \ + PLATFORM_API_WinOS_MidiOut.c \ + PLATFORM_API_WinOS_Util.c \ + PLATFORM_API_WinOS_Ports.c + LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES) + LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES) +endif # OPENJDK_TARGET_OS windows + +ifeq ($(OPENJDK_TARGET_OS), linux) + EXTRA_SOUND_JNI_LIBS += jsoundalsa + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX +endif # OPENJDK_TARGET_OS linux + +ifeq ($(OPENJDK_TARGET_OS), macosx) + LIBJSOUND_LANG := C++ + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_MACOSX \ + -DUSE_PORTS=TRUE \ + -DUSE_DAUDIO=TRUE \ + -DUSE_PLATFORM_MIDI_OUT=TRUE \ + -DUSE_PLATFORM_MIDI_IN=TRUE + LIBJSOUND_SRC_DIRS += $(JDK_TOPDIR)/src/macosx/native/com/sun/media/sound + LIBJSOUND_SRC_FILES += \ + PLATFORM_API_MacOSX_Utils.cpp \ + PLATFORM_API_MacOSX_PCM.cpp \ + PLATFORM_API_MacOSX_Ports.cpp \ + PLATFORM_API_MacOSX_MidiIn.c \ + PLATFORM_API_MacOSX_MidiOut.c \ + PLATFORM_API_MacOSX_MidiUtils.c + LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES) + LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES) + LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES) +endif # OPENJDK_TARGET_OS macosx + +ifeq ($(OPENJDK_TARGET_OS), solaris) + LIBJSOUND_CFLAGS += -DX_PLATFORM=X_SOLARIS \ + -DUSE_PORTS=TRUE \ + -DUSE_DAUDIO=TRUE + LIBJSOUND_SRC_FILES += \ + PLATFORM_API_SolarisOS_Utils.c \ + PLATFORM_API_SolarisOS_Ports.c \ + PLATFORM_API_SolarisOS_PCM.c + LIBJSOUND_SRC_FILES += $(LIBJSOUND_MIDIFILES) + LIBJSOUND_SRC_FILES += $(LIBJSOUND_PORTFILES) + LIBJSOUND_SRC_FILES += $(LIBJSOUND_DAUDIOFILES) +endif # OPENJDK_TARGET_OS solaris + + +ifeq ($(JVM_VARIANT_ZERO), true) + LIBJSOUND_CFLAGS += -DX_ARCH=X_ZERO +else + ifeq ($(OPENJDK_TARGET_CPU), x86) + LIBJSOUND_CFLAGS += -DX_ARCH=X_I586 + endif + + ifeq ($(OPENJDK_TARGET_CPU), sparc) + LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARC + endif + + ifeq ($(OPENJDK_TARGET_CPU), sparcv9) + LIBJSOUND_CFLAGS += -DX_ARCH=X_SPARCV9 + endif + + ifeq ($(OPENJDK_TARGET_CPU), x86_64) + LIBJSOUND_CFLAGS += -DX_ARCH=X_AMD64 + endif + + ifeq ($(OPENJDK_TARGET_CPU), arm) + LIBJSOUND_CFLAGS += -DX_ARCH=X_ARM + endif + + ifeq ($(OPENJDK_TARGET_CPU), ppc) + LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC + endif +endif + +LIBJSOUND_CFLAGS += -DEXTRA_SOUND_JNI_LIBS='"$(EXTRA_SOUND_JNI_LIBS)"' + +$(eval $(call SetupNativeCompilation,BUILD_LIBJSOUND, \ + LIBRARY := jsound, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBJSOUND_SRC_DIRS), \ + INCLUDE_FILES := $(LIBJSOUND_SRC_FILES), \ + LANG := $(LIBJSOUND_LANG), \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBJSOUND_CFLAGS), \ + CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsound/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_macosx := -framework CoreAudio -framework CoreFoundation \ + -framework CoreServices -framework AudioUnit $(LIBCXX) \ + -framework CoreMIDI -framework AudioToolbox, \ + LDFLAGS_windows := $(WIN_JAVA_LIB) advapi32.lib winmm.lib, \ + LDFLAGS_SUFFIX_posix := -ljava -ljvm, \ + LDFLAGS_SUFFIX_solaris := -lc, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jsound.dll" \ + -D "JDK_INTERNAL_NAME=jsound" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsound, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + +$(BUILD_LIBJSOUND): $(BUILD_LIBJAVA) + +BUILD_LIBRARIES += $(BUILD_LIBJSOUND) + +########################################################################################## + +ifneq ($(filter jsoundalsa, $(EXTRA_SOUND_JNI_LIBS)), ) + + $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDALSA, \ + LIBRARY := jsoundalsa, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBJSOUND_SRC_DIRS), \ + INCLUDE_FILES := Utilities.c $(LIBJSOUND_MIDIFILES) $(LIBJSOUND_PORTFILES) \ + $(LIBJSOUND_DAUDIOFILES) \ + PLATFORM_API_LinuxOS_ALSA_CommonUtils.c \ + PLATFORM_API_LinuxOS_ALSA_PCM.c \ + PLATFORM_API_LinuxOS_ALSA_PCMUtils.c \ + PLATFORM_API_LinuxOS_ALSA_MidiIn.c \ + PLATFORM_API_LinuxOS_ALSA_MidiOut.c \ + PLATFORM_API_LinuxOS_ALSA_MidiUtils.c \ + PLATFORM_API_LinuxOS_ALSA_Ports.c, \ + LANG := C, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) $(ALSA_CFLAGS) \ + $(LIBJSOUND_CFLAGS) \ + -DUSE_DAUDIO=TRUE \ + -DUSE_PORTS=TRUE \ + -DUSE_PLATFORM_MIDI_OUT=TRUE \ + -DUSE_PLATFORM_MIDI_IN=TRUE, \ + MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsoundalsa/mapfile-vers, \ + LDFLAGS := $(LDFLAGS_JDKLIB) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundalsa, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBJSOUNDALSA): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBJSOUNDALSA) + +endif + +########################################################################################## + +ifneq ($(filter jsoundds, $(EXTRA_SOUND_JNI_LIBS)), ) + + $(eval $(call SetupNativeCompilation,BUILD_LIBJSOUNDDS, \ + LIBRARY := jsoundds, \ + OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + SRC := $(LIBJSOUND_SRC_DIRS), \ + INCLUDE_FILES := Utilities.c $(LIBJSOUND_DAUDIOFILES) \ + PLATFORM_API_WinOS_DirectSound.cpp, \ + LANG := C++, \ + OPTIMIZATION := LOW, \ + CFLAGS := $(CFLAGS_JDKLIB) \ + $(LIBJSOUND_CFLAGS) \ + -DUSE_DAUDIO=TRUE, \ + LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \ + $(call SET_SHARED_LIBRARY_ORIGIN), \ + LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX) dsound.lib winmm.lib user32.lib ole32.lib, \ + VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \ + RC_FLAGS := $(RC_FLAGS) \ + -D "JDK_FNAME=jsoundds.dll" \ + -D "JDK_INTERNAL_NAME=jsoundds" \ + -D "JDK_FTYPE=0x2L", \ + OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsoundds, \ + DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES))) + + $(BUILD_LIBJSOUNDDS): $(BUILD_LIBJAVA) + + BUILD_LIBRARIES += $(BUILD_LIBJSOUNDDS) + +endif