127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # 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
 |