#------------------------------------------------------------------------
$(filter-out clean clean-local,$(UserTargets)):: $(BUILT_SOURCES)
-clean-local::
+clean-all-local::
ifneq ($(strip $(BUILT_SOURCES)),)
-$(Verb) $(RM) -f $(BUILT_SOURCES)
endif
endif
endif
+ifeq ($(ARCH),Alpha)
+ LD.Flags += -Wl,--no-relax
+endif
+
#--------------------------------------------------------------------
# Directory locations
#--------------------------------------------------------------------
endif
endif
LLVM_CONFIG := $(LLVMToolDir)/llvm-config
-ifndef GCCAS
-GCCAS := $(LLVMToolDir)/gccas$(EXEEXT)
-endif
-ifndef GCCLD
-GCCLD := $(LLVMToolDir)/gccld$(EXEEXT)
+ifndef LLVMLD
+LLVMLD := $(LLVMToolDir)/llvm-ld$(EXEEXT)
endif
ifndef LLVMDIS
LLVMDIS := $(LLVMToolDir)/llvm-dis$(EXEEXT)
$(MKDIR) $(@D); \
$(CP) $(PROJ_SRC_DIR)/$(@D)/Makefile $(@D)/Makefile; \
fi; \
- $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@) ;
+ $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@)
endif
#---------------------------------------------------------
#---------------------------------------------------------
ifdef CONFIG_FILES
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) UnInstall circumvented with NO_INSTALL
+else
install-local:: $(PROJ_etcdir) $(CONFIG_FILES)
$(Echo) Installing Configuration Files To $(PROJ_etcdir)
$(Verb)for file in $(CONFIG_FILES); do \
$(Verb)for file in $(CONFIG_FILES); do \
$(RM) -f $(PROJ_etcdir)/$${file} ; \
done
+endif
endif
$(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT): $(LLVM_CONFIG)
-ProjLibsOptions = $(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS))
-ProjLibsPaths = $(LLVM_CONFIG) \
+ProjLibsOptions += $(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS))
+ProjLibsPaths += $(LLVM_CONFIG) \
$(shell $(LLVM_CONFIG) --libfiles $(LINK_COMPONENTS))
endif
endif
else
Module := $(LibDir)/$(MODULE_NAME).bc
-LinkModule := $(GCCLD) -L$(CFERuntimeLibDir)
+LinkModule := $(LLVMLD) -L$(CFERuntimeLibDir)
ifdef EXPORTED_SYMBOL_FILE
LinkModule += -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
endif
-$(Module): $(BUILT_SOURCES) $(ObjectsBC) $(LibDir)/.dir $(GCCLD)
+$(Module): $(BUILT_SOURCES) $(ObjectsBC) $(LibDir)/.dir $(LLVMLD)
$(Echo) Building $(BuildMode) Bytecode Module $(notdir $@)
$(Verb) $(LinkModule) -o $@ $(ObjectsBC)
ModuleDestDir := $(PROJ_libdir)
endif
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
DestModule := $(ModuleDestDir)/$(MODULE_NAME).bc
install-module:: $(DestModule)
uninstall-local::
$(Echo) Uninstalling $(BuildMode) Bytecode Module $(DestModule)
-$(Verb) $(RM) -f $(DestModule)
+endif
endif
endif
-$(Verb) $(RM) -f $(LibName.LA)
endif
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
DestSharedLib = $(PROJ_libdir)/lib$(LIBRARYNAME)$(SHLIBEXT)
install-local:: $(DestSharedLib)
uninstall-local::
$(Echo) Uninstalling $(BuildMode) Shared Library $(DestSharedLib)
-$(Verb) $(RM) -f $(PROJ_libdir)/lib$(LIBRARYNAME).*
-
+endif
endif
#---------------------------------------------------------
all-local:: $(LibName.BCA)
ifdef EXPORTED_SYMBOL_FILE
-BCLinkLib = $(GCCLD) -L$(CFERuntimeLibDir) \
+BCLinkLib = $(LLVMLD) -L$(CFERuntimeLibDir) \
-internalize-public-api-file=$(EXPORTED_SYMBOL_FILE)
-$(LibName.BCA): $(ObjectsBC) $(LibDir)/.dir $(GCCLD) \
+$(LibName.BCA): $(ObjectsBC) $(LibDir)/.dir $(LLVMLD) \
$(LLVMToolDir)/llvm-ar
$(Echo) Building $(BuildMode) Bytecode Archive $(notdir $@) \
"(internalize)"
install-bytecode-local:: $(DestBytecodeLib)
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
install-local:: $(DestBytecodeLib)
$(DestBytecodeLib): $(BytecodeDestDir) $(LibName.BCA)
uninstall-local::
$(Echo) Uninstalling $(BuildMode) Bytecode Archive $(DestBytecodeLib)
-$(Verb) $(RM) -f $(DestBytecodeLib)
-
+endif
endif
endif
-$(Verb) $(RM) -f $(LibName.O)
endif
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
DestRelinkedLib = $(PROJ_libdir)/$(LIBRARYNAME).o
install-local:: $(DestRelinkedLib)
uninstall-local::
$(Echo) Uninstalling $(BuildMode) Object Library $(DestRelinkedLib)
-$(Verb) $(RM) -f $(DestRelinkedLib)
-
+endif
endif
#---------------------------------------------------------
-$(Verb) $(RM) -f $(LibName.A)
endif
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
DestArchiveLib := $(PROJ_libdir)/lib$(LIBRARYNAME).a
install-local:: $(DestArchiveLib)
uninstall-local::
$(Echo) Uninstalling $(BuildMode) Archive Library $(DestArchiveLib)
-$(Verb) $(RM) -f $(DestArchiveLib)
-
+endif
endif
# endif LIBRARYNAME
$(Echo) ======= Finished Linking $(BuildMode) Executable $(TOOLNAME) \
$(StripWarnMsg)
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
DestTool = $(PROJ_bindir)/$(TOOLNAME)
install-local:: $(DestTool)
uninstall-local::
$(Echo) Uninstalling $(BuildMode) $(DestTool)
-$(Verb) $(RM) -f $(DestTool)
-
+endif
endif
###############################################################################
# make the C and C++ compilers strip debug info out of bytecode libraries.
ifdef DEBUG_RUNTIME
-$(ObjectsBC): $(ObjDir)/%.bc: $(ObjDir)/%.ll $(GCCAS)
+$(ObjectsBC): $(ObjDir)/%.bc: $(ObjDir)/%.ll $(LLVMAS) $(LOPT)
$(Echo) "Compiling $*.ll to $*.bc for $(BuildMode) build (bytecode)"
- $(Verb) $(GCCAS) $< -o $@
+ $(Verb) $(LLVMAS) $< -o - | $(LOPT) -std-compile-opts -o $@ -f
else
-$(ObjectsBC): $(ObjDir)/%.bc: $(ObjDir)/%.ll $(GCCAS)
+$(ObjectsBC): $(ObjDir)/%.bc: $(ObjDir)/%.ll $(LLVMAS) $(LOPT)
$(Echo) "Compiling $*.ll to $*.bc for $(BuildMode) build (bytecode)"
- $(Verb) $(GCCAS) -strip-debug $< -o $@
+ $(Verb) $(LLVMAS) $< -o - | \
+ $(LOPT) -std-compile-opts -strip-debug -o $@ -f
endif
TDFiles := $(strip $(wildcard $(PROJ_SRC_DIR)/*.td) \
$(LLVM_SRC_ROOT)/lib/Target/Target.td \
+ $(LLVM_SRC_ROOT)/lib/Target/TargetCallingConv.td \
$(LLVM_SRC_ROOT)/lib/Target/TargetSelectionDAG.td \
$(LLVM_SRC_ROOT)/include/llvm/CodeGen/ValueTypes.td) \
$(wildcard $(LLVM_SRC_ROOT)/include/llvm/Intrinsics*.td)
$(Echo) "Building $(<F) subtarget information with tblgen"
$(Verb) $(TableGen) -gen-subtarget -o $@ $<
+$(TARGET:%=$(ObjDir)/%GenCallingConv.inc.tmp): \
+$(ObjDir)/%GenCallingConv.inc.tmp : %.td $(ObjDir)/.dir
+ $(Echo) "Building $(<F) calling convention information with tblgen"
+ $(Verb) $(TableGen) -gen-callingconv -o $@ $<
+
clean-local::
-$(Verb) $(RM) -f $(INCFiles)
#------------------------------------------------------------------------
# Install support for the project's include files:
#------------------------------------------------------------------------
+ifdef NO_INSTALL
+install-local::
+ $(Echo) Install circumvented with NO_INSTALL
+uninstall-local::
+ $(Echo) Uninstall circumvented with NO_INSTALL
+else
install-local::
$(Echo) Installing include files
$(Verb) $(MKDIR) $(PROJ_includedir)
$(RM) -f `find . -path '*/Internal' -prune -o '(' -type f -name '*.in' \
-print ')' | sed 's#\.in$$##;s#^#$(PROJ_includedir)/#'` ; \
fi
-
+endif
endif
#------------------------------------------------------------------------