| ifdef VMKIT_RUNTIME |
| |
| |
| .PRECIOUS: LLVMRuntime.inc |
| |
| # All of these files depend on tblgen and the .td files. |
| LLVMRuntime.inc : $(LLVMAS) $(LLC) $(VMKIT_RUNTIME) |
| |
| LLVMRuntime.gen.ll : $(VMKIT_RUNTIME) |
| $(Verb) cat $(VMKIT_RUNTIME) > LLVMRuntime.gen.ll |
| |
| LLVMRuntime.inc : LLVMRuntime.gen.ll |
| $(Echo) "Building LLVM runtime with $(VMKIT_RUNTIME)" |
| $(Verb) $(LLVMAS) -f $(<F) -o - | $(LLC) -march=cpp -cppgen=contents -o $@ |
| |
| |
| clean-local:: |
| $(Verb) $(RM) -f LLVMRuntime.inc LLVMRuntime.gen.ll LLVMRuntime.bc |
| |
| endif |
| |
| ifdef VMKIT_ASSEMBLY |
| |
| .PRECIOUS: LLVMAssembly.s |
| |
| LLVMAssembly.o : $(LLVMAS) $(LLC) $(VMKIT_ASSEMBLY) |
| |
| LLVMAssembly.gen.ll : $(VMKIT_ASSEMBLY) |
| $(Verb) cat $(VMKIT_ASSEMBLY) > LLVMAssembly.gen.ll |
| |
| LLVMAssembly.s : LLVMAssembly.gen.ll |
| $(Echo) "Building LLVM assembly with $(VMKIT_ASSEMBLY)" |
| $(Verb) $(LLVMAS) -f $(<F) -o - | $(LLC) -o $@ |
| |
| $(ObjDir)/%.lo $(ObjDir)/%.o: %.s $(ObjDir)/.dir $(BUILT_SOURCES) |
| $(Echo) "Compiling $*.s for $(BuildMode) build " $(PIC_FLAG) |
| $(Verb) $(GAS) $< -o $(ObjDir)/$*.o |
| |
| clean-local:: |
| $(Verb) $(RM) -f LLVMAssembly.s LLVMAssembly.bc LLVMAssembly.gen.ll |
| |
| endif |
| |
| ifndef VMJC |
| VMJC := $(ToolDir)/vmjc$(EXEEXT) |
| endif |
| |
| |
| ifdef VMJC_ASSEMBLY |
| |
| .PRECIOUS: glibj.zip.s |
| |
| glibj.zip.s : $(LOPT) $(LLC) $(VMJC) |
| |
| |
| glibj.zip.bc : |
| $(Echo) "Compiling glibj.zip to llvm" |
| $(Verb) if test -d $(GLIBJ); then \ |
| $(VMJC) -f -std-compile-opts $(GLIBJ)/glibj.zip -o glibj.zip.bc; \ |
| else \ |
| $(VMJC) -f -std-compile-opts $(GLIBJ) -o glibj.zip.bc; \ |
| fi |
| |
| glibj-optimized.zip.bc : glibj.zip.bc |
| $(Echo) "Optimizing glibj.zip" |
| $(Verb) $(LOPT) -std-compile-opts -f glibj.zip.bc -o glibj-optimized.zip.bc |
| |
| glibj.zip.s : glibj-optimized.zip.bc |
| $(Echo) "Compiling glibj.zip.bc to native" |
| $(Verb) $(LLC) -relocation-model=pic -disable-fp-elim glibj-optimized.zip.bc -o glibj.zip.s |
| |
| $(ObjDir)/%.o: %.s $(ObjDir)/.dir $(BUILT_SOURCES) |
| $(Echo) "Compiling $*.s for $(BuildMode) build" $(PIC_FLAG) |
| $(Verb) $(Compile.C) $< -o $(ObjDir)/$*.o |
| |
| clean-local:: |
| $(Verb) $(RM) -f glibj.zip.s glibj.zip.bc glibj-optimized.zip.bc |
| endif |
| |
| |
| |
| ifdef VMKIT_BUILD_ARCHIVE |
| |
| LibName.A := $(LibDir)/lib$(VMKIT_LIBRARYNAME).a |
| |
| all-local:: $(LibName.A) |
| |
| $(LibName.A): $(ProjLibsPaths) $(LibDir)/.dir |
| $(Echo) Building $(BuildMode) Archive Library $(notdir $@) |
| -$(Verb) $(RM) -f $@ |
| $(Verb) $(Archive) $@ $(ProjLibsPaths) |
| $(Verb) $(Ranlib) $@ |
| |
| clean-local:: |
| ifneq ($(strip $(LibName.A)),) |
| -$(Verb) $(RM) -f $(LibName.A) |
| endif |
| |
| endif |
| |
| |
| |
| ifdef MODULESNAME |
| ifdef USEDMODULES |
| |
| ProjLibsPaths := $(addprefix $(LibDir)/,$(USEDMODULES)) |
| |
| $(MODULESNAME).bc : $(ProjLibsPaths) |
| $(Echo) Building $(BuildMode) Bytecode Module $(notdir $@) |
| $(Verb) $(LLVMLD) -link-as-library -o $@ $(ProjLibsPaths) |
| |
| $(MODULESNAME).s : $(MODULESNAME).bc |
| $(Echo) Building $(BuildMode) Assembly file $(notdir $@) |
| $(Verb) $(LOPT) -load=$(LibDir)/StaticGCPass$(SHLIBEXT) -std-compile-opts -StaticGCPass -f $(MODULESNAME).bc -o vmkitoptimized.bc |
| $(Verb) $(LLC) -disable-fp-elim vmkitoptimized.bc -o $(MODULESNAME).s |
| |
| $(ObjDir)/%.o: %.s $(ObjDir)/.dir $(BUILT_SOURCES) |
| $(Echo) "Compiling $*.s for $(BuildMode) build" $(PIC_FLAG) |
| $(Verb) $(Compile.C) $< -o $(ObjDir)/$*.o |
| |
| clean-local:: |
| $(Verb) $(RM) -f vmkitoptimized.bc $(MODULESNAME).bc $(MODULESNAME).s |
| |
| endif |
| endif |
| |
| ifdef RUN_ANT |
| ifdef ANT |
| |
| ADDITIONAL_ARGS := -load-bc=$(LibDir)/MMTKRuntime.bc |
| |
| all:: |
| $(Verb) $(ANT) -buildfile $(PROJ_SRC_ROOT)/mmtk/java/build.xml |
| $(Echo) Building $(BuildMode) $(JARNAME).jar $(notdir $@) |
| $(Verb) $(LOPT) -load=$(LibDir)/JITGCPass$(SHLIBEXT) -std-compile-opts -JITGCPass -f $(LibDir)/MMTKAlloc.bc -o $(LibDir)/MMTKAlloc.bc |
| $(Verb) $(VMJC) -std-compile-opts $(ADDITIONAL_ARGS) -load=$(LibDir)/MMTKMagic$(SHLIBEXT) -LowerMagic -verify $(PROJ_SRC_ROOT)/mmtk/java/$(JARNAME).jar -disable-exceptions -disable-cooperativegc -with-clinit=org/mmtk/vm/VM,org/mmtk/utility/*,org/mmtk/policy/*,org/j3/config/* -Dmmtk.hostjvm=org.j3.mmtk.Factory -o $(JARNAME).bc -Dmmtk.properties=$(PROJ_SRC_ROOT)/mmtk/java/vmkit.properties -disable-stubs -assume-compiled -llvm-lazy |
| $(Verb) $(LOPT) -load=$(LibDir)/MMTKMagic$(SHLIBEXT) -std-compile-opts -LowerJavaRT -f $(JARNAME).bc -o $(JARNAME)-optimized.bc |
| $(Verb) $(LLVMLD) -r -o $(LibDir)/FinalMMTk.bc $(LibDir)/MMTKAlloc.bc $(JARNAME)-optimized.bc $(LibDir)/MMTKRuntime.bc |
| $(Verb) $(LOPT) -std-compile-opts $(LibDir)/FinalMMTk.bc -o $(LibDir)/FinalMMTk.bc |
| #$(Verb) $(LLC) -march=cpp -cppgen=function -cppfor=gcmalloc $(LibDir)/FinalMMTk.bc -o $(PROJ_SRC_ROOT)/lib/Mvm/Compiler/MMTkInline.inc |
| |
| |
| endif |
| clean-local:: |
| $(Verb) $(RM) -rf classes $(JARNAME).jar $(JARNAME).bc $(JARNAME)-optimized.bc |
| endif |