Nokia Networks Home

Nokia nmake Product Builder

Quick Links

Related Products

Release Notes -- Nokia nmake lu3.7

October 2004
[Table of Contents] [Previous Section] [Next Section]

4. Changes Impacting lu3.6 Makefiles

The changes in release lu3.7 are largely backward compatible with lu3.6. Every effort has been made to insure code changes do not unexpectedly change the documented behavior of nmake features.

The following may impact builds and require changes.

  1. JDK 1.5 Support
    Description
    JDK 1.5 includes changes for Java keywords assert and enum. Using these keywords improperly, for example as variable names, will result in errors from JavaDeps.
    What to do
    The Java code causing errors will need to be changed to correct the improper use of these keywords.
  2. Java package hierarchy
    Description
    nmake release lu3.7 requires JavaDeps lu2.2 for support of the built-in :JAVA: operator. JavaDeps lu2.2 has a new requirement that the Java package hierarchy mirrors the source directory hierarchy. This is consistent with the recommendation on the JDK 1.5 javac manual page. An error will be issued by JavaDeps if the directory hierarchy is not consistent with the package declarations in the Java source code.
    Who is affected
    Projects with Java source files in directories that do not directly correspond to the package declarations, or who do not correctly define JAVAPACKAGEROOT and JAVABUILDDIR in the makefile.
    What to do
    It may be necessary to create new source directories for the Java code. In some cases small makefile changes will be necessary. The following example builds with nmake lu3.6 and JavaDeps lu2.1.3.
    $ find . -type f -print
    ./Makefile
    ./src/com/lucent/stc/pkg1/A.java
    
    $ cat Makefile 
    JAVACLASSDEST = classes
    JAVAPACKAGEROOT = $(VROOT)/java
    :JAVA: src/com
    
    $ cat src/com/lucent/stc/pkg1/A.java 
    package com.lucent.stc.pkg1;
    public class A
    {                                            
        public static void main ()  
        {                                        
    	int i;                               
        }                                        
    }
    
    $ nmake
    + /tools/nmake/javadeps-lu2.1.3/jdeps /tools/nmake/javadeps-lu2.1.3/jdeps.j
    ar -C .JAVACLASSES. -n --vpath=/home/richb/lu3.7/jdeps040008/java --silent 
    -s /tools/nmake/javadeps-lu2.1.3/synconfig -o localjavadeps -m globaljavade
    ps -d classes --classpath=classes src/com/lucent/stc/pkg1/A.java
    + javac -d classes -classpath classes:. src/com/lucent/stc/pkg1/A.java
    	
    Note A.java lives under src/com/lucent/stc/pkg1, but its package declaration does not include src. This causes an error with JavaDeps lu2.2:
    $ nmake
    + /tools/nmake/javadeps-lu2.2/jdeps /tools/nmake/javadeps-lu2.2/jdeps.jar -
    C .JAVACLASSES. -n --vpath=/home/richb/lu3.7/jdeps040008/java --silent -s /
    tools/nmake/javadeps-lu2.2/synconfig -o localjavadeps -m globaljavadeps -d 
    classes --classpath=classes src/com/lucent/stc/pkg1/A.java
    Warning : source file location src/com/lucent/stc/pkg1/A.java does not mat
    ch package name com.lucent.stc.pkg1
        
    The real problem here is that JAVAPACKAGEROOT is not defined correctly, the root is under the src/ node. To fix the makefile without moving it into the src/ node, set JAVABUILDDIR and correct JAVAPACKAGEROOT.
    $ cat Makefile 
    JAVACLASSDEST = classes
    JAVABUILDDIR = $(VROOT)/java
    JAVAPACKAGEROOT = $(VROOT)/java/src
    :JAVA: src/com
    
    $ nmake
    + /tools/nmake/javadeps-lu2.2/jdeps /tools/nmake/javadeps-lu2.2/jdeps.jar -
    C .JAVACLASSES. -n --vpath=/home/richb/lu3.7/jdeps040008/java --silent -s /
    tools/nmake/javadeps-lu2.2/synconfig -o localjavadeps -m globaljavadeps -d 
    classes --classpath=classes --packageroot=src src/com/lucent/stc/pkg1/A.jav
    a
    + javac -d classes -classpath classes:. src/com/lucent/stc/pkg1/A.java
        


[Table of Contents] [Previous Section] [Next Section]

Last Update: Friday,12-Aug-2016 12:32:57 EDT