A JavaDeps-alu/lu2.x package is required for
dependency based java support
in Nokia nmake
JavaDeps is written in Java and is licensed under the
Source and binary packages can be downloaded below.
For information on building Java code with nmake see
Building Java Code.
Each JavaDeps package works across all supported nmake platforms.
||nmake Release Compatibility
||Notes - 07/2012
||Notes - 07/2011
||Notes - 07/2009
||Notes - 07/2008
||Notes - 03/2008
||Notes - 07/2006
||Notes - 01/2005
||Notes - 10/2004
||Notes - 07/2004
||Notes - 04/2004
||Notes - 09/2003
||Notes - 06/2003
||Notes - 11/2002
||Notes - 03/2002
||Notes - 12/2001
||Notes - 06/2001
When downloading to a Windows PC the filename may be altered.
If the suffix (.Z, .gz,
.tgz) is changed the file must be renamed back to
its original filename to uncompress it on the target system.
You do not need the source code to use the JavaDeps package. However, if you
wish to look at the code it is available below. The source package contains
everything from the binary package plus the source files. If you download
the source package you do not need the binary package.
The Java runtime requirements are for JavaDeps only.
The project being built is not restricted to the same
Java release used to run JavaDeps. A required Java
runtime must be in the PATH.
||jdk 1.2.1[*], 1.3.1, 1.4.2, 1.5.0, 1.6.0, 1.7.0
|jdeps lu2.2.1, lu2.2.2, alu2.2.3, alu2.2.4, alu2.2.5, alu2.2.6
||jdk 1.2.1[*], 1.3.1, 1.4.2, 1.5.0, 1.6.0
||jdk 1.2.1[*], 1.3.1, 1.4.0, 1.5.0
|jdeps lu2.1, lu2.1.1, lu2.1.2, lu2.1.3
|jdeps lu2.0, lu2.0.1, lu2.0.2, lu2.0.3
[*] Minimum required Java runtime.
JavaDeps is expected to work on any runtime with a version
greater than or equal to the required minimum.
The installation instructions are the same for both the binary and
source packages. (You do not need both packages.)
- If necessary rename the downloaded file
(see warning above.)
- Go to the directory where you want to install the software.
New files will be placed in this directory so it is recommended you
create a new directory for the JavaDeps package. The software can
be installed anywhere, but if it is installed at
<nmake_root>/../javadeps/ nmake will find it
$ mkdir javadeps
$ cd javadeps
- Unpack the tar file using the following command.
$ zcat JavaDeps-alu2.3.tar.Z | tar xvf -
- If you installed somewhere other than
then set the directory as variable JDEPSDIR=<javadeps_root>.
Set JDEPSDIR in your makefiles, on the nmake command line, or exported
in the shell environment.
The binary package contains the following files:
It is a shell script used as an interface to invoke JavaDeps that
is a class dependency analyzing tool.
This jar file contains all the necessary classes of JavaDeps.
It is a syntax configuration file used to configure the output
format of JavaDeps.
GNU GENERAL PUBLIC LICENSE
JavaDeps installation instructions for Nokia nmake users.
The following changes are in Javadeps alu2.3
- 120002 - support java 7 language changes
The following changes are in Javadeps alu2.2.6
- 070000 - bad packageroot error building in java root
- 070001 - bad packageroot error with vpathed java files
- 100000 - jdeps symlink infinite loop
The following changes are in Javadeps alu2.2.5
- 050003 - string index out of range
- 090000 - jdeps NullPointerException on unreadable directory
The following changes are in Javadeps alu2.2.4
- 050002 - bad package name error
- 060000 - jdeps exception error without --vpath arg
- 060002 - jdk 1.4.2 class names
The following changes are in Javadeps alu2.2.3
- 080000 - jdeps crashes on annotation
The following changes are in Javadeps lu2.2.2
- 040002 - certain vpath crashes jdeps
- 040005 - converting to relative path gives bad path
- 040020 - remove vroot offset from java source file
- 050001 - exception error when JAVAPACKAGEROOT too deep
- 050005 - jdeps incremental scan gives incomplete dependencies
- 060001 - javadeps misses import pkg.class dependencies
- 060003 - bad package error on interix
The following changes are in Javadeps lu2.2.1
- 040015 - ignore jar files that contain no class files
- 040017 - typo in warning message
- 040018 - support java build in different node other than src node
- 040019 - exception error from empty java file
- 040021 - exception error for unnamed package
- 040022 - error on java file with commented out contents
The following changes are in Javadeps lu2.2
- 040000 - support java 1.5
- 040008 - package hierarchy detection
- 040011 - JavaDeps Fails to Correctly Handle an Inner-Class Reference
- 040012 - Class-Naming Difference in Java 1.5
- JDK version 1.2.1 or higher is now required on the PATH to run Javadeps
- Changes with the
enum keywords for java 1.5 support could impact previous java builds
- Significant performance improvements in Java package dependency analysis; measurements of dependency analysis times for large Java projects (in the range of 700-1000 files per project) yield speedups of 5 to 6 times times compared with jdeps2.1.
The following problems are fixed in Javadeps lu2.1.3
- 040004 - support Java on SFU/Interix
The following problems are fixed in Javadeps lu2.1.2
- 030005 - improve javadeps performance
- 040001 - support Java on UWIN
The following problems are fixed in Javadeps lu2.1.1
- 030003 - reference jar files using relative path in localjavadeps
- 030006 - jdeps updating globaljavadeps down vpath
The following problems are fixed in Javadeps lu2.1
- 010010 - jdeps error when no closing comments
- 020002 - allow to rename GLOBALJAVADEPS
- 030002 - assertion support for jdk1.4.x
The following problems are fixed in Javadeps lu2.0.3
- 020001 - javadeps exception error
- 020003 - javadeps does not exit with error code
The following problems are fixed in Javadeps lu2.0.2
- 010014 - javadeps hangs on Solaris java 1.3 and 1.4
The following problems are fixed in Javadeps lu2.0.1
- 010007 - jdeps hangs on HP java 1.3
- 010009 - errors with long classpath
Note: The Javadeps-lu2.0 version does not support Java 1.3 on the HP platform.
- Incremental building
Original JavaDeps only works in a global way. That means all the
.java files have to be piped to it to analyze even though only a few
files have been modified. With this version JavaDeps only analyze the
modified source files and is able to merge local dependency table
with previous global dependency table. Such incremental building can
improve parsing efficiency.
- Introduction of classpath option
Originally, JavaDeps can only generate dependencies enclosed in the
scope of analyzed source files. With classpath option dependencies on
external classes or jar/zip files can be imported.
- Flexible output syntax configuration
The primitive output of JavaDeps cannot fit into certain make tool
directly. In this package the output syntax can be configured using
the synconfig file, which can make format transformation more
- Vpath capability
The JavaDeps output has been modified to strip off vpath prefix
such that it can work with nmake across vpath nodes. In addition,
JavaDeps has been enabled to search files across vpath nodes when
merging with global dependency table.
- Reduced dumped file size
JavaDeps output has been optimized by eliminating the redundant
information. In a large project such optimization can greatly reduce
the dumped file size.
- Improved dumping efficiency
The dumping process of JavaDeps has been optimized which can improve
its efficiency dramatically.
- Optimized memory usage
JavaDeps has been optimized to reduce its memory consumption, with
which JavaDeps is able to support larger projects.
- Sorting classes within dependency cycles
When a dependency cycle is detected the relevant nodes will be
assembled into a new container node. However, in some cases certain
changes to class declarations may affect the assembling order, which
will lead order-sensitive nmake to rebuild the relevant classes.
To avoid unnecessarily rebuilding classes within a dependency cycle
the classes will be sorted lexicographically before dumping.
- Changed convention to name inner classes
The original JavaDeps adopts a different convention to name inner classes
than javac. Suppose we have two local inner classes, In1 and In2, declared
within top-level class A. Original jdeps will name them as A$1$In1,
A$2$In2. In contrast, javac will name them as A$1$In1, A$1$In2. Despite
this there also exist other differences. Now JavaDeps has been modified
to name inner classes in the same way as javac.
- New Java syntax specification file
To support "strictfp" keyword we use Java1.2.jj to generate Java
syntax parser. In addition, we also fix a bug in Java1.2.jj to enable
the parser to identify ";" behind the class body within interface
- Performance testing capability
When --debug option is on JavaDeps can report more information on its
execution status including memory usage, beginning and ending time of
Last Update: Tuesday,16-Aug-2016 16:55:02 EDT