mirror of https://github.com/trapexit/mergerfs.git
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							146 lines
						
					
					
						
							3.0 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							146 lines
						
					
					
						
							3.0 KiB
						
					
					
				
								VERSION = 2.9.7-mergerfs_2.30.0
							 | 
						|
								
							 | 
						|
								OS := $(shell uname -s)
							 | 
						|
								ifeq ($(OS),Linux)
							 | 
						|
								UTILS := utils
							 | 
						|
								INSTALLUTILS := install-utils
							 | 
						|
								else
							 | 
						|
								UTILS :=
							 | 
						|
								INSTALLUTILS :=
							 | 
						|
								endif
							 | 
						|
								
							 | 
						|
								ifeq ($(DEBUG),1)
							 | 
						|
								OPT_FLAGS := -O0 -g -fsanitize=undefined
							 | 
						|
								else
							 | 
						|
								OPT_FLAGS := -O2
							 | 
						|
								endif
							 | 
						|
								
							 | 
						|
								ifeq ($(LTO),1)
							 | 
						|
								LTO_FLAGS := -flto
							 | 
						|
								else
							 | 
						|
								LTO_FLAGS :=
							 | 
						|
								endif
							 | 
						|
								
							 | 
						|
								DESTDIR       =
							 | 
						|
								PREFIX        = /usr/local
							 | 
						|
								EXEC_PREFIX   = $(PREFIX)
							 | 
						|
								DATAROOTDIR   = $(PREFIX)/share
							 | 
						|
								DATADIR       = $(DATAROOTDIR)
							 | 
						|
								BINDIR        = $(EXEC_PREFIX)/bin
							 | 
						|
								SBINDIR       = /sbin
							 | 
						|
								MANDIR        = $(DATAROOTDIR)/man
							 | 
						|
								MAN1DIR       = $(MANDIR)/man1
							 | 
						|
								
							 | 
						|
								INSTALLBINDIR  = $(DESTDIR)$(BINDIR)
							 | 
						|
								INSTALLSBINDIR = $(DESTDIR)$(SBINDIR)
							 | 
						|
								INSTALLMAN1DIR = $(DESTDIR)$(MAN1DIR)
							 | 
						|
								
							 | 
						|
								AR ?= ar
							 | 
						|
								
							 | 
						|
								SRC_C = \
							 | 
						|
									lib/buffer.c \
							 | 
						|
									lib/crc32b.c \
							 | 
						|
									lib/debug.c \
							 | 
						|
									lib/fuse.c \
							 | 
						|
									lib/fuse_dirents.c \
							 | 
						|
									lib/fuse_lowlevel.c \
							 | 
						|
									lib/node.c \
							 | 
						|
									lib/fuse_node.c \
							 | 
						|
									lib/fuse_opt.c \
							 | 
						|
									lib/fuse_session.c \
							 | 
						|
									lib/fuse_signals.c \
							 | 
						|
									lib/helper.c \
							 | 
						|
									lib/mount.c
							 | 
						|
								SRC_CPP = \
							 | 
						|
									lib/format.cpp \
							 | 
						|
									lib/os.cpp \
							 | 
						|
									lib/cpu.cpp \
							 | 
						|
									lib/fuse_config.cpp \
							 | 
						|
									lib/fuse_loop.cpp \
							 | 
						|
									lib/fuse_msgbuf.cpp
							 | 
						|
								OBJS_C   = $(SRC_C:lib/%.c=build/%.o)
							 | 
						|
								OBJS_CPP = $(SRC_CPP:lib/%.cpp=build/%.o)
							 | 
						|
								DEPS_C   = $(SRC_C:lib/%.c=build/%.d)
							 | 
						|
								DEPS_CPP = $(SRC_CPP:lib/%.cpp=build/%.d)
							 | 
						|
								CFLAGS ?= \
							 | 
						|
									$(OPT_FLAGS)
							 | 
						|
								CFLAGS := \
							 | 
						|
									${CFLAGS} \
							 | 
						|
									$(LTO_FLAGS) \
							 | 
						|
									-std=gnu99 \
							 | 
						|
									-Wall \
							 | 
						|
									-pipe \
							 | 
						|
									-MMD
							 | 
						|
								CXXFLAGS := \
							 | 
						|
									${CXXFLAGS} \
							 | 
						|
									$(LTO_FLAGS) \
							 | 
						|
									-std=c++11 \
							 | 
						|
									-Wall \
							 | 
						|
									-pipe \
							 | 
						|
									-MMD
							 | 
						|
								FUSERMOUNT_DIR = $(BINDIR)
							 | 
						|
								FUSE_FLAGS = \
							 | 
						|
									-Iinclude \
							 | 
						|
									-Ibuild \
							 | 
						|
									-D_REENTRANT \
							 | 
						|
									-D_FILE_OFFSET_BITS=64 \
							 | 
						|
									-DPACKAGE_VERSION=\"$(VERSION)\" \
							 | 
						|
									-DFUSERMOUNT_DIR=\"$(FUSERMOUNT_DIR)\"
							 | 
						|
								LDFLAGS := \
							 | 
						|
									${LDFLAGS} \
							 | 
						|
									-lrt \
							 | 
						|
									-pthread
							 | 
						|
								
							 | 
						|
								all: build/libfuse.a $(UTILS)
							 | 
						|
								
							 | 
						|
								build/config.h: build/stamp
							 | 
						|
									ecfd/build | tee build/config.h
							 | 
						|
								
							 | 
						|
								build/stamp:
							 | 
						|
									mkdir -p build
							 | 
						|
									touch $@
							 | 
						|
								
							 | 
						|
								objects: build/config.h
							 | 
						|
									$(MAKE) $(OBJS_C) $(OBJS_CPP)
							 | 
						|
								
							 | 
						|
								build/libfuse.a: objects
							 | 
						|
									${AR} rcs build/libfuse.a $(OBJS_C) $(OBJS_CPP)
							 | 
						|
								
							 | 
						|
								utils: mergerfs-fusermount mount.mergerfs
							 | 
						|
								
							 | 
						|
								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
							 | 
						|
								
							 | 
						|
								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
							 | 
						|
									$(CC) $(CFLAGS) $(FUSE_FLAGS) -c $< -o $@
							 | 
						|
								
							 | 
						|
								build/%.o: lib/%.cpp
							 | 
						|
									$(CXX) $(CXXFLAGS) $(FUSE_FLAGS) -c $< -o $@
							 | 
						|
								
							 | 
						|
								clean:
							 | 
						|
									rm -rf build
							 | 
						|
								
							 | 
						|
								distclean: clean
							 | 
						|
								
							 | 
						|
								strip:
							 | 
						|
									strip --strip-all build/mount.mergerfs
							 | 
						|
									strip --strip-all build/mergerfs-fusermount
							 | 
						|
								
							 | 
						|
								install-utils: mergerfs-fusermount mount.mergerfs strip
							 | 
						|
									install -D build/mergerfs-fusermount "$(INSTALLBINDIR)/mergerfs-fusermount"
							 | 
						|
									install -D build/mount.mergerfs "$(INSTALLSBINDIR)/mount.mergerfs"
							 | 
						|
									chown root "$(INSTALLBINDIR)/mergerfs-fusermount"
							 | 
						|
									chmod u+s "$(INSTALLBINDIR)/mergerfs-fusermount"
							 | 
						|
								
							 | 
						|
								install: $(INSTALLUTILS)
							 | 
						|
								
							 | 
						|
								.PHONY: objects strip utils install install-utils
							 | 
						|
								
							 | 
						|
								-include $(DEPS_C) $(DEPS_CPP)
							 |