0N/A#
4956N/A# Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
0N/A# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A#
0N/A# This code is free software; you can redistribute it and/or modify it
0N/A# under the terms of the GNU General Public License version 2 only, as
2362N/A# published by the Free Software Foundation. Oracle designates this
0N/A# particular file as subject to the "Classpath" exception as provided
2362N/A# by Oracle in the LICENSE file that accompanied this code.
0N/A#
0N/A# This code is distributed in the hope that it will be useful, but WITHOUT
0N/A# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A# version 2 for more details (a copy is included in the LICENSE file that
0N/A# accompanied this code).
0N/A#
0N/A# You should have received a copy of the GNU General Public License version
0N/A# 2 along with this work; if not, write to the Free Software Foundation,
0N/A# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A#
2362N/A# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A# or visit www.oracle.com if you need additional information or have any
2362N/A# questions.
0N/A#
0N/A
0N/A# Makefile for building the Java Programming Language Instrumentation Services
0N/A# agent, supporting java.lang.instrument
0N/A
4956N/ALIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS=1
4956N/A
0N/ABUILDDIR = ../..
0N/APACKAGE = sun.instrument
0N/ALIBRARY = instrument
0N/APRODUCT = sun
0N/A
0N/A# Configure the CFLAGS for this library. Use static binding so that there
0N/A# are not dependencies on modules not on the search patch when invoked from
0N/A# the Windows system directory (or elsewhere).
0N/AMS_RUNTIME_STATIC=true
0N/A
0N/AFILES_m = mapfile-vers
0N/A
0N/Ainclude $(BUILDDIR)/common/Defs.gmk
0N/A
0N/A# Use the mapfile-vers (See the mapfile located with this Makefile)
0N/Aifdef FILES_m
0N/Ainclude $(BUILDDIR)/common/Mapfile-vers.gmk
0N/Aendif
0N/A
0N/A#
0N/A# Files to compile.
0N/A#
0N/AFILES_c = \
0N/A EncodingSupport.c \
0N/A EncodingSupport_md.c \
0N/A FileSystemSupport_md.c \
0N/A InstrumentationImplNativeMethods.c \
0N/A InvocationAdapter.c \
0N/A JarFacade.c \
0N/A JPLISAgent.c \
0N/A JPLISAssert.c \
0N/A JavaExceptions.c \
0N/A PathCharsValidator.c \
0N/A Reentrancy.c \
0N/A Utilities.c
0N/A
0N/A#
0N/A# -jaragent support requires zip and jar manfiest parser to be compiled
0N/A# into the instrument library.
0N/A#
0N/AIO_PLATFORM_SRC = $(PLATFORM_SRC)/native/java/io
0N/ALAUNCHER_SHARE_SRC = $(SHARE_SRC)/bin
0N/ALAUNCHER_PLATFORM_SRC = $(PLATFORM_SRC)/bin
0N/A
0N/AFILES_c += \
0N/A canonicalize_md.c
0N/A
0N/AFILES_export = \
0N/A sun/instrument/InstrumentationImpl.java
0N/A
0N/A#
0N/A# This controls the ability to do logging in the library.
0N/A#
0N/ACPPFLAGS_DBG += -DJPLIS_LOGGING
0N/ACPPFLAGS_OPT += -DNO_JPLIS_LOGGING
0N/A
0N/AOTHER_INCLUDES = -I$(SHARE_SRC)/instrument
0N/AOTHER_INCLUDES += -I$(PLATFORM_SRC)/instrument
0N/AOTHER_INCLUDES += -I$(IO_PLATFORM_SRC)
0N/AOTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC) -I$(LAUNCHER_PLATFORM_SRC)
0N/A
0N/A#
0N/A# Create a dependency on libjli (Java Launcher Infrastructure)
0N/A#
0N/A# On UNIX, this is a relative dependency using $ORIGIN. Unfortunately, to
0N/A# do this reliably on Linux takes a different syntax than Solaris.
0N/A#
0N/A# On Windows, this is done by using the same directory as the executable
0N/A# itself, as with all the Windows libraries.
0N/A#
0N/Aifeq ($(PLATFORM), windows)
0N/A OTHER_LDLIBS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/jli.lib
0N/A OTHER_LCF += -export:Agent_OnAttach
0N/A # equivalent of strcasecmp is stricmp on Windows
0N/A CPPFLAGS_COMMON += -Dstrcasecmp=stricmp
0N/Aelse
4632N/Aifneq (,$(findstring $(PLATFORM), macosx))
4632N/A ifneq ($(ARCH), universal)
4632N/A LDFLAGS += -Wl,-all_load
4632N/A endif
4632N/A LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
4632N/A OTHER_LDLIBS += -liconv
4632N/A ifeq ($(SYSTEM_ZLIB), true)
4632N/A OTHER_LDLIBS += -lz
4632N/A endif
4632N/Aelse
0N/A LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
0N/A OTHER_LDLIBS += -ljli
0N/A OTHER_LDLIBS += -ldl
0N/A ifeq ($(PLATFORM), solaris)
0N/A LDFLAGS += -R \$$ORIGIN/jli
0N/A endif
0N/A ifeq ($(PLATFORM), linux)
3767N/A LDFLAGS += $(LDFLAG_Z_ORIGIN)
0N/A LDFLAGS += -Wl,--allow-shlib-undefined
0N/A LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli
0N/A endif
0N/Aendif
4632N/Aendif
4632N/A
4632N/Aifeq ($(PLATFORM), macosx)
4632N/A LDFLAGS += -framework Cocoa -framework Security -framework ApplicationServices
4632N/Aendif
0N/A
0N/A#
0N/A# Library to compile.
0N/A#
0N/Ainclude $(BUILDDIR)/common/Library.gmk
0N/A
0N/A# We don't want to link against -ljava
0N/AJAVALIB=
0N/A
0N/A#
0N/A# Add to ambient vpath so we pick up the library files
0N/A#
0N/Avpath %.c $(SHARE_SRC)/instrument $(PLATFORM_SRC)/instrument
0N/Avpath %.c $(IO_PLATFORM_SRC)
0N/A