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