Alex Deymo | 4384370 | 2014-05-12 19:43:59 -0700 | [diff] [blame] | 1 | # Default options |
| 2 | USE_BSDIFF ?= y |
| 3 | |
| 4 | BINARIES-y = bspatch |
| 5 | BINARIES-$(USE_BSDIFF) += bsdiff |
| 6 | |
| 7 | BINARIES += $(BINARIES-y) |
The Android Open Source Project | c285fea | 2009-03-03 19:29:20 -0800 | [diff] [blame] | 8 | |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 9 | INSTALL = install |
| 10 | CFLAGS += -O3 -Wall -Werror |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 11 | CXXFLAGS += -std=c++11 |
The Android Open Source Project | c285fea | 2009-03-03 19:29:20 -0800 | [diff] [blame] | 12 | |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 13 | DESTDIR ?= |
| 14 | PREFIX = /usr |
| 15 | BINDIR = $(PREFIX)/bin |
| 16 | DATADIR = $(PREFIX)/share |
| 17 | MANDIR = $(DATADIR)/man |
| 18 | MAN1DIR = $(MANDIR)/man1 |
| 19 | INSTALL_PROGRAM ?= $(INSTALL) -c -m 755 |
| 20 | INSTALL_MAN ?= $(INSTALL) -c -m 444 |
| 21 | |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 22 | .PHONY: all test clean |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 23 | all: $(BINARIES) |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 24 | test: unittests |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 25 | clean: |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 26 | rm -f *.o $(BINARIES) unittests |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 27 | |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 28 | BSDIFF_LIBS = -lbz2 -ldivsufsort -ldivsufsort64 |
| 29 | BSDIFF_OBJS = \ |
| 30 | bsdiff.o |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 31 | |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 32 | BSPATCH_LIBS = -lbz2 |
| 33 | BSPATCH_OBJS = \ |
| 34 | bspatch.o \ |
Alex Deymo | 03f1deb | 2015-10-13 02:15:31 -0700 | [diff] [blame] | 35 | extents.o \ |
| 36 | extents_file.o \ |
Sen Jiang | 5b372b6 | 2016-03-28 16:14:35 -0700 | [diff] [blame^] | 37 | file.o \ |
| 38 | memory_file.o |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 39 | |
Sen Jiang | 5b372b6 | 2016-03-28 16:14:35 -0700 | [diff] [blame^] | 40 | UNITTEST_LIBS = -lgmock -lgtest -lpthread |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 41 | UNITTEST_OBJS = \ |
| 42 | bsdiff_unittest.o \ |
Sen Jiang | 5b372b6 | 2016-03-28 16:14:35 -0700 | [diff] [blame^] | 43 | bspatch_unittest.o \ |
Alex Deymo | 03f1deb | 2015-10-13 02:15:31 -0700 | [diff] [blame] | 44 | extents_file_unittest.o \ |
Alex Deymo | 437b7af | 2015-10-14 20:13:58 -0700 | [diff] [blame] | 45 | extents_unittest.o \ |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 46 | test_utils.o \ |
| 47 | testrunner.o |
| 48 | |
| 49 | bsdiff: $(BSDIFF_OBJS) bsdiff_main.o |
| 50 | bsdiff: LDLIBS += $(BSDIFF_LIBS) |
| 51 | |
| 52 | bspatch: $(BSPATCH_OBJS) bspatch_main.o |
| 53 | bspatch: LDLIBS += $(BSPATCH_LIBS) |
| 54 | |
| 55 | unittests: LDLIBS += $(BSDIFF_LIBS) $(BSPATCH_LIBS) $(UNITTEST_LIBS) |
| 56 | unittests: $(BSPATCH_OBJS) $(BSDIFF_OBJS) $(UNITTEST_OBJS) |
Alex Deymo | 03f1deb | 2015-10-13 02:15:31 -0700 | [diff] [blame] | 57 | |
| 58 | unittests bsdiff bspatch: |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 59 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDLIBS) |
| 60 | |
| 61 | # Source file dependencies. |
Alex Deymo | 20891f9 | 2015-10-12 17:28:04 -0700 | [diff] [blame] | 62 | bsdiff.o: bsdiff.cc |
| 63 | bsdiff_main.o: bsdiff_main.cc bsdiff.h |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 64 | bsdiff_unittest.o: bsdiff_unittest.cc bsdiff.h test_utils.h |
Alex Deymo | 437b7af | 2015-10-14 20:13:58 -0700 | [diff] [blame] | 65 | bspatch.o: bspatch.cc bspatch.h extents.h extents_file.h file_interface.h \ |
| 66 | file.h |
Alex Deymo | 20891f9 | 2015-10-12 17:28:04 -0700 | [diff] [blame] | 67 | bspatch_main.o: bspatch_main.cc bspatch.h |
Sen Jiang | 5b372b6 | 2016-03-28 16:14:35 -0700 | [diff] [blame^] | 68 | bspatch_unittest.o: bspatch_unittest.cc bspatch.h test_utils.h |
Alex Deymo | 03f1deb | 2015-10-13 02:15:31 -0700 | [diff] [blame] | 69 | extents.o: extents.cc extents.h extents_file.h file_interface.h |
| 70 | extents_file.o: extents_file.cc extents_file.h file_interface.h |
| 71 | extents_file_unittest.o: extents_file_unittest.cc extents_file.h \ |
| 72 | file_interface.h |
Alex Deymo | 437b7af | 2015-10-14 20:13:58 -0700 | [diff] [blame] | 73 | extents_unittest.o: extents_unittest.cc extents.h extents_file.h \ |
| 74 | file_interface.h |
Alex Deymo | 03f1deb | 2015-10-13 02:15:31 -0700 | [diff] [blame] | 75 | file.o: file.cc file.h file_interface.h |
Sen Jiang | 5b372b6 | 2016-03-28 16:14:35 -0700 | [diff] [blame^] | 76 | memory_file.o: memory_file.cc memory_file.h file_interface.h |
Alex Deymo | a5cff22 | 2015-04-08 14:10:30 -0700 | [diff] [blame] | 77 | testrunner.o: testrunner.cc |
| 78 | test_utils.o: test_utils.cc test_utils.h |
The Android Open Source Project | c285fea | 2009-03-03 19:29:20 -0800 | [diff] [blame] | 79 | |
| 80 | install: |
Gilad Arnold | 99b5374 | 2013-04-30 09:24:14 -0700 | [diff] [blame] | 81 | mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MAN1DIR) |
| 82 | $(INSTALL_PROGRAM) $(BINARIES) $(DESTDIR)$(BINDIR) |
| 83 | ifndef WITHOUT_MAN |
| 84 | $(INSTALL_MAN) $(BINARIES:=.1) $(DESTDIR)$(MAN1DIR) |
| 85 | endif |