PREFIX=/usr INSTALL=install CFLAGS+=-std=gnu99 -O2 -g -flto -MMD -Wall \ -Wno-unused-but-set-variable \ -Wno-pointer-sign \ -fno-strict-aliasing \ -I. -Iinclude -Ilibbcache \ -D_FILE_OFFSET_BITS=64 \ -D_GNU_SOURCE \ -D_LGPL_SOURCE \ -DRCU_MEMBARRIER \ $(EXTRA_CFLAGS) LDFLAGS+=-O2 -g -flto PKGCONFIG_LIBS="blkid uuid liburcu" CFLAGS+=`pkg-config --cflags ${PKGCONFIG_LIBS}` LDLIBS+=`pkg-config --libs ${PKGCONFIG_LIBS}` -lm -lpthread -lrt ifeq ($(PREFIX),/usr) ROOT_SBINDIR=/sbin else ROOT_SBINDIR=$(PREFIX)/sbin endif .PHONY: all all: bcache CCANSRCS=$(wildcard ccan/*/*.c) CCANOBJS=$(patsubst %.c,%.o,$(CCANSRCS)) # Linux kernel shim: LINUX_SRCS=$(wildcard linux/*.c linux/*/*.c) LINUX_OBJS=$(LINUX_SRCS:.c=.o) OBJS=bcache.o bcache-assemble.o bcache-device.o bcache-format.o \ bcache-fs.o bcache-run.o bcache-userspace-shim.o \ libbcache.o tools-util.o $(LINUX_OBJS) $(CCANOBJS) DEPS=$(OBJS:.o=.d) -include $(DEPS) bcache: $(OBJS) .PHONY: install install: bcache mkdir -p $(DESTDIR)$(ROOT_SBINDIR) mkdir -p $(DESTDIR)$(PREFIX)/share/man/man8/ $(INSTALL) -m0755 bcache $(DESTDIR)$(ROOT_SBINDIR) $(INSTALL) -m0755 mkfs.bcache $(DESTDIR)$(ROOT_SBINDIR) $(INSTALL) -m0644 bcache.8 $(DESTDIR)$(PREFIX)/share/man/man8/ .PHONY: clean clean: $(RM) bcache $(OBJS) $(DEPS) .PHONY: deb deb: all debuild --unsigned-source \ --unsigned-changes \ --no-pre-clean \ --build=binary \ --diff-ignore \ --tar-ignore .PHONE: update-bcache-sources update-bcache-sources: echo BCACHE_REVISION=`cd $(LINUX_DIR); git rev-parse HEAD` > .bcache_revision cp $(LINUX_DIR)/drivers/md/bcache/*.[ch] libbcache/ cp $(LINUX_DIR)/include/trace/events/bcache.h include/trace/events/ cp $(LINUX_DIR)/include/uapi/linux/bcache.h include/linux/ cp $(LINUX_DIR)/include/uapi/linux/bcache-ioctl.h include/linux/