Dear help-make audience,

 I have a rudimentary dependency support for Java files using
autoconf, automake and jikes. Jikes (+M) creates .u files with simple
dependency rules for each class file. My problem is that when modifying a
source file and immediately issuing a make invocation compiles some of the
files multiple times. By reading makes output with -d it seems like the
system resolution for file timestamps is so large that even if the file is
actually newer make is unable to determine this and instead recompiles.

        Output from a make session:

       Finished prerequisites of target file `Bar.class'.
       Prerequisite `Bar.java' is newer than target `Bar.class'.
       Prerequisite `/fs/home/kpbackma/work/template/template/Bar.java' is \
newer than target `Bar.class'.
      Must remake target `Bar.class'.
jikes +M -classpath /fs/home/kpbackma/work/template:$JIKESPATH -d \
/fs/home/kpbackma/work/template +E +P Bar.java
        ...
      Successfully remade target file `Bar.class'.
        ...
         Prerequisite `/fs/home/kpbackma/work/template/template/Bar.java' \
is newer than target `/fs/home/kpbackma/work/template/template/Bar.class'.
        Must remake target \
`/fs/home/kpbackma/work/template/template/Bar.class'.
jikes +M -classpath /fs/home/kpbackma/work/template:$JIKESPATH -d \
/fs/home/kpbackma/work/template +E +P
/fs/home/kpbackma/work/template/template/Bar.java \
        ...
        Successfully remade target file \
`/fs/home/kpbackma/work/template/template/Bar.class'.


 The different references are because Jikes outputs full path.


 Yours sincerely,

 Kai-Peter Baeckman


Reply via email to