btrfs-progs: update CHANGES for v4.16.1
[platform/upstream/btrfs-progs.git] / Makefile
index 7c88460..cbd8553 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -135,7 +135,9 @@ libbtrfsutil_major := $(shell sed -rn 's/^\#define BTRFS_UTIL_VERSION_MAJOR ([0-
 libbtrfsutil_minor := $(shell sed -rn 's/^\#define BTRFS_UTIL_VERSION_MINOR ([0-9])+$$/\1/p' libbtrfsutil/btrfsutil.h)
 libbtrfsutil_patch := $(shell sed -rn 's/^\#define BTRFS_UTIL_VERSION_PATCH ([0-9])+$$/\1/p' libbtrfsutil/btrfsutil.h)
 libbtrfsutil_version := $(libbtrfsutil_major).$(libbtrfsutil_minor).$(libbtrfsutil_patch)
-libbtrfsutil_objects = libbtrfsutil/errors.o
+libbtrfsutil_objects = libbtrfsutil/errors.o libbtrfsutil/filesystem.o \
+                      libbtrfsutil/subvolume.o libbtrfsutil/qgroup.o \
+                      libbtrfsutil/stubs.o
 convert_objects = convert/main.o convert/common.o convert/source-fs.o \
                  convert/source-ext2.o convert/source-reiserfs.o
 mkfs_objects = mkfs/main.o mkfs/common.o mkfs/rootdir.o
@@ -154,8 +156,10 @@ endif
 
 ifeq ($(BUILD_VERBOSE),1)
   Q =
+  SETUP_PY_Q =
 else
   Q = @
+  SETUP_PY_Q = -q
 endif
 
 ifeq ("$(origin D)", "command line")
@@ -206,13 +210,12 @@ MAKEOPTS = --no-print-directory Q=$(Q)
 progs = $(progs_install) btrfsck btrfs-corrupt-block
 
 # install only selected
-progs_install = btrfs mkfs.btrfs btrfs-debug-tree \
-       btrfs-map-logical btrfs-image btrfs-zero-log \
+progs_install = btrfs mkfs.btrfs btrfs-map-logical btrfs-image \
        btrfs-find-root btrfstune \
        btrfs-select-super
 
 # other tools, not built by default
-progs_extra = btrfs-fragments btrfs-calc-size btrfs-show-super
+progs_extra = btrfs-fragments
 
 progs_static = $(foreach p,$(progs),$(p).static)
 
@@ -225,9 +228,6 @@ endif
 btrfs_convert_cflags = -DBTRFSCONVERT_EXT2=$(BTRFSCONVERT_EXT2)
 btrfs_convert_cflags += -DBTRFSCONVERT_REISERFS=$(BTRFSCONVERT_REISERFS)
 btrfs_fragments_libs = -lgd -lpng -ljpeg -lfreetype
-btrfs_debug_tree_objects = cmds-inspect-dump-tree.o
-btrfs_show_super_objects = cmds-inspect-dump-super.o
-btrfs_calc_size_objects = cmds-inspect-tree-stats.o
 cmds_restore_cflags = -DBTRFSRESTORE_ZSTD=$(BTRFSRESTORE_ZSTD)
 
 CHECKER_FLAGS += $(btrfs_convert_cflags)
@@ -257,6 +257,7 @@ endif
 static_objects = $(patsubst %.o, %.static.o, $(objects))
 static_cmds_objects = $(patsubst %.o, %.static.o, $(cmds_objects))
 static_libbtrfs_objects = $(patsubst %.o, %.static.o, $(libbtrfs_objects))
+static_libbtrfsutil_objects = $(patsubst %.o, %.static.o, $(libbtrfsutil_objects))
 static_convert_objects = $(patsubst %.o, %.static.o, $(convert_objects))
 static_mkfs_objects = $(patsubst %.o, %.static.o, $(mkfs_objects))
 static_image_objects = $(patsubst %.o, %.static.o, $(image_objects))
@@ -302,6 +303,9 @@ endif
                $($(subst -,_,btrfs-$(@:%/$(notdir $@)=%)-cflags))
 
 all: $(progs) $(libs) $(lib_links) $(BUILDDIRS)
+ifeq ($(PYTHON_BINDINGS),1)
+all: libbtrfsutil_python
+endif
 $(SUBDIRS): $(BUILDDIRS)
 $(BUILDDIRS):
        @echo "Making all in $(patsubst build-%,%,$@)"
@@ -317,7 +321,7 @@ test-fsck: btrfs btrfs-image btrfs-corrupt-block mkfs.btrfs btrfstune
        $(Q)bash tests/fsck-tests.sh
 
 test-misc: btrfs btrfs-image btrfs-corrupt-block mkfs.btrfs btrfstune fssum \
-               btrfs-zero-log btrfs-find-root btrfs-select-super btrfs-convert
+               btrfs-find-root btrfs-select-super btrfs-convert
        @echo "    [TEST]   misc-tests.sh"
        $(Q)bash tests/misc-tests.sh
 
@@ -349,6 +353,16 @@ testsuite: btrfs-corrupt-block fssum
        @echo "Export tests as a package"
        $(Q)cd tests && ./export-testsuite.sh
 
+ifeq ($(PYTHON_BINDINGS),1)
+test-libbtrfsutil: libbtrfsutil_python mkfs.btrfs
+       $(Q)cd libbtrfsutil/python; \
+               LD_LIBRARY_PATH=../.. $(PYTHON) -m unittest discover -v tests
+
+.PHONY: test-libbtrfsutil
+
+test: test-libbtrfsutil
+endif
+
 #
 # NOTE: For static compiles, you need to have all the required libs
 #      static equivalent available
@@ -399,6 +413,15 @@ libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so: libbtrfsutil.so.$(libbtrf
        @echo "    [LN]     $@"
        $(Q)$(LN_S) -f $< $@
 
+ifeq ($(PYTHON_BINDINGS),1)
+libbtrfsutil_python: libbtrfsutil.so.$(libbtrfsutil_major) libbtrfsutil.so libbtrfsutil/btrfsutil.h
+       @echo "    [PY]     libbtrfsutil"
+       $(Q)cd libbtrfsutil/python; \
+               CFLAGS= LDFLAGS= $(PYTHON) setup.py $(SETUP_PY_Q) build_ext -i build
+
+.PHONY: libbtrfsutil_python
+endif
+
 # keep intermediate files from the below implicit rules around
 .PRECIOUS: $(addsuffix .o,$(progs))
 
@@ -427,7 +450,7 @@ btrfs: btrfs.o $(objects) $(cmds_objects) $(libs_static)
        @echo "    [LD]     $@"
        $(Q)$(CC) -o $@ $^ $(LDFLAGS) $(LIBS) $(LIBS_COMP)
 
-btrfs.static: btrfs.static.o $(static_objects) $(static_cmds_objects) $(static_libbtrfs_objects)
+btrfs.static: btrfs.static.o $(static_objects) $(static_cmds_objects) $(static_libbtrfs_objects) $(static_libbtrfsutil_objects)
        @echo "    [LD]     $@"
        $(Q)$(CC) -o $@ $^ $(STATIC_LDFLAGS) $(STATIC_LIBS) $(STATIC_LIBS_COMP)
 
@@ -559,11 +582,15 @@ manpages:
 
 tags: FORCE
        @echo "    [TAGS]   $(TAGS_CMD)"
-       $(Q)$(TAGS_CMD) *.[ch] image/*.[ch] convert/*.[ch] mkfs/*.[ch]
+       $(Q)$(TAGS_CMD) *.[ch] image/*.[ch] convert/*.[ch] mkfs/*.[ch] \
+               check/*.[ch] kernel-lib/*.[ch] kernel-shared/*.[ch] \
+               libbtrfsutil/*.[ch]
 
 cscope: FORCE
        @echo "    [CSCOPE] $(CSCOPE_CMD)"
-       $(Q)ls -1 *.[ch] image/*.[ch] convert/*.[ch] mkfs/*.[ch] > cscope.files
+       $(Q)ls -1 *.[ch] image/*.[ch] convert/*.[ch] mkfs/*.[ch] check/*.[ch] \
+               kernel-lib/*.[ch] kernel-shared/*.[ch] libbtrfsutil/*.[ch] \
+               > cscope.files
        $(Q)$(CSCOPE_CMD)
 
 clean-all: clean clean-doc clean-gen
@@ -582,6 +609,10 @@ clean: $(CLEANDIRS)
              $(libs) $(lib_links) \
              $(progs_static) $(progs_extra) \
              libbtrfsutil/*.o libbtrfsutil/*.o.d
+ifeq ($(PYTHON_BINDINGS),1)
+       $(Q)cd libbtrfsutil/python; \
+               $(PYTHON) setup.py $(SETUP_PY_Q) clean -a
+endif
 
 clean-doc:
        @echo "Cleaning Documentation"
@@ -608,7 +639,7 @@ install: $(libs) $(progs_install) $(INSTALLDIRS)
        $(LN_S) -f btrfs $(DESTDIR)$(bindir)/btrfsck
        $(INSTALL) -m755 -d $(DESTDIR)$(libdir)
        $(INSTALL) $(libs) $(DESTDIR)$(libdir)
-       cp -a $(lib_links) $(DESTDIR)$(libdir)
+       cp -d $(lib_links) $(DESTDIR)$(libdir)
        $(INSTALL) -m755 -d $(DESTDIR)$(incdir)/btrfs
        $(INSTALL) -m644 $(libbtrfs_headers) $(DESTDIR)$(incdir)/btrfs
        $(INSTALL) -m644 libbtrfsutil/btrfsutil.h $(DESTDIR)$(incdir)
@@ -617,6 +648,14 @@ ifneq ($(udevdir),)
        $(INSTALL) -m644 $(udev_rules) $(DESTDIR)$(udevruledir)
 endif
 
+ifeq ($(PYTHON_BINDINGS),1)
+install_python: libbtrfsutil_python
+       $(Q)cd libbtrfsutil/python; \
+               $(PYTHON) setup.py install --skip-build $(if $(DESTDIR),--root $(DESTDIR)) --prefix $(prefix)
+
+.PHONY: install_python
+endif
+
 install-static: $(progs_static) $(INSTALLDIRS)
        $(INSTALL) -m755 -d $(DESTDIR)$(bindir)
        $(INSTALL) $(progs_static) $(DESTDIR)$(bindir)