blob: fbfe56ac4c6bd3c6089ee51333948dc59fe8fac4 [file] [log] [blame]
Alex Deymo43843702014-05-12 19:43:59 -07001# Default options
2USE_BSDIFF ?= y
3
4BINARIES-y = bspatch
5BINARIES-$(USE_BSDIFF) += bsdiff
6
7BINARIES += $(BINARIES-y)
The Android Open Source Projectc285fea2009-03-03 19:29:20 -08008
Gilad Arnold99b53742013-04-30 09:24:14 -07009INSTALL = install
10CFLAGS += -O3 -Wall -Werror
Alex Deymoa5cff222015-04-08 14:10:30 -070011CXXFLAGS += -std=c++11
The Android Open Source Projectc285fea2009-03-03 19:29:20 -080012
Gilad Arnold99b53742013-04-30 09:24:14 -070013DESTDIR ?=
14PREFIX = /usr
15BINDIR = $(PREFIX)/bin
16DATADIR = $(PREFIX)/share
17MANDIR = $(DATADIR)/man
18MAN1DIR = $(MANDIR)/man1
19INSTALL_PROGRAM ?= $(INSTALL) -c -m 755
20INSTALL_MAN ?= $(INSTALL) -c -m 444
21
Alex Deymoa5cff222015-04-08 14:10:30 -070022.PHONY: all test clean
Gilad Arnold99b53742013-04-30 09:24:14 -070023all: $(BINARIES)
Alex Deymoa5cff222015-04-08 14:10:30 -070024test: unittests
Gilad Arnold99b53742013-04-30 09:24:14 -070025clean:
Alex Deymoa5cff222015-04-08 14:10:30 -070026rm -f *.o $(BINARIES) unittests
Gilad Arnold99b53742013-04-30 09:24:14 -070027
Alex Deymoa5cff222015-04-08 14:10:30 -070028BSDIFF_LIBS = -lbz2 -ldivsufsort -ldivsufsort64
29BSDIFF_OBJS = \
30 bsdiff.o
Gilad Arnold99b53742013-04-30 09:24:14 -070031
Alex Deymoa5cff222015-04-08 14:10:30 -070032BSPATCH_LIBS = -lbz2
33BSPATCH_OBJS = \
34 bspatch.o \
Alex Deymo03f1deb2015-10-13 02:15:31 -070035 extents.o \
36 extents_file.o \
Sen Jiang5b372b62016-03-28 16:14:35 -070037 file.o \
38 memory_file.o
Alex Deymoa5cff222015-04-08 14:10:30 -070039
Sen Jiang5b372b62016-03-28 16:14:35 -070040UNITTEST_LIBS = -lgmock -lgtest -lpthread
Alex Deymoa5cff222015-04-08 14:10:30 -070041UNITTEST_OBJS = \
42 bsdiff_unittest.o \
Sen Jiang5b372b62016-03-28 16:14:35 -070043 bspatch_unittest.o \
Alex Deymo03f1deb2015-10-13 02:15:31 -070044 extents_file_unittest.o \
Alex Deymo437b7af2015-10-14 20:13:58 -070045 extents_unittest.o \
Alex Deymoa5cff222015-04-08 14:10:30 -070046 test_utils.o \
47 testrunner.o
48
49bsdiff: $(BSDIFF_OBJS) bsdiff_main.o
50bsdiff: LDLIBS += $(BSDIFF_LIBS)
51
52bspatch: $(BSPATCH_OBJS) bspatch_main.o
53bspatch: LDLIBS += $(BSPATCH_LIBS)
54
55unittests: LDLIBS += $(BSDIFF_LIBS) $(BSPATCH_LIBS) $(UNITTEST_LIBS)
56unittests: $(BSPATCH_OBJS) $(BSDIFF_OBJS) $(UNITTEST_OBJS)
Alex Deymo03f1deb2015-10-13 02:15:31 -070057
58unittests bsdiff bspatch:
Alex Deymoa5cff222015-04-08 14:10:30 -070059$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDLIBS)
60
61# Source file dependencies.
Alex Deymo20891f92015-10-12 17:28:04 -070062bsdiff.o: bsdiff.cc
63bsdiff_main.o: bsdiff_main.cc bsdiff.h
Alex Deymoa5cff222015-04-08 14:10:30 -070064bsdiff_unittest.o: bsdiff_unittest.cc bsdiff.h test_utils.h
Alex Deymo437b7af2015-10-14 20:13:58 -070065bspatch.o: bspatch.cc bspatch.h extents.h extents_file.h file_interface.h \
66 file.h
Alex Deymo20891f92015-10-12 17:28:04 -070067bspatch_main.o: bspatch_main.cc bspatch.h
Sen Jiang5b372b62016-03-28 16:14:35 -070068bspatch_unittest.o: bspatch_unittest.cc bspatch.h test_utils.h
Alex Deymo03f1deb2015-10-13 02:15:31 -070069extents.o: extents.cc extents.h extents_file.h file_interface.h
70extents_file.o: extents_file.cc extents_file.h file_interface.h
71extents_file_unittest.o: extents_file_unittest.cc extents_file.h \
72 file_interface.h
Alex Deymo437b7af2015-10-14 20:13:58 -070073extents_unittest.o: extents_unittest.cc extents.h extents_file.h \
74 file_interface.h
Alex Deymo03f1deb2015-10-13 02:15:31 -070075file.o: file.cc file.h file_interface.h
Sen Jiang5b372b62016-03-28 16:14:35 -070076memory_file.o: memory_file.cc memory_file.h file_interface.h
Alex Deymoa5cff222015-04-08 14:10:30 -070077testrunner.o: testrunner.cc
78test_utils.o: test_utils.cc test_utils.h
The Android Open Source Projectc285fea2009-03-03 19:29:20 -080079
80install:
Gilad Arnold99b53742013-04-30 09:24:14 -070081mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MAN1DIR)
82$(INSTALL_PROGRAM) $(BINARIES) $(DESTDIR)$(BINDIR)
83ifndef WITHOUT_MAN
84$(INSTALL_MAN) $(BINARIES:=.1) $(DESTDIR)$(MAN1DIR)
85endif