Hi Tom, On Fri, 2006-03-31 at 15:30 -0700, Tom Tromey wrote: > Index: ChangeLog > from Tom Tromey <[EMAIL PROTECTED]> > > * lib/split-for-gcj.sh: Updated for multi-field format. > * lib/Makefile.am (CLEANFILES): Added classes.2. > * lib/gen-classlist.sh.in (GCJ): Removed. Create classes.1 and > classes.2 using multiple fields.
This seems to cause a recompile every time in classpath/lib since classes.2 is renamed to classes.1 here: > +# FIXME: could be more efficient by constructing a series of greps. > for filexp in `cat tmp.omit`; do > grep -v ${filexp} < ${top_builddir}/lib/classes.1 > > ${top_builddir}/lib/classes.2 > mv ${top_builddir}/lib/classes.2 ${top_builddir}/lib/classes.1 So the following test always results in new="true": > new= > -if test -e ${top_builddir}/lib/classes; then > - p=`diff ${top_builddir}/lib/classes ${top_builddir}/lib/classes.1` > +if test -e ${top_builddir}/lib/classes.2; then > + p=`diff ${top_builddir}/lib/classes.2 ${top_builddir}/lib/classes.1` > if test "$p" != ""; then > new="true" > - cp ${top_builddir}/lib/classes.1 ${top_builddir}/lib/classes > fi > else > new="true" > - cp ${top_builddir}/lib/classes.1 ${top_builddir}/lib/classes > fi And that triggers the creation of a new classes file: > if test "$new" = "true"; then > + cp ${top_builddir}/lib/classes.1 ${top_builddir}/lib/classes.2 > + # Strip the package part. > + sed -e 's/^[^ ]* //' -e 's, ,/,' < ${top_builddir}/lib/classes.1 \ > + > ${top_builddir}/lib/classes So even on a make install all files are recompiled to byte code with this. Does the following fix look sane to you? 2006-04-02 Mark Wielaard <[EMAIL PROTECTED]> * lib/gen-classlist.sh.in: Use classes.tmp, not classes.2 as temporary file name. Cheers, Mark diff -u -r1.34 gen-classlist.sh.in --- lib/gen-classlist.sh.in 31 Mar 2006 22:42:19 -0000 1.34 +++ lib/gen-classlist.sh.in 2 Apr 2006 18:40:13 -0000 @@ -72,8 +72,8 @@ # FIXME: could be more efficient by constructing a series of greps. for filexp in `cat tmp.omit`; do - grep -v ${filexp} < ${top_builddir}/lib/classes.1 > ${top_builddir}/lib/classes.2 - mv ${top_builddir}/lib/classes.2 ${top_builddir}/lib/classes.1 + grep -v ${filexp} < ${top_builddir}/lib/classes.1 > ${top_builddir}/lib/classes.tmp + mv ${top_builddir}/lib/classes.tmp ${top_builddir}/lib/classes.1 done
signature.asc
Description: This is a digitally signed message part