Make internal googletest optional.

Useful for packaging, when target already has a googletest package. To
use:
make USE_INTERNAL_GTEST=0

Change-Id: I67620288684dc4ab0b662929b2d5c29306ed585a
Reviewed-on: https://weave-review.googlesource.com/2465
Reviewed-by: Vitaly Buka <vitalybuka@google.com>
diff --git a/tests.mk b/tests.mk
index 4e11f7e..468e2ee 100644
--- a/tests.mk
+++ b/tests.mk
@@ -2,6 +2,13 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+USE_INTERNAL_GTEST ?= 1
+
+test_common_build_flags := -lcrypto -lexpat -lpthread -lrt -Lthird_party/lib
+ifneq (1, $(USE_INTERNAL_GTEST))
+test_common_build_flags += -lgtest -lgmock
+endif
+
 ###
 # tests
 
@@ -15,7 +22,11 @@
 
 weave_test_obj_files := $(WEAVE_TEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o)
 
-$(weave_test_obj_files) : out/$(BUILD_MODE)/%.o : %.cc third_party/include/gtest/gtest.h
+ifeq (1, $(USE_INTERNAL_GTEST))
+$(weave_test_obj_files) : third_party/include/gtest/gtest.h
+endif
+
+$(weave_test_obj_files) : out/$(BUILD_MODE)/%.o : %.cc
 	mkdir -p $(dir $@)
 	$(CXX) $(DEFS_$(BUILD_MODE)) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $<
 
@@ -24,19 +35,25 @@
 
 weave_unittest_obj_files := $(WEAVE_UNITTEST_SRC_FILES:%.cc=out/$(BUILD_MODE)/%.o)
 
-$(weave_unittest_obj_files) : out/$(BUILD_MODE)/%.o : %.cc third_party/include/gtest/gtest.h
+ifeq (1, $(USE_INTERNAL_GTEST))
+$(weave_unittest_obj_files) : third_party/include/gtest/gtest.h
+endif
+
+$(weave_unittest_obj_files) : out/$(BUILD_MODE)/%.o : %.cc
 	mkdir -p $(dir $@)
 	$(CXX) $(DEFS_TEST) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $<
 
+ifeq (1, $(USE_INTERNAL_GTEST))
+out/$(BUILD_MODE)/libweave_testrunner : third_party/lib/gmock.a third_party/lib/gtest.a
+endif
+
 out/$(BUILD_MODE)/libweave_testrunner : \
 	$(weave_unittest_obj_files) \
 	$(third_party_chromium_crypto_unittest_obj_files) \
 	$(third_party_chromium_base_unittest_obj_files) \
 	out/$(BUILD_MODE)/libweave_common.a \
-	out/$(BUILD_MODE)/libweave-test.a \
-	third_party/lib/gmock.a \
-	third_party/lib/gtest.a
-	$(CXX) -o $@ $^ $(CFLAGS) -lcrypto -lexpat -lpthread -lrt -Lthird_party/lib
+	out/$(BUILD_MODE)/libweave-test.a
+	$(CXX) -o $@ $^ $(CFLAGS) $(test_common_build_flags)
 
 test : out/$(BUILD_MODE)/libweave_testrunner
 	$(TEST_ENV) $< $(TEST_FLAGS)
@@ -50,14 +67,16 @@
 	mkdir -p $(dir $@)
 	$(CXX) $(DEFS_TEST) $(INCLUDES) $(CFLAGS) $(CFLAGS_$(BUILD_MODE)) $(CFLAGS_CC) -c -o $@ $<
 
+ifeq (1, $(USE_INTERNAL_GTEST))
+out/$(BUILD_MODE)/libweave_exports_testrunner : third_party/lib/gmock.a third_party/lib/gtest.a
+endif
+
 out/$(BUILD_MODE)/libweave_exports_testrunner : \
 	$(weave_exports_unittest_obj_files) \
 	out/$(BUILD_MODE)/libweave.so \
 	out/$(BUILD_MODE)/libweave-test.a \
-	out/$(BUILD_MODE)/src/test/weave_testrunner.o \
-	third_party/lib/gmock.a \
-	third_party/lib/gtest.a
-	$(CXX) -o $@ $^ $(CFLAGS) -lcrypto -lexpat -lpthread -lrt -Lthird_party/lib -Wl,-rpath=out/$(BUILD_MODE)/
+	out/$(BUILD_MODE)/src/test/weave_testrunner.o
+	$(CXX) -o $@ $^ $(CFLAGS) $(test_common_build_flags) -Wl,-rpath=out/$(BUILD_MODE)/
 
 export-test : out/$(BUILD_MODE)/libweave_exports_testrunner
 	$(TEST_ENV) $< $(TEST_FLAGS)