Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products


A JavaDeps-alu/lu2.x package is required for dependency based java support in Nokia nmake lu3.4, lu3.5, lu3.6, lu3.7, lu3.8, alu3.9, 10, 11, 12, 13, 14, 15, and 16. JavaDeps is written in Java and is licensed under the GPLv2. Source and binary packages can be downloaded below. For information on building Java code with nmake see Building Java Code.

Download | Requirements | Installation | Contents | Change Log


Each JavaDeps package works across all supported nmake platforms.

Binary Package Release Info nmake Release Compatibility
JavaDeps-alu2.3.tar.Z Notes - 07/2012 16, 15, 14, 13, 12, 11, 10, alu3.9, lu3.8
JavaDeps-alu2.2.6.tar.Z Notes - 07/2011 16, 15, 14, 13, 12, 11, 10, alu3.9, lu3.8
JavaDeps-alu2.2.5.tar.Z Notes - 07/2009 16, 15, 14, 13, 12, 11, 10, alu3.9, lu3.8
JavaDeps-alu2.2.4.tar.Z Notes - 07/2008 16, 15, 14, 13, 12, 11, 10, alu3.9, lu3.8
JavaDeps-alu2.2.3.tar.Z Notes - 03/2008 alu3.9, lu3.8
JavaDeps-lu2.2.2.tar.Z Notes - 07/2006 alu3.9, lu3.8
JavaDeps-lu2.2.1.tar.Z Notes - 01/2005 lu3.7, lu3.6-uwin, lu3.6, lu3.5, lu3.4
JavaDeps-lu2.2.tar.Z Notes - 10/2004 lu3.7, lu3.6-uwin, lu3.6, lu3.5, lu3.4
JavaDeps-lu2.1.3.tar.Z Notes - 07/2004 lu3.7-sfu, lu3.6-uwin, lu3.6, lu3.5, lu3.4
JavaDeps-lu2.1.2.tar.Z Notes - 04/2004 lu3.6-uwin, lu3.6, lu3.5, lu3.4
JavaDeps-lu2.1.1.tar.Z Notes - 09/2003 lu3.6, lu3.5, lu3.4
JavaDeps-lu2.1.tar.Z Notes - 06/2003 lu3.6, lu3.5, lu3.4
JavaDeps-lu2.0.3.tar.Z Notes - 11/2002 lu3.5, lu3.4
JavaDeps-lu2.0.2.tar.Z Notes - 03/2002 lu3.5, lu3.4
JavaDeps-lu2.0.1.tar.Z Notes - 12/2001 lu3.5, lu3.4
JavaDeps-lu2.0.tar.Z Notes - 06/2001 lu3.5, lu3.4

[Warning] WARNING: 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.

Source Code

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.

JavaDeps Release Tested Runtimes
jdeps alu2.3 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
jdeps lu2.2 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 jdk 1.1.5[*]
jdeps lu2.0, lu2.0.1, lu2.0.2, lu2.0.3 jdk 1.1.5[*]

[*] 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.)

  1. If necessary rename the downloaded file (see warning above.)
  2. 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 automatically.
    $ mkdir javadeps
    $ cd javadeps
  3. Unpack the tar file using the following command.
    $ zcat JavaDeps-alu2.3.tar.Z | tar xvf -
  4. If you installed somewhere other than <nmake_root>/../javadeps/, 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:

  1. jdeps
    It is a shell script used as an interface to invoke JavaDeps that is a class dependency analyzing tool.
  2. jdeps.jar
    This jar file contains all the necessary classes of JavaDeps.
  3. synconfig
    It is a syntax configuration file used to configure the output format of JavaDeps.
  5. README.jdeps
    This file.
    JavaDeps installation instructions for Nokia nmake users.

Change Log


The following changes are in Javadeps alu2.3

  1. 120002 - support java 7 language changes


The following changes are in Javadeps alu2.2.6

  1. 070000 - bad packageroot error building in java root
  2. 070001 - bad packageroot error with vpathed java files
  3. 100000 - jdeps symlink infinite loop


The following changes are in Javadeps alu2.2.5

  1. 050003 - string index out of range
  2. 090000 - jdeps NullPointerException on unreadable directory


The following changes are in Javadeps alu2.2.4

  1. 050002 - bad package name error
  2. 060000 - jdeps exception error without --vpath arg
  3. 060002 - jdk 1.4.2 class names


The following changes are in Javadeps alu2.2.3

  1. 080000 - jdeps crashes on annotation


The following changes are in Javadeps lu2.2.2

  1. 040002 - certain vpath crashes jdeps
  2. 040005 - converting to relative path gives bad path
  3. 040020 - remove vroot offset from java source file
  4. 050001 - exception error when JAVAPACKAGEROOT too deep
  5. 050005 - jdeps incremental scan gives incomplete dependencies
  6. 060001 - javadeps misses import pkg.class dependencies
  7. 060003 - bad package error on interix


The following changes are in Javadeps lu2.2.1

  1. 040015 - ignore jar files that contain no class files
  2. 040017 - typo in warning message
  3. 040018 - support java build in different node other than src node
  4. 040019 - exception error from empty java file
  5. 040021 - exception error for unnamed package
  6. 040022 - error on java file with commented out contents


The following changes are in Javadeps lu2.2

  1. 040000 - support java 1.5
  2. 040008 - package hierarchy detection
  3. 040011 - JavaDeps Fails to Correctly Handle an Inner-Class Reference
  4. 040012 - Class-Naming Difference in Java 1.5
  5. Notes:
    • JDK version 1.2.1 or higher is now required on the PATH to run Javadeps
    • Changes with the assert and 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

  1. 040004 - support Java on SFU/Interix


The following problems are fixed in Javadeps lu2.1.2

  1. 030005 - improve javadeps performance
  2. 040001 - support Java on UWIN


The following problems are fixed in Javadeps lu2.1.1

  1. 030003 - reference jar files using relative path in localjavadeps
  2. 030006 - jdeps updating globaljavadeps down vpath


The following problems are fixed in Javadeps lu2.1

  1. 010010 - jdeps error when no closing comments
  2. 020002 - allow to rename GLOBALJAVADEPS
  3. 030002 - assertion support for jdk1.4.x


The following problems are fixed in Javadeps lu2.0.3

  1. 020001 - javadeps exception error
  2. 020003 - javadeps does not exit with error code


The following problems are fixed in Javadeps lu2.0.2

  1. 010014 - javadeps hangs on Solaris java 1.3 and 1.4


The following problems are fixed in Javadeps lu2.0.1

  1. 010007 - jdeps hangs on HP java 1.3
  2. 010009 - errors with long classpath


Note: The Javadeps-lu2.0 version does not support Java 1.3 on the HP platform.

  1. 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.
  2. 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.
  3. 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 efficient.
  4. 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.
  5. 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.
  6. Improved dumping efficiency
    The dumping process of JavaDeps has been optimized which can improve its efficiency dramatically.
  7. Optimized memory usage
    JavaDeps has been optimized to reduce its memory consumption, with which JavaDeps is able to support larger projects.
  8. 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.
  9. 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.
  10. 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 declaration.
  11. 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 each stage.
Last Update: Tuesday,16-Aug-2016 16:55:02 EDT