hotspot/make/aix/makefiles/sa.make
changeset 22830 df1bb606b2ca
child 25639 61be16de0fd5
equal deleted inserted replaced
22829:08b62d0e80ed 22830:df1bb606b2ca
       
     1 #
       
     2 # Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
       
     3 # Copyright 2012, 2013 SAP AG. All rights reserved.
       
     4 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       
     5 #
       
     6 # This code is free software; you can redistribute it and/or modify it
       
     7 # under the terms of the GNU General Public License version 2 only, as
       
     8 # published by the Free Software Foundation.
       
     9 #
       
    10 # This code is distributed in the hope that it will be useful, but WITHOUT
       
    11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
       
    12 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
       
    13 # version 2 for more details (a copy is included in the LICENSE file that
       
    14 # accompanied this code).
       
    15 #
       
    16 # You should have received a copy of the GNU General Public License version
       
    17 # 2 along with this work; if not, write to the Free Software Foundation,
       
    18 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
       
    19 #
       
    20 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
       
    21 # or visit www.oracle.com if you need additional information or have any
       
    22 # questions.
       
    23 #
       
    24 #
       
    25 
       
    26 # This makefile (sa.make) is included from the sa.make in the
       
    27 # build directories.
       
    28 
       
    29 # This makefile is used to build Serviceability Agent java code
       
    30 # and generate JNI header file for native methods.
       
    31 
       
    32 include $(GAMMADIR)/make/aix/makefiles/rules.make
       
    33 
       
    34 include $(GAMMADIR)/make/defs.make
       
    35 
       
    36 AGENT_DIR = $(GAMMADIR)/agent
       
    37 
       
    38 include $(GAMMADIR)/make/sa.files
       
    39 
       
    40 TOPDIR    = $(shell echo `pwd`)
       
    41 GENERATED = $(TOPDIR)/../generated
       
    42 
       
    43 # tools.jar is needed by the JDI - SA binding
       
    44 SA_CLASSPATH = $(BOOT_JAVA_HOME)/lib/tools.jar
       
    45 
       
    46 # TODO: if it's a modules image, check if SA module is installed.
       
    47 MODULELIB_PATH= $(BOOT_JAVA_HOME)/lib/modules
       
    48 
       
    49 AGENT_FILES_LIST := $(GENERATED)/agent.classes.list
       
    50 
       
    51 SA_CLASSDIR = $(GENERATED)/saclasses
       
    52 
       
    53 SA_BUILD_VERSION_PROP = "sun.jvm.hotspot.runtime.VM.saBuildVersion=$(SA_BUILD_VERSION)"
       
    54 
       
    55 SA_PROPERTIES = $(SA_CLASSDIR)/sa.properties
       
    56 
       
    57 # if $(AGENT_DIR) does not exist, we don't build SA
       
    58 # also, we don't build SA on Itanium, PowerPC, ARM or zero.
       
    59 
       
    60 all:
       
    61 	if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
       
    62              -a "$(SRCARCH)" != "arm" \
       
    63              -a "$(SRCARCH)" != "ppc" \
       
    64              -a "$(SRCARCH)" != "zero" ] ; then \
       
    65 	   $(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
       
    66 	fi
       
    67 
       
    68 $(GENERATED)/sa-jdi.jar: $(AGENT_FILES)
       
    69 	$(QUIETLY) echo "Making $@"
       
    70 	$(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
       
    71 	  echo "ALT_BOOTDIR, BOOTDIR or JAVA_HOME needs to be defined to build SA"; \
       
    72 	  exit 1; \
       
    73 	fi
       
    74 	$(QUIETLY) if [ ! -f $(SA_CLASSPATH) -a ! -d $(MODULELIB_PATH) ] ; then \
       
    75 	  echo "Missing $(SA_CLASSPATH) file. Use 1.6.0 or later version of JDK";\
       
    76 	  echo ""; \
       
    77 	  exit 1; \
       
    78 	fi
       
    79 	$(QUIETLY) if [ ! -d $(SA_CLASSDIR) ] ; then \
       
    80 	  mkdir -p $(SA_CLASSDIR);        \
       
    81 	fi
       
    82 # Note: When indented, make tries to execute the '$(shell' comment.
       
    83 # In some environments, cmd processors have limited line length.
       
    84 # To prevent the javac invocation in the next block from using
       
    85 # a very long cmd line, we use javac's @file-list option. We
       
    86 # generate the file lists using make's built-in 'foreach' control
       
    87 # flow which also avoids cmd processor line length issues. Since
       
    88 # the 'foreach' is done as part of make's macro expansion phase,
       
    89 # the initialization of the lists is also done in the same phase
       
    90 # using '$(shell rm ...' instead of using the more traditional
       
    91 # 'rm ...' rule.
       
    92 	$(shell rm -rf $(AGENT_FILES_LIST))
       
    93 # gnumake 3.78.1 does not accept the *'s that
       
    94 # are in AGENT_FILES, so use the shell to expand them.
       
    95 # Be extra carefull to not produce too long command lines in the shell!
       
    96 	$(foreach file,$(AGENT_FILES),$(shell ls -1 $(file) >> $(AGENT_FILES_LIST)))
       
    97 	$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES_LIST)
       
    98 	$(QUIETLY) $(REMOTE) $(COMPILE.RMIC)  -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
       
    99 	$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
       
   100 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
       
   101 	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql
       
   102 	$(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources
       
   103 	$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/*
       
   104 	$(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/
       
   105 	$(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/
       
   106 	$(QUIETLY) $(REMOTE) $(RUN.JAR) cf $@ -C $(SA_CLASSDIR)/ .
       
   107 	$(QUIETLY) $(REMOTE) $(RUN.JAR) uf $@ -C $(AGENT_SRC_DIR) META-INF/services/com.sun.jdi.connect.Connector
       
   108 	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext
       
   109 	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.ia64.IA64ThreadContext
       
   110 	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.amd64.AMD64ThreadContext
       
   111 	$(QUIETLY) $(REMOTE) $(RUN.JAVAH) -classpath $(SA_CLASSDIR) -d $(GENERATED) -jni sun.jvm.hotspot.debugger.sparc.SPARCThreadContext
       
   112 
       
   113 clean:
       
   114 	rm -rf $(SA_CLASSDIR)
       
   115 	rm -rf $(GENERATED)/sa-jdi.jar
       
   116 	rm -rf $(AGENT_FILES_LIST)