The rule for creating a .h file from a .java file is: .java.h: b=`basename $*` ; \ d=`dirname $*` ; \ tmpdir=$$b.tmp ; \ rm -rf $$tmpdir ; \ mkdir -p $$tmpdir ; \ $(GCJCOMPILE) -C -d $$tmpdir '$<' || exit 1 ; \ classes=`cd $$tmpdir; find $$d/$$b*.class \ -name '*\$$[0-9]*' -prune \ -o -name $$b.class -print \ -o -name $$b'\$$*'.class -print \ | sed -e 's,.class$$,,'`; \ echo $$classes ; \ for class in $$classes ; do \ outputdir=`dirname $$class`; \ outputfile=`basename $$class`.h; \ echo "$$class => $$outputdir/$$outputfile"; \ rm -f $$outputdir/$$outputfile ; \ <<<=== $(GCJH) -I $$tmpdir \ -o $$outputdir/$$outputfile \ $(GCJHFLAGS) $$class ; \ done ; \ rm -rf $$tmpdir note the rm -f of the output .h file before GCJH is run. Without that GCJH won't write out a new .h file. cagney@morgan$ gcjh --version gcjh (GNU Classpath) 0.93 Copyright 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Index: frysk-imports/common/ChangeLog 2007-07-04 Andrew Cagney <cagney@redhat.com> * Makefile.rules (.java.h): Remove generated .h file before running GCJH. Work around 4741.