changeset 995:595e10c7090f

2008-07-29 Joshua Sumali <jsumali@redhat.com> * .hgignore: Updated. * Makefile.am (stamps/visualvm.stamp): New target. (stamps/nbplatform.stamp): Likewise. (clean-visualvm): Likewise. (clean-nbplatform): Likewise. (visualvm): Likewise. (nbplatform): Likewise. (stamps/download.stamp): Download visualvm and netbeans sources. (stamps/extract.stamp): Extract visualvm and netbeans sources. (distclean-local): Add visualvm and netbeans. (.PHONY): Add clean-visualvm and clean-nbplatform. * README: Added VisualVM section. * acinclude.m4 (WITH_VISUALVM_SRC_ZIP)i: New. (WITH_NETBEANS_PLATFORM_SRC_ZIP): Likewise. (WITH_NETBEANS_PROFILER_SRC_ZIP): Likewise. * configure.ac: Use WITH_VISUALVM_SRC_ZIP, WITH_NETBEANS_PLATFORM_SRC_ZIP, and WITH_NETBEANS_PROFILER_SRC_ZIP. Also add --enable-visualvm option.
author Joshua Sumali <jsumali@redhat.com>
date Tue, 29 Jul 2008 15:23:37 -0400
parents 63e255f2fa8e
children 942d8f1a8175
files .hgignore ChangeLog Makefile.am README acinclude.m4 configure.ac
diffstat 6 files changed, 254 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Sun Jul 27 13:32:59 2008 +0200
+++ b/.hgignore	Tue Jul 29 15:23:37 2008 -0400
@@ -6,6 +6,8 @@
 aclocal.m4
 autom4te.cache
 cacao
+netbeans
+visualvm
 openjdk
 bootstrap
 debian
--- a/ChangeLog	Sun Jul 27 13:32:59 2008 +0200
+++ b/ChangeLog	Tue Jul 29 15:23:37 2008 -0400
@@ -1,3 +1,24 @@
+2008-07-29  Joshua Sumali  <jsumali@redhat.com>
+
+	* .hgignore: Updated.
+	* Makefile.am (stamps/visualvm.stamp): New target.
+	(stamps/nbplatform.stamp): Likewise.
+	(clean-visualvm): Likewise.
+	(clean-nbplatform): Likewise.
+	(visualvm): Likewise.
+	(nbplatform): Likewise.
+	(stamps/download.stamp): Download visualvm and netbeans sources.
+	(stamps/extract.stamp): Extract visualvm and netbeans sources.
+	(distclean-local): Add visualvm and netbeans.
+	(.PHONY): Add clean-visualvm and clean-nbplatform.
+	* README: Added VisualVM section.
+	* acinclude.m4	(WITH_VISUALVM_SRC_ZIP)i: New.
+	(WITH_NETBEANS_PLATFORM_SRC_ZIP): Likewise.
+	(WITH_NETBEANS_PROFILER_SRC_ZIP): Likewise.
+	* configure.ac: Use WITH_VISUALVM_SRC_ZIP,
+	WITH_NETBEANS_PLATFORM_SRC_ZIP, and	WITH_NETBEANS_PROFILER_SRC_ZIP. 
+	Also add --enable-visualvm option.
+
 2008-07-27  Matthias Klose  <doko@ubuntu.com>
 
 	* patches/icedtea-zero.patch: Add support for hppa.
--- a/Makefile.am	Sun Jul 27 13:32:59 2008 +0200
+++ b/Makefile.am	Tue Jul 29 15:23:37 2008 -0400
@@ -5,6 +5,10 @@
 CACAO_VERSION = 0.99.2
 CACAO_MD5SUM = a2865f47535f6dc3def268c0055ff20a
 
+NETBEANS_PLATFORM_MD5SUM = 77c79b3a7d3dbe6a8858639f8d564a38
+NETBEANS_PROFILER_MD5SUM = ff8e8abc42df6c6749e6b02bcf7bb0a5
+VISUALVM_MD5SUM = 4b55bc623418818793392bb233da2927
+
 if ENABLE_LIVECONNECT
 ICEDTEAPLUGIN_CLEAN = clean-IcedTeaPlugin
 ICEDTEAPLUGIN_TARGET = IcedTeaPlugin.so
@@ -50,6 +54,8 @@
 endif
 endif
 	rm -rf cacao
+	rm -rf visualvm
+	rm -rf netbeans
 	rm -f gcjwebplugin.so
 
 install:
@@ -63,7 +69,7 @@
 	clean-tools-jar clean-shared-objects \
 	clean-copy clean-hotspot-tools clean-rt $(GCJWEBPLUGIN_CLEAN) \
 	$(ICEDTEAPLUGIN_CLEAN) hotspot hotspot-helper clean-extra \
-	clean-jtreg clean-jtreg-reports
+	clean-jtreg clean-jtreg-reports clean-visualvm clean-nbplatform
 
 EXTRA_DIST = rt generated $(ICEDTEA_PATCHES) $(ICEDTEA_FSG_PATCHES) \
 	$(ICEDTEA_ECJ_PATCH) gcjwebplugin.cc tools-copy contrib ports \
@@ -263,6 +269,29 @@
   CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.gz
 endif
 
+NETBEANS_PLATFORM_URL = http://download.netbeans.org/netbeans/6.0/final/zip/
+
+if USE_ALT_NETBEANS_PLATFORM_SRC_ZIP
+  NETBEANS_PLATFORM_SRC_ZIP = $(ALT_NETBEANS_PLATFORM_SRC_ZIP)
+else
+  NETBEANS_PLATFORM_SRC_ZIP = netbeans-6.0.1-200801291616-platform-src.zip
+endif
+
+NETBEANS_PROFILER_URL = http://icedtea.classpath.org/visualvm/
+
+if USE_ALT_NETBEANS_PROFILER_SRC_ZIP
+  NETBEANS_PROFILER_SRC_ZIP = $(ALT_NETBEANS_PROFILER_SRC_ZIP)
+else
+  NETBEANS_PROFILER_SRC_ZIP = netbeans-profiler-visualvm_preview2.tar.gz
+endif
+
+VISUALVM_URL = http://icedtea.classpath.org/visualvm/
+
+if USE_ALT_VISUALVM_SRC_ZIP
+  VISUALVM_SRC_ZIP = $(ALT_VISUALVM_SRC_ZIP)
+else
+  VISUALVM_SRC_ZIP = visualvm-20080728-src.tar.gz
+endif
 
 stamps/download.stamp:
 if USE_ALT_OPENJDK_SRC_ZIP
@@ -293,6 +322,46 @@
 endif
 endif
 endif
+if WITH_VISUALVM
+if USE_ALT_NETBEANS_PLATFORM_SRC_ZIP
+else
+	if ! echo "$(NETBEANS_PLATFORM_MD5SUM) $(NETBEANS_PLATFORM_SRC_ZIP)" \
+	  | $(MD5SUM) --check ; \
+	then \
+	  if [ $(NETBEANS_PLATFORM_SRC_ZIP) ] ; \
+	  then \
+	    mv $(NETBEANS_PLATFORM_SRC_ZIP) $(NETBEANS_PLATFORM_SRC_ZIP).old ; \
+	  fi ; \
+	  $(WGET) $(NETBEANS_PLATFORM_URL)$(NETBEANS_PLATFORM_SRC_ZIP) \
+	    -O $(NETBEANS_PLATFORM_SRC_ZIP) ; \
+	fi
+endif
+if USE_ALT_NETBEANS_PROFILER_SRC_ZIP
+else
+	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
+endif
+if USE_ALT_VISUALVM_SRC_ZIP
+else
+	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
+endif
 	mkdir -p stamps
 	touch stamps/download.stamp
 
@@ -302,6 +371,11 @@
 if WITH_CACAO
 	rm -f $(CACAO_SRC_ZIP)
 endif
+if WITH_VISUALVM
+	rm -f $(VISUALVM_SRC_ZIP) 
+	rm -f $(NETBEANS_PLATFORM_SRC_ZIP) 
+	rm -f $(NETBEANS_PROFILER_SRC_ZIP)
+endif
 
 # Link ports sources into tree
 stamps/ports.stamp: stamps/extract.stamp
@@ -452,6 +526,18 @@
 	fi
 endif
 endif
+if WITH_VISUALVM
+	if ! test -d visualvm ; \
+	then \
+	  $(TAR) xf $(VISUALVM_SRC_ZIP) ; \
+	fi
+	if ! test -d netbeans ; \
+	then \
+	  mkdir netbeans ; \
+	  $(UNZIP) -q $(NETBEANS_PLATFORM_SRC_ZIP) -d netbeans ; \
+	  $(TAR) xf $(NETBEANS_PROFILER_SRC_ZIP) -C netbeans ; \
+	fi
+endif
 	if [ ! -e $(abs_top_builddir)/generated ]; then \
 	  cp -a $(abs_top_srcdir)/generated $(abs_top_builddir); \
 	  find $(abs_top_builddir)/generated -type f -exec chmod 640 '{}' ';' \
@@ -656,7 +742,7 @@
   ICEDTEA_HOME = $(SYSTEM_ICEDTEA_DIR)
 else
   BOOTSTRAP_DIRECTORY_STAMP = stamps/bootstrap-directory.stamp
-  ICEDTEA_HOME = icedtea
+  ICEDTEA_HOME = $(abs_top_srcdir)/bootstrap/icedtea
 endif
 endif
 
@@ -776,7 +862,7 @@
 	stamps/hotspot-tools.stamp stamps/plugs.stamp \
 	stamps/ports.stamp stamps/patch.stamp stamps/overlay.stamp \
 	$(GCJWEBPLUGIN_TARGET) $(ICEDTEAPLUGIN_TARGET) \
-	extra-lib/about.jar stamps/cacao.stamp
+	extra-lib/about.jar stamps/cacao.stamp stamps/visualvm.stamp
 	$(MAKE) \
 	  $(ICEDTEA_ENV) \
 	  -C openjdk/control/make/ \
@@ -794,6 +880,25 @@
 	  $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR)
 endif
 endif
+if WITH_VISUALVM
+	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \
+	sed "s/APPNAME=\`basename.*\`/APPNAME=visualvm/" \
+	  visualvm/visualvm/launcher/visualvm >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	chmod a+x $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \
+	cp visualvm/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 profiler2 >> \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \
+	cp -r visualvm/visualvm/build/cluster \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans/platform7 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \
+	cp -r netbeans/nbbuild/netbeans/profiler2 \
+	  $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm
+endif
 	cp $(abs_top_srcdir)/rt/net/sourceforge/jnlp/resources/about.jnlp \
 	  extra-lib/about.jar \
 	  $(BUILD_OUTPUT_DIR)/j2re-image/lib
@@ -1244,6 +1349,52 @@
 dist-openjdk-fsg: stamps/patch-fsg.stamp
 	$(ZIP) -r openjdk-fsg-$(OPENJDK_VERSION) openjdk/
 
+# VisualVM
+
+stamps/visualvm.stamp: $(BOOTSTRAP_DIRECTORY_STAMP) stamps/download.stamp \
+	stamps/extract.stamp stamps/nbplatform.stamp
+if WITH_VISUALVM
+	cd visualvm/visualvm ; \
+	ln -s $(abs_top_srcdir)/netbeans/nbbuild/netbeans netbeans ; \
+	JAVA_HOME=$(ICEDTEA_HOME) $(ANT) build
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-visualvm:
+	rm -rf visualvm
+	rm -f stamps/visualvm.stamp
+
+# Netbeans platform and profiler
+
+stamps/nbplatform.stamp: $(BOOTSTRAP_DIRECTORY_STAMP) stamps/extract.stamp \
+	stamps/download.stamp
+if WITH_VISUALVM
+	cd netbeans/nbbuild && JAVA_HOME=$(ICEDTEA_HOME) $(ANT) \
+	  -Dpermit.jdk6.builds=true build-platform ; \
+	cd ../profiler && find . -iname '*.so' | xargs rm ; \
+	cd libs/jfluid/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 ../../../.. ; \
+	for dir in jfluid jfluid-ui common ; do \
+	  JAVA_HOME=$(ICEDTEA_HOME) $(ANT) -Dpermit.jdk6.builds=true \
+	    -f libs/$$dir/build.xml ; \
+	done ; \
+	JAVA_HOME=$(ICEDTEA_HOME) $(ANT) -Dpermit.jdk6.builds=true \
+	  -f modules/main/build.xml ;
+endif
+	mkdir -p stamps
+	touch $@
+
+clean-nbplatform:
+	rm -rf netbeans
+	rm -f stamps/nbplatform.stamp
 
 # Target Aliases
 # ===============
@@ -1258,6 +1409,10 @@
 
 cacao: stamps/cacao.stamp
 
+visualvm: stamps/visualvm.stamp
+
+nbplatform: stamps/nbplatform.stamp
+
 copy-source-files: stamps/copy-source-files.stamp
 
 download: stamps/download.stamp
--- a/README	Sun Jul 27 13:32:59 2008 +0200
+++ b/README	Tue Jul 29 15:23:37 2008 -0400
@@ -146,3 +146,15 @@
 
 The environment variable CACAO_CONFIGURE_ARGS can be used to pass
 additional arguments to the cacao configure.
+
+VisualVM
+========
+
+Passing --enable-visualvm to configure will build the VisualVM profiling
+and troubleshooting tool. NetBeans platform7 and a modified version of
+NetBeans profiler2 (visualvm_preview2) are built from source before building
+VisualVM. A binary launcher jvisualvm is placed in the
+openjdk/control/build/arch/j2sdk-image/bin directory after the jdk is built.
+Other useful VisualVM configure options include --with-visualvm-src-zip,
+--with-netbeans-platform-src-zip, and --with-netbeans-profiler-src-zip which
+can be used to prevent re-downloading of the source zips.
--- a/acinclude.m4	Sun Jul 27 13:32:59 2008 +0200
+++ b/acinclude.m4	Tue Jul 29 15:23:37 2008 -0400
@@ -417,6 +417,57 @@
   AC_SUBST(ALT_OPENJDK_SRC_ZIP)
 ])
 
+AC_DEFUN([WITH_VISUALVM_SRC_ZIP],
+[
+  AC_MSG_CHECKING(visualvm source zip)
+  AC_ARG_WITH([visualvm-src-zip],
+              [AS_HELP_STRING(--with-visualvm-src-zip, specify the location of the visualvm source zip)],
+  [
+    ALT_VISUALVM_SRC_ZIP=${withval}
+    AM_CONDITIONAL(USE_ALT_VISUALVM_SRC_ZIP, test x = x)
+  ],
+  [ 
+    ALT_VISUALVM_SRC_ZIP="not specified"
+    AM_CONDITIONAL(USE_ALT_VISUALVM_SRC_ZIP, test x != x)
+  ])
+  AC_MSG_RESULT(${ALT_VISUALVM_SRC_ZIP})
+  AC_SUBST(ALT_VISUALVM_SRC_ZIP)
+])
+
+AC_DEFUN([WITH_NETBEANS_PLATFORM_SRC_ZIP],
+[
+  AC_MSG_CHECKING(netbeans platform source zip)
+  AC_ARG_WITH([netbeans-platform-src-zip],
+              [AS_HELP_STRING(--with-netbeans-platform-src-zip, specify the location of the netbeans platform source zip)],
+  [
+    ALT_NETBEANS_PLATFORM_SRC_ZIP=${withval}
+    AM_CONDITIONAL(USE_ALT_NETBEANS_PLATFORM_SRC_ZIP, test x = x)
+  ],
+  [ 
+    ALT_NETBEANS_PLATFORM_SRC_ZIP="not specified"
+    AM_CONDITIONAL(USE_ALT_NETBEANS_PLATFORM_SRC_ZIP, test x != x)
+  ])
+  AC_MSG_RESULT(${ALT_NETBEANS_PLATFORM_SRC_ZIP})
+  AC_SUBST(ALT_NETBEANS_PLATFORM_SRC_ZIP)
+])
+
+AC_DEFUN([WITH_NETBEANS_PROFILER_SRC_ZIP],
+[
+  AC_MSG_CHECKING(netbeans profiler source zip)
+  AC_ARG_WITH([netbeans-profiler-src-zip],
+              [AS_HELP_STRING(--with-netbeans-src-zip, specify the location of the netbeans profiler source zip)],
+  [
+    ALT_NETBEANS_PROFILER_SRC_ZIP=${withval}
+    AM_CONDITIONAL(USE_ALT_NETBEANS_PROFILER_SRC_ZIP, test x = x)
+  ],
+  [ 
+    ALT_NETBEANS_PROFILER_SRC_ZIP="not specified"
+    AM_CONDITIONAL(USE_ALT_NETBEANS_PROFILER_SRC_ZIP, test x != x)
+  ])
+  AC_MSG_RESULT(${ALT_NETBEANS_PROFILER_SRC_ZIP})
+  AC_SUBST(ALT_NETBEANS_PROFILER_SRC_ZIP)
+])
+
 AC_DEFUN([FIND_XALAN2_JAR],
 [
   AC_ARG_WITH([xalan2-jar],
--- a/configure.ac	Sun Jul 27 13:32:59 2008 +0200
+++ b/configure.ac	Tue Jul 29 15:23:37 2008 -0400
@@ -116,6 +116,13 @@
 	      [ENABLE_DOCS="${enableval}"], [ENABLE_DOCS='yes'])
 AM_CONDITIONAL([ENABLE_DOCS], [test x$ENABLE_DOCS = xyes])
 
+AC_ARG_ENABLE([visualvm],
+              [AS_HELP_STRING([--enable-visualvm],
+			                  [Enable compilation of visualvm. Requires that \
+							  --with-netbeans-dir=DIR is specified.])],
+              [enable_visualvm="yes"], [enable_visualvm="no"])
+AM_CONDITIONAL(WITH_VISUALVM, test "x${enable_visualvm}" = "xyes")
+
 AC_ARG_WITH([icedtea],
         [AS_HELP_STRING([--with-icedtea],
                         [build IcedTea with system-installed IcedTea])],
@@ -210,6 +217,9 @@
 FIND_RHINO_JAR
 WITH_OPENJDK_SRC_ZIP
 WITH_OPENJDK_SRC_DIR
+WITH_VISUALVM_SRC_ZIP
+WITH_NETBEANS_PLATFORM_SRC_ZIP
+WITH_NETBEANS_PROFILER_SRC_ZIP
 AC_CHECK_WITH_CACAO
 AC_CHECK_WITH_CACAO_HOME
 AC_CHECK_WITH_CACAO_SRC_ZIP