1 # 2 # Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 include LibCommon.gmk 27 28 ################################################################################ 29 30 ifeq ($(call isTargetOs, windows), true) 31 # equivalent of strcasecmp is stricmp on Windows 32 LIBINSTRUMENT_CFLAGS := -Dstrcasecmp=stricmp 33 WINDOWS_JLI_LIB := $(SUPPORT_OUTPUTDIR)/native/java.base/libjli/jli.lib 34 endif 35 36 $(eval $(call SetupJdkLibrary, BUILD_LIBINSTRUMENT, \ 37 NAME := instrument, \ 38 OPTIMIZATION := LOW, \ 39 CFLAGS := $(CFLAGS_JDKLIB) $(LIBINSTRUMENT_CFLAGS), \ 40 CFLAGS_debug := -DJPLIS_LOGGING, \ 41 CFLAGS_release := -DNO_JPLIS_LOGGING, \ 42 DISABLED_WARNINGS_gcc := unused-function, \ 43 EXTRA_HEADER_DIRS := java.base:libjli, \ 44 LDFLAGS := $(LDFLAGS_JDKLIB) \ 45 $(call SET_SHARED_LIBRARY_ORIGIN) \ 46 $(LIBINSTRUMENT_LDFLAGS), \ 47 LDFLAGS_linux := -L$(call FindLibDirForModule, java.base), \ 48 LDFLAGS_solaris := -L$(call FindLibDirForModule, java.base), \ 49 LDFLAGS_macosx := -L$(call FindLibDirForModule, java.base), \ 50 LDFLAGS_aix := -L$(SUPPORT_OUTPUTDIR)/native/java.base, \ 51 LIBS := $(JDKLIB_LIBS), \ 52 LIBS_unix := -ljava -ljvm $(LIBZ_LIBS), \ 53 LIBS_linux := -ljli $(LIBDL), \ 54 LIBS_solaris := -ljli $(LIBDL), \ 55 LIBS_aix := -liconv -ljli_static $(LIBDL), \ 56 LIBS_macosx := -ljli -liconv -framework Cocoa -framework Security \ 57 -framework ApplicationServices, \ 58 LIBS_windows := jvm.lib $(WIN_JAVA_LIB) advapi32.lib \ 59 $(WINDOWS_JLI_LIB), \ 60 )) 61 62 ifeq ($(call isTargetOs, aix), true) 63 $(BUILD_LIBINSTRUMENT): $(call FindStaticLib, java.base, jli_static) 64 else 65 $(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, jli) 66 endif 67 $(BUILD_LIBINSTRUMENT): $(call FindLib, java.base, java) 68 69 TARGETS += $(BUILD_LIBINSTRUMENT) 70 71 ################################################################################