PREFIX=/usr
-UDEVLIBDIR=/lib/udev
-DRACUTLIBDIR=/lib/dracut
INSTALL=install
-CFLAGS+=-O2 -Wall -Werror -g
+CFLAGS+=-std=gnu99 -O2 -Wall -g -MMD -D_FILE_OFFSET_BITS=64 -I.
+LDFLAGS+=-static
-all: make-bcache probe-bcache bcache-super-show bcachectl
+PKGCONFIG_LIBS="blkid uuid"
+CFLAGS+=`pkg-config --cflags ${PKGCONFIG_LIBS}`
+LDLIBS+=`pkg-config --libs ${PKGCONFIG_LIBS}` -lscrypt -lsodium -lkeyutils -lm
-install: make-bcache probe-bcache bcache-super-show
- $(INSTALL) -m0755 make-bcache bcache-super-show bcachectl $(DESTDIR)${PREFIX}/sbin/
- $(INSTALL) -m0755 probe-bcache bcache-register $(DESTDIR)$(UDEVLIBDIR)/
- $(INSTALL) -m0644 69-bcache.rules $(DESTDIR)$(UDEVLIBDIR)/rules.d/
- -$(INSTALL) -T -m0755 initramfs/hook $(DESTDIR)/usr/share/initramfs-tools/hooks/bcache
- if [ -d $(DESTDIR)$(DRACUTLIBDIR)/modules.d ]; \
- then $(INSTALL) -D -m0755 dracut/module-setup.sh $(DESTDIR)$(DRACUTLIBDIR)/modules.d/90bcache/module-setup.sh; \
- fi
- $(INSTALL) -m0644 -- *.8 $(DESTDIR)${PREFIX}/share/man/man8/
-# $(INSTALL) -m0755 bcache-test $(DESTDIR)${PREFIX}/sbin/
+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))
+
+libccan.a: $(CCANOBJS)
+ $(AR) r $@ $(CCANOBJS)
+
+bcache-objs = bcache.o bcache-assemble.o bcache-device.o bcache-format.o\
+ bcache-fs.o bcache-run.o bcache-key.o libbcache.o crypto.o util.o
+
+-include $(bcache-objs:.o=.d)
+
+bcache: $(bcache-objs) libccan.a
+
+.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) -f make-bcache probe-bcache bcache-super-show bcache-test bcachectl *.o
-
-bcache-test: LDLIBS += `pkg-config --libs openssl`
-make-bcache: LDLIBS += `pkg-config --libs uuid blkid`
-make-bcache: CFLAGS += `pkg-config --cflags uuid blkid`
-make-bcache: bcache.o
-probe-bcache: LDLIBS += `pkg-config --libs uuid blkid`
-probe-bcache: CFLAGS += `pkg-config --cflags uuid blkid`
-bcache-super-show: LDLIBS += `pkg-config --libs uuid`
-bcache-super-show: CFLAGS += -std=gnu99
-bcache-super-show: bcache.o
-bcachectl: bcachectl.o
+ $(RM) bcache *.o *.d *.a
+
+.PHONY: deb
+deb: all
+ debuild -nc -us -uc -i -I