X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Makefile.rules;h=351a3450601bf7c6f3c558ea3fc239907f98e8aa;hb=12a9dc8c14301ae199f2c2d6ab55cc5c995101cd;hp=a8af0ef4ede0a612e4c9f790371ba8870cca8307;hpb=3c89812109835c516d6ae413594d2173446bdae8;p=oota-llvm.git diff --git a/Makefile.rules b/Makefile.rules index a8af0ef4ede..351a3450601 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -282,6 +282,14 @@ ifndef REQUIRES_RTTI # CXX.Flags += -fno-rtti endif +ifdef ENABLE_COVERAGE + BuildMode := $(BuildMode)+Coverage + # These only go to .NoRelink because otherwise we will end up + # linking -lgcov into the .o libraries that get built. + CXX.Flags.NoRelink += -ftest-coverage -fprofile-arcs + C.Flags.NoRelink += -ftest-coverage -fprofile-arcs +endif + # If DISABLE_ASSERTIONS=1 is specified (make command line or configured), # then disable assertions by defining the appropriate preprocessor symbols. ifdef DISABLE_ASSERTIONS @@ -420,6 +428,26 @@ endif # Adjust to user's request #-------------------------------------------------------------------- +ifeq ($(OS),Darwin) + DARWIN_VERSION := `sw_vers -productVersion` + # Strip a number like 10.4.7 to 10.4 + DARWIN_VERSION := $(shell echo $(DARWIN_VERSION)| sed -E 's/(10.[0-9]).*/\1/') + # Get "4" out of 10.4 for later pieces in the makefile. + DARWIN_MAJVERS := $(shell echo $(DARWIN_VERSION)| sed -E 's/10.([0-9]).*/\1/') + + SharedLinkOptions=-Wl,-flat_namespace -Wl,-undefined -Wl,suppress -bundle \ + -mmacosx-version-min=$(DARWIN_VERSION) + CompileCommonOpts += -mmacosx-version-min=$(DARWIN_VERSION) +else + ifeq ($(OS),Cygwin) + SharedLinkOptions=-shared -nostdlib -Wl,--export-all-symbols \ + -Wl,--enable-auto-import -Wl,--enable-auto-image-base \ + -Wl,--enable-runtime-pseudo-relocs + else + SharedLinkOptions=-shared + endif +endif + # Adjust LD.Flags depending on the kind of library that is to be built. Note # that if LOADABLE_MODULE is specified then the resulting shared library can # be opened with dlopen. @@ -428,8 +456,10 @@ ifdef LOADABLE_MODULE endif ifdef SHARED_LIBRARY +ifneq ($(DARWIN_MAJVERS),4) LD.Flags += $(RPATH) -Wl,$(LibDir) endif +endif ifdef TOOL_VERBOSE C.Flags += -v @@ -456,28 +486,15 @@ endif # Adjust linker flags for building an executable ifneq ($(OS),Darwin) +ifneq ($(DARWIN_MAJVERS),4) ifdef TOOLNAME ifdef EXAMPLE_TOOL - LD.Flags += $(RPATH) -Wl,$(ExmplDir) -export-dynamic + LD.Flags += $(RPATH) -Wl,$(ExmplDir) $(RDYNAMIC) else - LD.Flags += $(RPATH) -Wl,$(ToolDir) -export-dynamic + LD.Flags += $(RPATH) -Wl,$(ToolDir) $(RDYNAMIC) endif endif endif - -ifeq ($(OS),Darwin) - DARWIN_VERSION := `sw_vers -productVersion` - SharedLinkOptions=-Wl,-flat_namespace -Wl,-undefined -Wl,suppress -bundle \ - -mmacosx-version-min=$(DARWIN_VERSION) - CompileCommonOpts += -mmacosx-version-min=$(DARWIN_VERSION) -else - ifeq ($(OS),Cygwin) - SharedLinkOptions=-shared -nostdlib -Wl,--export-all-symbols \ - -Wl,--enable-auto-import -Wl,--enable-auto-image-base \ - -Wl,--enable-runtime-pseudo-relocs - else - SharedLinkOptions=-shared - endif endif #---------------------------------------------------------- @@ -516,6 +533,16 @@ ifdef UNIVERSAL # Building universal cannot compute dependencies automatically. DISABLE_AUTO_DEPENDENCIES=1 +else + ifeq ($(OS),Darwin) + ifeq ($(ARCH),x86_64) + CompileCommonOpts += -m64 + else + ifeq ($(ARCH),x86) + CompileCommonOpts += -m32 + endif + endif + endif endif ifeq ($(OS),SunOS) @@ -531,20 +558,26 @@ CPP.Flags += $(sort -I$(PROJ_OBJ_DIR) -I$(PROJ_SRC_DIR) \ $(LLVM_OBJ_ROOT) $(LLVM_SRC_ROOT))) \ $(CPP.BaseFlags) - ifeq ($(BUILD_COMPONENT), 1) - Compile.C = $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c - Compile.CXX = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) -c - Preprocess.CXX= $(BUILD_CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E - Link = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \ - $(LD.Flags) $(Strip) +ifeq ($(BUILD_COMPONENT), 1) + Compile.C = $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \ + $(CompileCommonOpts) -c + Compile.CXX = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \ + $(CompileCommonOpts) -c + Preprocess.CXX= $(BUILD_CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) \ + $(CXX.Flags.NoRelink) -E + Link = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \ + $(CompileCommonOpts) $(LD.Flags) $(Strip) Relink = $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \ $(Relink.Flags) else - Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(CompileCommonOpts) -c - Compile.CXX = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) -c - Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E - Link = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \ - $(LD.Flags) $(Strip) + Compile.C = $(CC) $(CPP.Flags) $(C.Flags) $(C.Flags.NoRelink) \ + $(CompileCommonOpts) -c + Compile.CXX = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \ + $(CompileCommonOpts) -c + Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) \ + $(CXX.Flags.NoRelink) -E + Link = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CXX.Flags.NoRelink) \ + $(CompileCommonOpts) $(LD.Flags) $(Strip) Relink = $(CXX) $(CPP.Flags) $(CXX.Flags) $(CompileCommonOpts) \ $(Relink.Flags) endif @@ -1103,8 +1136,12 @@ endif # startup time by 4x on darwin in some cases. ifdef TOOL_NO_EXPORTS ifeq ($(OS),Darwin) + +# Tiger tools don't support this. +ifneq ($(DARWIN_MAJVERS),4) LD.Flags += -Wl,-exported_symbol -Wl,_main endif +endif ifeq ($(OS), $(filter $(OS), Linux NetBSD FreeBSD)) LD.Flags += -Wl,--version-script=$(LLVM_SRC_ROOT)/autoconf/ExportMap.map @@ -1321,15 +1358,16 @@ ifdef LLVMC_BUILD_AUTOGENERATED_INC TABLEGEN_INC_FILES_COMMON = 1 endif +ifdef CLANG_BUILD_DIAGNOSTICS_INC +TABLEGEN_INC_FILES_COMMON = 1 +endif + ifdef TABLEGEN_INC_FILES_COMMON INCFiles := $(filter %.inc,$(BUILT_SOURCES)) INCTMPFiles := $(INCFiles:%=$(ObjDir)/%.tmp) .PRECIOUS: $(INCTMPFiles) $(INCFiles) -# All of these files depend on tblgen and the .td files. -$(INCTMPFiles) : $(TBLGEN) $(TDFiles) - # INCFiles rule: All of the tblgen generated files are emitted to # $(ObjDir)/%.inc.tmp, instead of emitting them directly to %.inc. This allows # us to only "touch" the real file if the contents of it change. IOW, if @@ -1351,6 +1389,9 @@ TDFiles := $(strip $(wildcard $(PROJ_SRC_DIR)/*.td) \ $(LLVM_SRC_ROOT)/include/llvm/CodeGen/ValueTypes.td) \ $(wildcard $(LLVM_SRC_ROOT)/include/llvm/Intrinsics*.td) +# All of these files depend on tblgen and the .td files. +$(INCTMPFiles) : $(TBLGEN) $(TDFiles) + $(TARGET:%=$(ObjDir)/%GenRegisterNames.inc.tmp): \ $(ObjDir)/%GenRegisterNames.inc.tmp : %.td $(ObjDir)/.dir $(Echo) "Building $(