1 #
   2 # Copyright (c) 2011, 2013, 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 LIBATTACH_EXCLUDE_FILES :=
  27 ifneq ($(OPENJDK_TARGET_OS), solaris)
  28   LIBATTACH_EXCLUDE_FILES += SolarisVirtualMachine.c
  29 endif
  30 ifneq ($(OPENJDK_TARGET_OS), linux)
  31   LIBATTACH_EXCLUDE_FILES += LinuxVirtualMachine.c
  32 endif
  33 ifneq ($(OPENJDK_TARGET_OS), macosx)
  34   LIBATTACH_EXCLUDE_FILES += BsdVirtualMachine.c
  35 endif
  36 ifneq ($(OPENJDK_TARGET_OS),aix)
  37   LIBATTACH_EXCLUDE_FILES += AixVirtualMachine.c
  38 endif
  39 
  40 LIBATTACH_SRC_FILES := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tools/attach
  41 ifeq ($(OPENJDK_TARGET_OS),aix)
  42   LIBATTACH_SRC_FILES += $(JDK_TOPDIR)/src/aix/native/sun/tools/attach
  43 endif
  44 
  45 $(eval $(call SetupNativeCompilation,BUILD_LIBATTACH, \
  46     LIBRARY := attach, \
  47     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
  48     SRC := $(LIBATTACH_SRC_FILES), \
  49     EXCLUDE_FILES := $(LIBATTACH_EXCLUDE_FILES), \
  50     LANG := C, \
  51     OPTIMIZATION := LOW, \
  52     CFLAGS := $(CFLAGS_JDKLIB), \
  53     CFLAGS_windows := /Gy, \
  54     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libattach/mapfile-$(OPENJDK_TARGET_OS), \
  55     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
  56     RC_FLAGS := $(RC_FLAGS) \
  57         -D "JDK_FNAME=attach.dll" \
  58         -D "JDK_INTERNAL_NAME=attach" \
  59         -D "JDK_FTYPE=0x2L", \
  60     LDFLAGS := $(LDFLAGS_JDKLIB) \
  61         $(call SET_SHARED_LIBRARY_ORIGIN), \
  62     LDFLAGS_solaris := -ldoor, \
  63     LDFLAGS_windows := /ORDER:@$(JDK_TOPDIR)/makefiles/mapfiles/libattach/reorder-windows-$(OPENJDK_TARGET_CPU), \
  64     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
  65     LDFLAGS_SUFFIX_windows := $(WIN_JAVA_LIB) advapi32.lib psapi.lib, \
  66     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libattach, \
  67     DEBUG_SYMBOLS := true))
  68 
  69 $(BUILD_LIBATTACH): $(BUILD_LIBJAVA)
  70 
  71 BUILD_LIBRARIES += $(BUILD_LIBATTACH)
  72 
  73 ##########################################################################################
  74 
  75 $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET, \
  76     LIBRARY := dt_socket, \
  77     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
  78     SRC := $(JDK_TOPDIR)/src/share/transport/socket \
  79         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket, \
  80     LANG := C, \
  81     OPTIMIZATION := LOW, \
  82     CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \
  83         -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \
  84         -I$(JDK_TOPDIR)/src/share/transport/socket \
  85         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/socket \
  86         -I$(JDK_TOPDIR)/src/share/back/export \
  87         -I$(JDK_TOPDIR)/src/share/back, \
  88     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libdt_socket/mapfile-vers, \
  89     LDFLAGS := $(LDFLAGS_JDKLIB) \
  90         $(call SET_SHARED_LIBRARY_ORIGIN), \
  91     LDFLAGS_SUFFIX_linux := -lpthread, \
  92     LDFLAGS_SUFFIX_solaris := -lnsl -lsocket -lc, \
  93     LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) -export:jdwpTransport_OnLoad ws2_32.lib, \
  94     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
  95     RC_FLAGS := $(RC_FLAGS) \
  96         -D "JDK_FNAME=dt_socket.dll" \
  97         -D "JDK_INTERNAL_NAME=dt_socket" \
  98         -D "JDK_FTYPE=0x2L", \
  99     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdt_socket, \
 100     DEBUG_SYMBOLS := true))
 101 
 102 $(BUILD_LIBDT_SOCKET): $(BUILD_LIBJAVA)
 103 
 104 BUILD_LIBRARIES += $(BUILD_LIBDT_SOCKET)
 105 
 106 ##########################################################################################
 107 
 108 ifeq ($(OPENJDK_TARGET_OS), windows)
 109 
 110   $(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM, \
 111       LIBRARY := dt_shmem, \
 112       OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 113       SRC := $(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \
 114           $(JDK_TOPDIR)/src/share/transport/shmem \
 115           $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem, \
 116       LANG := C, \
 117       OPTIMIZATION := LOW, \
 118       CFLAGS := $(CFLAGS_JDKLIB) -DUSE_MMAP \
 119           -I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(OPENJDK_TARGET_OS) \
 120           -I$(JDK_TOPDIR)/src/share/transport/shmem \
 121           -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/transport/shmem \
 122           -I$(JDK_TOPDIR)/src/share/back/export, \
 123       LDFLAGS := $(LDFLAGS_JDKLIB), \
 124       LDFLAGS_windows := -export:jdwpTransport_OnLoad, \
 125       LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
 126       VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 127       RC_FLAGS := $(RC_FLAGS) \
 128           -D "JDK_FNAME=dt_shmem.dll" \
 129           -D "JDK_INTERNAL_NAME=dt_shmem" \
 130           -D "JDK_FTYPE=0x2L", \
 131       OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libdt_shmem, \
 132       DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 133 
 134   BUILD_LIBRARIES += $(BUILD_LIBDT_SHMEM)
 135 
 136 endif # OPENJDK_TARGET_OS
 137 
 138 ##########################################################################################
 139 
 140 # JDWP_LOGGING causes log messages to be compiled into the library.
 141 $(eval $(call SetupNativeCompilation,BUILD_LIBJDWP, \
 142     LIBRARY := jdwp, \
 143     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 144     SRC := $(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back, \
 145     LANG := C, \
 146     OPTIMIZATION := LOW, \
 147     CFLAGS := $(CFLAGS_JDKLIB) -DJDWP_LOGGING \
 148         -I$(JDK_TOPDIR)/src/share/transport/export \
 149         -I$(JDK_TOPDIR)/src/share/back/export \
 150         -I$(JDK_TOPDIR)/src/share/npt \
 151         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
 152         -I$(JDK_TOPDIR)/src/share/back \
 153         -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/back \
 154         -I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers, \
 155     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjdwp/mapfile-vers, \
 156     LDFLAGS := $(LDFLAGS_JDKLIB) \
 157         $(call SET_SHARED_LIBRARY_ORIGIN), \
 158     LDFLAGS_SUFFIX_linux := $(LIBDL), \
 159     LDFLAGS_SUFFIX_solaris := $(LIBDL) -lc, \
 160     LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX), \
 161     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 162     RC_FLAGS := $(RC_FLAGS) \
 163         -D "JDK_FNAME=jdwp.dll" \
 164         -D "JDK_INTERNAL_NAME=jdwp" \
 165         -D "JDK_FTYPE=0x2L", \
 166     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjdwp, \
 167     DEBUG_SYMBOLS := true))
 168 
 169 $(BUILD_LIBJDWP): $(BUILD_LIBJAVA)
 170 
 171 BUILD_LIBRARIES += $(BUILD_LIBJDWP)
 172 
 173 ##########################################################################################
 174 
 175 $(eval $(call SetupNativeCompilation,BUILD_LIBJSDT, \
 176     LIBRARY := jsdt, \
 177     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 178     SRC := $(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace \
 179         $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/tracing/dtrace, \
 180     LANG := C, \
 181     OPTIMIZATION := LOW, \
 182     CFLAGS := $(CFLAGS_JDKLIB) \
 183         -I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace, \
 184     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjsdt/mapfile-vers, \
 185     LDFLAGS := $(LDFLAGS_JDKLIB) \
 186         $(call SET_SHARED_LIBRARY_ORIGIN), \
 187     LDFLAGS_SUFFIX_linux := $(LIBDL), \
 188     LDFLAGS_SUFFIX_windows := $(LDFLAGS_JDKLIB_SUFFIX) $(LIBDL), \
 189     LDFLAGS_SUFFIX_macosx := $(LIBDL), \
 190     LDFLAGS_SUFFIX_solaris := -lc, \
 191     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 192     RC_FLAGS := $(RC_FLAGS) \
 193         -D "JDK_FNAME=jsdt.dll" \
 194         -D "JDK_INTERNAL_NAME=jsdt" \
 195         -D "JDK_FTYPE=0x2L", \
 196     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjsdt, \
 197     DEBUG_SYMBOLS := true))
 198 
 199 $(BUILD_LIBJSDT): $(BUILD_LIBJAVA)
 200 
 201 BUILD_LIBRARIES += $(BUILD_LIBJSDT)
 202 
 203 ##########################################################################################
 204 
 205 LIBINSTRUMENT_SRC := $(JDK_TOPDIR)/src/share/instrument \
 206     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/java/io \
 207     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument
 208 
 209 LIBINSTRUMENT_FILES := \
 210     EncodingSupport.c \
 211     EncodingSupport_md.c \
 212     FileSystemSupport_md.c \
 213     InstrumentationImplNativeMethods.c \
 214     InvocationAdapter.c \
 215     JarFacade.c \
 216     JPLISAgent.c \
 217     JPLISAssert.c \
 218     JavaExceptions.c \
 219     PathCharsValidator.c \
 220     Reentrancy.c \
 221     Utilities.c \
 222     canonicalize_md.c
 223 
 224 LIBINSTRUMENT_DIR := $(JDK_OUTPUTDIR)/objs/libinstrument
 225 LIBINSTRUMENT_CFLAGS := $(CFLAGS_JDKLIB) \
 226     -I$(JDK_TOPDIR)/src/share/instrument \
 227     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/instrument \
 228     -I$(JDK_TOPDIR)/src/share/bin
 229 
 230 LIBINSTRUMENT_LDFLAGS :=
 231 LIBINSTRUMENT_LDFLAGS_SUFFIX :=
 232 
 233 ifeq ($(OPENJDK_TARGET_OS), windows)
 234   LIBINSTRUMENT_LDFLAGS += $(JDK_OUTPUTDIR)/objs/jli_static.lib $(WIN_JAVA_LIB) \
 235       -export:Agent_OnAttach advapi32.lib
 236   # Statically link the C runtime so that there are not dependencies on modules
 237   # not on the search patch when invoked from the Windows system directory
 238   # (or elsewhere).
 239   LIBINSTRUMENT_CFLAGS := $(filter-out -MD, $(LIBINSTRUMENT_CFLAGS))
 240   # equivalent of strcasecmp is stricmp on Windows
 241   LIBINSTRUMENT_CFLAGS += -Dstrcasecmp=stricmp
 242 endif
 243 
 244 $(eval $(call SetupNativeCompilation,BUILD_LIBINSTRUMENT, \
 245     LIBRARY := instrument, \
 246     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 247     SRC := $(LIBINSTRUMENT_SRC), \
 248     INCLUDE_FILES := $(LIBINSTRUMENT_FILES), \
 249     LANG := C, \
 250     OPTIMIZATION := LOW, \
 251     CFLAGS := $(LIBINSTRUMENT_CFLAGS), \
 252     CFLAGS_debug := -DJPLIS_LOGGING, \
 253     CFLAGS_release := -DNO_JPLIS_LOGGING, \
 254     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libinstrument/mapfile-vers, \
 255     LDFLAGS := $(LDFLAGS_JDKLIB) \
 256         $(call SET_SHARED_LIBRARY_ORIGIN) \
 257         $(LIBINSTRUMENT_LDFLAGS), \
 258     LDFLAGS_linux := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
 259     LDFLAGS_solaris := $(call SET_SHARED_LIBRARY_ORIGIN,/jli), \
 260     LDFLAGS_macosx := -Xlinker -all_load $(JDK_OUTPUTDIR)/objs/libjli_static.a \
 261         -framework Cocoa -framework Security -framework ApplicationServices, \
 262     LDFLAGS_SUFFIX := $(LIBINSTRUMENT_LDFLAGS_SUFFIX), \
 263     LDFLAGS_SUFFIX_macosx := -liconv $(LIBZ), \
 264     LDFLAGS_SUFFIX_solaris := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL) -lc, \
 265     LDFLAGS_SUFFIX_linux := $(LIBZ) -L $(INSTALL_LIBRARIES_HERE)/jli -ljli $(LIBDL), \
 266     LDFLAGS_SUFFIX_aix := $(LIBZ) -L$(JDK_OUTPUTDIR)/objs -ljli_static $(LIBDL),\
 267     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 268     RC_FLAGS := $(RC_FLAGS) \
 269         -D "JDK_FNAME=instrument.dll" \
 270         -D "JDK_INTERNAL_NAME=instrument" \
 271         -D "JDK_FTYPE=0x2L", \
 272     OBJECT_DIR := $(LIBINSTRUMENT_DIR), \
 273     DEBUG_SYMBOLS := true))
 274 
 275 ifneq (, $(findstring $(OPENJDK_TARGET_OS), macosx windows aix))
 276   $(BUILD_LIBINSTRUMENT): $(JDK_OUTPUTDIR)/objs/$(LIBRARY_PREFIX)jli_static$(STATIC_LIBRARY_SUFFIX)
 277 else
 278   $(BUILD_LIBINSTRUMENT): $(INSTALL_LIBRARIES_HERE)/jli/$(LIBRARY_PREFIX)jli$(SHARED_LIBRARY_SUFFIX)
 279 endif
 280 $(BUILD_LIBINSTRUMENT): $(BUILD_LIBJAVA)
 281 
 282 BUILD_LIBRARIES += $(BUILD_LIBINSTRUMENT)
 283 
 284 ##########################################################################################
 285 
 286 BUILD_LIBMANAGEMENT_SRC := $(JDK_TOPDIR)/src/share/native/sun/management \
 287     $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/management
 288 
 289 BUILD_LIBMANAGEMENT_EXCLUDES :=
 290 
 291 BUILD_LIBMANAGEMENT_CFLAGS := -I$(JDK_TOPDIR)/src/share/native/sun/management
 292 
 293 ifneq ($(OPENJDK_TARGET_OS), solaris)
 294   BUILD_LIBMANAGEMENT_EXCLUDES += SolarisOperatingSystem.c
 295 endif
 296 
 297 ifneq ($(OPENJDK_TARGET_OS), linux)
 298   BUILD_LIBMANAGEMENT_EXCLUDES += LinuxOperatingSystem.c
 299 endif
 300 
 301 ifneq ($(OPENJDK_TARGET_OS), macosx)
 302   BUILD_LIBMANAGEMENT_EXCLUDES += MacosxOperatingSystem.c
 303 endif
 304 
 305 LIBMANAGEMENT_OPTIMIZATION := HIGH
 306 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
 307   ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
 308     LIBMANAGEMENT_OPTIMIZATION := LOW
 309   endif
 310 endif
 311 
 312 $(eval $(call SetupNativeCompilation,BUILD_LIBMANAGEMENT, \
 313     LIBRARY := management, \
 314     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 315     SRC := $(BUILD_LIBMANAGEMENT_SRC), \
 316     EXCLUDE_FILES := $(BUILD_LIBMANAGEMENT_EXCLUDES), \
 317     LANG := C, \
 318     OPTIMIZATION := $(LIBMANAGEMENT_OPTIMIZATION), \
 319     CFLAGS := $(CFLAGS_JDKLIB) $(BUILD_LIBMANAGEMENT_CFLAGS), \
 320     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libmanagement/mapfile-vers, \
 321     LDFLAGS := $(LDFLAGS_JDKLIB) \
 322         $(call SET_SHARED_LIBRARY_ORIGIN), \
 323     LDFLAGS_solaris := -lkstat, \
 324     LDFLAGS_SUFFIX := $(LDFLAGS_JDKLIB_SUFFIX), \
 325     LDFLAGS_SUFFIX_windows := jvm.lib psapi.lib $(WIN_JAVA_LIB) advapi32.lib, \
 326     LDFLAGS_SUFFIX_aix := -lperfstat,\
 327     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 328     RC_FLAGS := $(RC_FLAGS) \
 329         -D "JDK_FNAME=management.dll" \
 330         -D "JDK_INTERNAL_NAME=management" \
 331         -D "JDK_FTYPE=0x2L", \
 332     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libmanagement, \
 333     DEBUG_SYMBOLS := true))
 334 
 335 $(BUILD_LIBMANAGEMENT): $(BUILD_LIBJAVA)
 336 
 337 BUILD_LIBRARIES += $(BUILD_LIBMANAGEMENT)
 338 
 339 ##########################################################################################
 340 
 341 BUILD_LIBHPROF_SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/hprof $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/demo/jvmti/hprof
 342 BUILD_LIBHPROF_CFLAGS := -I$(JDK_TOPDIR)/src/share/demo/jvmti/hprof \
 343     -I$(JDK_TOPDIR)/src/share/npt \
 344     -I$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/npt \
 345     -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo
 346 
 347 ifeq ($(OPENJDK_TARGET_OS), aix)
 348   BUILD_LIBHPROF_SRC += $(JDK_TOPDIR)/src/aix/porting
 349   BUILD_LIBHPROF_CFLAGS += -I$(JDK_TOPDIR)/src/aix/porting
 350 endif
 351 
 352 BUILD_LIBHPROF_LDFLAGS :=
 353 
 354 LIBHPROF_OPTIMIZATION := HIGHEST
 355 ifneq ($(findstring $(OPENJDK_TARGET_OS), solaris linux), )
 356   ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
 357     LIBHPROF_OPTIMIZATION := LOW
 358   endif
 359 endif
 360 
 361 $(eval $(call SetupNativeCompilation,BUILD_LIBHPROF, \
 362     LIBRARY := hprof, \
 363     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 364     SRC := $(BUILD_LIBHPROF_SRC), \
 365     LANG := C, \
 366     OPTIMIZATION := $(LIBHPROF_OPTIMIZATION), \
 367     CFLAGS := $(CFLAGS_JDKLIB) \
 368         $(BUILD_LIBHPROF_CFLAGS), \
 369     CFLAGS_debug := -DHPROF_LOGGING, \
 370     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libhprof/mapfile-vers, \
 371     LDFLAGS := $(LDFLAGS_JDKLIB) \
 372         $(call SET_SHARED_LIBRARY_ORIGIN), \
 373     LDFLAGS_windows := wsock32.lib winmm.lib advapi32.lib, \
 374     LDFLAGS_SUFFIX_linux := $(LIBDL), \
 375     LDFLAGS_SUFFIX_macosx := $(LIBDL), \
 376     LDFLAGS_SUFFIX_solaris := -lsocket -lnsl $(LIBDL) -lc, \
 377     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 378     RC_FLAGS := $(RC_FLAGS) \
 379         -D "JDK_FNAME=hprof.dll" \
 380         -D "JDK_INTERNAL_NAME=hprof" \
 381         -D "JDK_FTYPE=0x2L", \
 382     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libhprof_jvmti, \
 383     DEBUG_SYMBOLS := true))
 384 
 385 BUILD_LIBRARIES += $(BUILD_LIBHPROF)
 386 
 387 ##########################################################################################
 388 
 389 $(eval $(call SetupNativeCompilation,BUILD_LIBJAVA_CRW_DEMO, \
 390     LIBRARY := java_crw_demo, \
 391     OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 392     SRC := $(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \
 393     LANG := C, \
 394     OPTIMIZATION := LOW, \
 395     CFLAGS := $(CFLAGS_JDKLIB) \
 396         -I$(JDK_TOPDIR)/src/share/demo/jvmti/java_crw_demo, \
 397     MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjava_crw_demo/mapfile-vers, \
 398     LDFLAGS := $(LDFLAGS_JDKLIB) \
 399         $(call SET_SHARED_LIBRARY_ORIGIN), \
 400     LDFLAGS_SUFFIX_solaris := -lc, \
 401     VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 402     RC_FLAGS := $(RC_FLAGS) \
 403         -D "JDK_FNAME=java_crw_demo.dll" \
 404         -D "JDK_INTERNAL_NAME=java_crw_demo" \
 405         -D "JDK_FTYPE=0x2L", \
 406     OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjava_crw_demo, \
 407     DEBUG_SYMBOLS := true))
 408 
 409 BUILD_LIBRARIES += $(BUILD_LIBJAVA_CRW_DEMO)
 410 
 411 ##########################################################################################
 412 
 413 ifndef OPENJDK
 414   ifeq ($(ENABLE_JFR), true)
 415 
 416     $(eval $(call SetupNativeCompilation,BUILD_LIBJFR, \
 417         LIBRARY := jfr, \
 418         OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \
 419         SRC := $(JDK_TOPDIR)/src/closed/share/native/oracle/jfr, \
 420         LANG := C, \
 421         OPTIMIZATION := LOW, \
 422         CFLAGS := $(CFLAGS_JDKLIB) \
 423             -I$(JDK_TOPDIR)/src/closed/share/javavm/export, \
 424         MAPFILE := $(JDK_TOPDIR)/makefiles/mapfiles/libjfr/mapfile-vers, \
 425         LDFLAGS := $(LDFLAGS_JDKLIB) \
 426             $(call SET_SHARED_LIBRARY_ORIGIN), \
 427         LDFLAGS_SUFFIX_solaris := -lc, \
 428         VERSIONINFO_RESOURCE := $(JDK_TOPDIR)/src/windows/resource/version.rc, \
 429         RC_FLAGS := $(RC_FLAGS) \
 430             -D "JDK_FNAME=jfr.dll" \
 431             -D "JDK_INTERNAL_NAME=jfr" \
 432             -D "JDK_FTYPE=0x2L", \
 433         OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libjfr, \
 434         DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
 435 
 436     BUILD_LIBRARIES += $(BUILD_LIBJFR)
 437 
 438   endif
 439 endif