Preparatory patch to move cmd & test files into their
own subdirs.

Signed-off-by: Eric Sandeen <sand...@redhat.com>
---
 Makefile     |   38 +++++++++++++++++++++++++++++++-------
 man/Makefile |    1 -
 2 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/Makefile b/Makefile
index 7a49174..5411ad9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,6 @@
+# Export all variables to sub-makes by default
+export
+
 CC = gcc
 LN = ln
 AR = ar
@@ -53,6 +56,18 @@ btrfs_convert_libs = -lext2fs -lcom_err
 btrfs_image_libs = -lpthread
 btrfs_fragment_libs = -lgd -lpng -ljpeg -lfreetype
 
+SUBDIRS = man
+BUILDDIRS = $(patsubst %,build-%,$(SUBDIRS))
+INSTALLDIRS = $(patsubst %,install-%,$(SUBDIRS))
+CLEANDIRS = $(patsubst %,clean-%,$(SUBDIRS))
+
+.PHONY: $(SUBDIRS)
+.PHONY: $(BUILDDIRS)
+.PHONY: $(INSTALLDIRS)
+.PHONY: $(TESTDIRS)
+.PHONY: $(CLEANDIRS)
+.PHONY: all install clean
+
 # Create all the static targets
 static_objects = $(patsubst %.o, %.static.o, $(objects))
 static_cmds_objects = $(patsubst %.o, %.static.o, $(cmds_objects))
@@ -85,7 +100,11 @@ endif
        @echo "    [CC]     $@"
        $(Q)$(CC) $(DEPFLAGS) $(AM_CFLAGS) $(STATIC_CFLAGS) -c $< -o $@
 
-all: version.h $(progs) manpages
+all: version.h $(progs) $(BUILDDIRS)
+$(SUBDIRS): $(BUILDDIRS)
+$(BUILDDIRS):
+       @echo "Making all in $(patsubst build-%,%,$@)"
+       $(Q)$(MAKE) $(MAKEOPTS) -C $(patsubst build-%,%,$@)
 
 #
 # NOTE: For static compiles, you need to have all the required libs
@@ -178,19 +197,19 @@ send-test: $(objects) $(libs) send-test.o
 manpages:
        $(Q)$(MAKE) $(MAKEOPTS) -C man
 
-install-man:
-       cd man; $(MAKE) install
-
-clean :
+clean: $(CLEANDIRS)
        @echo "Cleaning"
        $(Q)rm -f $(progs) cscope.out *.o .*.d btrfs-convert btrfs-image 
btrfs-select-super \
              btrfs-zero-log btrfstune dir-test ioctl-test quick-test send-test 
btrfsck \
              btrfs.static mkfs.btrfs.static btrfs-calc-size \
              version.h \
              $(libs) $(lib_links)
-       $(Q)$(MAKE) $(MAKEOPTS) -C man $@
 
-install: $(libs) $(progs) install-man
+$(CLEANDIRS): 
+       @echo "Cleaning $(patsubst clean-%,%,$@)"
+       $(Q)$(MAKE) $(MAKEOPTS) -C $(patsubst clean-%,%,$@) clean
+
+install: $(libs) $(progs) $(INSTALLDIRS)
        $(INSTALL) -m755 -d $(DESTDIR)$(bindir)
        $(INSTALL) $(progs) $(DESTDIR)$(bindir)
        # btrfsck is a link to btrfs in the src tree, make it so for installed 
file as well
@@ -201,4 +220,9 @@ install: $(libs) $(progs) install-man
        $(INSTALL) -m755 -d $(DESTDIR)$(incdir)
        $(INSTALL) -m644 $(headers) $(DESTDIR)$(incdir)
 
+$(INSTALLDIRS):
+       @echo "Making install in $(patsubst install-%,%,$@)"
+       $(Q)$(MAKE) $(MAKEOPTS) -C $(patsubst install-%,%,$@) install
+
+
 -include .*.d
diff --git a/man/Makefile b/man/Makefile
index 1ba23b5..54b57d1 100644
--- a/man/Makefile
+++ b/man/Makefile
@@ -21,7 +21,6 @@ all: $(MANPAGES)
        $(Q)$(GZIPCMD) -n -c $< > $@
 
 clean :
-       @echo "Cleaning manpages"
        $(Q)rm -f $(MANPAGES)
 
 install: $(MANPAGES)
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to