64 lines
1.3 KiB
Makefile
64 lines
1.3 KiB
Makefile
# 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
|