##===- tools/precompiler/trainer/Makefile ------------------*- Makefile -*-===##
# 
#                     The VMKit project
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
# 
##===----------------------------------------------------------------------===##
LEVEL = ../../..

include $(LEVEL)/Makefile.config

BUILT_SOURCES = Precompiled.bc BootstrapClasses.bc

include $(LEVEL)/Makefile.common

PRECOMPILER := $(ToolDir)/precompiler$(EXEEXT)

ifndef VERBOSE
  J3.Flags := > /dev/null
endif

HelloWorld.class: HelloWorld.java
	$(Echo) "Compiling trainer"
	$(Verb) javac $< -d .

generated.bc: $(PRECOMPILER) HelloWorld.class
	$(Echo) "Pre-compiling bootstrap code"
	$(Verb) $(PRECOMPILER) -cp $$PWD HelloWorld $(J3.Flags)

Precompiled.bc: HelloWorld.class $(LibDir)/StaticGCPass$(SHLIBEXT) $(LibDir)/StaticGCPrinter$(SHLIBEXT) generated.bc
	$(Echo) "Building precompiled bootstrap code"
	$(Verb) $(MKDIR) $(ObjDir)
	$(Verb) $(LLC) -disable-branch-fold -disable-cfi -disable-debug-info-print -disable-fp-elim -O3 -load=$(LibDir)/StaticGCPrinter$(SHLIBEXT) generated.bc -o $(ObjDir)/Precompiled.s
	$(Verb) $(CC) -c $(ObjDir)/Precompiled.s -o $(ObjDir)/Precompiled.o
	$(Verb) $(Archive) $(LibDir)/libPrecompiled.a $(ObjDir)/Precompiled.o
	$(Verb) $(Ranlib) $(LibDir)/libPrecompiled.a
	$(Verb) $(CP) generated.bc Precompiled.bc

classes.bc: $(PRECOMPILER)
	$(Echo) "Pre-compiling classes"
	$(Verb) $(PRECOMPILER) -emit-class-bytes $(J3.Flags)

BootstrapClasses.bc: classes.bc
	$(Echo) "Building precompiled classes"
	$(Verb) $(MKDIR) $(ObjDir)
	$(Verb) $(LLC) classes.bc -o $(ObjDir)/BootstrapClasses.s
	$(Verb) $(CC) -c $(ObjDir)/BootstrapClasses.s -o $(ObjDir)/BootstrapClasses.o
	$(Verb) $(Archive) $(LibDir)/libBootstrapClasses.a $(ObjDir)/BootstrapClasses.o
	$(Verb) $(Ranlib) $(LibDir)/libBootstrapClasses.a
	$(Verb) $(CP) classes.bc BootstrapClasses.bc

clean-local::
	$(Verb) $(RM) -f HelloWorld.class generated.bc classes.bc Precompiled.bc BootstrapClasses.bc
