mirror of
https://github.com/AngelAuraMC/angelauramc-openjdk-build.git
synced 2025-09-13 06:06:38 -04:00
Add missing libs linking
This commit is contained in:
parent
bfd87815b7
commit
5702ebc07d
@ -0,0 +1,116 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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.
|
||||
#
|
||||
ifneq ($(OPENJDK_TARGET_OS),ios)
|
||||
|
||||
include LauncherCommon.gmk
|
||||
|
||||
$(eval $(call SetupBuildLauncher, pack200, \
|
||||
MAIN_MODULE := java.base, \
|
||||
MAIN_CLASS := com.sun.java.util.jar.pack.Driver, \
|
||||
))
|
||||
|
||||
################################################################################
|
||||
# The order of the object files on the link command line affects the size of the resulting
|
||||
# binary (at least on linux) which causes the size to differ between old and new build.
|
||||
|
||||
UNPACKEXE_SRC := $(JDK_TOPDIR)/src/jdk.pack/share/native/common-unpack \
|
||||
$(JDK_TOPDIR)/src/jdk.pack/share/native/unpack200
|
||||
UNPACKEXE_CFLAGS := -I$(JDK_TOPDIR)/src/jdk.pack/share/native/common-unpack \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava
|
||||
|
||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
||||
UNPACKEXE_CFLAGS += -DSYSTEM_ZLIB
|
||||
UNPACKEXE_LIBS := -lz
|
||||
else
|
||||
UNPACKEXE_CFLAGS += -I$(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib
|
||||
UNPACKEXE_ZIPOBJS := $(SUPPORT_OUTPUTDIR)/native/java.base/libzip/zcrc32$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/deflate$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/trees$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/zadler32$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/compress$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/zutil$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/inflate$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/infback$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/inftrees$(OBJ_SUFFIX) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libzip/inffast$(OBJ_SUFFIX)
|
||||
|
||||
endif
|
||||
|
||||
UNPACK_MAPFILE_DIR := $(JDK_TOPDIR)/make/mapfiles/libunpack
|
||||
UNPACK_MAPFILE_PLATFORM_FILE := \
|
||||
$(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH)
|
||||
|
||||
# The linker on older SuSE distros (e.g. on SLES 10) complains with:
|
||||
# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable."
|
||||
# if feeded with a version script which contains named tags.
|
||||
ifeq ($(USING_BROKEN_SUSE_LD), yes)
|
||||
UNPACK_MAPFILE := $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200.anonymous
|
||||
else ifneq ($(wildcard $(UNPACK_MAPFILE_PLATFORM_FILE)), )
|
||||
UNPACK_MAPFILE := $(UNPACK_MAPFILE_PLATFORM_FILE)
|
||||
else
|
||||
UNPACK_MAPFILE := $(UNPACK_MAPFILE_DIR)/mapfile-vers-unpack200
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE, \
|
||||
SRC := $(UNPACKEXE_SRC), \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(UNPACKEXE_CFLAGS) $(CXXFLAGS_JDKEXE) -DFULL, \
|
||||
CFLAGS_release := -DPRODUCT, \
|
||||
CFLAGS_linux := -fPIC, \
|
||||
CFLAGS_solaris := -KPIC, \
|
||||
CFLAGS_macosx := -fPIC, \
|
||||
DISABLED_WARNINGS_gcc := unused-result, \
|
||||
MAPFILE := $(UNPACK_MAPFILE),\
|
||||
LDFLAGS := $(UNPACKEXE_ZIPOBJS) \
|
||||
$(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_android := $(UNPACKEXE_ZIPOBJS) \
|
||||
$(LDFLAGS_JDKEXE) $(LDFLAGS_CXX_JDK), \
|
||||
LIBS := $(UNPACKEXE_LIBS) $(LIBCXX), \
|
||||
LIBS_solaris := -lc, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/unpackexe, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE), \
|
||||
PROGRAM := unpack200, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=unpack200.exe" \
|
||||
-D "JDK_INTERNAL_NAME=unpack200" \
|
||||
-D "JDK_FTYPE=0x1L", \
|
||||
MANIFEST := $(JDK_TOPDIR)/src/jdk.pack/windows/native/unpack200/unpack200_proto.exe.manifest, \
|
||||
MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \
|
||||
))
|
||||
|
||||
ifneq ($(USE_EXTERNAL_LIBZ), true)
|
||||
|
||||
$(BUILD_UNPACKEXE): $(UNPACKEXE_ZIPOBJS)
|
||||
|
||||
endif
|
||||
|
||||
TARGETS += $(BUILD_UNPACKEXE)
|
||||
|
||||
################################################################################
|
||||
endif
|
@ -0,0 +1,236 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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.
|
||||
#
|
||||
|
||||
include NativeCompilation.gmk
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
DISABLE_MAPFILES := true
|
||||
ORIGIN_ARG := $(call SET_EXECUTABLE_ORIGIN)
|
||||
else
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
DISABLE_MAPFILES := true
|
||||
endif
|
||||
ORIGIN_ARG := $(call SET_EXECUTABLE_ORIGIN,/../lib/jli)
|
||||
|
||||
# Applications expect to be able to link against libjawt without invoking
|
||||
# System.loadLibrary("jawt") first. This was the behaviour described in the
|
||||
# devloper documentation of JAWT and what worked with OpenJDK6.
|
||||
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), android linux solaris), )
|
||||
ORIGIN_ARG += $(call SET_EXECUTABLE_ORIGIN,/../lib)
|
||||
endif
|
||||
endif
|
||||
|
||||
LAUNCHER_SRC := $(JDK_TOPDIR)/src/java.base/share/native/launcher
|
||||
LAUNCHER_CFLAGS := -I$(JDK_TOPDIR)/src/java.base/share/native/launcher \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjli \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjli \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libjli \
|
||||
#
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
JAVA_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/launcher/java.rc
|
||||
MACOSX_PLIST_DIR := $(JDK_TOPDIR)/src/java.base/macosx/native/launcher
|
||||
JAVA_MANIFEST := $(JDK_TOPDIR)/src/java.base/windows/native/launcher/java.manifest
|
||||
|
||||
################################################################################
|
||||
# Build standard launcher.
|
||||
|
||||
# Setup make rules for building a standard launcher.
|
||||
#
|
||||
# Parameter 1 is the name of the rule. This name is used as variable prefix,
|
||||
# and the targets generated are listed in a variable by that name. It is also
|
||||
# used as the name of the executable.
|
||||
#
|
||||
# Remaining parameters are named arguments. These include:
|
||||
# MAIN_MODULE The module of the main class to launch if different from the
|
||||
# current module
|
||||
# MAIN_CLASS The Java main class to launch
|
||||
# JAVA_ARGS Processed into a -DJAVA_ARGS C flag
|
||||
# CFLAGS Additional CFLAGS
|
||||
# CFLAGS_windows Additional CFLAGS_windows
|
||||
# LIBS_unix Additional LIBS_unix
|
||||
# LIBS_windows Additional LIBS_windows
|
||||
# LDFLAGS_solaris Additional LDFLAGS_solaris
|
||||
# RC_FLAGS Additional RC_FLAGS
|
||||
# MACOSX_SIGNED On macosx, sign this binary
|
||||
# WINDOWS_STATIC_LINK On windows, link statically with C runtime and libjli.
|
||||
# OPTIMIZATION Override default optimization level (LOW)
|
||||
# OUTPUT_DIR Override default output directory
|
||||
# VERSION_INFO_RESOURCE Override default Windows resource file
|
||||
# NO_JAVA_MS Do not add -ms8m to JAVA_ARGS.
|
||||
SetupBuildLauncher = $(NamedParamsMacroTemplate)
|
||||
define SetupBuildLauncherBody
|
||||
# Setup default values (unless overridden)
|
||||
ifeq ($$($1_VERSION_INFO_RESOURCE), )
|
||||
$1_VERSION_INFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE)
|
||||
endif
|
||||
|
||||
ifeq ($$($1_OUTPUT_DIR), )
|
||||
$1_OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)
|
||||
endif
|
||||
|
||||
ifeq ($$($1_OPTIMIZATION), )
|
||||
$1_OPTIMIZATION := LOW
|
||||
endif
|
||||
|
||||
ifneq ($$($1_NO_JAVA_MS), true)
|
||||
# The norm is to append -ms8m, unless otherwise instructed.
|
||||
$1_JAVA_ARGS += -ms8m
|
||||
endif
|
||||
|
||||
ifeq ($$($1_MAIN_MODULE), )
|
||||
$1_MAIN_MODULE := $(MODULE)
|
||||
endif
|
||||
|
||||
ifneq ($$($1_JAVA_ARGS), )
|
||||
$1_JAVA_ARGS_STR := '{ $$(strip $$(foreach a, \
|
||||
$$(addprefix -J, $$($1_JAVA_ARGS)) -m $$($1_MAIN_MODULE)/$$($1_MAIN_CLASS), "$$a"$(COMMA) )) }'
|
||||
$1_CFLAGS += -DJAVA_ARGS=$$($1_JAVA_ARGS_STR)
|
||||
endif
|
||||
|
||||
$1_LIBS :=
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
ifeq ($$($1_MACOSX_SIGNED), true)
|
||||
$1_PLIST_FILE := Info-privileged.plist
|
||||
$1_CODESIGN := true
|
||||
else
|
||||
$1_PLIST_FILE := Info-cmdline.plist
|
||||
endif
|
||||
|
||||
$1_CFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
|
||||
$1_LDFLAGS += -Wl,-all_load \
|
||||
-sectcreate __TEXT __info_plist $(MACOSX_PLIST_DIR)/$$($1_PLIST_FILE)
|
||||
ifeq ($(STATIC_BUILD), true)
|
||||
$1_LDFLAGS += -exported_symbols_list \
|
||||
$(SUPPORT_OUTPUTDIR)/build-static/exported.symbols
|
||||
$1_LIBS += \
|
||||
$$(shell $(FIND) $(SUPPORT_OUTPUTDIR)/modules_libs/java.base -name "*.a") \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libdt_socket.a \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/libjdwp.a \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX) \
|
||||
-framework CoreFoundation \
|
||||
-framework Foundation \
|
||||
-framework SystemConfiguration \
|
||||
-lstdc++ -liconv
|
||||
else
|
||||
$1_LIBS += $(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a
|
||||
endif
|
||||
$1_LIBS += -framework Cocoa -framework Security \
|
||||
-framework ApplicationServices
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
$1_LDFLAGS += -L$(SUPPORT_OUTPUTDIR)/native/java.base
|
||||
$1_LIBS += -ljli_static
|
||||
endif
|
||||
|
||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
||||
$1_LIBS += -lz
|
||||
endif
|
||||
|
||||
ifeq ($$($1_WINDOWS_STATIC_LINK), true)
|
||||
$1_CFLAGS += $(filter-out -MD, $(CFLAGS_JDKEXE))
|
||||
$1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/jli_static.lib
|
||||
else
|
||||
$1_CFLAGS += $(CFLAGS_JDKEXE)
|
||||
$1_WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib
|
||||
endif
|
||||
|
||||
# The linker on older SuSE distros (e.g. on SLES 10) complains with:
|
||||
# "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable."
|
||||
# if feeded with a version script which contains named tags.
|
||||
ifeq ($(USING_BROKEN_SUSE_LD),yes)
|
||||
ifneq ($(wildcard $(JDK_TOPDIR)/make/mapfiles/launchers/mapfile-$(OPENJDK_TARGET_CPU).anonymous), )
|
||||
$1_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/launchers/mapfile-$(OPENJDK_TARGET_CPU).anonymous
|
||||
else
|
||||
$1_MAPFILE :=
|
||||
endif
|
||||
else
|
||||
ifneq ($(wildcard $(JDK_TOPDIR)/make/mapfiles/launchers/mapfile-$(OPENJDK_TARGET_CPU)), )
|
||||
$1_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/launchers/mapfile-$(OPENJDK_TARGET_CPU)
|
||||
else
|
||||
$1_MAPFILE :=
|
||||
endif
|
||||
endif
|
||||
|
||||
$$(eval $$(call SetupNativeCompilation, BUILD_LAUNCHER_$1, \
|
||||
EXTRA_FILES := $(LAUNCHER_SRC)/main.c, \
|
||||
OPTIMIZATION := $$($1_OPTIMIZATION), \
|
||||
CFLAGS := $$($1_CFLAGS) \
|
||||
$(LAUNCHER_CFLAGS) \
|
||||
$(VERSION_CFLAGS) \
|
||||
-DLAUNCHER_NAME='"$(LAUNCHER_NAME)"' \
|
||||
-DPROGNAME='"$1"' \
|
||||
$$($1_CFLAGS), \
|
||||
CFLAGS_linux := -fPIC, \
|
||||
CFLAGS_ios := -I$(JDK_TOPDIR)/src/java.base/macosx/native/libjli, \
|
||||
CFLAGS_solaris := -KPIC -DHAVE_GETHRTIME, \
|
||||
CFLAGS_windows := $$($1_CFLAGS_windows), \
|
||||
LDFLAGS := $$(LDFLAGS_JDKEXE) \
|
||||
$$(ORIGIN_ARG) \
|
||||
$$($1_LDFLAGS), \
|
||||
LDFLAGS_android := \
|
||||
-L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \
|
||||
LDFLAGS_linux := \
|
||||
-L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \
|
||||
LDFLAGS_solaris := $$($1_LDFLAGS_solaris) \
|
||||
-L$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jli, \
|
||||
MAPFILE := $$($1_MAPFILE), \
|
||||
LIBS := $(JDKEXE_LIBS) $$($1_LIBS), \
|
||||
LIBS_unix := $$($1_LIBS_unix), \
|
||||
LIBS_android := -llog -ljli $(LIBDL) -lc, \
|
||||
LIBS_linux := -lpthread -ljli $(LIBDL) -lc, \
|
||||
LIBS_solaris := -ljli -lthread $(LIBDL) -lc, \
|
||||
LIBS_windows := $$($1_WINDOWS_JLI_LIB) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib advapi32.lib \
|
||||
$$($1_LIBS_windows), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$1_objs, \
|
||||
OUTPUT_DIR := $$($1_OUTPUT_DIR), \
|
||||
PROGRAM := $1, \
|
||||
VERSIONINFO_RESOURCE := $$($1_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $$(RC_FLAGS) \
|
||||
-D "JDK_FNAME=$1$(EXE_SUFFIX)" \
|
||||
-D "JDK_INTERNAL_NAME=$1" \
|
||||
-D "JDK_FTYPE=0x1L" \
|
||||
$$($1_RC_FLAGS), \
|
||||
MANIFEST := $(JAVA_MANIFEST), \
|
||||
MANIFEST_VERSION := $(VERSION_NUMBER_FOUR_POSITIONS), \
|
||||
CODESIGN := $$($1_CODESIGN), \
|
||||
))
|
||||
|
||||
$1 += $$(BUILD_LAUNCHER_$1)
|
||||
ifneq ($(OPENJDK_TARGET_OS), ios)
|
||||
TARGETS += $$($1)
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(OPENJDK_TARGET_OS), macosx aix))
|
||||
$$(BUILD_LAUNCHER_$1): $(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
$$(BUILD_LAUNCHER_$1): $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib \
|
||||
$$($1_WINDOWS_JLI_LIB)
|
||||
endif
|
||||
endef
|
1109
openjdk-mobile-aarch64-patch/jdk/make/lib/Awt2dLibraries.gmk
Normal file
1109
openjdk-mobile-aarch64-patch/jdk/make/lib/Awt2dLibraries.gmk
Normal file
File diff suppressed because it is too large
Load Diff
487
openjdk-mobile-aarch64-patch/jdk/make/lib/CoreLibraries.gmk
Normal file
487
openjdk-mobile-aarch64-patch/jdk/make/lib/CoreLibraries.gmk
Normal file
@ -0,0 +1,487 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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 := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify/verify.lib
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, jdk, lib/CoreLibraries.gmk))
|
||||
|
||||
|
||||
##########################################################################################
|
||||
# libfdlibm is statically linked with libjava below and not delivered into the
|
||||
# product on its own.
|
||||
|
||||
BUILD_LIBFDLIBM_OPTIMIZATION := NONE
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), linux)
|
||||
ifeq ($(OPENJDK_TARGET_CPU), ppc64)
|
||||
BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
|
||||
else ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
|
||||
BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
|
||||
else ifeq ($(OPENJDK_TARGET_CPU), s390x)
|
||||
BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
|
||||
else ifeq ($(OPENJDK_TARGET_CPU), aarch64)
|
||||
BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBFDLIBM_SRC := $(JDK_TOPDIR)/src/java.base/share/native/libfdlibm
|
||||
LIBFDLIBM_CFLAGS := -I$(LIBFDLIBM_SRC)
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), macosx)
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
|
||||
STATIC_LIBRARY := fdlibm, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBFDLIBM_SRC), \
|
||||
OPTIMIZATION := $(BUILD_LIBFDLIBM_OPTIMIZATION), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
|
||||
CFLAGS_windows_debug := -DLOGGING, \
|
||||
CFLAGS_aix := -qfloat=nomaf, \
|
||||
CFLAGS_linux_ppc64 := -ffp-contract=off, \
|
||||
CFLAGS_linux_ppc64le := -ffp-contract=off, \
|
||||
CFLAGS_linux_s390x := -ffp-contract=off, \
|
||||
CFLAGS_linux_aarch64 := -ffp-contract=off, \
|
||||
DISABLED_WARNINGS_gcc := sign-compare, \
|
||||
DISABLED_WARNINGS_microsoft := 4146 4244 4018, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
|
||||
))
|
||||
|
||||
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 := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
|
||||
SRC := $(LIBFDLIBM_SRC), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBFDLIBM_CFLAGS), \
|
||||
LDFLAGS := -nostdlib -r -arch x86_64, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libfdlibm, \
|
||||
))
|
||||
|
||||
BUILD_LIBFDLIBM := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
|
||||
$(BUILD_LIBFDLIBM): $(BUILD_LIBFDLIBM_MAC)
|
||||
$(call install-file)
|
||||
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
ifneq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||
BUILD_LIBVERIFY_REORDER := $(JDK_TOPDIR)/make/mapfiles/libverify/reorder-$(OPENJDK_TARGET_CPU)
|
||||
endif
|
||||
endif
|
||||
|
||||
LIBVERIFY_OPTIMIZATION := HIGH
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
|
||||
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
||||
LIBVERIFY_OPTIMIZATION := LOW
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY, \
|
||||
LIBRARY := verify, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(JDK_TOPDIR)/src/java.base/share/native/libverify, \
|
||||
OPTIMIZATION := $(LIBVERIFY_OPTIMIZATION), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB), \
|
||||
CFLAGS_ios := -I$(JDK_TOPDIR)/src/java.base/macosx/native/libjli, \
|
||||
DISABLED_WARNINGS_microsoft := 4244 4267, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libverify/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS_unix := -ljvm -lc, \
|
||||
LIBS_windows := jvm.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=verify.dll" \
|
||||
-D "JDK_INTERNAL_NAME=verify" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
REORDER := $(BUILD_LIBVERIFY_REORDER), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libverify, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBVERIFY)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
LIBJAVA_SRC_DIRS := $(call FindSrcDirsForLib, java.base, java)
|
||||
|
||||
LIBJAVA_CFLAGS := $(addprefix -I, $(LIBJAVA_SRC_DIRS)) \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libfdlibm \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
|
||||
-DARCHPROPNAME='"$(OPENJDK_TARGET_CPU_OSARCH)"'
|
||||
|
||||
# Make it possible to override this variable
|
||||
LIBJAVA_MAPFILE ?= $(JDK_TOPDIR)/make/mapfiles/libjava/mapfile-vers
|
||||
|
||||
ifneq (,$(filter $(OPENJDK_TARGET_OS), macosx ios))
|
||||
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), solaris)
|
||||
ifneq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||
LIBJAVA_REORDER := $(JDK_TOPDIR)/make/mapfiles/libjava/reorder-$(OPENJDK_TARGET_CPU)
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAVA, \
|
||||
LIBRARY := java, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJAVA_SRC_DIRS), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(LIBJAVA_CFLAGS), \
|
||||
CFLAGS_ios := -I$(JDK_TOPDIR)/src/java.base/macosx/native/libjava, \
|
||||
System.c_CFLAGS := $(VERSION_CFLAGS), \
|
||||
jdk_util.c_CFLAGS := $(VERSION_CFLAGS), \
|
||||
WARNINGS_AS_ERRORS_xlc := false, \
|
||||
DISABLED_WARNINGS_gcc := unused-result, \
|
||||
DISABLED_WARNINGS_solstudio := E_STATEMENT_NOT_REACHED, \
|
||||
MAPFILE := $(LIBJAVA_MAPFILE), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_android := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
|
||||
LDFLAGS_macosx := -L$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/, \
|
||||
LDFLAGS_windows := -export:winFileHandleOpen -export:handleLseek \
|
||||
-export:getLastErrorString \
|
||||
-export:getErrorString -delayload:shell32.dll, \
|
||||
LIBS_unix := -ljvm -lverify, \
|
||||
LIBS_linux := $(LIBDL) $(BUILD_LIBFDLIBM), \
|
||||
LIBS_solaris := -lsocket -lnsl -lscf $(LIBDL) $(BUILD_LIBFDLIBM) -lc, \
|
||||
LIBS_aix := $(LIBDL) $(BUILD_LIBFDLIBM) $(LIBM),\
|
||||
LIBS_macosx := -lfdlibm \
|
||||
-framework CoreFoundation \
|
||||
-framework Foundation \
|
||||
-framework Security -framework SystemConfiguration, \
|
||||
LIBS_ios := -lfdlibm \
|
||||
-framework Foundation \
|
||||
-framework Security -framework SystemConfiguration, \
|
||||
LIBS_windows := jvm.lib $(BUILD_LIBFDLIBM) $(WIN_VERIFY_LIB) \
|
||||
shell32.lib delayimp.lib \
|
||||
advapi32.lib version.lib, \
|
||||
LIBS_android := \
|
||||
-lfdlibm, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=java.dll" \
|
||||
-D "JDK_INTERNAL_NAME=java" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
REORDER := $(LIBJAVA_REORDER), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjava, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBJAVA)
|
||||
|
||||
$(BUILD_LIBJAVA): $(BUILD_LIBVERIFY)
|
||||
|
||||
$(BUILD_LIBJAVA): $(BUILD_LIBFDLIBM)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
BUILD_LIBZIP_EXCLUDES :=
|
||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
||||
LIBZIP_EXCLUDES += zlib
|
||||
endif
|
||||
|
||||
BUILD_LIBZIP_REORDER :=
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
ifneq ($(OPENJDK_TARGET_CPU), x86_64)
|
||||
BUILD_LIBZIP_REORDER := $(JDK_TOPDIR)/make/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), \
|
||||
OPTIMIZATION := LOW, \
|
||||
SRC := $(JDK_TOPDIR)/src/java.base/share/native/libzip, \
|
||||
EXCLUDES := $(LIBZIP_EXCLUDES), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(ZLIB_CPPFLAGS) \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.base, \
|
||||
CFLAGS_unix := $(BUILD_LIBZIP_MMAP) -UDEBUG, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libzip/mapfile-vers, \
|
||||
REORDER := $(BUILD_LIBZIP_REORDER), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_windows := -export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
|
||||
-export:ZIP_ReadEntry -export:ZIP_GetNextEntry \
|
||||
-export:ZIP_InflateFully -export:ZIP_CRC32 -export:ZIP_FreeEntry, \
|
||||
LIBS_android := -ljvm -ljava $(LIBZ), \
|
||||
LIBS_unix := -ljvm -ljava $(LIBZ), \
|
||||
LIBS_solaris := -lc, \
|
||||
LIBS_windows := jvm.lib $(WIN_JAVA_LIB), \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=zip.dll" \
|
||||
-D "JDK_INTERNAL_NAME=zip" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libzip, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBZIP): $(BUILD_LIBJAVA)
|
||||
|
||||
TARGETS += $(BUILD_LIBZIP)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
JIMAGELIB_CPPFLAGS := \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjava \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjimage \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJIMAGE, \
|
||||
LIBRARY := jimage, \
|
||||
TOOLCHAIN := TOOLCHAIN_LINK_CXX, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
OPTIMIZATION := LOW, \
|
||||
SRC := $(JDK_TOPDIR)/src/java.base/share/native/libjimage \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libjimage, \
|
||||
EXCLUDES := $(LIBJIMAGE_EXCLUDES), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
|
||||
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(JIMAGELIB_CPPFLAGS), \
|
||||
CFLAGS_unix := -UDEBUG, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjimage/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_windows := -export:JIMAGE_Open -export:JIMAGE_Close \
|
||||
-export:JIMAGE_PackageToModule \
|
||||
-export:JIMAGE_FindResource -export:JIMAGE_GetResource \
|
||||
-export:JIMAGE_ResourceIterator -export:JIMAGE_ResourcePath, \
|
||||
LIBS_unix := -ljvm -ldl $(LIBCXX), \
|
||||
LIBS_solaris := -lc, \
|
||||
LIBS_macosx := -lc++, \
|
||||
LIBS_ios := -lc++, \
|
||||
LIBS_windows := jvm.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jimage.dll" \
|
||||
-D "JDK_INTERNAL_NAME=jimage" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjimage, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBJIMAGE): $(BUILD_LIBJAVA)
|
||||
|
||||
TARGETS += $(BUILD_LIBJIMAGE)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
LIBJLI_SRC_DIRS := $(call FindSrcDirsForLib, java.base, jli)
|
||||
|
||||
LIBJLI_CFLAGS := $(CFLAGS_JDKLIB)
|
||||
|
||||
ifeq ($(call check-jvm-variant, zero zeroshark), true)
|
||||
ERGO_FAMILY := zero
|
||||
else
|
||||
ifeq ($(OPENJDK_TARGET_CPU_ARCH), x86)
|
||||
ERGO_FAMILY := i586
|
||||
else
|
||||
ERGO_FAMILY := $(OPENJDK_TARGET_CPU_ARCH)
|
||||
endif
|
||||
endif
|
||||
LIBJLI_ALL_ERGO := $(wildcard $(addsuffix /ergo_*.c, $(LIBJLI_SRC_DIRS)))
|
||||
LIBJLI_EXCLUDE_ERGO := $(filter-out %/ergo_$(ERGO_FAMILY).c, $(LIBJLI_ALL_ERGO))
|
||||
# If all specialized ergo files are excluded, use generic ergo
|
||||
ifeq ($(LIBJLI_ALL_ERGO), $(LIBJLI_EXCLUDE_ERGO))
|
||||
LIBJLI_CFLAGS += -DUSE_GENERIC_ERGO
|
||||
endif
|
||||
LIBJLI_EXCLUDE_FILES += $(notdir $(LIBJLI_EXCLUDE_ERGO))
|
||||
|
||||
ifneq (,$(filter $(OPENJDK_TARGET_OS), macosx ios))
|
||||
LIBJLI_EXCLUDE_FILES += java_md_solinux.c ergo.c ergo_i586.c
|
||||
|
||||
BUILD_LIBJLI_java_md_macosx.c_CFLAGS := -x objective-c
|
||||
BUILD_LIBJLI_STATIC_java_md_macosx.c_CFLAGS := -x objective-c
|
||||
|
||||
LIBJLI_CFLAGS += -DPACKAGE_PATH=\"$(PACKAGE_PATH)\"
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# Staticically link with c runtime on windows.
|
||||
LIBJLI_CFLAGS := $(filter-out -MD, $(LIBJLI_CFLAGS))
|
||||
LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)
|
||||
# Supply the name of the C runtime lib.
|
||||
LIBJLI_CFLAGS += -DMSVCR_DLL_NAME='"$(notdir $(MSVCR_DLL))"'
|
||||
ifneq ($(MSVCP_DLL), )
|
||||
LIBJLI_CFLAGS += -DMSVCP_DLL_NAME='"$(notdir $(MSVCP_DLL))"'
|
||||
endif
|
||||
else
|
||||
LIBJLI_OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE)/jli
|
||||
endif
|
||||
|
||||
LIBJLI_CFLAGS += $(addprefix -I, $(LIBJLI_SRC_DIRS))
|
||||
|
||||
ifneq ($(USE_EXTERNAL_LIBZ), true)
|
||||
LIBJLI_CFLAGS += $(ZLIB_CPPFLAGS)
|
||||
LIBJLI_EXTRA_FILES += \
|
||||
$(addprefix $(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib/, \
|
||||
inflate.c \
|
||||
inftrees.c \
|
||||
inffast.c \
|
||||
zadler32.c \
|
||||
zcrc32.c \
|
||||
zutil.c \
|
||||
)
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS),android)
|
||||
ANDROID_LDFLAGS_JDKLIB := \
|
||||
$(filter-out -ljava -ljvm, $(LDFLAGS_JDKLIB))
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJLI, \
|
||||
LIBRARY := jli, \
|
||||
OUTPUT_DIR := $(LIBJLI_OUTPUT_DIR), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
CFLAGS := $(LIBJLI_CFLAGS), \
|
||||
CFLAGS_ios := -I$(JDK_TOPDIR)/src/java.base/macosx/native/libjli, \
|
||||
DISABLED_WARNINGS_solstudio := \
|
||||
E_ASM_DISABLES_OPTIMIZATION \
|
||||
E_STATEMENT_NOT_REACHED, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/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_ios := -framework Security, \
|
||||
LDFLAGS_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 \
|
||||
-export:JLI_List_new \
|
||||
-export:JLI_List_add \
|
||||
-export:JLI_StringDup \
|
||||
-export:JLI_MemFree \
|
||||
-export:JLI_InitArgProcessing \
|
||||
-export:JLI_PreprocessArg \
|
||||
-export:JLI_AddArgsFromEnvVar \
|
||||
-export:JLI_GetAppArgIndex, \
|
||||
LIBS_unix := $(LIBZ), \
|
||||
LIBS_linux := $(LIBDL) -lc -lpthread, \
|
||||
LIBS_android := $(LIBDL) -lc -llog, \
|
||||
LIBS_solaris := $(LIBDL) -lc, \
|
||||
LIBS_aix := $(LIBDL),\
|
||||
LIBS_macosx := -framework Cocoa -framework Security -framework ApplicationServices, \
|
||||
LIBS_ios := -framework Security, \
|
||||
LIBS_windows := advapi32.lib comctl32.lib user32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jli.dll" \
|
||||
-D "JDK_INTERNAL_NAME=jli" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli, \
|
||||
))
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), ios)
|
||||
TARGETS += $(BUILD_LIBJLI)
|
||||
endif
|
||||
# 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 := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
|
||||
ARFLAGS := $(ARFLAGS), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
|
||||
))
|
||||
|
||||
TARGETS += $(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 := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBJLI_CFLAGS), \
|
||||
LDFLAGS := -nostdlib -r, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static, \
|
||||
))
|
||||
|
||||
ifeq ($(STATIC_BUILD), true)
|
||||
TARGETS += $(BUILD_LIBJLI_STATIC)
|
||||
else
|
||||
$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a: $(BUILD_LIBJLI_STATIC)
|
||||
$(call install-file)
|
||||
|
||||
TARGETS += $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static.a
|
||||
endif
|
||||
|
||||
else ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
# AIX also requires a static libjli because the compiler doesn't support '-rpath'
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJLI_STATIC, \
|
||||
STATIC_LIBRARY := jli_static, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE), \
|
||||
SRC := $(LIBJLI_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(LIBJLI_EXCLUDE_FILES), \
|
||||
EXTRA_FILES := $(LIBJLI_EXTRA_FILES), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
CFLAGS := $(STATIC_LIBRARY_FLAGS) $(LIBJLI_CFLAGS), \
|
||||
ARFLAGS := $(ARFLAGS), \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjli_static))
|
||||
|
||||
TARGETS += $(BUILD_LIBJLI_STATIC)
|
||||
|
||||
endif
|
113
openjdk-mobile-aarch64-patch/jdk/make/lib/JavaLauncher.gmk
Normal file
113
openjdk-mobile-aarch64-patch/jdk/make/lib/JavaLauncher.gmk
Normal file
@ -0,0 +1,113 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. 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.
|
||||
#
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include NativeCompilation.gmk
|
||||
include SetupJavaCompilers.gmk
|
||||
|
||||
#
|
||||
# Build ios JavaLauncher framework
|
||||
#
|
||||
|
||||
ifeq (ios,$(OPENJDK_TARGET_OS))
|
||||
JAVALAUNCHER_IOS_SRC := $(JDK_TOPDIR)/src/java.base/ios/native/JavaLauncher
|
||||
JAVALAUNCHER_API_SRC := $(JDK_TOPDIR)/src/java.base/share/native/javalauncher_api
|
||||
JAVALAUNCHER_INFO_PLIST := \
|
||||
$(JDK_TOPDIR)/src/java.base/share/tools/jproject/ios/frameworks/JavaLauncher/JavaLauncher-Info.plist
|
||||
|
||||
JAVALAUNCHER_FRAMEWORK := $(JDK_OUTPUTDIR)/frameworks/JavaLauncher/JavaLauncher.framework
|
||||
|
||||
JAVALAUNCHER_HEADERS := \
|
||||
$(JAVALAUNCHER_API_SRC)/javalauncher_api.h \
|
||||
$(JAVALAUNCHER_IOS_SRC)/JavaLauncher.h \
|
||||
$(JAVALAUNCHER_IOS_SRC)/JavaArgs.h
|
||||
|
||||
JAVALAUNCHER_SOURCES := \
|
||||
$(addprefix $(JAVALAUNCHER_API_SRC)/, \
|
||||
javalauncher_api.c javalauncher_api.h) \
|
||||
$(addprefix $(JAVALAUNCHER_IOS_SRC)/, \
|
||||
JavaLauncher.m JavaLauncher.h JavaArgs.m JavaArgs.h)
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_JAVALAUNCHER, \
|
||||
STATIC_LIBRARY := JavaLauncher, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/java.base/libjavalauncher, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/java.base/libjavalauncher, \
|
||||
SRC := $(JAVALAUNCHER_SOURCES), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
-I$(JAVALAUNCHER_IOS_SRC) \
|
||||
-I$(JAVALAUNCHER_API_SRC), \
|
||||
WARNINGS_AS_ERRORS_clang := false, \
|
||||
DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
|
||||
|
||||
TARGETS += $(JAVALAUNCHER_FRAMEWORK)
|
||||
|
||||
$(JAVALAUNCHER_FRAMEWORK): $(BUILD_JAVALAUNCHER)
|
||||
@$(ECHO) $(LOG_INFO) Building JavaLauncher.framework
|
||||
$(MKDIR) -p $(JAVALAUNCHER_FRAMEWORK)/Headers
|
||||
$(CP) $(JAVALAUNCHER_HEADERS) $(JAVALAUNCHER_FRAMEWORK)/Headers
|
||||
$(CP) $(JAVALAUNCHER_INFO_PLIST) $(JAVALAUNCHER_FRAMEWORK)/Info.plist
|
||||
$(CP) $(SUPPORT_OUTPUTDIR)/native/java.base/libjavalauncher/$(LIBRARY_PREFIX)JavaLauncher$(STATIC_LIBRARY_SUFFIX) \
|
||||
$(JAVALAUNCHER_FRAMEWORK)/JavaLauncher
|
||||
endif
|
||||
#
|
||||
# Build android JavaLauncher jar file.
|
||||
#
|
||||
ifeq ($(OPENJDK_TARGET_OS),android)
|
||||
OCLDVK_SRCDIR := $(JDK_TOPDIR)/src/java.base/android/classes/com/oracle/dalvik/javalauncher
|
||||
OCLDVK_OUTPUTDIR := $(SUPPORT_OUTPUTDIR)/ocldvk
|
||||
OCLDVK_CLASSES := $(OCLDVK_OUTPUTDIR)/classes
|
||||
OCLDVK_JAR := $(OCLDVK_OUTPUTDIR)/lib/ext/ocldvk.jar
|
||||
|
||||
$(eval $(call SetupJavaCompilation,BUILD_OCLDVK_JAR, \
|
||||
SETUP := GENERATE_JAVA5_BYTECODE, \
|
||||
SRC := $(OCLDVK_SRCDIR), \
|
||||
JAR := $(OCLDVK_JAR), \
|
||||
BIN := $(OCLDVK_CLASSES)))
|
||||
|
||||
TARGETS += $(BUILD_OCLDVK_JAR)
|
||||
|
||||
OCLDVK := $(JDK_TOPDIR)/src/java.base/android/native/libocldvk
|
||||
JAVALAUNCHER_API := $(JDK_TOPDIR)/src/java.base/share/native/javalauncher_api
|
||||
|
||||
$(eval $(call SetupNativeCompilation, BUILD_LIBOCLDVK, \
|
||||
LIBRARY := ocldvk, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/java.base/libocldvk, \
|
||||
OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/native/java.base/libocldvk, \
|
||||
SRC := $(OCLDVK) $(OCLDVK)/net $(JAVALAUNCHER_API), \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libocldvk/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB), \
|
||||
LIBS := -llog, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(OPENJDK_TARGET_CPU_JLI_CFLAGS) \
|
||||
-I$(OCLDVK)/javalauncher \
|
||||
-I$(JAVALAUNCHER_API) \
|
||||
-I$(OCLDVK)/net, \
|
||||
DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
|
||||
|
||||
TARGETS += $(BUILD_LIBOCLDVK)
|
||||
|
||||
endif
|
@ -0,0 +1,37 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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.
|
||||
#
|
||||
|
||||
include LibCommon.gmk
|
||||
|
||||
# Prepare the find cache.
|
||||
$(eval $(call FillCacheFind, $(wildcard $(JDK_TOPDIR)/src/java.desktop/*/native \
|
||||
$(JDK_TOPDIR)/src/*/java.desktop/*/native)))
|
||||
|
||||
include LibosxLibraries.gmk
|
||||
include PlatformLibraries.gmk
|
||||
ifeq (,$(filter $(OPENJDK_TARGET_OS), android ios))
|
||||
include Awt2dLibraries.gmk
|
||||
endif
|
||||
include SoundLibraries.gmk
|
@ -0,0 +1,101 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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.
|
||||
#
|
||||
|
||||
include LibCommon.gmk
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, jdk, lib/Lib-java.instrument.gmk))
|
||||
|
||||
################################################################################
|
||||
|
||||
LIBINSTRUMENT_SRC := $(JDK_TOPDIR)/src/java.instrument/share/native/libinstrument \
|
||||
$(JDK_TOPDIR)/src/java.instrument/$(OPENJDK_TARGET_OS_TYPE)/native/libinstrument \
|
||||
#
|
||||
LIBINSTRUMENT_CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(addprefix -I, $(LIBINSTRUMENT_SRC)) \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.instrument \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjli \
|
||||
-I$(JDK_TOPDIR)/src/java.base/share/native/libjava \
|
||||
#
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# 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), \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(LIBINSTRUMENT_CFLAGS), \
|
||||
CFLAGS_debug := -DJPLIS_LOGGING, \
|
||||
CFLAGS_release := -DNO_JPLIS_LOGGING, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libinstrument/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN) \
|
||||
$(LIBINSTRUMENT_LDFLAGS), \
|
||||
LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli) \
|
||||
-L$(call FindLibDirForModule, java.base)/jli, \
|
||||
LDFLAGS_android := $(call SET_SHARED_LIBRARY_ORIGIN,/jli) \
|
||||
-L$(call FindLibDirForModule, java.base)/jli, \
|
||||
LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli) \
|
||||
-L$(call FindLibDirForModule, java.base)/jli, \
|
||||
LDFLAGS_macosx := -Wl$(COMMA)-all_load, \
|
||||
LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \
|
||||
LIBS := $(JDKLIB_LIBS), \
|
||||
LIBS_unix := -ljava -ljvm $(LIBZ), \
|
||||
LIBS_linux := -ljli $(LIBDL), \
|
||||
LIBS_android := -ljli $(LIBDL), \
|
||||
LIBS_solaris := -ljli $(LIBDL), \
|
||||
LIBS_aix := -liconv -ljli_static $(LIBDL), \
|
||||
LIBS_macosx := -liconv -framework Cocoa -framework Security \
|
||||
-framework ApplicationServices \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/libjli_static.a, \
|
||||
LIBS_ios := -liconv $(LIBZ), \
|
||||
LIBS_windows := jvm.lib $(WIN_JAVA_LIB) advapi32.lib \
|
||||
$(SUPPORT_OUTPUTDIR)/native/java.base/jli_static.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=instrument.dll" \
|
||||
-D "JDK_INTERNAL_NAME=instrument" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libinstrument, \
|
||||
))
|
||||
|
||||
ifneq (, $(findstring $(OPENJDK_TARGET_OS), macosx windows aix))
|
||||
$(BUILD_LIBINSTRUMENT): $(SUPPORT_OUTPUTDIR)/native/java.base/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX)
|
||||
else
|
||||
$(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, jli, /jli)
|
||||
endif
|
||||
$(BUILD_LIBINSTRUMENT): $(BUILD_LIBJAVA)
|
||||
ifneq ($(OPENJDK_TARGET_OS), ios)
|
||||
TARGETS += $(BUILD_LIBINSTRUMENT)
|
||||
endif
|
||||
################################################################################
|
@ -0,0 +1,72 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. 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.
|
||||
#
|
||||
|
||||
include LibCommon.gmk
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, jdk, lib/Lib-java.management.gmk))
|
||||
|
||||
################################################################################
|
||||
|
||||
LIBMANAGEMENT_SRC += $(JDK_TOPDIR)/src/java.management/share/native/libmanagement
|
||||
LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/java.management/share/native/include \
|
||||
$(addprefix -I,$(LIBMANAGEMENT_SRC)) \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.management \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
#
|
||||
|
||||
LIBMANAGEMENT_OPTIMIZATION := HIGH
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
|
||||
ifeq ($(COMPILE_WITH_DEBUG_SYMBOLS), true)
|
||||
LIBMANAGEMENT_OPTIMIZATION := LOW
|
||||
endif
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT, \
|
||||
LIBRARY := management, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBMANAGEMENT_SRC), \
|
||||
OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(LIBMANAGEMENT_CFLAGS), \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libmanagement/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS := $(JDKLIB_LIBS), \
|
||||
LIBS_solaris := -lkstat, \
|
||||
LIBS_aix := -lperfstat,\
|
||||
LIBS_windows := jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=management.dll" \
|
||||
-D "JDK_INTERNAL_NAME=management" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libmanagement, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBMANAGEMENT): $(call FindLib, java.base, java)
|
||||
|
||||
TARGETS += $(BUILD_LIBMANAGEMENT)
|
||||
|
||||
################################################################################
|
65
openjdk-mobile-aarch64-patch/jdk/make/lib/Lib-java.prefs.gmk
Normal file
65
openjdk-mobile-aarch64-patch/jdk/make/lib/Lib-java.prefs.gmk
Normal file
@ -0,0 +1,65 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. 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.
|
||||
#
|
||||
|
||||
include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/java.prefs/macosx/native/libprefs
|
||||
else
|
||||
LIBPREF_SRC_DIRS := $(JDK_TOPDIR)/src/java.prefs/$(OPENJDK_TARGET_OS_TYPE)/native/libprefs
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBPREFS, \
|
||||
LIBRARY := prefs, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBPREF_SRC_DIRS), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) $(addprefix -I, $(LIBPREF_SRC_DIRS)) \
|
||||
$(LIBJAVA_HEADER_FLAGS), \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libprefs/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS_unix := -ljvm, \
|
||||
LIBS_linux := -ljava, \
|
||||
LIBS_android := -ljava, \
|
||||
LIBS_solaris := -ljava -lc, \
|
||||
LIBS_aix := -ljava, \
|
||||
LIBS_macosx := -framework CoreFoundation -framework Foundation, \
|
||||
LIBS_windows := advapi32.lib jvm.lib $(WIN_JAVA_LIB), \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=prefs.dll" \
|
||||
-D "JDK_INTERNAL_NAME=prefs" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libprefs, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBPREFS): $(call FindLib, java.base, java)
|
||||
ifneq ($(OPENJDK_TARGET_OS), ios)
|
||||
TARGETS += $(BUILD_LIBPREFS)
|
||||
endif
|
||||
################################################################################
|
71
openjdk-mobile-aarch64-patch/jdk/make/lib/Lib-jdk.attach.gmk
Normal file
71
openjdk-mobile-aarch64-patch/jdk/make/lib/Lib-jdk.attach.gmk
Normal file
@ -0,0 +1,71 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. 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.
|
||||
#
|
||||
|
||||
include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), windows)
|
||||
# In (at least) VS2013 and later, -DPSAPI_VERSION=1 is needed to generate
|
||||
# a binary that is compatible with windows versions older than 7/2008R2.
|
||||
# See MSDN documentation for GetProcessMemoryInfo for more information.
|
||||
LIBATTACH_CFLAGS := -DPSAPI_VERSION=1
|
||||
endif
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), android)
|
||||
LIBATTACH_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libattach/mapfile-$(OPENJDK_TARGET_OS)
|
||||
else
|
||||
LIBATTACH_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libattach/mapfile-linux
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \
|
||||
LIBRARY := attach, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(call FindSrcDirsForLib, jdk.attach, attach), \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/jdk.attach \
|
||||
$(LIBJAVA_HEADER_FLAGS) $(LIBATTACH_CFLAGS), \
|
||||
CFLAGS_windows := /Gy, \
|
||||
MAPFILE := $(LIBATTACH_MAPFILE), \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
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_windows := -order:@$(JDK_TOPDIR)/make/mapfiles/libattach/reorder-windows-$(OPENJDK_TARGET_CPU), \
|
||||
LIBS := $(JDKLIB_LIBS), \
|
||||
LIBS_solaris := -ldoor, \
|
||||
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib psapi.lib, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libattach, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBATTACH): $(call FindLib, java.base, java)
|
||||
|
||||
TARGETS += $(BUILD_LIBATTACH)
|
||||
|
||||
################################################################################
|
125
openjdk-mobile-aarch64-patch/jdk/make/lib/Lib-jdk.jdwp.agent.gmk
Normal file
125
openjdk-mobile-aarch64-patch/jdk/make/lib/Lib-jdk.jdwp.agent.gmk
Normal file
@ -0,0 +1,125 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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.
|
||||
#
|
||||
|
||||
include LibCommon.gmk
|
||||
|
||||
################################################################################
|
||||
|
||||
LIBDT_SOCKET_SRC := $(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libdt_socket \
|
||||
$(JDK_TOPDIR)/src/jdk.jdwp.agent/$(OPENJDK_TARGET_OS_TYPE)/native/libdt_socket
|
||||
LIBDT_SOCKET_CPPFLAGS := \
|
||||
$(addprefix -I, $(LIBDT_SOCKET_SRC)) \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp/export \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/include \
|
||||
#
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \
|
||||
LIBRARY := dt_socket, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBDT_SOCKET_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \
|
||||
$(LIBDT_SOCKET_CPPFLAGS), \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libdt_socket/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_windows := -export:jdwpTransport_OnLoad, \
|
||||
LIBS_linux := -lpthread, \
|
||||
LIBS_solaris := -lnsl -lsocket -lc, \
|
||||
LIBS_windows := $(JDKLIB_LIBS) ws2_32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=dt_socket.dll" \
|
||||
-D "JDK_INTERNAL_NAME=dt_socket" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libdt_socket, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBDT_SOCKET): $(call FindLib, java.base, java)
|
||||
|
||||
# Include socket transport with JDWP agent to allow for remote debugging
|
||||
TARGETS += $(BUILD_LIBDT_SOCKET)
|
||||
|
||||
################################################################################
|
||||
|
||||
LIBJDWP_SRC := $(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp \
|
||||
$(JDK_TOPDIR)/src/jdk.jdwp.agent/$(OPENJDK_TARGET_OS_TYPE)/native/libjdwp
|
||||
LIBJDWP_CPPFLAGS := \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/libjdwp/export \
|
||||
-I$(JDK_TOPDIR)/src/jdk.jdwp.agent/share/native/include \
|
||||
$(addprefix -I, $(LIBJDWP_SRC))
|
||||
|
||||
# JDWP_LOGGING causes log messages to be compiled into the library.
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \
|
||||
LIBRARY := jdwp, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBJDWP_SRC), \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING \
|
||||
$(LIBJDWP_CPPFLAGS) \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/jdk.jdwp.agent, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjdwp/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_android := $(LDFLAGS_JDKLIB), \
|
||||
LIBS := $(JDKLIB_LIBS), \
|
||||
LIBS_linux := $(LIBDL), \
|
||||
LIBS_solaris := $(LIBDL), \
|
||||
LIBS_macosx := -liconv, \
|
||||
LIBS_ios := -liconv, \
|
||||
LIBS_aix := -liconv, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jdwp.dll" \
|
||||
-D "JDK_INTERNAL_NAME=jdwp" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjdwp, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBJDWP): $(call FindLib, java.base, java)
|
||||
|
||||
TARGETS += $(BUILD_LIBJDWP)
|
||||
|
||||
################################################################################
|
||||
ifeq ($(STATIC_BUILD), true)
|
||||
JDK_JDWP_AGENT_EXPORT_SYMBOLS_SRC := \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent$(OPENJDK_TARGET_CPU_LIBDIR)/$(LIBRARY_PREFIX)dt_socket.symbols \
|
||||
$(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent$(OPENJDK_TARGET_CPU_LIBDIR)/$(LIBRARY_PREFIX)jdwp.symbols
|
||||
|
||||
JDK_JDWP_AGENT_EXPORT_SYMBOL_FILE := $(SUPPORT_OUTPUTDIR)/modules_libs/jdk.jdwp.agent/jdk.jdwp.agent.symbols
|
||||
|
||||
$(JDK_JDWP_AGENT_EXPORT_SYMBOL_FILE): $(JDK_JDWP_AGENT_EXPORT_SYMBOLS_SRC)
|
||||
$(call LogInfo, Generating jdk.jdwp.agent symbols file)
|
||||
$(CAT) $^ > $@
|
||||
|
||||
# The individual symbol files is generated when the respective lib is built
|
||||
$(JDK_JDWP_AGENT_EXPORT_SYMBOLS_SRC): $(BUILD_LIBDT_SOCKET) $(BUILD_LIBJDWP)
|
||||
|
||||
TARGETS += $(JDK_JDWP_AGENT_EXPORT_SYMBOL_FILE)
|
||||
|
||||
endif
|
||||
|
||||
################################################################################
|
94
openjdk-mobile-aarch64-patch/jdk/make/lib/LibCommon.gmk
Normal file
94
openjdk-mobile-aarch64-patch/jdk/make/lib/LibCommon.gmk
Normal file
@ -0,0 +1,94 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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.
|
||||
#
|
||||
|
||||
include NativeCompilation.gmk
|
||||
|
||||
# Hook to include the corresponding custom file, if present.
|
||||
$(eval $(call IncludeCustomExtension, jdk, lib/LibCommon.gmk))
|
||||
|
||||
################################################################################
|
||||
|
||||
GLOBAL_VERSION_INFO_RESOURCE := $(JDK_TOPDIR)/src/java.base/windows/native/common/version.rc
|
||||
|
||||
# Absolute paths to lib files on windows for use in LDFLAGS. Should figure out a more
|
||||
# elegant solution to this.
|
||||
WIN_JAVA_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjava/java.lib
|
||||
|
||||
ifneq ($(findstring $(OPENJDK_TARGET_OS), macosx windows), )
|
||||
DISABLE_MAPFILES := true
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# Find the default set of src dirs for a native library.
|
||||
# Param 1 - module name
|
||||
# Param 2 - library name
|
||||
ifeq ($(OPENJDK_TARGET_OS), android)
|
||||
FindSrcDirsForLib = \
|
||||
$(call uniq, $(wildcard \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/linux/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/share/native/lib$(strip $2)))
|
||||
else ifeq ($(OPENJDK_TARGET_OS), ios)
|
||||
FindSrcDirsForLib = \
|
||||
$(call uniq, $(wildcard \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/macosx/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/share/native/lib$(strip $2)))
|
||||
else
|
||||
FindSrcDirsForLib += \
|
||||
$(call uniq, $(wildcard \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/$(OPENJDK_TARGET_OS_TYPE)/native/lib$(strip $2) \
|
||||
$(JDK_TOPDIR)/src/$(strip $1)/share/native/lib$(strip $2)))
|
||||
|
||||
endif
|
||||
################################################################################
|
||||
# Find a library
|
||||
# Param 1 - module name
|
||||
# Param 2 - library name
|
||||
# Param 3 - subdir for library
|
||||
FindLib = \
|
||||
$(call FindLibDirForModule, \
|
||||
$(strip $1))$(strip $3)/$(LIBRARY_PREFIX)$(strip $2)$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
|
||||
################################################################################
|
||||
# Define the header include flags needed to compile against it.
|
||||
LIBJAVA_HEADER_FLAGS := $(addprefix -I, $(call FindSrcDirsForLib, java.base, java))
|
||||
|
||||
# Put the libraries here.
|
||||
INSTALL_LIBRARIES_HERE := $(call FindLibDirForModule, $(MODULE))
|
||||
|
||||
################################################################################
|
||||
|
||||
# Define it here since there are multiple uses.
|
||||
ifeq ($(USE_EXTERNAL_LIBZ), true)
|
||||
LIBZ := -lz
|
||||
else
|
||||
ZLIB_CPPFLAGS := -I$(JDK_TOPDIR)/src/java.base/share/native/libzip/zlib
|
||||
endif
|
||||
|
||||
###############################################################################
|
@ -0,0 +1,65 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2017, 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 := $(call FindSrcDirsForLib, java.base, net)
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), ios)
|
||||
BUILD_LIBNET_EXFILES += DefaultProxySelector.c
|
||||
endif
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBNET, \
|
||||
LIBRARY := net, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(LIBNET_SRC_DIRS), \
|
||||
EXCLUDE_FILES := $(BUILD_LIBNET_EXFILES), \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) -I$(SUPPORT_OUTPUTDIR)/headers/java.base \
|
||||
$(LIBJAVA_HEADER_FLAGS) $(addprefix -I, $(LIBNET_SRC_DIRS)), \
|
||||
DISABLED_WARNINGS_gcc := format-nonliteral, \
|
||||
DISABLED_WARNINGS_clang := parentheses-equality constant-logical-operand, \
|
||||
DISABLED_WARNINGS_microsoft := 4244 4047 4133 4996, \
|
||||
DISABLED_WARNINGS_solstudio := E_ARG_INCOMPATIBLE_WITH_ARG_L, \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnet/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_windows := -delayload:secur32.dll -delayload:iphlpapi.dll, \
|
||||
LIBS_unix := -ljvm -ljava, \
|
||||
LIBS_android := -llog, \
|
||||
LIBS_linux := $(LIBDL) -lpthread, \
|
||||
LIBS_solaris := -lnsl -lsocket $(LIBDL) -lc, \
|
||||
LIBS_aix := $(LIBDL),\
|
||||
LIBS_windows := ws2_32.lib jvm.lib secur32.lib iphlpapi.lib winhttp.lib \
|
||||
delayimp.lib $(WIN_JAVA_LIB) advapi32.lib, \
|
||||
LIBS_macosx := -framework CoreFoundation -framework CoreServices, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=net.dll" \
|
||||
-D "JDK_INTERNAL_NAME=net" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libnet, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBNET): $(BUILD_LIBJAVA)
|
||||
|
||||
TARGETS += $(BUILD_LIBNET)
|
102
openjdk-mobile-aarch64-patch/jdk/make/lib/NioLibraries.gmk
Normal file
102
openjdk-mobile-aarch64-patch/jdk/make/lib/NioLibraries.gmk
Normal file
@ -0,0 +1,102 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2016, 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/java.base/share/native/libnio \
|
||||
$(JDK_TOPDIR)/src/java.base/share/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio \
|
||||
$(sort $(wildcard \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS_TYPE)/native/libnio/fs \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/native/libnio/fs)) \
|
||||
#
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), android)
|
||||
BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/java.base/linux/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/linux/native/libnio/fs
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), ios)
|
||||
BUILD_LIBNIO_SRC += $(JDK_TOPDIR)/src/java.base/macosx/native/libnio/ch \
|
||||
$(JDK_TOPDIR)/src/java.base/macosx/native/libnio/fs
|
||||
BUILD_LIBNIO_EXFILES += UTIFileTypeDetector.c
|
||||
endif
|
||||
|
||||
BUILD_LIBNIO_CFLAGS := \
|
||||
$(addprefix -I, $(BUILD_LIBNIO_SRC)) \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.base \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
$(addprefix -I, $(BUILD_LIBNET_SRC))
|
||||
|
||||
ifneq (,$(filter android linux, $(OPENJDK_TARGET_OS)))
|
||||
BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-linux
|
||||
endif
|
||||
|
||||
ifneq (,$(filter ios macosx, $(OPENJDK_TARGET_OS)))
|
||||
BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), solaris)
|
||||
BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), aix)
|
||||
BUILD_LIBNIO_MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libnio/mapfile-$(OPENJDK_TARGET_OS)
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBNIO, \
|
||||
LIBRARY := nio, \
|
||||
OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
|
||||
SRC := $(BUILD_LIBNIO_SRC), \
|
||||
EXCLUDE_FILES := $(BUILD_LIBNIO_EXFILES), \
|
||||
OPTIMIZATION := HIGH, \
|
||||
WARNINGS_AS_ERRORS_xlc := false, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(BUILD_LIBNIO_CFLAGS), \
|
||||
MAPFILE := $(BUILD_LIBNIO_MAPFILE), \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS_unix := -ljava -lnet, \
|
||||
LIBS_linux := -lpthread $(LIBDL), \
|
||||
LIBS_solaris := -ljvm -lsocket -lposix4 $(LIBDL) \
|
||||
-lsendfile -lc, \
|
||||
LIBS_aix := $(LIBDL), \
|
||||
LIBS_macosx := \
|
||||
-framework CoreFoundation -framework CoreServices, \
|
||||
LIBS_windows := jvm.lib ws2_32.lib $(WIN_JAVA_LIB) \
|
||||
$(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libnet/net.lib \
|
||||
advapi32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=nio.dll" \
|
||||
-D "JDK_INTERNAL_NAME=nio" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libnio, \
|
||||
))
|
||||
|
||||
TARGETS += $(BUILD_LIBNIO)
|
||||
|
||||
$(BUILD_LIBNIO): $(BUILD_LIBNET)
|
219
openjdk-mobile-aarch64-patch/jdk/make/lib/SoundLibraries.gmk
Normal file
219
openjdk-mobile-aarch64-patch/jdk/make/lib/SoundLibraries.gmk
Normal file
@ -0,0 +1,219 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. 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/java.desktop/share/native/libjsound \
|
||||
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjsound \
|
||||
#
|
||||
LIBJSOUND_CFLAGS := \
|
||||
-I$(SUPPORT_OUTPUTDIR)/headers/java.desktop \
|
||||
$(LIBJAVA_HEADER_FLAGS) \
|
||||
$(foreach dir, $(LIBJSOUND_SRC_DIRS), -I$(dir)) \
|
||||
#
|
||||
|
||||
LIBJSOUND_SRC_FILES := Utilities.c Platform.c
|
||||
|
||||
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), aix)
|
||||
LIBJSOUND_CFLAGS += -DX_PLATFORM=X_AIX
|
||||
endif # OPENJDK_TARGET_OS aix
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), android)
|
||||
LIBJSOUND_CFLAGS += -DX_PLATFORM=X_LINUX
|
||||
endif
|
||||
|
||||
ifeq ($(OPENJDK_TARGET_OS), macosx)
|
||||
LIBJSOUND_TOOLCHAIN := TOOLCHAIN_LINK_CXX
|
||||
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/java.desktop/macosx/native/libjsound
|
||||
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
|
||||
|
||||
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), \
|
||||
TOOLCHAIN := $(LIBJSOUND_TOOLCHAIN), \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(LIBJSOUND_CFLAGS), \
|
||||
CXXFLAGS := $(CXXFLAGS_JDKLIB) $(LIBJSOUND_CFLAGS), \
|
||||
MAPFILE := $(JDK_TOPDIR)/make/mapfiles/libjsound/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS_unix := -ljava -ljvm, \
|
||||
LIBS_solaris := -lc, \
|
||||
LIBS_macosx := -framework CoreAudio -framework CoreFoundation \
|
||||
-framework CoreServices -framework AudioUnit $(LIBCXX) \
|
||||
-framework CoreMIDI -framework AudioToolbox, \
|
||||
LIBS_windows := $(WIN_JAVA_LIB) advapi32.lib winmm.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jsound.dll" \
|
||||
-D "JDK_INTERNAL_NAME=jsound" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjsound, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBJSOUND): $(BUILD_LIBJAVA)
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), ios)
|
||||
TARGETS += $(BUILD_LIBJSOUND)
|
||||
endif
|
||||
##########################################################################################
|
||||
|
||||
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, \
|
||||
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)/make/mapfiles/libjsoundalsa/mapfile-vers, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS := $(ALSA_LIBS) -ljava -ljvm, \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjsoundalsa, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBJSOUNDALSA): $(BUILD_LIBJAVA)
|
||||
|
||||
ifneq ($(OPENJDK_TARGET_OS), ios)
|
||||
TARGETS += $(BUILD_LIBJSOUNDALSA)
|
||||
endif
|
||||
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, \
|
||||
OPTIMIZATION := LOW, \
|
||||
CFLAGS := $(CFLAGS_JDKLIB) \
|
||||
$(LIBJSOUND_CFLAGS) \
|
||||
-DUSE_DAUDIO=TRUE, \
|
||||
LDFLAGS := $(LDFLAGS_JDKLIB) $(LDFLAGS_CXX_JDK) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LIBS := $(JDKLIB_LIBS) dsound.lib winmm.lib user32.lib ole32.lib, \
|
||||
VERSIONINFO_RESOURCE := $(GLOBAL_VERSION_INFO_RESOURCE), \
|
||||
RC_FLAGS := $(RC_FLAGS) \
|
||||
-D "JDK_FNAME=jsoundds.dll" \
|
||||
-D "JDK_INTERNAL_NAME=jsoundds" \
|
||||
-D "JDK_FTYPE=0x2L", \
|
||||
OBJECT_DIR := $(SUPPORT_OUTPUTDIR)/native/$(MODULE)/libjsoundds, \
|
||||
))
|
||||
|
||||
$(BUILD_LIBJSOUNDDS): $(BUILD_LIBJAVA)
|
||||
|
||||
TARGETS += $(BUILD_LIBJSOUNDDS)
|
||||
|
||||
endif
|
@ -0,0 +1,142 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2008, 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.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "jni.h"
|
||||
#include "manifest_info.h"
|
||||
#include "JarFacade.h"
|
||||
|
||||
typedef struct {
|
||||
jarAttribute* head;
|
||||
jarAttribute* tail;
|
||||
} iterationContext;
|
||||
|
||||
static void
|
||||
doAttribute(const char* name, const char* value, void* user_data) {
|
||||
iterationContext* context = (iterationContext*) user_data;
|
||||
|
||||
jarAttribute* attribute = (jarAttribute*)malloc(sizeof(jarAttribute));
|
||||
if (attribute != NULL) {
|
||||
attribute->name = strdup(name);
|
||||
if (attribute->name == NULL) {
|
||||
free(attribute);
|
||||
} else {
|
||||
char *begin = (char *)value;
|
||||
char *end;
|
||||
size_t value_len;
|
||||
|
||||
/* skip any leading white space */
|
||||
while (*begin == ' ') {
|
||||
begin++;
|
||||
}
|
||||
|
||||
/* skip any trailing white space */
|
||||
end = &begin[strlen(begin)];
|
||||
while (end > begin && end[-1] == ' ') {
|
||||
end--;
|
||||
}
|
||||
|
||||
if (begin == end) {
|
||||
/* no value so skip this attribute */
|
||||
free(attribute->name);
|
||||
free(attribute);
|
||||
return;
|
||||
}
|
||||
|
||||
value_len = (size_t)(end - begin);
|
||||
attribute->value = malloc(value_len + 1);
|
||||
if (attribute->value == NULL) {
|
||||
free(attribute->name);
|
||||
free(attribute);
|
||||
} else {
|
||||
/* save the value without leading or trailing whitespace */
|
||||
strncpy(attribute->value, begin, value_len);
|
||||
attribute->value[value_len] = '\0';
|
||||
attribute->next = NULL;
|
||||
if (context->head == NULL) {
|
||||
context->head = attribute;
|
||||
} else {
|
||||
context->tail->next = attribute;
|
||||
}
|
||||
context->tail = attribute;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a list of attributes from the main section of the given JAR
|
||||
* file. Returns NULL if there is an error or there aren't any attributes.
|
||||
*/
|
||||
jarAttribute*
|
||||
readAttributes(const char* jarfile)
|
||||
{
|
||||
int rc;
|
||||
iterationContext context = { NULL, NULL };
|
||||
|
||||
printf("FIXME build: undefined reference to JLI_ManifestIterate\n");
|
||||
rc = 0;
|
||||
// rc = JLI_ManifestIterate(jarfile, doAttribute, (void*)&context);
|
||||
|
||||
if (rc == 0) {
|
||||
return context.head;
|
||||
} else {
|
||||
freeAttributes(context.head);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Free a list of attributes
|
||||
*/
|
||||
void
|
||||
freeAttributes(jarAttribute* head) {
|
||||
while (head != NULL) {
|
||||
jarAttribute* next = (jarAttribute*)head->next;
|
||||
free(head->name);
|
||||
free(head->value);
|
||||
free(head);
|
||||
head = next;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the value of an attribute in an attribute list. Returns NULL
|
||||
* if attribute not found.
|
||||
*/
|
||||
char*
|
||||
getAttribute(const jarAttribute* attributes, const char* name) {
|
||||
while (attributes != NULL) {
|
||||
if (strcasecmp(attributes->name, name) == 0) {
|
||||
return attributes->value;
|
||||
}
|
||||
attributes = (jarAttribute*)attributes->next;
|
||||
}
|
||||
return NULL;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user