You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.4 KiB
127 lines
3.4 KiB
4 months ago
|
# Default options
|
||
|
USE_BSDIFF ?= y
|
||
|
|
||
|
EXECUTABLES-y := bspatch
|
||
|
LIBRARIES-y := libbspatch.so
|
||
|
EXECUTABLES-$(USE_BSDIFF) += bsdiff
|
||
|
LIBRARIES-$(USE_BSDIFF) += libbsdiff.so
|
||
|
|
||
|
BINARIES := $(EXECUTABLES-y) $(LIBRARIES-y)
|
||
|
|
||
|
INSTALL = install
|
||
|
CPPFLAGS += -Iinclude -I..
|
||
|
CXXFLAGS += -std=c++11 -O3 -Wall -Werror -fPIC
|
||
|
|
||
|
DESTDIR ?=
|
||
|
PREFIX = /usr
|
||
|
BINDIR = $(PREFIX)/bin
|
||
|
DATADIR = $(PREFIX)/share
|
||
|
MANDIR = $(DATADIR)/man
|
||
|
MAN1DIR = $(MANDIR)/man1
|
||
|
INCLUDEDIR ?= $(PREFIX)/include
|
||
|
GENTOO_LIBDIR ?= lib
|
||
|
LIBDIR ?= $(PREFIX)/$(GENTOO_LIBDIR)
|
||
|
INSTALL_PROGRAM ?= $(INSTALL) -c -m 755
|
||
|
INSTALL_MAN ?= $(INSTALL) -c -m 444
|
||
|
|
||
|
.PHONY: all test clean install
|
||
|
all: $(BINARIES)
|
||
|
test: bsdiff_unittest
|
||
|
clean:
|
||
|
rm -f *.o $(BINARIES) bsdiff_unittest .deps
|
||
|
|
||
|
### List of source files for each project. Keep in sync with the Android.mk.
|
||
|
# "bsdiff" program.
|
||
|
bsdiff_src_files := \
|
||
|
brotli_compressor.cc \
|
||
|
bsdiff.cc \
|
||
|
bz2_compressor.cc \
|
||
|
compressor_buffer.cc \
|
||
|
diff_encoder.cc \
|
||
|
endsley_patch_writer.cc \
|
||
|
logging.cc \
|
||
|
patch_writer.cc \
|
||
|
patch_writer_factory.cc \
|
||
|
split_patch_writer.cc \
|
||
|
suffix_array_index.cc
|
||
|
|
||
|
# "bspatch" program.
|
||
|
bspatch_src_files := \
|
||
|
brotli_decompressor.cc \
|
||
|
bspatch.cc \
|
||
|
bz2_decompressor.cc \
|
||
|
buffer_file.cc \
|
||
|
decompressor_interface.cc \
|
||
|
extents.cc \
|
||
|
extents_file.cc \
|
||
|
file.cc \
|
||
|
logging.cc \
|
||
|
memory_file.cc \
|
||
|
patch_reader.cc \
|
||
|
sink_file.cc \
|
||
|
utils.cc
|
||
|
|
||
|
# Unit test files.
|
||
|
bsdiff_common_unittests := \
|
||
|
brotli_compressor_unittest.cc \
|
||
|
brotli_decompressor_unittest.cc \
|
||
|
bsdiff_arguments.cc \
|
||
|
bsdiff_arguments_unittest.cc \
|
||
|
bsdiff_unittest.cc \
|
||
|
bspatch_unittest.cc \
|
||
|
bz2_decompressor_unittest.cc \
|
||
|
diff_encoder_unittest.cc \
|
||
|
endsley_patch_writer_unittest.cc \
|
||
|
extents_file_unittest.cc \
|
||
|
extents_unittest.cc \
|
||
|
patch_reader_unittest.cc \
|
||
|
patch_writer_unittest.cc \
|
||
|
split_patch_writer_unittest.cc \
|
||
|
suffix_array_index_unittest.cc \
|
||
|
test_utils.cc \
|
||
|
testrunner.cc
|
||
|
|
||
|
|
||
|
BSDIFF_LIBS := -lbz2 -lbrotlienc -ldivsufsort -ldivsufsort64
|
||
|
BSDIFF_OBJS := $(bsdiff_src_files:.cc=.o)
|
||
|
BSPATCH_LIBS := -lbz2 -lbrotlidec
|
||
|
BSPATCH_OBJS := $(bspatch_src_files:.cc=.o)
|
||
|
|
||
|
UNITTEST_LIBS = -lgmock -lgtest -lpthread
|
||
|
UNITTEST_OBJS := $(bsdiff_common_unittests:.cc=.o)
|
||
|
|
||
|
bsdiff: $(BSDIFF_OBJS) bsdiff_arguments.o bsdiff_main.o
|
||
|
bsdiff: LDLIBS += $(BSDIFF_LIBS)
|
||
|
libbsdiff.so: $(BSDIFF_OBJS)
|
||
|
libbsdiff.so: LDLIBS += $(BSDIFF_LIBS)
|
||
|
|
||
|
bspatch: $(BSPATCH_OBJS) bspatch_main.o
|
||
|
bspatch: LDLIBS += $(BSPATCH_LIBS)
|
||
|
libbspatch.so: $(BSPATCH_OBJS)
|
||
|
libbspatch.so: LDLIBS += $(BSPATCH_LIBS)
|
||
|
|
||
|
bsdiff_unittest: LDLIBS += $(BSDIFF_LIBS) $(BSPATCH_LIBS) $(UNITTEST_LIBS)
|
||
|
bsdiff_unittest: $(BSPATCH_OBJS) $(BSDIFF_OBJS) $(UNITTEST_OBJS)
|
||
|
|
||
|
bsdiff_unittest bsdiff bspatch:
|
||
|
$(CXX) $(CXXFLAGS) -o $@ $^ $(LDLIBS)
|
||
|
|
||
|
libbsdiff.so libbspatch.so:
|
||
|
$(CXX) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,$@ -shared -o $@ $^ $(LDLIBS)
|
||
|
|
||
|
# Source file dependencies.
|
||
|
.deps: $(bsdiff_src_files) $(bspatch_src_files) $(bsdiff_common_unittests) \
|
||
|
bsdiff_main.cc bspatch_main.cc
|
||
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -MM $^ >$@ || (rm -f $@; false)
|
||
|
-include .deps
|
||
|
|
||
|
install:
|
||
|
mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(MAN1DIR) \
|
||
|
$(DESTDIR)/$(INCLUDEDIR)/bsdiff
|
||
|
$(INSTALL_PROGRAM) $(EXECUTABLES-y) $(DESTDIR)$(BINDIR)
|
||
|
$(INSTALL_PROGRAM) $(LIBRARIES-y) $(DESTDIR)$(LIBDIR)
|
||
|
$(INSTALL) -c -m 644 include/bsdiff/*.h $(DESTDIR)/$(INCLUDEDIR)/bsdiff
|
||
|
ifndef WITHOUT_MAN
|
||
|
$(INSTALL_MAN) $(EXECUTABLES-y:=.1) $(DESTDIR)$(MAN1DIR)
|
||
|
endif
|