mirror of
https://github.com/trapexit/mergerfs.git
synced 2025-03-15 02:35:12 +08:00
Merge pull request #716 from trapexit/mount
rework makefiles + install mount tools
This commit is contained in:
commit
10e8bd9fa3
32
Makefile
32
Makefile
@ -37,8 +37,7 @@ endif
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
USE_XATTR = 1
|
USE_XATTR = 1
|
||||||
|
UGID_USE_RWLOCK = 0
|
||||||
FUSE_CFLAGS = -D_FILE_OFFSET_BITS=64 -Ilibfuse/include
|
|
||||||
|
|
||||||
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 += \
|
CXXFLAGS = \
|
||||||
$(OPTS) \
|
-O2 \
|
||||||
$(DEBUG_FLAGS) \
|
$(DEBUG_FLAGS) \
|
||||||
$(STATIC_FLAGS) \
|
$(STATIC_FLAGS) \
|
||||||
$(LTO_FLAGS) \
|
$(LTO_FLAGS) \
|
||||||
-Wall \
|
-Wall \
|
||||||
-Wno-unused-result \
|
-Wno-unused-result \
|
||||||
$(FUSE_CFLAGS) \
|
-MMD
|
||||||
-DFUSE_USE_VERSION=29 \
|
FUSE_FLAGS = \
|
||||||
-MMD \
|
-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)"
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
VERSION = "2.9.7-mergerfs_2.29.0"
|
VERSION = 2.9.7-mergerfs_2.29.0
|
||||||
OPTS = -O2
|
|
||||||
|
|
||||||
ifeq ($(DEBUG),1)
|
ifeq ($(DEBUG),1)
|
||||||
DEBUG_FLAGS := -g
|
DEBUG_FLAGS := -g
|
||||||
@ -7,9 +6,20 @@ else
|
|||||||
DEBUG_FLAGS :=
|
DEBUG_FLAGS :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
DESTDIR = "/"
|
DESTDIR =
|
||||||
BINDIR = "/bin"
|
PREFIX = /usr/local
|
||||||
SBINDIR = "/sbin"
|
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 += \
|
CFLAGS = \
|
||||||
$(OPTS) \
|
-O2 \
|
||||||
$(DEBUG_FLAGS) \
|
$(DEBUG_FLAGS) \
|
||||||
-Wall \
|
-Wall \
|
||||||
-pipe \
|
-pipe \
|
||||||
'-D_FILE_OFFSET_BITS=64' \
|
-MMD
|
||||||
'-D_REENTRANT' \
|
FUSERMOUNT_DIR = $(BINDIR)
|
||||||
'-DFUSE_USE_VERSION=29' \
|
FUSE_FLAGS = \
|
||||||
'-DFUSERMOUNT_DIR="/usr/local/bin"' \
|
|
||||||
'-DPACKAGE_VERSION=$(VERSION)' \
|
|
||||||
-Iinclude \
|
-Iinclude \
|
||||||
-Ibuild \
|
-Ibuild \
|
||||||
-MMD
|
-D_REENTRANT \
|
||||||
LDFLAGS += \
|
-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
|
build/mergerfs-fusermount: build/config.h util/fusermount.c lib/mount_util.c
|
||||||
$(CC) $(CFLAGS) -Ilib -o mergerfs-mount 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
|
mergerfs-fusermount: build/mergerfs-fusermount
|
||||||
$(CC) $(CFLAGS) -o mount.mergerfs util/mount.fuse.c build/libfuse.a $(LDFLAGS)
|
|
||||||
|
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
|
strip:
|
||||||
install -D build/mergerfs-mount "$(DESTDIR)$(BINDIR)/mergerfs-mount"
|
strip --strip-all build/mount.mergerfs
|
||||||
chown root:root "$(DESTDIR)$(BINDIR)/mergerfs-mount"
|
strip --strip-all build/mergerfs-fusermount
|
||||||
chmod u+s "$(DESTDIR)$(BINDIR)/mergerfs-mount"
|
|
||||||
install -D build/mount.mergerfs "$(DESTDIR)$(SBINDIR)/mount.mergerfs"
|
|
||||||
|
|
||||||
.PHONY: objects
|
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 strip
|
||||||
|
|
||||||
-include $(DEPS)
|
-include $(DEPS)
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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)
|
@ -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…
x
Reference in New Issue
Block a user