#
# @(#)GNUmakefile	1.8 98/10/02
#
# Re-compile .java files compiled with a bootstrap compiler with the
# current compiler in the source tree. This is so we always ship
# .class files generated by the latest compiler.
#

BUILDDIR = ../../..
PACKAGE = sun.tools.javac
PRODUCT = sun

include $(BUILDDIR)/Platform.gmk
include $(BUILDDIR)/makefiles/Defs.gmk

#
# Files-to-compile.
#
include $(MINCLUDES)java_java.jmk
include $(MINCLUDES)java_zip.jmk
include $(MINCLUDES)sun_javac.jmk
FILES_java = $(JAVA_JAVA_java) $(JAVA_ZIP_java) $(SUN_JAVAC_java)
FILES_java += $(TARGDIR)java/lang/UNIXProcess.java
FILES_java += $(TARGDIR)java/io/UnixFileSystem.java

#
# Targets.
#
.recompile: classes .copy.newclasses

.recompile.clean: 
	$(RM) -r newclasses

#
# Override destination directory.
#
CLASSDESTDIR      = newclasses
CLASSBINDIR	  = newclasses

#
# Helpers.
#
FILES_class = $(FILES_java:%.java=newclasses/%.class)

.delete.classlist:
	@$(RM) .classes.list

.compile.classlist: 
	if [ -s .classes.list ] ; \
	then $(JAVAC_CMD) \
	    $(shell if [ -s .classes.list ] ; then cat .classes.list; fi ) ; \
	fi

classes : newclasses .delete.classlist $(FILES_class) .compile.classlist

newclasses/%.class: $(PLATFORM_SRC)/classes/%.java
	@echo $? >>.classes.list
newclasses/%.class: $(SHARE_SRC)/classes/%.java
	@echo $? >>.classes.list

newclasses: 
	@mkdir -p $@

.copy.newclasses:
	@if [ -s .classes.list ]; then \
	    echo "Copying newclasses..."; \
	    echo "(cd newclasses; tar cf - .) | (cd $(CLASSBINDIR); tar xf -)"; \
	    (cd newclasses; tar cf - .) | (cd $(BUILDDIR)/classes; tar xf -) \
	fi

.PHONY: .recompile .recompile.clean .delete.classlist \
	.compile.classlist  classes .copy.newclasses

