X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Makefile.rules;h=787a012c598f4e031fb5b7485107a3aaf123e88f;hb=eb0d1d3508bf078c4e6600d325b1059fe097dca6;hp=741d1259babd05fbe2982486155318316c3656a1;hpb=0a1db828598443c4dedcc9cf4274601b8f99a3cd;p=oota-llvm.git diff --git a/Makefile.rules b/Makefile.rules index 741d1259bab..787a012c598 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -213,7 +213,7 @@ ifdef ENABLE_PROFILING C.Flags := $(OPTIMIZE_OPTION) -pg -g LD.Flags := $(OPTIMIZE_OPTION) -pg -g else - ifdef ENABLE_OPTIMIZED + ifeq ($(ENABLE_OPTIMIZED),1) BuildMode := Release # Don't use -fomit-frame-pointer on Darwin or FreeBSD. ifneq ($(OS),FreeBSD) @@ -255,6 +255,11 @@ else C.Flags += -D_DEBUG endif +ifeq ($(ENABLE_PIC),1) + CXX.Flags += -fPIC + C.Flags += -fPIC +endif + CXX.Flags += $(CXXFLAGS) -Woverloaded-virtual C.Flags += $(CFLAGS) CPP.BaseFlags += $(CPPFLAGS) @@ -264,8 +269,12 @@ LibTool.Flags := --tag=CXX # Make Floating point IEEE compliant on Alpha. ifeq ($(ARCH),Alpha) - CXX.Flags += -mieee -fPIC - CPP.BaseFlags += -mieee -fPIC + CXX.Flags += -mieee + CPP.BaseFlags += -mieee +ifeq ($(ENABLE_PIC),0) + CXX.Flags += -fPIC + CPP.BaseFlags += -fPIC +endif endif #-------------------------------------------------------------------- @@ -320,9 +329,20 @@ endif ifndef LBUGPOINT LBUGPOINT := $(LLVMToolDir)/bugpoint$(EXEEXT) endif - +ifndef LUPGRADE +LUPGRADE := $(LLVMToolDir)/llvm-upgrade$(EXEEXT) +endif +ifeq ($(LLVMGCC_MAJVERS),3) +UPGRADE_MSG = $(Echo) "Upgrading $(1) assembly to latest." +UPGRADE_LL = $(Verb)$(LUPGRADE) $(1) -o $(1).up.tmp -f ; $(MV) $(1).up.tmp $(1) LLVMGCCWITHPATH := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGCC) LLVMGXXWITHPATH := PATH="$(LLVMToolDir):$(PATH)" $(LLVMGXX) +else +UPGRADE_MSG = +UPGRADE_LL = +LLVMGCCWITHPATH := $(LLVMGCC) +LLVMGXXWITHPATH := $(LLVMGXX) +endif #-------------------------------------------------------------------- # Adjust to user's request @@ -382,8 +402,8 @@ endif # Options To Invoke Tools #---------------------------------------------------------- -CompileCommonOpts := -Wall -W -Wwrite-strings -Wno-unused -Wno-long-long \ - -pedantic $(EXTRA_OPTIONS) +CompileCommonOpts := -pedantic -Wall -W -Wwrite-strings -Wno-long-long \ + -Wunused -Wno-unused-parameter $(EXTRA_OPTIONS) ifeq ($(OS),HP-UX) CompileCommonOpts := -D_REENTRANT -D_HPUX_SOURCE @@ -426,16 +446,16 @@ CPP.Flags += -I$(PROJ_OBJ_DIR) -I$(PROJ_SRC_DIR) \ -I$(LLVM_SRC_ROOT)/include \ $(CPP.BaseFlags) -Compile.C = $(CC) $(CPP.Flags) $(CompileCommonOpts) -c $(C.Flags) +Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c LTCompile.C = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.C) -BCCompile.C = $(LLVMGCCWITHPATH) $(CPP.Flags) $(CompileCommonOpts) \ - $(C.Flags) -Preprocess.C = $(CC) $(CPP.Flags) $(CompileCommonOpts) -E $(C.Flags) +BCCompile.C = $(LLVMGCCWITHPATH) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) +Preprocess.C = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -E -Compile.CXX = $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -c +Compile.CXX = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) -c LTCompile.CXX = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.CXX) -BCCompile.CXX = $(LLVMGXXWITHPATH) $(CPP.Flags) $(CompileCommonOpts) \ - $(CXX.Flags) +BCCompile.CXX = $(LLVMGXXWITHPATH) $(CPP.Flags) $(CXX.Flags) \ + $(CompileCommonOpts) + Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E Link = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \ $(LD.Flags) $(Strip) @@ -625,68 +645,6 @@ endif # Set up variables for building libararies ############################################################################### -#--------------------------------------------------------- -# Handle the special "JIT" value for LLVM_LIBS which is a -# shorthand for a bunch of libraries that get the correct -# JIT support for a library or a tool that runs JIT. -#--------------------------------------------------------- -ifeq ($(firstword $(LLVMLIBS)),config) -LLVMLIBS := $(shell $(LLVM_CONFIG) --libnames $(wordlist 2,9999,$(LLVMLIBS))) -LLVMLIBS := $(patsubst lib%.a,%.a,$(LLVMLIBS)) -LLVMLIBS := $(patsubst %.o,%,$(LLVMLIBS)) -endif - -ifeq ($(LLVMLIBS),JIT) - -# Make sure we can get our own symbols in the tool -Link += -dlopen self - -# Generic JIT libraries -JIT_LIBS := LLVMInterpreter LLVMJIT - -# You can enable the X86 JIT on a non-X86 host by setting the flag -# ENABLE_X86_JIT on the make command line. If not, it will still be -# enabled automagically on an X86 host. -ifeq ($(ARCH), x86) - ENABLE_X86_JIT = 1 -endif - -# What the X86 JIT requires -ifdef ENABLE_X86_JIT - JIT_LIBS += LLVMX86 -endif - -# You can enable the PowerPC JIT on a non-PowerPC host by setting the flag -# ENABLE_PPC_JIT on the make command line. If not, it will still be -# enabled automagically on an PowerPC host. -ifeq ($(ARCH), PowerPC) - ENABLE_PPC_JIT = 1 -endif - -# What the PowerPC JIT requires -ifdef ENABLE_PPC_JIT - JIT_LIBS += LLVMPowerPC -endif - -# You can enable the Alpha JIT on a non-Alpha host by setting the flag -# ENABLE_ALPHA_JIT on the make command line. If not, it will still be -# enabled automagically on an Alpha host. -ifeq ($(ARCH), Alpha) - ENABLE_ALPHA_JIT = 1 -endif - -# What the Alpha JIT requires -ifdef ENABLE_ALPHA_JIT - JIT_LIBS += LLVMAlpha -endif - -JIT_LIBS += LLVMTarget.a LLVMSelectionDAG.a LLVMCodeGen.a LLVMExecutionEngine - -LLVMLIBS := $(JIT_LIBS) LLVMScalarOpts.a LLVMTransformUtils.a LLVMAnalysis.a \ - LLVMBCReader.a LLVMCore.a LLVMSupport.a LLVMbzip2.a \ - LLVMSystem.a $(PLATFORMLIBDL) -endif - #--------------------------------------------------------- # Define various command line options pertaining to the # libraries needed when linking. There are "Proj" libs @@ -720,7 +678,8 @@ $(LLVM_CONFIG): $(ToolDir)/$(strip $(TOOLNAME))$(EXEEXT): $(LLVM_CONFIG) ProjLibsOptions = $(shell $(LLVM_CONFIG) --libs $(LINK_COMPONENTS)) -ProjLibsPaths = $(shell $(LLVM_CONFIG) --libfiles $(LINK_COMPONENTS)) +ProjLibsPaths = $(LLVM_CONFIG) \ + $(shell $(LLVM_CONFIG) --libfiles $(LINK_COMPONENTS)) endif endif @@ -808,7 +767,7 @@ all-local:: $(LibName.LA) ifdef LINK_LIBS_IN_SHARED ifdef LOADABLE_MODULE -SharedLibKindMessage := "Lodable Module" +SharedLibKindMessage := "Loadable Module" else SharedLibKindMessage := "Shared Library" endif @@ -1015,7 +974,7 @@ else $(ToolBuildPath): $(ToolDir)/.dir endif -$(ToolBuildPath): $(ObjectsO) $(LLVM_CONFIG) $(ProjLibsPaths) $(LLVMLibsPaths) +$(ToolBuildPath): $(ObjectsO) $(ProjLibsPaths) $(LLVMLibsPaths) $(Echo) Linking $(BuildMode) executable $(TOOLNAME) $(StripWarnMsg) $(Verb) $(LTLink) -o $@ $(TOOLLINKOPTS) $(ObjectsO) $(ProjLibsOptions) \ $(LLVMLibsOptions) $(ExtraLibs) $(TOOLLINKOPTSB) $(LIBS) @@ -1083,26 +1042,32 @@ $(ObjDir)/%.lo $(ObjDir)/%.o: %.c $(ObjDir)/.dir $(BUILT_SOURCES) # Create .bc files in the ObjDir directory from .cpp .cc and .c files... #--------------------------------------------------------- -$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) +$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX) $(Echo) "Compiling $*.cpp for $(BuildMode) build (bytecode)" $(Verb) if $(BCCompile.CXX) -MD -MT $@ -MP -MF "$(ObjDir)/$*.BCCXXd" \ $< -o $@ -S -emit-llvm ; \ then $(MV) -f "$(ObjDir)/$*.BCCXXd" "$(ObjDir)/$*.d"; \ else $(RM) -f "$(ObjDir)/$*.BCCXXd"; exit 1; fi + $(call UPGRADE_MSG,$@) + $(call UPGRADE_LL,$@) -$(ObjDir)/%.ll: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) +$(ObjDir)/%.ll: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX) $(Echo) "Compiling $*.cc for $(BuildMode) build (bytecode)" $(Verb) if $(BCCompile.CXX) -MD -MT $@ -MP -MF "$(ObjDir)/$*.BCCXXd" \ $< -o $@ -S -emit-llvm ; \ then $(MV) -f "$(ObjDir)/$*.BCCXXd" "$(ObjDir)/$*.d"; \ else $(RM) -f "$(ObjDir)/$*.BCCXXd"; exit 1; fi + $(call UPGRADE_MSG,$@) + $(call UPGRADE_LL,$@) -$(ObjDir)/%.ll: %.c $(ObjDir)/.dir $(BUILT_SOURCES) +$(ObjDir)/%.ll: %.c $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGCC) $(Echo) "Compiling $*.c for $(BuildMode) build (bytecode)" $(Verb) if $(BCCompile.C) -MD -MT $@ -MP -MF "$(ObjDir)/$*.BCCd" \ $< -o $@ -S -emit-llvm ; \ then $(MV) -f "$(ObjDir)/$*.BCCd" "$(ObjDir)/$*.d"; \ else $(RM) -f "$(ObjDir)/$*.BCCd"; exit 1; fi + $(call UPGRADE_MSG,$@) + $(call UPGRADE_LL,$@) # Provide alternate rule sets if dependencies are disabled else @@ -1119,17 +1084,23 @@ $(ObjDir)/%.lo $(ObjDir)/%.o: %.c $(ObjDir)/.dir $(BUILT_SOURCES) $(Echo) "Compiling $*.c for $(BuildMode) build" $(PIC_FLAG) $(MAYBE_PIC_Compile.C) $< -o $@ -$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) +$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX) $(Echo) "Compiling $*.cpp for $(BuildMode) build (bytecode)" $(BCCompile.CXX) $< -o $@ -S -emit-llvm + $(call UPGRADE_MSG,$@) + $(call UPGRADE_LL,$@) -$(ObjDir)/%.ll: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) +$(ObjDir)/%.ll: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGXX) $(Echo) "Compiling $*.cc for $(BuildMode) build (bytecode)" $(BCCompile.CXX) $< -o $@ -S -emit-llvm + $(call UPGRADE_MSG,$@) + $(call UPGRADE_LL,$@) -$(ObjDir)/%.ll: %.c $(ObjDir)/.dir $(BUILT_SOURCES) +$(ObjDir)/%.ll: %.c $(ObjDir)/.dir $(BUILT_SOURCES) $(LLVMGCC) $(Echo) "Compiling $*.c for $(BuildMode) build (bytecode)" $(BCCompile.C) $< -o $@ -S -emit-llvm + $(call UPGRADE_MSG,@) + $(call UPGRADE_LL,@) endif @@ -1143,7 +1114,7 @@ $(BuildMode)/%.ii: %.cc $(ObjDir)/.dir $(BUILT_SOURCES) $(Echo) "Compiling $*.cc for $(BuildMode) build to .ii file" $(Verb) $(Preprocess.CXX) $< -o $@ - $(BuildMode)/%.i: %.c $(ObjDir)/.dir $(BUILT_SOURCES) +$(BuildMode)/%.i: %.c $(ObjDir)/.dir $(BUILT_SOURCES) $(Echo) "Compiling $*.c for $(BuildMode) build to .i file" $(Verb) $(Preprocess.C) $< -o $@ @@ -1190,7 +1161,8 @@ ifdef TARGET TDFiles := $(strip $(wildcard $(PROJ_SRC_DIR)/*.td) \ $(LLVM_SRC_ROOT)/lib/Target/Target.td \ $(LLVM_SRC_ROOT)/lib/Target/TargetSelectionDAG.td \ - $(LLVM_SRC_ROOT)/include/llvm/CodeGen/ValueTypes.td) + $(LLVM_SRC_ROOT)/include/llvm/CodeGen/ValueTypes.td) \ + $(wildcard $(LLVM_SRC_ROOT)/include/llvm/Intrinsics*.td) INCFiles := $(filter %.inc,$(BUILT_SOURCES)) INCTMPFiles := $(INCFiles:%=$(ObjDir)/%.tmp) .PRECIOUS: $(INCTMPFiles) $(INCFiles) @@ -1292,6 +1264,7 @@ $(PROJ_SRC_DIR)/%.cpp: $(PROJ_SRC_DIR)/%.l $(Verb) $(FLEX) -t $(PROJ_SRC_DIR)/$*.l | \ $(SED) 's/void yyunput/inline void yyunput/' | \ $(SED) 's/void \*yy_flex_realloc/inline void *yy_flex_realloc/' | \ + $(SED) 's/^find_rule: \/\* we branch.*//' | \ $(SED) 's/#define YY_BUF_SIZE 16384/#define YY_BUF_SIZE (16384*64)/' \ > $(PROJ_SRC_DIR)/$*.cpp