diff options
author | Alex Deymo <deymo@google.com> | 2017-05-18 20:38:21 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-05-18 20:38:21 +0000 |
commit | 3867e5b67b7e2796e155722a8a6c64598359b12b (patch) | |
tree | 93080f3499b9f50f08b92148667942d4d640c715 | |
parent | c52b8ce9e2c2ef8ba4e7008b8812eb1913e1e59d (diff) | |
parent | ce81b3e884f974c46f1c856c90c0247ad773cc61 (diff) | |
download | bsdiff-3867e5b67b7e2796e155722a8a6c64598359b12b.tar.gz |
Merge "Update Makefile to build shared libraries." am: 47db46b45d am: 12afdd6c49 am: 532fcc8cfa
am: ce81b3e884
Change-Id: Iec0b8b5e23f5e7639a7ca9dfafc2064575e6e081
-rw-r--r-- | Android.mk | 18 | ||||
-rw-r--r-- | Makefile | 140 | ||||
-rw-r--r-- | bsdiff.cc | 2 | ||||
-rw-r--r-- | bsdiff_main.cc | 2 | ||||
-rw-r--r-- | bsdiff_unittest.cc | 2 | ||||
-rw-r--r-- | bspatch.cc | 6 | ||||
-rw-r--r-- | bspatch_main.cc | 2 | ||||
-rw-r--r-- | bspatch_unittest.cc | 2 | ||||
-rw-r--r-- | buffer_file.cc | 2 | ||||
-rw-r--r-- | buffer_file.h | 2 | ||||
-rw-r--r-- | extents.h | 2 | ||||
-rw-r--r-- | extents_file.cc | 2 | ||||
-rw-r--r-- | extents_file_unittest.cc | 4 | ||||
-rw-r--r-- | file.h | 2 | ||||
-rw-r--r-- | include/bsdiff/bsdiff.h (renamed from bsdiff.h) | 0 | ||||
-rw-r--r-- | include/bsdiff/bspatch.h (renamed from bspatch.h) | 2 | ||||
-rw-r--r-- | include/bsdiff/extents_file.h (renamed from extents_file.h) | 2 | ||||
-rw-r--r-- | include/bsdiff/file_interface.h (renamed from file_interface.h) | 0 | ||||
-rw-r--r-- | memory_file.h | 2 | ||||
-rw-r--r-- | sink_file.h | 2 |
20 files changed, 119 insertions, 77 deletions
@@ -52,6 +52,12 @@ bsdiff_common_unittests := \ extents_unittest.cc \ test_utils.cc +# TODO(deymo): Remove include/bsdiff when all callers use the "bsdiff/" prefix +# when including code. +lib_export_includes := \ + $(LOCAL_PATH)/include \ + $(LOCAL_PATH)/include/bsdiff + # Target static libraries. include $(CLEAR_VARS) @@ -59,7 +65,8 @@ LOCAL_MODULE := libbspatch LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(bspatch_src_files) LOCAL_CFLAGS := $(bsdiff_common_cflags) -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include +LOCAL_EXPORT_C_INCLUDE_DIRS := $(lib_export_includes) LOCAL_STATIC_LIBRARIES := $(bsdiff_common_static_libs) include $(BUILD_STATIC_LIBRARY) @@ -68,7 +75,8 @@ LOCAL_MODULE := libbsdiff LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(bsdiff_src_files) LOCAL_CFLAGS := $(bsdiff_common_cflags) -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include +LOCAL_EXPORT_C_INCLUDE_DIRS := $(lib_export_includes) LOCAL_STATIC_LIBRARIES := $(bsdiff_static_libs) include $(BUILD_STATIC_LIBRARY) @@ -79,7 +87,8 @@ LOCAL_MODULE := libbspatch LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(bspatch_src_files) LOCAL_CFLAGS := $(bsdiff_common_cflags) -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include +LOCAL_EXPORT_C_INCLUDE_DIRS := $(lib_export_includes) LOCAL_STATIC_LIBRARIES := $(bsdiff_common_static_libs) include $(BUILD_HOST_STATIC_LIBRARY) @@ -88,7 +97,8 @@ LOCAL_MODULE := libbsdiff LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(bsdiff_src_files) LOCAL_CFLAGS := $(bsdiff_common_cflags) -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include +LOCAL_EXPORT_C_INCLUDE_DIRS := $(lib_export_includes) LOCAL_STATIC_LIBRARIES := $(bsdiff_static_libs) include $(BUILD_HOST_STATIC_LIBRARY) @@ -1,14 +1,16 @@ # Default options USE_BSDIFF ?= y -BINARIES-y = bspatch -BINARIES-$(USE_BSDIFF) += bsdiff +EXECUTABLES-y := bspatch +LIBRARIES-y := libbspatch.so +EXECUTABLES-$(USE_BSDIFF) += bsdiff +LIBRARIES-$(USE_BSDIFF) += libbsdiff.so -BINARIES += $(BINARIES-y) +BINARIES := $(EXECUTABLES-y) $(LIBRARIES-y) INSTALL = install -CFLAGS += -O3 -Wall -Werror -CXXFLAGS += -std=c++11 +CPPFLAGS += -Iinclude +CXXFLAGS += -std=c++11 -O3 -Wall -Werror -fPIC DESTDIR ?= PREFIX = /usr @@ -16,74 +18,104 @@ 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 +.PHONY: all test clean install all: $(BINARIES) -test: unittests +test: bsdiff_unittest clean: - rm -f *.o $(BINARIES) unittests - -BSDIFF_LIBS = -lbz2 -ldivsufsort -ldivsufsort64 -BSDIFF_OBJS = \ - bsdiff.o - -BSPATCH_LIBS = -lbz2 -BSPATCH_OBJS = \ - bspatch.o \ - buffer_file.o \ - extents.o \ - extents_file.o \ - file.o \ - memory_file.o \ - sink_file.o + rm -f *.o $(BINARIES) bsdiff_unittest + +### List of source files for each project. Keep in sync with the Android.mk. +# "bsdiff" program. +bsdiff_src_files := \ + bsdiff.cc + +# "bspatch" program. +bspatch_src_files := \ + bspatch.cc \ + buffer_file.cc \ + extents.cc \ + extents_file.cc \ + file.cc \ + memory_file.cc \ + sink_file.cc + +# Unit test files. +bsdiff_common_unittests := \ + bsdiff_unittest.cc \ + bspatch_unittest.cc \ + extents_file_unittest.cc \ + extents_unittest.cc \ + test_utils.cc \ + testrunner.cc + + +BSDIFF_LIBS := -lbz2 -ldivsufsort -ldivsufsort64 +BSDIFF_OBJS := $(bsdiff_src_files:.cc=.o) + +BSPATCH_LIBS := -lbz2 +BSPATCH_OBJS := $(bspatch_src_files:.cc=.o) UNITTEST_LIBS = -lgmock -lgtest -lpthread -UNITTEST_OBJS = \ - bsdiff_unittest.o \ - bspatch_unittest.o \ - extents_file_unittest.o \ - extents_unittest.o \ - test_utils.o \ - testrunner.o +UNITTEST_OBJS := $(bsdiff_common_unittests:.cc=.o) bsdiff: $(BSDIFF_OBJS) 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) -unittests: LDLIBS += $(BSDIFF_LIBS) $(BSPATCH_LIBS) $(UNITTEST_LIBS) -unittests: $(BSPATCH_OBJS) $(BSDIFF_OBJS) $(UNITTEST_OBJS) +bsdiff_unittest bsdiff bspatch: + $(CXX) $(CXXFLAGS) -o $@ $^ $(LDLIBS) -unittests bsdiff bspatch: - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDLIBS) +libbsdiff.so libbspatch.so: + $(CXX) $(CXXFLAGS) $(LDFLAGS) -Wl,-soname,$@ -shared -o $@ $^ $(LDLIBS) # Source file dependencies. -bsdiff.o: bsdiff.cc -bsdiff_main.o: bsdiff_main.cc bsdiff.h -bsdiff_unittest.o: bsdiff_unittest.cc bsdiff.h test_utils.h -bspatch.o: bspatch.cc bspatch.h extents.h extents_file.h file_interface.h \ - file.h -bspatch_main.o: bspatch_main.cc bspatch.h -bspatch_unittest.o: bspatch_unittest.cc bspatch.h test_utils.h -buffer_file.o: buffer_file.cc buffer_file.h file_interface.h bspatch.h -extents.o: extents.cc extents.h extents_file.h file_interface.h -extents_file.o: extents_file.cc extents_file.h file_interface.h -extents_file_unittest.o: extents_file_unittest.cc extents_file.h \ - file_interface.h -extents_unittest.o: extents_unittest.cc extents.h extents_file.h \ - file_interface.h -file.o: file.cc file.h file_interface.h -memory_file.o: memory_file.cc memory_file.h file_interface.h -sink_file.o: sink_file.cc sink_file.h file_interface.h -testrunner.o: testrunner.cc +bspatch.o: bspatch.cc include/bsdiff/bspatch.h \ + include/bsdiff/extents_file.h include/bsdiff/file_interface.h \ + buffer_file.h extents.h file.h memory_file.h sink_file.h +bspatch_main.o: bspatch_main.cc include/bsdiff/bspatch.h \ + include/bsdiff/extents_file.h include/bsdiff/file_interface.h +bspatch_unittest.o: bspatch_unittest.cc include/bsdiff/bspatch.h \ + include/bsdiff/extents_file.h include/bsdiff/file_interface.h \ + test_utils.h +buffer_file.o: buffer_file.cc buffer_file.h \ + include/bsdiff/file_interface.h include/bsdiff/bspatch.h \ + include/bsdiff/extents_file.h +extents.o: extents.cc extents.h include/bsdiff/extents_file.h \ + include/bsdiff/file_interface.h +extents_file.o: extents_file.cc include/bsdiff/extents_file.h \ + include/bsdiff/file_interface.h +extents_file_unittest.o: extents_file_unittest.cc \ + include/bsdiff/extents_file.h include/bsdiff/file_interface.h +extents_unittest.o: extents_unittest.cc extents.h \ + include/bsdiff/extents_file.h include/bsdiff/file_interface.h +file.o: file.cc file.h include/bsdiff/file_interface.h +memory_file.o: memory_file.cc memory_file.h \ + include/bsdiff/file_interface.h +sink_file.o: sink_file.cc sink_file.h include/bsdiff/file_interface.h +testrunner.o: testrunner.cc test_utils.h test_utils.o: test_utils.cc test_utils.h install: - mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MAN1DIR) - $(INSTALL_PROGRAM) $(BINARIES) $(DESTDIR)$(BINDIR) + 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) $(BINARIES:=.1) $(DESTDIR)$(MAN1DIR) + $(INSTALL_MAN) $(EXECUTABLES-y:=.1) $(DESTDIR)$(MAN1DIR) endif @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD: src/usr.bin/bsdiff/bsdiff/bsdiff.c,v 1.1 2005/08/06 01:59:05 cperciva Exp $"); #endif -#include "bsdiff.h" +#include "bsdiff/bsdiff.h" #include <sys/types.h> diff --git a/bsdiff_main.cc b/bsdiff_main.cc index db3026c..678da35 100644 --- a/bsdiff_main.cc +++ b/bsdiff_main.cc @@ -4,7 +4,7 @@ #include <err.h> -#include "bsdiff.h" +#include "bsdiff/bsdiff.h" int main(int argc, char* argv[]) { if (argc != 4) diff --git a/bsdiff_unittest.cc b/bsdiff_unittest.cc index b3aae3e..7b5657d 100644 --- a/bsdiff_unittest.cc +++ b/bsdiff_unittest.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "bsdiff.h" +#include "bsdiff/bsdiff.h" #include <gtest/gtest.h> #include <string> @@ -28,7 +28,7 @@ __FBSDID("$FreeBSD: src/usr.bin/bsdiff/bspatch/bspatch.c,v 1.1 2005/08/06 01:59:06 cperciva Exp $"); #endif -#include "bspatch.h" +#include "bsdiff/bspatch.h" #include <bzlib.h> #include <errno.h> @@ -45,11 +45,11 @@ __FBSDID("$FreeBSD: src/usr.bin/bsdiff/bspatch/bspatch.c,v 1.1 2005/08/06 01:59: #include <limits> #include <vector> +#include "bsdiff/extents_file.h" +#include "bsdiff/file_interface.h" #include "buffer_file.h" #include "extents.h" -#include "extents_file.h" #include "file.h" -#include "file_interface.h" #include "memory_file.h" #include "sink_file.h" diff --git a/bspatch_main.cc b/bspatch_main.cc index 51ceebd..2a71a1c 100644 --- a/bspatch_main.cc +++ b/bspatch_main.cc @@ -5,7 +5,7 @@ #include <err.h> #include <stdlib.h> -#include "bspatch.h" +#include "bsdiff/bspatch.h" #define USAGE_TEMPLATE_STR \ "usage: %s oldfile newfile patchfile [old-extents new-extents]\n" \ diff --git a/bspatch_unittest.cc b/bspatch_unittest.cc index 04ec666..2a4589d 100644 --- a/bspatch_unittest.cc +++ b/bspatch_unittest.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "bspatch.h" +#include "bsdiff/bspatch.h" #include <unistd.h> diff --git a/buffer_file.cc b/buffer_file.cc index 1e1c213..01dd6d2 100644 --- a/buffer_file.cc +++ b/buffer_file.cc @@ -4,7 +4,7 @@ #include "buffer_file.h" -#include "bspatch.h" +#include "bsdiff/bspatch.h" namespace bsdiff { diff --git a/buffer_file.h b/buffer_file.h index 514225b..0b9261c 100644 --- a/buffer_file.h +++ b/buffer_file.h @@ -8,7 +8,7 @@ #include <memory> #include <vector> -#include "file_interface.h" +#include "bsdiff/file_interface.h" namespace bsdiff { @@ -7,7 +7,7 @@ #include <vector> -#include "extents_file.h" +#include "bsdiff/extents_file.h" namespace bsdiff { diff --git a/extents_file.cc b/extents_file.cc index 01d31a6..7e2242f 100644 --- a/extents_file.cc +++ b/extents_file.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "extents_file.h" +#include "bsdiff/extents_file.h" #include <string.h> diff --git a/extents_file_unittest.cc b/extents_file_unittest.cc index 73cedb2..0bac750 100644 --- a/extents_file_unittest.cc +++ b/extents_file_unittest.cc @@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "extents_file.h" +#include "bsdiff/extents_file.h" #include <gtest/gtest.h> #include <gmock/gmock.h> #include <string> #include <vector> -#include "file_interface.h" +#include "bsdiff/file_interface.h" using std::string; using std::vector; @@ -7,7 +7,7 @@ #include <memory> -#include "file_interface.h" +#include "bsdiff/file_interface.h" namespace bsdiff { diff --git a/bsdiff.h b/include/bsdiff/bsdiff.h index 7791777..7791777 100644 --- a/bsdiff.h +++ b/include/bsdiff/bsdiff.h diff --git a/bspatch.h b/include/bsdiff/bspatch.h index 834715b..63efea8 100644 --- a/bspatch.h +++ b/include/bsdiff/bspatch.h @@ -9,7 +9,7 @@ #include <memory> #include <vector> -#include "extents_file.h" +#include "bsdiff/extents_file.h" namespace bsdiff { diff --git a/extents_file.h b/include/bsdiff/extents_file.h index 865e2a2..0745ed5 100644 --- a/extents_file.h +++ b/include/bsdiff/extents_file.h @@ -10,7 +10,7 @@ #include <memory> #include <vector> -#include "file_interface.h" +#include "bsdiff/file_interface.h" /* * Extent files. diff --git a/file_interface.h b/include/bsdiff/file_interface.h index a643f45..a643f45 100644 --- a/file_interface.h +++ b/include/bsdiff/file_interface.h diff --git a/memory_file.h b/memory_file.h index 2833649..4100fd6 100644 --- a/memory_file.h +++ b/memory_file.h @@ -7,7 +7,7 @@ #include <memory> -#include "file_interface.h" +#include "bsdiff/file_interface.h" namespace bsdiff { diff --git a/sink_file.h b/sink_file.h index b2ce33f..e2c69d8 100644 --- a/sink_file.h +++ b/sink_file.h @@ -9,7 +9,7 @@ #include <functional> -#include "file_interface.h" +#include "bsdiff/file_interface.h" using sink_func = std::function<size_t(const uint8_t*, size_t)>; |