From 666153e3b36735345aee68e0777efc0ea3d38a50 Mon Sep 17 00:00:00 2001 From: Greg Lewis Date: Thu, 15 May 2003 16:34:36 +0000 Subject: . Add the java/jmp port. JMP is a profiler for java that can be used to trace objects usage and method timings. JMP uses the JVMPI interface to gather statistics and interact with the JVM. JMP uses a GTK+ interface to show the status. PR: 47151, 48474, 50325 Submitted by: Ronald Klop --- java/Makefile | 1 + java/jmp/Makefile | 43 ++++++++++++++++++++++++++++++++ java/jmp/distinfo | 1 + java/jmp/files/patch-Makefile.am | 19 ++++++++++++++ java/jmp/files/patch-Makefile.in | 19 ++++++++++++++ java/jmp/files/patch-configure | 12 +++++++++ java/jmp/files/patch-instance_owners.c | 15 ++++++++++++ java/jmp/files/patch-jmp.c | 45 ++++++++++++++++++++++++++++++++++ java/jmp/pkg-descr | 8 ++++++ java/jmp/pkg-plist | 5 ++++ 10 files changed, 168 insertions(+) create mode 100644 java/jmp/Makefile create mode 100644 java/jmp/distinfo create mode 100644 java/jmp/files/patch-Makefile.am create mode 100644 java/jmp/files/patch-Makefile.in create mode 100644 java/jmp/files/patch-configure create mode 100644 java/jmp/files/patch-instance_owners.c create mode 100644 java/jmp/files/patch-jmp.c create mode 100644 java/jmp/pkg-descr create mode 100644 java/jmp/pkg-plist diff --git a/java/Makefile b/java/Makefile index 062aeacd56af..ce4361ae943d 100644 --- a/java/Makefile +++ b/java/Makefile @@ -51,6 +51,7 @@ SUBDIR += jikes SUBDIR += jlex SUBDIR += jlint + SUBDIR += jmp SUBDIR += jre SUBDIR += jsdk SUBDIR += jump diff --git a/java/jmp/Makefile b/java/jmp/Makefile new file mode 100644 index 000000000000..6610824d04f4 --- /dev/null +++ b/java/jmp/Makefile @@ -0,0 +1,43 @@ +# New ports collection makefile for: jmp +# Date created: 11 January 2003 +# Whom: Ronald Klop +# +# $FreeBSD$ +# + +PORTNAME= jmp +PORTVERSION= 0.29 +CATEGORIES= java devel +MASTER_SITES= http://www.khelekore.org/jmp/ + +MAINTAINER= ronald@cs.vu.nl +COMMENT= Java Memory Profiler + +BUILD_DEPENDS= ${LOCALBASE}/bin/bison:${PORTSDIR}/devel/bison +LIB_DEPENDS= intl:${PORTSDIR}/devel/gettext + +.if defined(WITHOUT_X11) +CONFIGURE_ARGS= --enable-noui +.else +USE_XLIB= yes +LIB_DEPENDS+= gtk-x11-2.0:${PORTSDIR}/x11-toolkits/gtk20 +.endif + +.if defined(WITH_DEBUG) +CFLAGS+= -DJMPDEBUG -g +.endif + +USE_LIBTOOL= yes +USE_GMAKE= yes +#USE_JAVA= 1.2+ +USE_JAVA= 1.3 +NEED_JAVAC= yes + +MAKE_FLAGS= JAVAC=${JAVAC} JAVAH=${JAVAH} + +GNU_CONFIGURE= yes + +CONFIGURE_ENV= JAVA_HOME="${JAVA_HOME}" +INSTALLS_SHLIB= yes + +.include diff --git a/java/jmp/distinfo b/java/jmp/distinfo new file mode 100644 index 000000000000..85cfd4775e54 --- /dev/null +++ b/java/jmp/distinfo @@ -0,0 +1 @@ +MD5 (jmp-0.29.tar.gz) = ba923307a088b81f08d94faaf8ca8ade diff --git a/java/jmp/files/patch-Makefile.am b/java/jmp/files/patch-Makefile.am new file mode 100644 index 000000000000..9795b08b1c4e --- /dev/null +++ b/java/jmp/files/patch-Makefile.am @@ -0,0 +1,19 @@ +$FreeBSD$ + +--- Makefile.am Tue May 13 22:11:38 2003 ++++ Makefile.am Tue May 13 22:12:05 2003 +@@ -42,12 +42,12 @@ + gcc -shared -o $@ ${OBJECTS} -Wl,--kill-at + + jmp/JMPController.class : java/jmp/JMPController.java +- javac -sourcepath java -d . $< ++ ${JAVAC} -sourcepath java -d . $< + + # javah does not update file modification time, so touch it + # otherwise we will remake file every time + jmp_JMPController.h: jmp/JMPController.class +- javah jmp.JMPController ++ ${JAVAH} jmp.JMPController + @touch jmp_JMPController.h + + javadocs: diff --git a/java/jmp/files/patch-Makefile.in b/java/jmp/files/patch-Makefile.in new file mode 100644 index 000000000000..847866fdbb7f --- /dev/null +++ b/java/jmp/files/patch-Makefile.in @@ -0,0 +1,19 @@ +$FreeBSD$ + +--- Makefile.in Tue May 13 22:11:43 2003 ++++ Makefile.in Tue May 13 22:12:29 2003 +@@ -598,12 +598,12 @@ + gcc -shared -o $@ ${OBJECTS} -Wl,--kill-at + + jmp/JMPController.class : java/jmp/JMPController.java +- javac -sourcepath java -d . $< ++ ${JAVAC} -sourcepath java -d . $< + + # javah does not update file modification time, so touch it + # otherwise we will remake file every time + jmp_JMPController.h: jmp/JMPController.class +- javah jmp.JMPController ++ ${JAVAH} jmp.JMPController + @touch jmp_JMPController.h + + javadocs: diff --git a/java/jmp/files/patch-configure b/java/jmp/files/patch-configure new file mode 100644 index 000000000000..1e1a32c90f62 --- /dev/null +++ b/java/jmp/files/patch-configure @@ -0,0 +1,12 @@ +$FreeBSD$ + +--- configure.orig Fri Feb 28 08:28:00 2003 ++++ configure Fri Feb 28 08:28:31 2003 +@@ -11241,6 +11241,7 @@ + + + case $target_os in ++ freebsd*) java_os=freebsd;; + linux*) java_os=linux;; + solaris*) java_os=solaris;; + cygwin*) java_os=win32;; diff --git a/java/jmp/files/patch-instance_owners.c b/java/jmp/files/patch-instance_owners.c new file mode 100644 index 000000000000..23bff9b42dbb --- /dev/null +++ b/java/jmp/files/patch-instance_owners.c @@ -0,0 +1,15 @@ +$FreeBSD$ + +--- instance_owners.c Tue May 13 20:28:40 2003 ++++ instance_owners.c Tue May 13 20:28:11 2003 +@@ -11,6 +11,10 @@ + #include + #include + ++#if __FreeBSD__ < 5 ++#define PRId32 "d" ++#endif ++ + enum { + INFO, + NUM_COLUMNS diff --git a/java/jmp/files/patch-jmp.c b/java/jmp/files/patch-jmp.c new file mode 100644 index 000000000000..888f0a5dfd48 --- /dev/null +++ b/java/jmp/files/patch-jmp.c @@ -0,0 +1,45 @@ +$FreeBSD$ + +--- jmp.c Tue May 13 23:17:03 2003 ++++ jmp.c Tue May 13 23:17:47 2003 +@@ -1548,10 +1548,11 @@ + free (cf); + } + +-void enable_method_events () { ++void enable_method_events_and_stacks (int get_stacks) { + /* Ok, the thread stacks are bogous, clear them all and try to get + * real stacks, timing will be a bit bogous, but not to much... + */ ++ if (get_stacks) { + jmphash_lock (threads); + jmphash_lock (methods); + jvmpi->DisableGC (); +@@ -1559,6 +1560,7 @@ + jvmpi->EnableGC (); + jmphash_unlock (methods); + jmphash_unlock (threads); ++ } + + method_profiling = 1; + /* +@@ -1572,6 +1574,10 @@ + jvmpi->EnableEvent (JVMPI_EVENT_METHOD_EXIT, NULL); + } + ++void enable_method_events () { ++ enable_method_events_and_stacks (1); ++} ++ + static void enable_dump_events () { + dump_enabled = 1; + jvmpi->EnableEvent (JVMPI_EVENT_DATA_DUMP_REQUEST, NULL); +@@ -1603,7 +1609,7 @@ + enable_object_events (); + enable_thread_events (); + if (method_profiling) +- enable_method_events (); ++ enable_method_events_and_stacks (0); + if (dump_enabled) + enable_dump_events (); + if (monitor_profiling) diff --git a/java/jmp/pkg-descr b/java/jmp/pkg-descr new file mode 100644 index 000000000000..7e71745723e6 --- /dev/null +++ b/java/jmp/pkg-descr @@ -0,0 +1,8 @@ +JMP is a profiler for java that can be used to trace objects usage and +method timings. JMP uses the JVMPI interface to gather statistics and +interact with the JVM. JMP uses a GTK+ interface to show the status. + +Usage: +java -Xrunjmp + +WWW: http://www.khelekore.org/jmp/ diff --git a/java/jmp/pkg-plist b/java/jmp/pkg-plist new file mode 100644 index 000000000000..60fef1525cfa --- /dev/null +++ b/java/jmp/pkg-plist @@ -0,0 +1,5 @@ +lib/libjmp.la +lib/libjmp.so +lib/libjmp.so.0 +share/locale/de/LC_MESSAGES/jmp.mo +share/locale/sv/LC_MESSAGES/jmp.mo -- cgit v1.2.3