Current version: 0.51.1
jmp.deb [0.48, i386]
jmp.deb [0.42, amd64]
jmp.deb [0.48, ppc]
Building and running JMP under windows
14th Jan 2006 instructions created by Darryl L. Miles.
24th Jan 2006 minor updates by Robert Olofsson.
Some instructions for building JMP with MINGW under CYGWIN on Win32 platform
The following software versions were used:
* Sun JDK 1.5 Update 6
* GTK+ runtime 2.6.9
* CYGWIN 1.5.18 (Installer 2.510.2.2)
* gcc 3.4.4
* binutils 2.16.91
Unfortunatly the GTK+ runtime is exactly that, a runtime, there is no SDK
version distributed. So while the DLLs can be used using linking stage
of the build we need to borrow CYGWINs version of GTKs header files to
I also believe that GTK+ can be built with MSVC6 (according to some GTK+ websites
this looks possible, however the header files for the CYGWIN version of GTK+ don't
compile out of the box with MSVC6. It looks like GCCism's is visible in the header
files, this is the main reason why I have not made the CONFIG_UI_GTK option work for
the MSVC6 build).
Installing GTK+2 Runtime
Download and install the latest GTK stable branch runtime:
Run the windows installer.
This library is used at runtime and during linking of the jmp.dll under MINGW, the
header files we need during complication come from the CYGWIN version
Are you sure you want to build your own?
A ready built jmp.dll binary is available at http://www.khelekore.org/ to
save you the trouble of having to install CYGWIN in order to build JMP for
You are still required to install the GTK+2 runtime in order to use it.
If you still wish to build your own, read on.
Download and install CYGWIN:
During CYGWIN Install all the default packages plus:
+Editors (pick your favorite)
+Devel gcc (and automatic dependancies)
+Devel automake1.4 (and automatic dependancies)
+Devel gettext-devel (and automatic dependancies)
+Devel libtool (and automatic dependancies)
+Devel make (and automatic dependancies)
+Devel pkgconfig (and automatic dependancies)
+Libs libXft (and automatic dependancies)
Note: you also need the pango, atk and glib devel packages (not sure
where they are located /robo).
You should now be able to get a unix-like shell prompt up from CYGWIN.
The autoconf scripts aren't cut out to build with the space character
in the path. The default location for the Sun Java JDK is in
"Program Files", if you run the ./configure as-is the test compile
against the header is not quoted and the output Makefile does not have
have correct escaped quoting around -I arguments to the compiler. Its
just easier to make sure you can reach your JDK through a path that
have no space character in it.
$ ln -s "/cygdrive/c/Program Files/Java/jdk1.5.0_05" "/cygdrive/c/jdk"
$ export JAVA_HOME
$ tar -zxvf jmp-X.YY.tar.gz
$ cd jmp-X.YY
jmp-X.YY $ JAVA_HOME="/cygdrive/c/Program Files/Java/jdk1.5.0_05"
jmp-X.YY $ export JAVA_HOME
jmp-X.YY $ ./configure
jmp-X.YY $ make
jmp-X.YY $ java -Xrunjmp -classpath project\classes your.package.ClassName args
This will build a cygjmp.dll, not very useful. Read on for how to build the
Useful Shell Script
Run ./configure, then the environment should be ready to use the script below.
You will have to update libs_flags to the place where you installed the
gtk+ runtime. C:\Program Files\Common Files\GTK\2.0\bin is the default
location, but check that it is correct for your setup.
cflags_flags=$(pkg-config.exe --cflags gtk+-2.0 gthread-2.0 glib-2.0)
libs_flags=$(pkg-config.exe --libs gtk+-2.0 gthread-2.0 glib-2.0)
if grep -q "CONFIG_UI_NONE 1" config.h
echo "CONFIG: NOUI"
ls *.c|egrep -v "(ui_gtk|test.c)" > tmp.cfiles.txt
echo "CONFIG: GTK"
ls *.c|egrep -v "(no-ui.c|test.c)" > tmp.cfiles.txt
libs_flags="-L/cygdrive/c/Program Files/Common Files/GTK/2.0/bin"
libs_flags2="-lgdk-win32-2.0-0 -lglib-2.0-0 -lgobject-2.0-0 -lgthread-2.0-0 -lgtk-win32-2.0-0"
# For NOUI build remove the quotes around the $libs_flags
gcc -shared -DHAVE_CONFIG_H \
-I. -I$JAVA_HOME/include/ \
-mno-cygwin -mms-bitfields \
-O3 -Wall -DDLL_EXPORT -DPIC $(cat tmp.cfiles.txt) \
-o jmp.dll \
You need to make the jmp.dll and all the gtk+ dlls available to the JVM.
The easiest way to do this is to set the PATH variable.
$JAVA_HOME\bin\java -Xrunjmp -classpath project\classes your.package.ClassName args
For help information about JMP startup options try:
$JAVA_HOME\bin\java -Xrunjmp:help -classpath project\classes your.package.ClassName args