aboutsummaryrefslogtreecommitdiffhomepage
path: root/templates
diff options
context:
space:
mode:
authorGravatar ctiller <ctiller@google.com>2015-01-06 15:02:12 -0800
committerGravatar Nicolas Noble <nnoble@google.com>2015-01-06 17:50:47 -0800
commit8cfebb91caf2cb3c785fac403840b4443bc8e741 (patch)
treefd57a6fb414b9ba998010579745f7c2232e38774 /templates
parentcab52e76e5fa0229405e5825357ba6f3b283edda (diff)
Add msan, tsan, asan targets for Makefile.
Expand test runner to be compatible. Change on 2015/01/06 by ctiller <ctiller@google.com> ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=83378004
Diffstat (limited to 'templates')
-rw-r--r--templates/Makefile.template72
1 files changed, 56 insertions, 16 deletions
diff --git a/templates/Makefile.template b/templates/Makefile.template
index 3350f18d66..470ac0c235 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -18,16 +18,67 @@
return 'gens/' + m.group(1) + '.pb.cc'
%>
+# Configurations
+
+VALID_CONFIG_opt = 1
+CC_opt = gcc
+CXX_opt = g++
+LD_opt = gcc
+LDXX_opt = g++
+CPPFLAGS_opt = -O2
+LDFLAGS_opt =
+DEFINES_opt = NDEBUG
+
+VALID_CONFIG_dbg = 1
+CC_dbg = gcc
+CXX_dbg = g++
+LD_dbg = gcc
+LDXX_dbg = g++
+CPPFLAGS_dbg = -O0
+LDFLAGS_dbg =
+DEFINES_dbg = _DEBUG DEBUG
+
+VALID_CONFIG_tsan = 1
+CC_tsan = clang
+CXX_tsan = clang++
+LD_tsan = clang
+LDXX_tsan = clang++
+CPPFLAGS_tsan = -O1 -fsanitize=thread -fno-omit-frame-pointer
+LDFLAGS_tsan = -fsanitize=thread
+DEFINES_tsan = NDEBUG
+
+VALID_CONFIG_asan = 1
+CC_asan = clang
+CXX_asan = clang++
+LD_asan = clang
+LDXX_asan = clang++
+CPPFLAGS_asan = -O1 -fsanitize=address -fno-omit-frame-pointer
+LDFLAGS_asan = -fsanitize=address
+DEFINES_asan = NDEBUG
+
+VALID_CONFIG_msan = 1
+CC_msan = clang
+CXX_msan = clang++
+LD_msan = clang
+LDXX_msan = clang++
+CPPFLAGS_msan = -O1 -fsanitize=memory -fno-omit-frame-pointer
+LDFLAGS_msan = -fsanitize=memory
+DEFINES_msan = NDEBUG
+
+ifndef VALID_CONFIG_$(CONFIG)
+$(error Invalid CONFIG value '$(CONFIG)')
+endif
+
# General settings.
# You may want to change these depending on your system.
prefix ?= /usr/local
PROTOC = protoc
-CC = gcc
-CXX = g++
-LD = gcc
-LDXX = g++
+CC = $(CC_$(CONFIG))
+CXX = $(CXX_$(CONFIG))
+LD = $(LD_$(CONFIG))
+LDXX = $(LDXX_$(CONFIG))
AR = ar
STRIP = strip --strip-unneeded
INSTALL = install -D
@@ -40,20 +91,9 @@ HOST_LDXX = $(LDXX)
CONFIG ?= opt
-VALID_CONFIG_opt = 1
-CPPFLAGS_opt = -O2
-DEFINES_opt = NDEBUG
-
-VALID_CONFIG_dbg = 1
-CPPFLAGS_dbg = -O0
-DEFINES_dbg = _DEBUG DEBUG
-
-ifndef VALID_CONFIG_$(CONFIG)
-$(error Invalid CONFIG value '$(CONFIG)')
-endif
-
CPPFLAGS += $(CPPFLAGS_$(CONFIG))
DEFINES += $(DEFINES_$(CONFIG))
+LDFLAGS += $(LDFLAGS_$(CONFIG))
CFLAGS += -std=c89 -pedantic
CXXFLAGS += -std=c++11