1 #
   2 # Copyright (c) 2003, 2010, 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 BUILDDIR = ../..
  27 LIBRARY = hprof
  28 PRODUCT = sun
  29 LIBRARY_OUTPUT = hprof_jvmti
  30 
  31 # Use highest optimization
  32 OPTIMIZATION_LEVEL = HIGHEST
  33 
  34 # Configure the CFLAGS for this library.
  35 FILES_m = mapfile-vers
  36 
  37 include $(BUILDDIR)/common/Defs.gmk
  38 
  39 SRCDIR=$(SHARE_SRC)/demo/jvmti/hprof
  40 PSRCDIR=$(PLATFORM_SRC)/demo/jvmti/hprof
  41 
  42 # Use the mapfile-vers (See the mapfile located with this Makefile)
  43 ifdef FILES_m
  44 include $(BUILDDIR)/common/Mapfile-vers.gmk
  45 endif
  46 
  47 #
  48 # Files to compile.
  49 #
  50 FILES_c =                               \
  51         debug_malloc.c  \
  52         hprof_blocks.c  \
  53         hprof_check.c   \
  54         hprof_class.c   \
  55         hprof_cpu.c             \
  56         hprof_error.c   \
  57         hprof_event.c   \
  58         hprof_frame.c   \
  59         hprof_init.c    \
  60         hprof_io.c              \
  61         hprof_ioname.c  \
  62         hprof_listener.c        \
  63         hprof_loader.c  \
  64         hprof_md.c              \
  65         hprof_monitor.c \
  66         hprof_object.c  \
  67         hprof_reference.c       \
  68         hprof_site.c    \
  69         hprof_stack.c   \
  70         hprof_string.c  \
  71         hprof_table.c   \
  72         hprof_tag.c             \
  73         hprof_tls.c             \
  74         hprof_trace.c   \
  75         hprof_tracker.c         \
  76         hprof_util.c
  77 
  78 OTHER_INCLUDES = -I$(SRCDIR) \
  79                  -I$(SHARE_SRC)/npt \
  80                  -I$(PLATFORM_SRC)/npt \
  81                  -I$(SHARE_SRC)/demo/jvmti/java_crw_demo
  82 
  83 ifeq ($(PLATFORM), windows)
  84   OTHER_LDLIBS += wsock32.lib winmm.lib
  85 else
  86   OTHER_LDLIBS += $(LIBSOCKET) $(LIBNSL) -ldl
  87 endif
  88 
  89 #
  90 # Tell library.gmk to copy the txt file first
  91 #
  92 INIT += $(LIBDIR)/jvm.hprof.txt
  93 
  94 #
  95 # This puts logging code in
  96 #
  97 CPPFLAGS_DBG += -DHPROF_LOGGING
  98 
  99 #
 100 # Library to compile.
 101 #
 102 include $(BUILDDIR)/common/Library.gmk
 103 
 104 # We don't want to link against -ljava
 105 JAVALIB=
 106 
 107 #
 108 # Add to ambient vpath so we pick up the library files
 109 #
 110 vpath %.c $(SRCDIR):$(PSRCDIR)
 111 
 112 #
 113 # Install the hprof prelude
 114 #
 115 $(LIBDIR)/jvm.hprof.txt: $(SRCDIR)/jvm.hprof.txt
 116         $(install-file)
 117 
 118 clean clobber::
 119         $(RM) $(LIBDIR)/jvm.hprof.txt
 120