]> git.sesse.net Git - bcachefs-tools-debian/blob - Makefile
bcache in userspace; userspace fsck
[bcachefs-tools-debian] / Makefile
1
2 PREFIX=/usr
3 INSTALL=install
4 CFLAGS+=-std=gnu99 -O2 -g -flto -MMD -Wall                      \
5         -Wno-unused-but-set-variable                            \
6         -Wno-pointer-sign                                       \
7         -fno-strict-aliasing                                    \
8         -I. -Iinclude -Ilibbcache                               \
9         -D_FILE_OFFSET_BITS=64                                  \
10         -D_GNU_SOURCE                                           \
11         -D_LGPL_SOURCE                                          \
12         -DRCU_MEMBARRIER                                        \
13         $(EXTRA_CFLAGS)
14 LDFLAGS+=-O2 -g -flto
15
16 PKGCONFIG_LIBS="blkid uuid liburcu"
17 CFLAGS+=`pkg-config --cflags    ${PKGCONFIG_LIBS}`
18 LDLIBS+=`pkg-config --libs      ${PKGCONFIG_LIBS}` -lm -lpthread -lrt
19
20 ifeq ($(PREFIX),/usr)
21         ROOT_SBINDIR=/sbin
22 else
23         ROOT_SBINDIR=$(PREFIX)/sbin
24 endif
25
26 .PHONY: all
27 all: bcache
28
29 CCANSRCS=$(wildcard ccan/*/*.c)
30 CCANOBJS=$(patsubst %.c,%.o,$(CCANSRCS))
31
32 # Linux kernel shim:
33 LINUX_SRCS=$(wildcard linux/*.c linux/*/*.c)
34 LINUX_OBJS=$(LINUX_SRCS:.c=.o)
35
36 OBJS=bcache.o bcache-assemble.o bcache-device.o bcache-format.o \
37         bcache-fs.o bcache-run.o bcache-userspace-shim.o        \
38         libbcache.o tools-util.o $(LINUX_OBJS) $(CCANOBJS)
39
40 DEPS=$(OBJS:.o=.d)
41 -include $(DEPS)
42
43 bcache: $(OBJS)
44
45 .PHONY: install
46 install: bcache
47         mkdir -p $(DESTDIR)$(ROOT_SBINDIR)
48         mkdir -p $(DESTDIR)$(PREFIX)/share/man/man8/
49         $(INSTALL) -m0755 bcache        $(DESTDIR)$(ROOT_SBINDIR)
50         $(INSTALL) -m0755 mkfs.bcache   $(DESTDIR)$(ROOT_SBINDIR)
51         $(INSTALL) -m0644 bcache.8      $(DESTDIR)$(PREFIX)/share/man/man8/
52
53 .PHONY: clean
54 clean:
55         $(RM) bcache $(OBJS) $(DEPS)
56
57 .PHONY: deb
58 deb: all
59         debuild --unsigned-source       \
60                 --unsigned-changes      \
61                 --no-pre-clean          \
62                 --build=binary          \
63                 --diff-ignore           \
64                 --tar-ignore
65
66 .PHONE: update-bcache-sources
67 update-bcache-sources:
68         echo BCACHE_REVISION=`cd $(LINUX_DIR); git rev-parse HEAD` > .bcache_revision
69         cp $(LINUX_DIR)/drivers/md/bcache/*.[ch] libbcache/
70         cp $(LINUX_DIR)/include/trace/events/bcache.h include/trace/events/
71         cp $(LINUX_DIR)/include/uapi/linux/bcache.h include/linux/
72         cp $(LINUX_DIR)/include/uapi/linux/bcache-ioctl.h include/linux/