Browse Source

Merge pull request #716 from trapexit/mount

rework makefiles + install mount tools
pull/720/head 2.29.0
trapexit 5 years ago
committed by GitHub
parent
commit
10e8bd9fa3
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 32
      Makefile
  2. 72
      libfuse/Makefile
  3. 2
      libfuse/lib/mount_generic.c
  4. 1
      libfuse/util/mount.mergerfs.c
  5. 3
      mergerfs.spec

32
Makefile

@ -37,8 +37,7 @@ endif
endif endif
USE_XATTR = 1 USE_XATTR = 1
FUSE_CFLAGS = -D_FILE_OFFSET_BITS=64 -Ilibfuse/include
UGID_USE_RWLOCK = 0
ifeq ($(DEBUG),1) ifeq ($(DEBUG),1)
DEBUG_FLAGS := -g DEBUG_FLAGS := -g
@ -58,29 +57,30 @@ else
LTO_FLAGS := LTO_FLAGS :=
endif endif
UGID_USE_RWLOCK = 0
OPTS = -O2
SRC = $(wildcard src/*.cpp) SRC = $(wildcard src/*.cpp)
OBJS = $(SRC:src/%.cpp=build/%.o) OBJS = $(SRC:src/%.cpp=build/%.o)
DEPS = $(SRC:src/%.cpp=build/%.d) DEPS = $(SRC:src/%.cpp=build/%.d)
MANPAGE = mergerfs.1 MANPAGE = mergerfs.1
CXXFLAGS += \
$(OPTS) \
CXXFLAGS = \
-O2 \
$(DEBUG_FLAGS) \ $(DEBUG_FLAGS) \
$(STATIC_FLAGS) \ $(STATIC_FLAGS) \
$(LTO_FLAGS) \ $(LTO_FLAGS) \
-Wall \ -Wall \
-Wno-unused-result \ -Wno-unused-result \
$(FUSE_CFLAGS) \
-DFUSE_USE_VERSION=29 \
-MMD \
-MMD
FUSE_FLAGS = \
-Ilibfuse/include \
-D_FILE_OFFSET_BITS=64 \
-DFUSE_USE_VERSION=29
MFS_FLAGS = \
-DUSE_XATTR=$(USE_XATTR) \ -DUSE_XATTR=$(USE_XATTR) \
-DUGID_USE_RWLOCK=$(UGID_USE_RWLOCK) -DUGID_USE_RWLOCK=$(UGID_USE_RWLOCK)
LDFLAGS += \
LDFLAGS = \
-pthread \ -pthread \
-lrt -lrt
DESTDIR =
PREFIX = /usr/local PREFIX = /usr/local
EXEC_PREFIX = $(PREFIX) EXEC_PREFIX = $(PREFIX)
DATAROOTDIR = $(PREFIX)/share DATAROOTDIR = $(PREFIX)/share
@ -108,7 +108,7 @@ objects: version build/stamp
$(MAKE) $(OBJS) $(MAKE) $(OBJS)
build/mergerfs: libfuse objects build/mergerfs: libfuse objects
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(OBJS) -o $@ libfuse/build/libfuse.a $(LDFLAGS)
$(CXX) $(CXXFLAGS) $(FUSE_FLAGS) $(MFS_FLAGS) $(CPPFLAGS) $(OBJS) -o $@ libfuse/build/libfuse.a $(LDFLAGS)
mergerfs: build/mergerfs mergerfs: build/mergerfs
@ -128,7 +128,7 @@ build/stamp:
$(TOUCH) $@ $(TOUCH) $@
build/%.o: src/%.cpp build/%.o: src/%.cpp
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
$(CXX) $(CXXFLAGS) $(FUSE_FLAGS) $(MFS_FLAGS) $(CPPFLAGS) -c $< -o $@
.PHONY: clean .PHONY: clean
clean: rpm-clean clean: rpm-clean
@ -142,15 +142,15 @@ ifeq ($(GIT_REPO),1)
endif endif
.PHONY: install .PHONY: install
install: install-base install-mount.mergerfs install-man
install: install-base install-mount-tools install-man
install-base: build/mergerfs install-base: build/mergerfs
$(MKDIR) -p "$(INSTALLBINDIR)" $(MKDIR) -p "$(INSTALLBINDIR)"
$(INSTALL) -v -m 0755 build/mergerfs "$(INSTALLBINDIR)/mergerfs" $(INSTALL) -v -m 0755 build/mergerfs "$(INSTALLBINDIR)/mergerfs"
install-mount.mergerfs: install-base
install-mount-tools: install-base
$(MKDIR) -p "$(INSTALLBINDIR)" $(MKDIR) -p "$(INSTALLBINDIR)"
$(LN) -fs "mergerfs" "$(INSTALLBINDIR)/mount.mergerfs"
$(MAKE) -C libfuse install
install-man: $(MANPAGE) install-man: $(MANPAGE)
$(MKDIR) -p "$(INSTALLMAN1DIR)" $(MKDIR) -p "$(INSTALLMAN1DIR)"

72
libfuse/Makefile

@ -1,5 +1,4 @@
VERSION = "2.9.7-mergerfs_2.29.0"
OPTS = -O2
VERSION = 2.9.7-mergerfs_2.29.0
ifeq ($(DEBUG),1) ifeq ($(DEBUG),1)
DEBUG_FLAGS := -g DEBUG_FLAGS := -g
@ -7,9 +6,20 @@ else
DEBUG_FLAGS := DEBUG_FLAGS :=
endif endif
DESTDIR = "/"
BINDIR = "/bin"
SBINDIR = "/sbin"
DESTDIR =
PREFIX = /usr/local
EXEC_PREFIX = $(PREFIX)
DATAROOTDIR = $(PREFIX)/share
DATADIR = $(DATAROOTDIR)
BINDIR = $(EXEC_PREFIX)/bin
SBINDIR = $(EXEC_PREFIX)/sbin
MANDIR = $(DATAROOTDIR)/man
MAN1DIR = $(MANDIR)/man1
INSTALLBINDIR = $(DESTDIR)$(BINDIR)
INSTALLSBINDIR = $(DESTDIR)$(SBINDIR)
INSTALLMAN1DIR = $(DESTDIR)$(MAN1DIR)
SRC = \ SRC = \
lib/buffer.c \ lib/buffer.c \
lib/cuse_lowlevel.c \ lib/cuse_lowlevel.c \
@ -27,24 +37,26 @@ SRC = \
OBJS = $(SRC:lib/%.c=build/%.o) OBJS = $(SRC:lib/%.c=build/%.o)
DEPS = $(SRC:lib/%.c=build/%.d) DEPS = $(SRC:lib/%.c=build/%.d)
CFLAGS += \
$(OPTS) \
CFLAGS = \
-O2 \
$(DEBUG_FLAGS) \ $(DEBUG_FLAGS) \
-Wall \ -Wall \
-pipe \ -pipe \
'-D_FILE_OFFSET_BITS=64' \
'-D_REENTRANT' \
'-DFUSE_USE_VERSION=29' \
'-DFUSERMOUNT_DIR="/usr/local/bin"' \
'-DPACKAGE_VERSION=$(VERSION)' \
-MMD
FUSERMOUNT_DIR = $(BINDIR)
FUSE_FLAGS = \
-Iinclude \ -Iinclude \
-Ibuild \ -Ibuild \
-MMD
LDFLAGS += \
-D_REENTRANT \
-D_FILE_OFFSET_BITS=64 \
-DFUSE_USE_VERSION=29 \
-DPACKAGE_VERSION=\"$(VERSION)\" \
-DFUSERMOUNT_DIR=\"$(FUSERMOUNT_DIR)\"
LDFLAGS = \
-lrt \ -lrt \
-pthread -pthread
all: build/libfuse.a
all: build/libfuse.a mount.mergerfs mergerfs-fusermount
build/config.h: build/stamp build/config.h: build/stamp
ecfd/build | tee build/config.h ecfd/build | tee build/config.h
@ -59,26 +71,34 @@ objects: build/config.h
build/libfuse.a: objects build/libfuse.a: objects
ar rcs build/libfuse.a $(OBJS) ar rcs build/libfuse.a $(OBJS)
build/mergerfs-mount: build/config.h util/fusermount.c lib/mount_util.c
$(CC) $(CFLAGS) -Ilib -o mergerfs-mount util/fusermount.c lib/mount_util.c
build/mergerfs-fusermount: build/config.h util/fusermount.c lib/mount_util.c
$(CC) $(CFLAGS) $(FUSE_FLAGS) -Ilib -o build/mergerfs-fusermount util/fusermount.c lib/mount_util.c
build/mount.mergerfs: build/libfuse.a util/mount.fuse.c
$(CC) $(CFLAGS) -o mount.mergerfs util/mount.fuse.c build/libfuse.a $(LDFLAGS)
mergerfs-fusermount: build/mergerfs-fusermount
build/mount.mergerfs: build/libfuse.a util/mount.mergerfs.c
$(CC) $(CFLAGS) $(FUSE_FLAGS) -o build/mount.mergerfs util/mount.mergerfs.c build/libfuse.a $(LDFLAGS)
mount.mergerfs: build/mount.mergerfs
build/%.o: lib/%.c build/%.o: lib/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(CC) $(CFLAGS) $(FUSE_FLAGS) -c $< -o $@
clean: clean:
rm -rf build rm -rf build
distclean: clean distclean: clean
install: build/mergerfs-mount build/mount.mergerfs
install -D build/mergerfs-mount "$(DESTDIR)$(BINDIR)/mergerfs-mount"
chown root:root "$(DESTDIR)$(BINDIR)/mergerfs-mount"
chmod u+s "$(DESTDIR)$(BINDIR)/mergerfs-mount"
install -D build/mount.mergerfs "$(DESTDIR)$(SBINDIR)/mount.mergerfs"
strip:
strip --strip-all build/mount.mergerfs
strip --strip-all build/mergerfs-fusermount
install: mergerfs-fusermount mount.mergerfs strip
install -D build/mergerfs-fusermount "$(INSTALLBINDIR)/mergerfs-fusermount"
install -D build/mount.mergerfs "$(INSTALLSBINDIR)/mount.mergerfs"
chown root:root "$(INSTALLBINDIR)/mergerfs-fusermount"
chmod u+s "$(INSTALLBINDIR)/mergerfs-fusermount"
.PHONY: objects
.PHONY: objects strip
-include $(DEPS) -include $(DEPS)

2
libfuse/lib/mount_generic.c

@ -143,6 +143,8 @@ static void mount_help(void)
static void exec_fusermount(const char *argv[]) static void exec_fusermount(const char *argv[])
{ {
execv(FUSERMOUNT_DIR "/mergerfs-" FUSERMOUNT_PROG, (char **) argv);
execvp("mergerfs-" FUSERMOUNT_PROG, (char **) argv);
execv(FUSERMOUNT_DIR "/" FUSERMOUNT_PROG, (char **) argv); execv(FUSERMOUNT_DIR "/" FUSERMOUNT_PROG, (char **) argv);
execvp(FUSERMOUNT_PROG, (char **) argv); execvp(FUSERMOUNT_PROG, (char **) argv);
} }

1
libfuse/util/mount.fuse.c → libfuse/util/mount.mergerfs.c

@ -93,6 +93,7 @@ int main(int argc, char *argv[])
else else
basename = argv[0]; basename = argv[0];
type = "mergerfs";
if (strncmp(basename, "mount.fuse.", 11) == 0) if (strncmp(basename, "mount.fuse.", 11) == 0)
type = basename + 11; type = basename + 11;
if (strncmp(basename, "mount.fuseblk.", 14) == 0) if (strncmp(basename, "mount.fuseblk.", 14) == 0)

3
mergerfs.spec

@ -1,7 +1,7 @@
Name: mergerfs Name: mergerfs
Version: __VERSION__ Version: __VERSION__
Release: 1%{?dist} Release: 1%{?dist}
Summary: A FUSE union filesystem
Summary: A featureful FUSE based union filesystem
Group: Applications/System Group: Applications/System
License: ISC License: ISC
@ -33,6 +33,7 @@ make install PREFIX=%{_prefix} DESTDIR=%{buildroot}
%files %files
%{_bindir}/* %{_bindir}/*
%{_sbindir}/*
%doc %{_mandir}/* %doc %{_mandir}/*
%changelog %changelog

Loading…
Cancel
Save