X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=Makefile.rules;h=1e75acf187b9a72e781e2b502d0c42fa7e339f09;hb=a726c7f1fd3c3b75bbb3df8faa7676ef09cb15c8;hp=6692c73fd8325fa26048ecb46356ef060d4ce848;hpb=7192786afcf624af592df32df02eca56ab1aa35d;p=oota-llvm.git diff --git a/Makefile.rules b/Makefile.rules index 6692c73fd83..1e75acf187b 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -219,32 +219,31 @@ else C.Flags := -g LD.Flags := -g KEEP_SYMBOLS := 1 - # Assertions default to ON for debug builds. - ENABLE_ASSERTIONS := 1 endif endif -# If this is a debug build or if ENABLE_ASSERTIONS=1 is specified on the make -# command line, enable assertions. -ifdef ENABLE_ASSERTIONS - CXX.Flags += -D_DEBUG - C.Flags += -D_DEBUG -else +# 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 +else + CXX.Flags += -D_DEBUG + C.Flags += -D_DEBUG endif -CXX.Flags += $(CXXFLAGS) -C.Flags += $(CFLAGS) -CPP.Flags += $(CPPFLAGS) -LD.Flags += $(LDFLAGS) -AR.Flags := cru +CXX.Flags += $(CXXFLAGS) +C.Flags += $(CFLAGS) +CPP.BaseFlags += $(CPPFLAGS) +LD.Flags += $(LDFLAGS) +AR.Flags := cru LibTool.Flags := --tag=CXX #Make Floating point ieee complient on alpha ifeq ($(ARCH),Alpha) - CXX.Flags += -mieee - CPP.Flags += -mieee + CXX.Flags += -mieee + CPP.BaseFlags += -mieee endif #-------------------------------------------------------------------- @@ -270,9 +269,6 @@ endif ifndef LLVMAS LLVMAS := $(LLVMToolDir)/llvm-as$(EXEEXT) endif -ifndef BURG -BURG := $(LLVMToolDir)/burg$(EXEEXT) -endif ifndef TBLGEN TBLGEN := $(LLVMToolDir)/tblgen$(EXEEXT) endif @@ -360,13 +356,33 @@ ifeq ($(OS),HP-UX) CompileCommonOpts := -D_REENTRANT -D_HPUX_SOURCE endif -LD.Flags += -L$(LibDir) -L$(LLVMLibDir) -CPP.Flags += -I$(PROJ_OBJ_DIR) -I$(PROJ_SRC_DIR) \ - -I$(PROJ_OBJ_ROOT)/include \ - -I$(PROJ_SRC_ROOT)/include \ - -I$(LLVM_OBJ_ROOT)/include \ - -I$(LLVM_SRC_ROOT)/include \ - -D_GNU_SOURCE -D__STDC_LIMIT_MACROS +# If we are building a universal binary on Mac OS/X, pass extra options. This is +# useful to people that want to link the LLVM libraries into their universal apps. +ifdef UNIVERSAL + CompileCommonOpts += \ + -arch i386 -arch ppc -isysroot /Developer/SDKs/MACOSX10.4u.sdk/ + Relink.Flags := -XCClinker -arch -XCClinker i386 -XCClinker -arch \ + -XCClinker ppc -XCClinker \ + -isysroot -XCClinker /Developer/SDKs/MACOSX10.4u.sdk/ + DISABLE_AUTO_DEPENDENCIES=1 +endif + +# Temporary workaround for a Mac OSX / x86 compatibility issue. +ifeq ($(OS),Darwin) +ifeq ($(ARCH),x86) + CXX.Flags += -fno-use-cxa-atexit +endif +endif + +LD.Flags += -L$(LibDir) -L$(LLVMLibDir) +CPP.BaseFlags += -D_GNU_SOURCE -D__STDC_LIMIT_MACROS +# All -I flags should go here, so that they don't confuse llvm-config. +CPP.Flags += -I$(PROJ_OBJ_DIR) -I$(PROJ_SRC_DIR) \ + -I$(PROJ_OBJ_ROOT)/include \ + -I$(PROJ_SRC_ROOT)/include \ + -I$(LLVM_OBJ_ROOT)/include \ + -I$(LLVM_SRC_ROOT)/include \ + $(CPP.BaseFlags) Compile.C = $(CC) $(CPP.Flags) $(CompileCommonOpts) -c $(C.Flags) LTCompile.C = $(LIBTOOL) $(LibTool.Flags) --mode=compile $(Compile.C) @@ -382,12 +398,12 @@ Preprocess.CXX= $(CXX) $(CPP.Flags) $(CompileCommonOpts) $(CXX.Flags) -E Link = $(LIBTOOL) $(LibTool.Flags) --mode=link $(CXX) $(CPP.Flags) \ $(CompileCommonOpts) $(LD.Flags) $(Strip) Relink = $(LIBTOOL) $(LibTool.Flags) --mode=link $(CXX) $(CPP.Flags) \ - $(CompileCommonOpts) + $(CompileCommonOpts) $(Relink.Flags) LTInstall = $(LIBTOOL) $(LibTool.Flags) --mode=install $(INSTALL) \ $(Install.Flags) ProgInstall = $(INSTALL) $(Install.StripFlag) -m 0755 +ScriptInstall = $(INSTALL) -m 0755 DataInstall = $(INSTALL) -m 0644 -Burg = $(BURG) -I $(PROJ_SRC_DIR) TableGen = $(TBLGEN) -I $(PROJ_SRC_DIR) -I$(PROJ_SRC_ROOT)/include Archive = $(AR) $(AR.Flags) LArchive = $(LLVMToolDir)/llvm-ar rcsf @@ -561,6 +577,13 @@ endif # 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) +LLVM_CONFIG := $(LLVM_SRC_ROOT)/utils/llvm-config/llvm-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 @@ -581,21 +604,6 @@ ifdef ENABLE_X86_JIT JIT_LIBS += LLVMX86 LLVMSelectionDAG endif -# You can enable the SparcV9 JIT on a non-SparcV9 host by setting the flag -# ENABLE_SPARCV9_JIT on the make command line. If not, it will still be -# enabled automagically on an SparcV9 host. -ifeq ($(ARCH), Sparc) - ENABLE_SPARCV9_JIT = 1 -endif - -# What the Sparc JIT requires -ifdef ENABLE_SPARCV9_JIT - JIT_LIBS += LLVMSparcV9 LLVMSparcV9ModuloSched LLVMSparcV9InstrSched \ - LLVMSparcV9LiveVar LLVMInstrumentation.a \ - LLVMBCWriter LLVMTransforms.a LLVMipo.a LLVMipa.a \ - LLVMDataStructure LLVMSparcV9RegAlloc -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. @@ -635,6 +643,9 @@ endif ifeq ($(ARCH),Alpha) USEDLIBS := $(subst LLVMCore, LLVMCore.a, $(USEDLIBS)) LLVMLIBS := $(subst LLVMCore, LLVMCore.a, $(LLVMLIBS)) +CORE_IS_ARCHIVE := 1 +else +CORE_IS_ARCHIVE := 0 endif ProjLibsOptions := $(patsubst %.a.o, -l%, $(addsuffix .o, $(USEDLIBS))) @@ -664,7 +675,8 @@ $(warning Modules require llvm-gcc but no llvm-gcc is available ****) else Module := $(LibDir)/$(MODULE_NAME).bc -LinkModule := $(GCCLD) +LinkModule := $(GCCLD) -L$(CFERuntimeLibDir) + ifdef EXPORTED_SYMBOL_FILE LinkModule += -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE) @@ -774,7 +786,7 @@ else all-local:: $(LibName.BCA) ifdef EXPORTED_SYMBOL_FILE -BCLinkLib = $(GCCLD) -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE) +BCLinkLib = $(GCCLD) -L$(CFERuntimeLibDir) -internalize-public-api-file=$(EXPORTED_SYMBOL_FILE) $(LibName.BCA): $(ObjectsBC) $(LibDir)/.dir $(GCCLD) \ $(LLVMToolDir)/llvm-ar @@ -1476,8 +1488,6 @@ dist-check:: $(DistTarGZip) $(MAKE) check && \ $(MAKE) install && \ $(MAKE) uninstall && \ - $(MAKE) dist && \ - $(MAKE) clean && \ $(MAKE) dist-clean && \ $(EchoCmd) ===== $(DistTarGZip) Ready For Distribution ===== @@ -1501,7 +1511,7 @@ $(DistDir)/.makedistdir: $(DistSources) $(EchoCmd) Removing old $(DistDir) ; \ $(RM) -rf $(DistDir); \ $(EchoCmd) Making 'all' to verify build ; \ - $(MAKE) all ; \ + $(MAKE) ENABLE_OPTIMIZED=1 all ; \ fi $(Echo) Building Distribution Directory $(DistDir) $(Verb) $(MKDIR) $(DistDir) @@ -1562,8 +1572,8 @@ $(DistDir)/.makedistdir: $(DistSources) if test "$$subdir" \!= "." ; then \ new_distdir="$(DistDir)/$$subdir" ; \ test -d "$$new_distdir" || $(MKDIR) "$$new_distdir" || exit 1; \ - ( cd $$subdir && $(MAKE) DistDir="$$new_distdir" distdir ) || \ - exit 1; \ + ( cd $$subdir && $(MAKE) ENABLE_OPTIMIZED=1 \ + DistDir="$$new_distdir" distdir ) || exit 1; \ fi; \ done $(Verb) if test "$(DistDir)" = "$(TopDistDir)" ; then \ @@ -1668,3 +1678,4 @@ printvars:: $(Echo) "LexFiles : " '$(LexFiles)' $(Echo) "Module : " '$(Module)' $(Echo) "FilesToConfig: " '$(FilesToConfigPATH)' + $(Echo) "SubDirs : " '$(SubDirs)'