mirror of
https://github.com/versity/scoutfs.git
synced 2025-12-23 05:25:18 +00:00
Instead of hashing headers, define an interop version. Do not mount superblocks that have a different version, either higher or lower. Since this is pretty much the same as the format hash except it's a constant, minimal code changes are needed. Initial dev version is 0, with the intent that version will be bumped to 1 immediately prior to tagging initial release version. Update README. Fix comments. Add interop version to notes and modinfo. Signed-off-by: Andy Grover <agrover@versity.com>
69 lines
1.8 KiB
Makefile
69 lines
1.8 KiB
Makefile
#
|
|
# If we're creating a standalone tarball for distribution we copy the
|
|
# headers out of the kmod dir into the tarball. And then when we're
|
|
# building in that tarball we use the headers in src/ directly.
|
|
#
|
|
FMTIOC_H := format.h ioctl.h
|
|
FMTIOC_KMOD := $(addprefix ../kmod/src/,$(FMTIOC_H))
|
|
|
|
CFLAGS := -Wall -O2 -Werror -D_FILE_OFFSET_BITS=64 -g -msse4.2 \
|
|
-fno-strict-aliasing \
|
|
-DSCOUTFS_FORMAT_HASH=0x$(SCOUTFS_FORMAT_HASH)LLU
|
|
|
|
ifneq ($(wildcard $(firstword $(FMTIOC_KMOD))),)
|
|
CFLAGS += -I../kmod/src
|
|
endif
|
|
|
|
BIN := src/scoutfs
|
|
OBJ := $(patsubst %.c,%.o,$(wildcard src/*.c))
|
|
DEPS := $(wildcard */*.d)
|
|
|
|
all: $(BIN)
|
|
|
|
ifneq ($(DEPS),)
|
|
-include $(DEPS)
|
|
endif
|
|
|
|
ifeq ($(V), )
|
|
QU = @echo
|
|
VE = @
|
|
else
|
|
QU = @:
|
|
VE =
|
|
endif
|
|
|
|
$(BIN): $(OBJ)
|
|
$(QU) [BIN $@]
|
|
$(VE)gcc -o $@ $^ -luuid -lm -lcrypto -lblkid
|
|
|
|
%.o %.d: %.c Makefile sparse.sh
|
|
$(QU) [CC $<]
|
|
$(VE)gcc $(CFLAGS) -MD -MP -MF $*.d -c $< -o $*.o
|
|
$(QU) [SP $<]
|
|
$(VE)./sparse.sh -Wbitwise -D__CHECKER__ $(CFLAGS) $<
|
|
|
|
.PHONY: .FORCE
|
|
|
|
# - We use the git describe from tags to set up the RPM versioning
|
|
RPM_VERSION := $(shell git describe --long --tags | awk -F '-' '{gsub(/^v/,""); print $$1}')
|
|
RPM_GITHASH := $(shell git rev-parse --short HEAD)
|
|
|
|
%.spec: %.spec.in .FORCE
|
|
sed -e 's/@@VERSION@@/$(RPM_VERSION)/g' \
|
|
-e 's/@@GITHASH@@/$(RPM_GITHASH)/g' < $< > $@+
|
|
mv $@+ $@
|
|
|
|
TARFILE = scoutfs-utils-$(RPM_VERSION).tar
|
|
|
|
#
|
|
# make a stand alone buildable tarball for packaging, arguably this
|
|
# shouldn't be included in the dist Makefile :)
|
|
#
|
|
dist: $(RPM_DIR) scoutfs-utils.spec
|
|
git archive --format=tar --prefix scoutfs-utils-$(RPM_VERSION)/ HEAD^{tree} > $(TARFILE)
|
|
tar rf $(TARFILE) --transform="s@\(.*\)@scoutfs-utils-$(RPM_VERSION)/\1@" scoutfs-utils.spec
|
|
tar rf $(TARFILE) --transform="s@.*\(src/.*\)@scoutfs-utils-$(RPM_VERSION)/\1@" $(FMTIOC_KMOD)
|
|
|
|
clean:
|
|
@rm -f $(BIN) $(OBJ) $(DEPS) .sparse.*
|