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
