]> git.sesse.net Git - bcachefs-tools-debian/blob - Makefile
Faster crc32c
[bcachefs-tools-debian] / Makefile
1
2 PREFIX=/usr
3 INSTALL=install
4 CFLAGS+=-std=gnu89 -O2 -g -MMD -Wall                            \
5         -Wno-pointer-sign                                       \
6         -fno-strict-aliasing                                    \
7         -I. -Iinclude -Ilibbcachefs                             \
8         -D_FILE_OFFSET_BITS=64                                  \
9         -D_GNU_SOURCE                                           \
10         -D_LGPL_SOURCE                                          \
11         -DRCU_MEMBARRIER                                        \
12         -DNO_BCACHE_CHARDEV                                     \
13         -DNO_BCACHE_FS                                          \
14         -DNO_BCACHE_SYSFS                                       \
15         $(EXTRA_CFLAGS)
16 LDFLAGS+=-O2 -g
17
18 CC_VERSION=$(shell $(CC) -v 2>&1|grep -E '(gcc|clang) version')
19
20 ifneq (,$(findstring gcc,$(CC_VERSION)))
21         CFLAGS+=-Wno-unused-but-set-variable
22 endif
23
24 ifneq (,$(findstring clang,$(CC_VERSION)))
25         CFLAGS+=-Wno-missing-braces
26 endif
27
28 ifdef D
29         CFLAGS+=-Werror
30         CFLAGS+=-DCONFIG_BCACHEFS_DEBUG=y
31 endif
32
33 PKGCONFIG_LIBS="blkid uuid liburcu libsodium zlib"
34 CFLAGS+=`pkg-config --cflags    ${PKGCONFIG_LIBS}`
35 LDLIBS+=`pkg-config --libs      ${PKGCONFIG_LIBS}`              \
36         -lm -lpthread -lrt -lscrypt -lkeyutils -laio
37
38 ifeq ($(PREFIX),/usr)
39         ROOT_SBINDIR=/sbin
40 else
41         ROOT_SBINDIR=$(PREFIX)/sbin
42 endif
43
44 .PHONY: all
45 all: bcachefs
46
47 SRCS=bcachefs.c                         \
48      cmd_assemble.c                     \
49      cmd_debug.c                        \
50      cmd_device.c                       \
51      cmd_fs.c                           \
52      cmd_fsck.c                         \
53      cmd_format.c                       \
54      cmd_key.c                          \
55      cmd_migrate.c                      \
56      cmd_run.c                          \
57      crypto.c                           \
58      libbcachefs.c                      \
59      qcow2.c                            \
60      tools-util.c                       \
61      libbcachefs/alloc.c                \
62      libbcachefs/bkey.c                 \
63      libbcachefs/bkey_methods.c         \
64      libbcachefs/bset.c                 \
65      libbcachefs/btree_cache.c          \
66      libbcachefs/btree_gc.c             \
67      libbcachefs/btree_io.c             \
68      libbcachefs/btree_iter.c           \
69      libbcachefs/btree_update_interior.c\
70      libbcachefs/btree_update_leaf.c    \
71      libbcachefs/buckets.c              \
72      libbcachefs/checksum.c             \
73      libbcachefs/clock.c                \
74      libbcachefs/compress.c             \
75      libbcachefs/debug.c                \
76      libbcachefs/dirent.c               \
77      libbcachefs/error.c                \
78      libbcachefs/extents.c              \
79      libbcachefs/fsck.c                 \
80      libbcachefs/inode.c                \
81      libbcachefs/io.c                   \
82      libbcachefs/journal.c              \
83      libbcachefs/keylist.c              \
84      libbcachefs/lz4_compress.c         \
85      libbcachefs/lz4_decompress.c       \
86      libbcachefs/migrate.c              \
87      libbcachefs/move.c                 \
88      libbcachefs/movinggc.c             \
89      libbcachefs/opts.c                 \
90      libbcachefs/siphash.c              \
91      libbcachefs/six.c                  \
92      libbcachefs/super.c                \
93      libbcachefs/super-io.c             \
94      libbcachefs/tier.c                 \
95      libbcachefs/trace.c                \
96      libbcachefs/util.c                 \
97      libbcachefs/xattr.c                \
98      $(wildcard linux/*.c linux/*/*.c)  \
99      $(wildcard ccan/*/*.c)
100
101 DEPS=$(SRCS:.c=.d)
102 -include $(DEPS)
103
104 OBJS=$(SRCS:.c=.o)
105 bcachefs: $(OBJS)
106
107 .PHONY: install
108 install: bcachefs
109         mkdir -p $(DESTDIR)$(ROOT_SBINDIR)
110         mkdir -p $(DESTDIR)$(PREFIX)/share/man/man8/
111         $(INSTALL) -m0755 bcachefs      $(DESTDIR)$(ROOT_SBINDIR)
112         $(INSTALL) -m0755 fsck.bcachefs $(DESTDIR)$(ROOT_SBINDIR)
113         $(INSTALL) -m0755 mkfs.bcachefs $(DESTDIR)$(ROOT_SBINDIR)
114         $(INSTALL) -m0644 bcachefs.8    $(DESTDIR)$(PREFIX)/share/man/man8/
115
116 .PHONY: clean
117 clean:
118         $(RM) bcachefs $(OBJS) $(DEPS)
119
120 .PHONY: deb
121 deb: all
122         debuild --unsigned-source       \
123                 --unsigned-changes      \
124                 --no-pre-clean          \
125                 --build=binary          \
126                 --diff-ignore           \
127                 --tar-ignore
128
129 .PHONE: update-bcachefs-sources
130 update-bcachefs-sources:
131         echo `cd $(LINUX_DIR); git rev-parse HEAD` > .bcachefs_revision
132         cp $(LINUX_DIR)/fs/bcachefs/*.[ch] libbcachefs/
133         cp $(LINUX_DIR)/include/trace/events/bcachefs.h include/trace/events/
134
135 .PHONE: update-commit-bcachefs-sources
136 update-commit-bcachefs-sources: update-bcachefs-sources
137         git commit -m "Update bcachefs sources to `cd $(LINUX_DIR); git show --oneline --no-patch`"\
138                 .bcachefs_revision libbcachefs/