| 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 -f -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) -f -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 -f 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) -L$(CFERuntimeLibDir) -r -o $@ $(ProjLibsPaths) |
| |
| $(MODULESNAME).s : $(MODULESNAME).bc |
| $(Echo) Building $(BuildMode) Assembly file $(notdir $@) |
| $(Verb) $(LOPT) -load=$(LibDir)/StaticGCPass.so -std-compile-opts -StaticGCPass -f $(MODULESNAME).bc -o vmkitoptimized.bc |
| $(Verb) $(LLC) -disable-fp-elim -f 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 |
| |