85 lines
2.2 KiB
Makefile
85 lines
2.2 KiB
Makefile
# Default options
|
|
USE_BSDIFF ?= y
|
|
|
|
BINARIES-y = bspatch
|
|
BINARIES-$(USE_BSDIFF) += bsdiff
|
|
|
|
BINARIES += $(BINARIES-y)
|
|
|
|
INSTALL = install
|
|
CFLAGS += -O3 -Wall -Werror
|
|
CXXFLAGS += -std=c++11
|
|
|
|
DESTDIR ?=
|
|
PREFIX = /usr
|
|
BINDIR = $(PREFIX)/bin
|
|
DATADIR = $(PREFIX)/share
|
|
MANDIR = $(DATADIR)/man
|
|
MAN1DIR = $(MANDIR)/man1
|
|
INSTALL_PROGRAM ?= $(INSTALL) -c -m 755
|
|
INSTALL_MAN ?= $(INSTALL) -c -m 444
|
|
|
|
.PHONY: all test clean
|
|
all: $(BINARIES)
|
|
test: unittests
|
|
clean:
|
|
rm -f *.o $(BINARIES) unittests
|
|
|
|
BSDIFF_LIBS = -lbz2 -ldivsufsort -ldivsufsort64
|
|
BSDIFF_OBJS = \
|
|
bsdiff.o
|
|
|
|
BSPATCH_LIBS = -lbz2
|
|
BSPATCH_OBJS = \
|
|
bspatch.o \
|
|
extents.o \
|
|
extents_file.o \
|
|
file.o \
|
|
memory_file.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
|
|
|
|
bsdiff: $(BSDIFF_OBJS) bsdiff_main.o
|
|
bsdiff: LDLIBS += $(BSDIFF_LIBS)
|
|
|
|
bspatch: $(BSPATCH_OBJS) bspatch_main.o
|
|
bspatch: LDLIBS += $(BSPATCH_LIBS)
|
|
|
|
unittests: LDLIBS += $(BSDIFF_LIBS) $(BSPATCH_LIBS) $(UNITTEST_LIBS)
|
|
unittests: $(BSPATCH_OBJS) $(BSDIFF_OBJS) $(UNITTEST_OBJS)
|
|
|
|
unittests bsdiff bspatch:
|
|
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -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
|
|
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
|
|
testrunner.o: testrunner.cc
|
|
test_utils.o: test_utils.cc test_utils.h
|
|
|
|
install:
|
|
mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MAN1DIR)
|
|
$(INSTALL_PROGRAM) $(BINARIES) $(DESTDIR)$(BINDIR)
|
|
ifndef WITHOUT_MAN
|
|
$(INSTALL_MAN) $(BINARIES:=.1) $(DESTDIR)$(MAN1DIR)
|
|
endif
|