# Copyright 2017 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. PUFFIN_SOURCES = \ bit_reader.cc \ bit_writer.cc \ extent_stream.cc \ file_stream.cc \ huffer.cc \ huffman_table.cc \ memory_stream.cc \ puffer.cc \ puff_reader.cc \ puff_writer.cc \ puffin_stream.cc \ utils.cc UNITTEST_SOURCES = \ bit_io_unittest.cc \ puff_io_unittest.cc \ puffin_unittest.cc \ stream_unittest.cc \ testrunner.cc \ utils_unittest.cc OBJDIR = obj SRCDIR = src PUFFIN_OBJECTS = $(addprefix $(OBJDIR)/, $(PUFFIN_SOURCES:.cc=.o)) UNITTEST_OBJECTS = $(addprefix $(OBJDIR)/, $(UNITTEST_SOURCES:.cc=.o)) LIBPUFFIN = libpuffin.so UNITTESTS = puffin_unittests CXXFLAGS ?= -O3 -ggdb CXXFLAGS += -Wall -fPIC -std=c++14 CPPFLAGS += -I../ -Isrc/include LDLIBS = -lgflags -lglog -lprotobuf-lite -lgtest -lpthread VPATH = $(SRCDIR) all: $(LIBPUFFIN) $(OBJDIR): mkdir -p $@ $(PUFFIN_OBJECTS): | $(OBJDIR) $(LIBPUFFIN): $(PUFFIN_OBJECTS) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $^ -o $@ $(LDLIBS) $(UNITTESTS): $(UNITTEST_OBJECTS) $(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LIBPUFFIN) $(LDLIBS) test: $(LIBPUFFIN) $(UNITTESTS) clean: rm -rf $(OBJDIR) $(LIBPUFFIN) $(UNITTESTS) $(OBJDIR)/%.o: %.cc $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< .PHONY: all clean test