| SVN_ROOT=.. |
| include ../common.mk |
| |
| ifeq ($(OS), darwin) |
| DEFINES=-DOS_$(OS) -DARCH_$(ARCH) -DOS_$(DARWIN_VERSION) |
| else |
| DEFINES=-DOS_$(OS) -DARCH_$(ARCH) |
| endif |
| |
| CFLAGS+=$(OPTFLAGS) $(ARCHFLAGS) $(OS_CFLAGS) $(DEFINES) $(EXTRA_CFLAGS) |
| CXXFLAGS+=$(OPTFLAGS) $(ARCHFLAGS) $(OS_CXXFLAGS) $(DEFINES) $(EXTRA_CXXFLAGS) |
| OPT_CXXFLAGS=$(CXXFLAGS) -O2 -g $(ARCHFLAGS) $(OS_CXXFLAGS) $(DEFINES) $(EXTRA_CXXFLAGS) -foptimize-sibling-calls |
| ifeq ($(OS), darwin) |
| LDFLAGS=$(LDOPT) $(ARCHFLAGS) $(STATICFLAGS) -framework Foundation |
| else |
| LDFLAGS=$(LDOPT) $(ARCHFLAGS) $(STATICFLAGS) |
| endif |
| |
| # OS = linux, darwin, windows |
| # ARCH= x86, amd64 |
| # OX = O0, O1, ... |
| # S= <empty>, -static |
| BUILD=${OS}-${ARCH}-${OX}${S}${EXTRA_BUILD_SUFFIX} |
| BIN=bin/ |
| |
| ifeq ($(OS), linux) |
| OS_CXXFLAGS=-Wall -Werror -Wno-sign-compare -Wshadow -Wno-unused-function -std=c++0x |
| OS_CFLAGS=-Wall -Werror -Wno-sign-compare -Wshadow -Wno-unused-function -std=c89 |
| LIBS=-lpthread -lrt |
| else ifeq ($(OS), darwin) |
| OS_CXXFLAGS=-Wall -Werror -Wno-sign-compare -Wshadow -Wno-unused-function |
| OS_CFLAGS=-Wall -Werror -Wno-sign-compare -Wshadow -Wno-unused-function -std=c89 |
| LIBS=-lpthread |
| else ifeq ($(OS), windows) |
| OS_CXXFLAGS=/EHs- /EHa- /wd4530 /D_CRT_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /nologo /Gy /D "WIN32" |
| OS_CFLAGS=/EHs- /EHa- /wd4530 /D_CRT_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /nologo /Gy /D "WIN32" |
| else |
| OS=UNKNOWN_OS |
| endif |
| |
| OUTPUT_TESTS_LIST=$(patsubst output_tests/%.cc,%,$(wildcard output_tests/*.cc)) |
| OUTPUT_TESTS_OBJS=$(patsubst %,$(BIN)output_tests/%-$(BUILD)$(EXE),$(OUTPUT_TESTS_LIST)) |
| |
| all: $(BIN)racecheck_unittest-$(BUILD)$(EXE) $(BIN)demo_tests-$(BUILD)$(EXE) \ |
| $(BIN)bigtest-$(BUILD)$(EXE) output_tests \ |
| $(BIN)memory_unittest-$(BUILD)$(EXE) |
| ifeq ($(OS), linux) |
| all: $(BIN)deadlock_unittest-$(BUILD)$(EXE) |
| endif |
| |
| output_tests: bin/output_tests $(OUTPUT_TESTS_OBJS) |
| |
| run_output_tests: output_tests |
| BUILD=$(BUILD) BIN=$(BIN) ./run_output_tests.sh $(OUTPUT_TESTS_LIST) |
| |
| w: |
| $(MAKE) all OS=windows ARCH=x86 |
| m: m32 m64 |
| m32: |
| $(MAKE) all OS=darwin ARCH=x86 |
| m64: |
| $(MAKE) all OS=darwin ARCH=amd64 |
| l: l32 l64 |
| l32: |
| $(MAKE) all OS=linux ARCH=x86 |
| l64: |
| $(MAKE) all OS=linux ARCH=amd64 |
| |
| bin: |
| mkdir -p bin |
| bin/output_tests: |
| mkdir -p bin/output_tests |
| |
| DYNAMIC_ANNOTATIONS_DIR=../dynamic_annotations |
| DYNAMIC_ANNOTATIONS_H=${DYNAMIC_ANNOTATIONS_DIR}/dynamic_annotations.h |
| DYNAMIC_ANNOTATIONS_C=${DYNAMIC_ANNOTATIONS_DIR}/dynamic_annotations.c |
| ifndef OMIT_DYNAMIC_ANNOTATIONS_IMPL |
| DYNAMIC_ANNOTATIONS_O=$(BIN)dynamic_annotations-$(BUILD).$(OBJ) |
| else |
| DYNAMIC_ANNOTATIONS_O= |
| endif |
| DYNAMIC_ANNOTATIONS=${DYNAMIC_ANNOTATIONS_C} ${DYNAMIC_ANNOTATIONS_H} |
| |
| TEST_UTILS_O=$(BIN)test_utils-$(BUILD).$(OBJ) |
| |
| $(BIN)racecheck_unittest-$(BUILD)$(EXE): $(BIN)racecheck_unittest-$(BUILD).$(OBJ) \ |
| $(BIN)old_test_suite-$(BUILD).$(OBJ) \ |
| $(BIN)opt_tests-$(BUILD).$(OBJ) \ |
| $(BIN)atomicity_tests-$(BUILD).$(OBJ) \ |
| $(TEST_UTILS_O) $(GTEST_LIB) ${DYNAMIC_ANNOTATIONS_O} | bin |
| ${LD} ${LDFLAGS} $^ $(LIBS) $(LINKO)$@ |
| |
| ifeq ($(OS), windows) |
| $(BIN)racecheck_unittest-$(BUILD)$(EXE): $(BIN)windows_tests-$(BUILD).$(OBJ) |
| else |
| $(BIN)racecheck_unittest-$(BUILD)$(EXE): $(BIN)posix_tests-$(BUILD).$(OBJ) |
| endif |
| |
| ifeq ($(OS), linux) |
| ifndef OMIT_CPP0X |
| $(BIN)racecheck_unittest-$(BUILD)$(EXE): $(BIN)libstdc++_tests-$(BUILD).$(OBJ) |
| endif |
| endif |
| |
| ifeq ($(OS), darwin) |
| $(BIN)racecheck_unittest-$(BUILD)$(EXE): $(BIN)mac_tests-$(BUILD).$(OBJ) |
| endif |
| |
| $(BIN)deadlock_unittest-$(BUILD)$(EXE): $(BIN)deadlock_unittest-$(BUILD).$(OBJ) $(BIN)old_test_suite-$(BUILD).$(OBJ) \ |
| $(TEST_UTILS_O) $(GTEST_LIB) ${DYNAMIC_ANNOTATIONS_O} | bin |
| ${LD} ${LDFLAGS} $^ $(LIBS) $(LINKO)$@ |
| |
| $(BIN)demo_tests-$(BUILD)$(EXE): $(BIN)demo_tests-$(BUILD).$(OBJ) \ |
| $(TEST_UTILS_O) $(GTEST_LIB) ${DYNAMIC_ANNOTATIONS_O} | bin |
| ${LD} $(LDFLAGS) $^ $(LIBS) $(LINKO)$@ |
| |
| $(BIN)output_tests/%-$(BUILD)$(EXE): $(BIN)output_tests/%-$(BUILD).$(OBJ) \ |
| ${TEST_UTILS_O} ${DYNAMIC_ANNOTATIONS_O} | bin |
| ${LD} $(LDFLAGS) $^ $(LIBS) $(LINKO)$@ |
| |
| $(BIN)bigtest-$(BUILD)$(EXE): $(BIN)bigtest-$(BUILD).$(OBJ) ${DYNAMIC_ANNOTATIONS_O} | bin |
| ${LD} $(LDFLAGS) $^ $(LIBS) $(LINKO)$@ |
| |
| $(BIN)memory_unittest-$(BUILD)$(EXE): $(BIN)memory_unittest-$(BUILD).$(OBJ) $(BIN)old_test_suite-$(BUILD).$(OBJ) \ |
| $(TEST_UTILS_O) $(GTEST_LIB) ${DYNAMIC_ANNOTATIONS_O} | bin |
| ${LD} $(LDFLAGS) $^ $(LIBS) $(LINKO)$@ |
| |
| $(BIN)%-$(BUILD).$(OBJ): %.cc ${DYNAMIC_ANNOTATIONS} thread_wrappers.h \ |
| thread_wrappers_win.h thread_wrappers_pthread.h old_test_suite.h \ |
| test_utils.h gtest_fixture_injection.h | bin |
| ${CXX} ${CXXFLAGS} \ |
| -I${DYNAMIC_ANNOTATIONS_DIR} -I${GTEST_ROOT}/include -I. \ |
| -DDYNAMIC_ANNOTATIONS_ENABLED=1 -c $< $(O)$@ |
| |
| $(BIN)opt_tests-$(BUILD).$(OBJ): opt_tests.cc ${DYNAMIC_ANNOTATIONS} thread_wrappers.h thread_wrappers_win.h thread_wrappers_pthread.h old_test_suite.h test_utils.h | bin |
| ${CXX} ${OPT_CXXFLAGS} \ |
| -I${DYNAMIC_ANNOTATIONS_DIR} -I${GTEST_ROOT}/include -I. \ |
| -DDYNAMIC_ANNOTATIONS_ENABLED=1 -c $< $(O)$@ |
| |
| $(BIN)%-$(BUILD).$(OBJ): %.mm ${DYNAMIC_ANNOTATIONS} thread_wrappers.h thread_wrappers_win.h thread_wrappers_pthread.h old_test_suite.h test_utils.h | bin |
| ${CXX} ${CXXFLAGS} \ |
| -I${DYNAMIC_ANNOTATIONS_DIR} -I${GTEST_ROOT}/include -I. \ |
| -DDYNAMIC_ANNOTATIONS_ENABLED=1 -c $< $(O)$@ |
| |
| |
| ${DYNAMIC_ANNOTATIONS_O}: ${DYNAMIC_ANNOTATIONS_C} |
| ${CC} ${CFLAGS} $< \ |
| -I${DYNAMIC_ANNOTATIONS_DIR} -DDYNAMIC_ANNOTATIONS_ENABLED=1 \ |
| -c $(O)$@ |
| |
| clean: GTEST_CLEAN |
| rm -rf bin racecheck_unittest demo_tests bigtest *.o *.O1 *.O2 *.obj *.dSYM *.exe *.pdb *.ilk *.idb *.manifest |