blob: 87420493d4ea77811c3bed1f7194f5afd5f56b6f [file] [log] [blame]
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
SRC ?= .
CCFLAGS += -Wall
UNITTEST_LIBS := $(shell gmock-config --libs) $(shell gtest-config --libs)
BINS = memento_updater split_write
TEST_BINS = general_installer_unittest \
diskimage_installer_unittest \
recovery_installer_unittest
UTILITIES = mount_handler.o tempfile_handler.o
all: $(BINS)
tests: $(BINS) $(TEST_BINS)
run-basic-tests: tests
# Some unit tests need to download a large payload from network so for
# "basic tests" we only run a smaller set of tests that can be finished
# in seconds.
sudo ./general_installer_unittest
run-all-tests: tests
for TEST in $(TEST_BINS); do sudo ./$$TEST; done
%_unittest: %_unittest.cc %.o general_installer.o $(UTILITIES)
$(CXX) $(CCFLAGS) $(UNITTEST_LIBS) -o $@ $^
recovery_installer_unittest: recovery_installer_unittest.cc \
recovery_installer.o \
diskimage_installer.o \
general_installer.o \
$(UTILITIES)
$(CXX) $(CCFLAGS) $(UNITTEST_LIBS) -o $@ $^
memento_updater: memento_updater.o general_installer.o command_handler.o \
diskimage_installer.o recovery_installer.o $(UTILITIES)
$(CXX) $(CCFLAGS) -o $@ $^
split_write: split_write.cc
$(CXX) $(CCFLAGS) -DSPLIT_WRITE_MAIN -o $@ $<
%.o: %.cc memento_common.h
$(CXX) $(CCFLAGS) -c -o $@ $<
clean:
rm -f *.o $(BINS) $(TEST_BINS)
.PHONY: all tests run-basic-tests run-all-tests clean