# 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
