PKG_CONFIG?=pkg-config
INSTALL=install
+ifeq ("$(origin V)", "command line")
+ BUILD_VERBOSE = $(V)
+endif
+ifndef BUILD_VERBOSE
+ BUILD_VERBOSE = 0
+endif
+
+ifeq ($(BUILD_VERBOSE),1)
+ Q =
+else
+ Q = @
+endif
+
CFLAGS+=-std=gnu11 -O2 -g -MMD -Wall -fPIC \
-Wno-pointer-sign \
-fno-strict-aliasing \
PYTEST_ARGS?=
PYTEST_CMD?=$(shell \
command -v pytest-3 \
- || which pytest-3 \
+ || which pytest-3 2>/dev/null \
)
PYTEST:=$(PYTEST_CMD) $(PYTEST_ARGS)
-include $(DEPS)
OBJS=$(SRCS:.c=.o)
+
+%.o: %.c
+ @echo " [CC] $@"
+ $(Q)$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<
+
bcachefs: $(filter-out ./tests/%.o, $(OBJS))
+ @echo " [LD] $@"
+ $(Q)$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
RUST_SRCS=$(shell find rust-src/ -type f -iname '*.rs')
MOUNT_SRCS=$(filter %mount, $(RUST_SRCS))
MOUNT_OBJ=$(filter-out ./bcachefs.o ./tests/%.o ./cmd_%.o , $(OBJS))
libbcachefs.so: LDFLAGS+=-shared
libbcachefs.so: $(MOUNT_OBJ)
- $(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS)
+ @echo " [CC] $@"
+ $(Q)$(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS)
MOUNT_TOML=rust-src/mount/Cargo.toml
mount.bcachefs: lib $(MOUNT_SRCS)
tests/test_helper: $(filter ./tests/%.o, $(OBJS))
+ @echo " [LD] $@"
+ $(Q)$(CC) $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
# If the version string differs from the last build, update the last version
ifneq ($(VERSION),$(shell cat .version 2>/dev/null))
.PHONY: .version
endif
.version:
- echo '$(VERSION)' > $@
+ @echo " [VERS] $@"
+ $(Q)echo '$(VERSION)' > $@
# Rebuild the 'version' command any time the version string changes
cmd_version.o : .version
.PHONY: clean
clean:
- $(RM) bcachefs mount.bcachefs libbcachefs_mount.a tests/test_helper .version $(OBJS) $(DEPS) $(DOCGENERATED)
- $(RM) -rf rust-src/*/target
+ @echo "Cleaning all"
+ $(Q)$(RM) bcachefs mount.bcachefs libbcachefs_mount.a tests/test_helper .version $(OBJS) $(DEPS) $(DOCGENERATED)
+ $(Q)$(RM) -rf rust-src/*/target
.PHONY: deb
deb: all