# Clang-specific toolchain setup # We assume that we're using a standard GCC/binutils environment, as well # as clang being mostly GCC-compatible on the command line CCDEF := -D CCOPT := -O2 CCNOOPT := -O0 CCDBG := -g CCINC := -I CCLIB := -L CCAS := -xassembler-with-cpp CCSHR := -fPIC CXXDEF := -D CXXOPT := -O2 CXXNOOPT := -O0 CXXDBG := -g CXXINC := -I CXXLIB := -L CXXSHR := -fPIC LDDBG := -g # Reevaluation is required here LDSHR = -shared -Wl,-soname,$(SONAME) ARFLG := cru # Definitions of various attributes CFLAGS := $(CFLAGS) -D_ALIGNED="__attribute__((aligned))" # Extensions for sanitize target ifeq ($(MAKECMDGOALS),sanitize) SANCFLAGS ?= -fsanitize=address -fsanitize=undefined -fno-sanitize-recover SANCXXFLAGS ?= -fsanitize=address -fsanitize=undefined -fno-sanitize-recover SANLDFLAGS ?= -fsanitize=address -fsanitize=undefined -fno-sanitize-recover CFLAGS := $(CFLAGS) $(SANCFLAGS) CXXFLAGS := $(CXXFLAGS) $(SANCXXFLAGS) LDFLAGS := $(LDFLAGS) $(SANLDFLAGS) endif ############################################################################### # Mac OS X Universal Binaries ############################################################################### ifeq ($(findstring darwin,$(HOST)),darwin) ifneq ($(UNIVERSAL),) UNIVERSAL_FLAGS := $(foreach arch,$(UNIVERSAL),-arch $(arch) ) CFLAGS := $(CFLAGS) $(UNIVERSAL_FLAGS) LDFLAGS := $(LDFLAGS) $(UNIVERSAL_FLAGS) CXXFLAGS := $(CXXFLAGS) $(UNIVERSAL_FLAGS) ARFLAGS := $(ARFLAGS) -s endif endif ############################################################################### # Other settings ############################################################################### CC_CAN_BUILD_AND_DEP ?= yes