X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=Makefile.rules;h=bb1ea75deff504a4327e086d4aace393f01027ba;hp=2b9b7fa1fc8b8d536745f0eb93300e187404d2f8;hb=2618a6c1122d5d2007787fb56156be44b21ab32a;hpb=c5e455d8ca00b001f8264da9bb2cdfa6ef35da3d diff --git a/Makefile.rules b/Makefile.rules index 2b9b7fa1fc8..bb1ea75deff 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -23,7 +23,7 @@ RecursiveTargets := all clean clean-all install uninstall install-bytecode LocalTargets := all-local clean-local clean-all-local check-local \ install-local printvars uninstall-local \ install-bytecode-local -TopLevelTargets := check dist dist-check dist-clean tags dist-gzip dist-bzip2 \ +TopLevelTargets := check dist dist-check dist-clean dist-gzip dist-bzip2 \ dist-zip UserTargets := $(RecursiveTargets) $(LocalTargets) $(TopLevelTargets) InternalTargets := preconditions distdir dist-hook @@ -38,7 +38,7 @@ InternalTargets := preconditions distdir dist-hook VPATH=$(PROJ_SRC_DIR) #-------------------------------------------------------------------- -# Reset the list of suffixes we know how to build +# Reset the list of suffixes we know how to build. #-------------------------------------------------------------------- .SUFFIXES: .SUFFIXES: .c .cpp .cc .h .hpp .y .l .lo .o .a .bc .td .ps .dot .ll @@ -85,7 +85,7 @@ preconditions: $(PreConditions) #------------------------------------------------------------------------ $(filter-out clean clean-local,$(UserTargets)):: $(BUILT_SOURCES) -clean-local:: +clean-all-local:: ifneq ($(strip $(BUILT_SOURCES)),) -$(Verb) $(RM) -f $(BUILT_SOURCES) endif @@ -199,6 +199,7 @@ install-bytecode:: install-bytecode-local # Variables derived from configuration we are building #-------------------------------------------------------------------- +CPP.Defines := # OPTIMIZE_OPTION - The optimization level option we want to build LLVM with # this can be overridden on the make command line. ifneq ($(OS),MingW) @@ -212,6 +213,7 @@ ifdef ENABLE_PROFILING CXX.Flags := $(OPTIMIZE_OPTION) -pg -g C.Flags := $(OPTIMIZE_OPTION) -pg -g LD.Flags := $(OPTIMIZE_OPTION) -pg -g + KEEP_SYMBOLS := 1 else ifeq ($(ENABLE_OPTIMIZED),1) BuildMode := Release @@ -244,15 +246,26 @@ ifndef REQUIRES_EH CXX.Flags += -fno-exceptions endif +# IF REQUIRES_RTTI=1 is specified then don't disable run-time type id +ifndef REQUIRES_RTTI +# CXX.Flags += -fno-rtti +endif + # If DISABLE_ASSERTIONS=1 is specified (make command line or configured), # then disable assertions by defining the appropriate preprocessor symbols. ifdef DISABLE_ASSERTIONS BuildMode := $(BuildMode)-Asserts - CXX.Flags += -DNDEBUG - C.Flags += -DNDEBUG + CPP.Defines += -DNDEBUG else - CXX.Flags += -D_DEBUG - C.Flags += -D_DEBUG + CPP.Defines += -D_DEBUG +endif + +# If ENABLE_EXPENSIVE_CHECKS=1 is specified (make command line or +# configured), then enable expensive checks by defining the +# appropriate preprocessor symbols. +ifdef ENABLE_EXPENSIVE_CHECKS + BuildMode := $(BuildMode)+Checks + CPP.Defines += -D_GLIBCXX_DEBUG endif ifeq ($(ENABLE_PIC),1) @@ -262,7 +275,8 @@ endif CXX.Flags += $(CXXFLAGS) -Woverloaded-virtual C.Flags += $(CFLAGS) -CPP.BaseFlags += $(CPPFLAGS) +CPP.Defines += $(CPPFLAGS) +CPP.BaseFlags += $(CPP.Defines) LD.Flags += $(LDFLAGS) AR.Flags := cru LibTool.Flags := --tag=CXX @@ -312,11 +326,8 @@ ifndef TBLGEN 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) @@ -590,7 +601,7 @@ $(ParallelTargets) : $(MKDIR) $(@D); \ $(CP) $(PROJ_SRC_DIR)/$(@D)/Makefile $(@D)/Makefile; \ fi; \ - $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@) ; + $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@) endif #--------------------------------------------------------- @@ -625,6 +636,12 @@ 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 \ @@ -642,6 +659,7 @@ uninstall-local:: $(Verb)for file in $(CONFIG_FILES); do \ $(RM) -f $(PROJ_etcdir)/$${file} ; \ done +endif endif @@ -681,8 +699,8 @@ $(LLVM_CONFIG): $(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 @@ -705,14 +723,14 @@ $(warning Modules require llvm-gcc but no llvm-gcc is available ****) 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) @@ -729,6 +747,12 @@ else 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) @@ -741,6 +765,7 @@ $(DestModule): $(ModuleDestDir) $(Module) uninstall-local:: $(Echo) Uninstalling $(BuildMode) Bytecode Module $(DestModule) -$(Verb) $(RM) -f $(DestModule) +endif endif endif @@ -793,6 +818,12 @@ ifneq ($(strip $(LibName.LA)),) -$(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) @@ -805,7 +836,7 @@ $(DestSharedLib): $(PROJ_libdir) $(LibName.LA) uninstall-local:: $(Echo) Uninstalling $(BuildMode) Shared Library $(DestSharedLib) -$(Verb) $(RM) -f $(PROJ_libdir)/lib$(LIBRARYNAME).* - +endif endif #--------------------------------------------------------- @@ -822,10 +853,10 @@ else 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)" @@ -856,6 +887,12 @@ DestBytecodeLib = $(BytecodeDestDir)/lib$(LIBRARYNAME).a 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) @@ -865,7 +902,7 @@ $(DestBytecodeLib): $(BytecodeDestDir) $(LibName.BCA) uninstall-local:: $(Echo) Uninstalling $(BuildMode) Bytecode Archive $(DestBytecodeLib) -$(Verb) $(RM) -f $(DestBytecodeLib) - +endif endif endif @@ -895,6 +932,12 @@ ifneq ($(strip $(LibName.O)),) -$(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) @@ -906,7 +949,7 @@ $(DestRelinkedLib): $(PROJ_libdir) $(LibName.O) uninstall-local:: $(Echo) Uninstalling $(BuildMode) Object Library $(DestRelinkedLib) -$(Verb) $(RM) -f $(DestRelinkedLib) - +endif endif #--------------------------------------------------------- @@ -929,6 +972,12 @@ ifneq ($(strip $(LibName.A)),) -$(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) @@ -941,7 +990,7 @@ $(DestArchiveLib): $(PROJ_libdir) $(LibName.A) uninstall-local:: $(Echo) Uninstalling $(BuildMode) Archive Library $(DestArchiveLib) -$(Verb) $(RM) -f $(DestArchiveLib) - +endif endif # endif LIBRARYNAME @@ -985,6 +1034,12 @@ $(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths) $(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) @@ -996,7 +1051,7 @@ $(DestTool): $(PROJ_bindir) $(ToolBuildPath) uninstall-local:: $(Echo) Uninstalling $(BuildMode) $(DestTool) -$(Verb) $(RM) -f $(DestTool) - +endif endif ############################################################################### @@ -1138,13 +1193,14 @@ $(ObjDir)/%.s: %.c $(ObjDir)/.dir $(BUILT_SOURCES) # 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 @@ -1164,6 +1220,7 @@ ifdef TARGET 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) @@ -1233,6 +1290,11 @@ $(ObjDir)/%GenSubtarget.inc.tmp : %.td $(ObjDir)/.dir $(Echo) "Building $(