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)
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)
# 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
#--------------------------------------------------------------------
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
# 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
ifdef LINK_LIBS_IN_SHARED
ifdef LOADABLE_MODULE
-SharedLibKindMessage := "Lodable Module"
+SharedLibKindMessage := "Loadable Module"
else
SharedLibKindMessage := "Shared Library"
endif
$< -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)
$(Echo) "Compiling $*.cc for $(BuildMode) build (bytecode)"
$< -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)
$(Echo) "Compiling $*.c for $(BuildMode) build (bytecode)"
$< -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
$(ObjDir)/%.ll: %.cpp $(ObjDir)/.dir $(BUILT_SOURCES)
$(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)
$(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)
$(Echo) "Compiling $*.c for $(BuildMode) build (bytecode)"
$(BCCompile.C) $< -o $@ -S -emit-llvm
+ $(call UPGRADE_MSG,@)
+ $(call UPGRADE_LL,@)
endif
$(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 $@