changeset 1642:bd6e268e9a37

2009-02-18 Lillian Angel <langel@redhat.com> Tomas Hurka <tomas.hurka@sun.com> * INSTALL: Updated requirements. * Makefile.am: Added building support for VisualVM with NetBeans 6.5. * acinclude.m4: Added check for NetBeans. * configure.ac: Added --enable-visualvm option. * visualvm.desktop: New file. (transplanted from a2763653f8cfd512aeeccfe32396fcd7ab31d20a)
author Lillian Angel <langel@redhat.com>
date Wed, 18 Feb 2009 14:12:09 -0500
parents 52631276b1eb
children bf8c6ee6f129
files ChangeLog INSTALL Makefile.am acinclude.m4 configure.ac visualvm.desktop
diffstat 6 files changed, 236 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Feb 17 15:55:13 2009 +0000
+++ b/ChangeLog	Wed Feb 18 14:12:09 2009 -0500
@@ -231,6 +231,15 @@
 	java.nio.channels.FileChannel, java.nio.channels.FileLock, java.nio.channels.package-info.java,
 	java.util.Scanner.  Remove patch to sun.nio.ch.FileChannelImpl. Fix imports.  Remove 6 cruft.
 
+2009-02-18  Lillian Angel  <langel@redhat.com>
+	Tomas Hurka <tomas.hurka@sun.com>
+	
+	* INSTALL: Updated requirements.
+	* Makefile.am: Added building support for VisualVM with NetBeans 6.5.
+	* acinclude.m4: Added check for NetBeans.
+	* configure.ac: Added --enable-visualvm option.
+	* visualvm.desktop: New file.	
+
 2009-02-17  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Updated copyright year.	
--- a/INSTALL	Tue Feb 17 15:55:13 2009 +0000
+++ b/INSTALL	Wed Feb 18 14:12:09 2009 -0500
@@ -35,6 +35,9 @@
 pulseaudio-libs-devel >= 0.9.11
 pulseaudio >= 0.9.11
 
+For building VisualVM, you will need
+netbeans = 6.5
+
 For building the zero-assembler port (see below), you will need libffi.
 
 See ./configure --help if you need to override the defaults.
--- a/Makefile.am	Tue Feb 17 15:55:13 2009 +0000
+++ b/Makefile.am	Wed Feb 18 14:12:09 2009 -0500
@@ -5,6 +5,9 @@
 CACAO_VERSION = 0.99.3
 CACAO_MD5SUM = 80de3ad344c1a20c086ec5f1390bd1b8
 
+NETBEANS_PROFILER_MD5SUM = 35f9dc474dfc19ed3713f362139b099a
+VISUALVM_MD5SUM = 1174486e82a65840b44c47166d79f212
+
 if ENABLE_PLUGIN
 ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
 ICEDTEAPLUGIN_TARGET = IcedTeaPlugin.so
@@ -37,7 +40,7 @@
 
 all-local: icedtea-against-icedtea
 
-distclean-local: clean-copy clean-jtreg clean-jtreg-reports clean-pulse-java
+distclean-local: clean-copy clean-jtreg clean-jtreg-reports clean-pulse-java 
 	rm -rf stamps
 	rm -f rt-source-files.txt \
 	  hotspot-tools-source-files.txt \
@@ -49,6 +52,8 @@
 	rm -rf openjdk
 	rm -rf hotspot-tools
 	rm -rf rt/netscape
+	rm -rf visualvm
+	rm -rf netbeans
 if ENABLE_PLUGIN
 	rm -f IcedTeaPlugin.o IcedTeaPlugin.so
 endif
@@ -69,7 +74,7 @@
 	clean-bootstrap-directory-symlink clean-bootstrap-directory-ecj \
 	clean-bootstrap-directory-symlink-ecj icedtea icedtea-debug \
 	clean-icedtea icedtea-against-icedtea clean-icedtea-ecj clean-plugs \
-	clean-tools-jar clean-shared-objects \
+	clean-tools-jar clean-shared-objects clean-visualvm clean-nbplatform \
 	clean-copy clean-hotspot-tools clean-rt $(ICEDTEAPLUGIN_CLEAN) \
 	hotspot hotspot-helper clean-extra clean-jtreg clean-jtreg-reports 
 
@@ -1329,7 +1334,7 @@
 
 EXTRA_DIST = $(GENERATED_FILES) $(top_srcdir)/patches/icedtea-*.patch \
 	tools-copy contrib ports extra overlays \
-	javaws.png javaws.desktop \
+	javaws.png javaws.desktop visualvm.desktop \
 	jconsole.desktop policytool.desktop \
 	$(JTREG_SRCS) \
 	IcedTeaPlugin.cc \
@@ -1631,9 +1636,40 @@
 endif
 endif
 endif
+if WITH_VISUALVM
+	if ! echo "$(NETBEANS_PROFILER_MD5SUM)  $(NETBEANS_PROFILER_SRC_ZIP)" \
+	 | $(MD5SUM) --check ; \
+	then \
+	 if [ $(NETBEANS_PROFILER_SRC_ZIP) ] ; \
+	 then \
+	  mv $(NETBEANS_PROFILER_SRC_ZIP) $(NETBEANS_PROFILER_SRC_ZIP).old ; \
+	 fi ; \
+	 $(WGET) $(NETBEANS_PROFILER_URL)$(NETBEANS_PROFILER_SRC_ZIP) \
+	  -O $(NETBEANS_PROFILER_SRC_ZIP) ; \
+	 fi
+
+	if ! echo "$(VISUALVM_MD5SUM)  $(VISUALVM_SRC_ZIP)" \
+         | $(MD5SUM) --check ; \
+        then \
+         if [ $(VISUALVM_SRC_ZIP) ] ; \
+         then \
+          mv $(VISUALVM_SRC_ZIP) $(VISUALVM_SRC_ZIP).old ; \
+         fi ; \
+         $(WGET) $(VISUALVM_URL)$(VISUALVM_SRC_ZIP) \
+          -O $(VISUALVM_SRC_ZIP) ; \
+         fi
+endif
 	mkdir -p stamps
 	touch stamps/download.stamp
 
+# VisualVM sources. Alternatives cannot be used here.
+NETBEANS_PROFILER_URL = http://icedtea.classpath.org/visualvm/
+NETBEANS_PROFILER_SRC_ZIP = netbeans-profiler-visualvm_release65_mod.tar.gz
+
+VISUALVM_URL = https://visualvm.dev.java.net/files/documents/7163/127067/
+VISUALVM_SRC_ZIP = visualvm-11-src.tar.gz
+
+
 stamps/hgforest.stamp:
 if OPENJDK_SRC_DIR_FOUND
 else
@@ -1666,6 +1702,10 @@
 if WITH_CACAO
 	rm -f $(CACAO_SRC_ZIP)
 endif
+if WITH_VISUALVM
+	rm -f $(VISUALVM_SRC_ZIP)
+	rm -f $(NETBEANS_PROFILER_SRC_ZIP)
+endif
 
 # Link ports sources into tree
 stamps/ports.stamp: stamps/extract.stamp
@@ -2303,7 +2343,7 @@
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(ICEDTEAPLUGIN_TARGET) extra-lib/about.jar stamps/cacao.stamp \
-	stamps/pulse-java.stamp
+	stamps/pulse-java.stamp stamps/visualvm.stamp
 	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
 	  -C openjdk/ \
@@ -2324,6 +2364,26 @@
 	cp -pPRf pulse-java.jar \
 	  $(BUILD_OUTPUT_DIR)/j2re-image/lib/ext
 endif
+if WITH_VISUALVM
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	sed "s/APPNAME=\`basename.*\`/APPNAME=visualvm/" \
+	  visualvm/launcher/visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	chmod a+x $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	cp visualvm/launcher/visualvm.conf \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	echo visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	echo profiler3 >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	cp -r visualvm/build/cluster/* \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/platform9 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm	
+endif
 	cp $(NETX_RESOURCE_DIR)/about.jnlp \
 	  extra-lib/about.jar \
 	  $(BUILD_OUTPUT_DIR)/j2re-image/lib
@@ -2338,7 +2398,7 @@
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(ICEDTEAPLUGIN_TARGET) extra-lib/about.jar stamps/cacao.stamp \
-	stamps/pulse-java.stamp
+	stamps/pulse-java.stamp stamps/visualvm.stamp
 	$(ARCH_PREFIX) $(MAKE) \
 	  $(ICEDTEA_ENV) \
 	  -C openjdk/ \
@@ -2359,6 +2419,26 @@
 	cp -pPRf pulse-java.jar \
 	  $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/ext
 endif
+if WITH_VISUALVM 
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	sed "s/APPNAME=\`basename.*\`/APPNAME=visualvm/" \
+	  visualvm/launcher/visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	chmod a+x $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	cp visualvm/launcher/visualvm.conf \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	echo visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	echo profiler3 >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	cp -r visualvm/build/cluster/* \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/platform9 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm
+endif
 	cp $(NETX_RESOURCE_DIR)/default.jnlp \
 	  extra-lib/about.jar \
 	  $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib
@@ -2903,6 +2983,74 @@
 
 check-local: jtregcheck
 
+# VisualVM
+
+stamps/visualvm.stamp: $(BOOTSTRAP_DIRECTORY_STAMP) stamps/download.stamp \
+	stamps/extract.stamp stamps/nbplatform.stamp
+if WITH_VISUALVM
+	cd visualvm ; \
+	ln -s $(abs_top_srcdir)/netbeans/nbbuild/netbeans_visualvm netbeans ; \
+	JAVA_HOME=$(ICEDTEA_HOME) $(ANT) build
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-visualvm:
+	rm -rf visualvm
+	rm -f stamps/visualvm.stamp
+
+stamps/nbplatform.stamp: $(BOOTSTRAP_DIRECTORY_STAMP) stamps/extract-visualvm.stamp
+if WITH_VISUALVM
+	mkdir netbeans ; \
+	cd netbeans ; \
+        rm nbbuild/external/binaries-list ; \
+        rm -r lib.profiler/release/lib/deployed ; \
+        mkdir -p lib.profiler/release/lib/deployed/jdk15/linux ; \
+        mkdir -p lib.profiler/release/lib/deployed/jdk16/linux ; \
+	mkdir -p ./nbbuild/netbeans_visualvm/ ; \
+	ln -s $(SYSTEM_NETBEANS_DIR)/platform9/ ./nbbuild/netbeans_visualvm/platform9 ; \
+	ln -s $(SYSTEM_NETBEANS_DIR)/apisupport1/ ./nbbuild/netbeans_visualvm/apisupport1 ; \
+	ln -s $(SYSTEM_NETBEANS_DIR)/harness/ ./nbbuild/netbeans_visualvm/harness ; \
+	cd lib.profiler/native/build ; \
+	if ! (uname -a | grep x86_64) ; then \
+	  buildscript=./buildnative-linux-15.sh ; \
+	else \
+	  buildscript=./buildnative-linux64-15.sh ; \
+	fi ; \
+	JAVA_HOME_15=$(ICEDTEA_HOME) JAVA_HOME_16=$(ICEDTEA_HOME) \
+	  $$buildscript ; \
+	cd ../../.. ; \
+        JAVA_HOME=$(ICEDTEA_HOME) $(ANT) -Dpermit.jdk6.builds=true \
+            -f nbbuild/build.xml bootstrap ; \
+	for dir in lib.profiler lib.profiler.ui lib.profiler.common profiler ; do \
+	  JAVA_HOME=$(ICEDTEA_HOME) $(ANT) -Dpermit.jdk6.builds=true -Dbuildnumber=081204 \
+            -Dnetbeans.dest.dir=../nbbuild/netbeans_visualvm \
+	    -f $$dir/build.xml ; \
+	done 
+endif
+	mkdir -p stamps
+	touch $@
+
+stamps/extract-visualvm.stamp:
+if WITH_VISUALVM
+	if ! test -d netbeans ; \
+	then \
+	  mkdir netbeans ; \
+	  $(TAR) xf $(NETBEANS_PROFILER_SRC_ZIP) -C netbeans ; \
+	fi
+
+	if ! test -d visualvm ; \
+	then \
+	  $(TAR) xf $(VISUALVM_SRC_ZIP) ; \
+	fi
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-nbplatform:
+	rm -rf netbeans
+	rm -f stamps/nbplatform.stamp
+
 # fsg-tarball
 
 # Creates archive of openjdk that is compliant with Free Software guidelines.
@@ -2924,6 +3072,12 @@
 
 clone-ecj: stamps/clone-ecj.stamp
 
+visualvm: stamps/visualvm.stamp
+
+nbplatform: stamps/nbplatform.stamp
+
+extract-visualvm: stamps/extract-visualvm.stamp
+
 copy-source-files: stamps/copy-source-files.stamp
 
 download: stamps/download.stamp
--- a/acinclude.m4	Tue Feb 17 15:55:13 2009 +0000
+++ b/acinclude.m4	Wed Feb 18 14:12:09 2009 -0500
@@ -558,6 +558,31 @@
   AC_SUBST(XERCES2_JAR)
 ])
 
+AC_DEFUN([FIND_NETBEANS],
+[
+  AC_ARG_WITH([netbeans],
+              [AS_HELP_STRING(--with-netbeans,specify location of netbeans)],
+  [
+    if test -f "${withval}"; then
+      AC_MSG_CHECKING(netbeans)
+      NETBEANS="${withval}"
+      AC_MSG_RESULT(${withval})
+    else
+      AC_PATH_PROG(NETBEANS, "${withval}")
+    fi
+  ],
+  [
+    NETBEANS=
+  ])
+  if test -z "${NETBEANS}"; then
+    AC_PATH_PROG(NETBEANS, "netbeans")
+  fi
+  if test -z "${NETBEANS}"; then
+    AC_MSG_ERROR("NetBeans was not found.")
+  fi
+  AC_SUBST(NETBEANS)
+])
+
 AC_DEFUN([FIND_RHINO_JAR],
 [
   AC_MSG_CHECKING(whether to include Javascript support via Rhino)
--- a/configure.ac	Tue Feb 17 15:55:13 2009 +0000
+++ b/configure.ac	Wed Feb 18 14:12:09 2009 -0500
@@ -55,6 +55,24 @@
 AM_CONDITIONAL(WITH_ICEDTEA, test "${with_icedtea}" = true)
 AC_MSG_RESULT(${with_icedtea})
 
+AC_MSG_CHECKING([for a NetBeans installation])
+AC_ARG_WITH([netbeans-home],
+           [AS_HELP_STRING([--with-netbeans-home],
+                            [NetBeans home directory (default is /usr/share/netbeans)])],
+            [
+              if test "x${withval}" = x
+              then
+                SYSTEM_NETBEANS_DIR=/usr/share/netbeans
+              else
+                SYSTEM_NETBEANS_DIR=${withval}
+              fi
+            ],
+            [
+              SYSTEM_NETBEANS_DIR=/usr/share/netbeans
+            ])
+AC_MSG_RESULT([${SYSTEM_NETBEANS_DIR}])
+AC_SUBST(SYSTEM_NETBEANS_DIR)
+
 AC_MSG_CHECKING([whether to build using an existing installation of OpenJDK])
 AC_ARG_WITH([openjdk],
         [AS_HELP_STRING([--with-openjdk],
@@ -91,6 +109,14 @@
 AC_MSG_RESULT(${SYSTEM_ANT_DIR})
 AC_SUBST(SYSTEM_ANT_DIR)
 
+AC_MSG_CHECKING(whether to build VisualVM)
+AC_ARG_ENABLE([visualvm],
+              [AS_HELP_STRING([--enable-visualvm],
+                                         [Enable compilation of visualvm.])],
+              [enable_visualvm="${enableval}"], [enable_visualvm="no"])
+AM_CONDITIONAL(WITH_VISUALVM, test "x${enable_visualvm}" = "xyes")
+AC_MSG_RESULT(${enable_visualvm})
+
 AC_MSG_CHECKING([whether to build the LiveConnect plugin])
 AC_ARG_ENABLE([liveconnect],
               [AS_HELP_STRING([--disable-liveconnect],
@@ -244,6 +270,11 @@
 AC_PATH_TOOL([GCJ],[gcj])
 AC_SUBST([GCJ])
 
+if test "x${enable_visualvm}" = "xyes"
+then
+  FIND_NETBEANS
+fi
+
 if test "x${enable_pulse_java}" = "xyes"
 then
   FIND_PULSEAUDIO
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/visualvm.desktop	Wed Feb 18 14:12:09 2009 -0500
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=OpenJDK VisualVM
+Comment=Integrates commandline JDK tools and profiling capabilites.
+Exec=/usr/bin/jvisualvm
+Icon=java
+Terminal=false
+Type=Application
+Categories=Development;Java;
+Version=1.0