diff mbox

[1/3] Btrfs-progs: Add Makefile infrastructure for subdirs

Message ID 1370992519-21369-2-git-send-email-sandeen@redhat.com (mailing list archive)
State Accepted, archived
Headers show

Commit Message

Eric Sandeen June 11, 2013, 11:15 p.m. UTC
Preparatory patch to move cmd & test files into their
own subdirs.

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

Comments

David Sterba Sept. 2, 2013, 2:26 p.m. UTC | #1
On Tue, Jun 11, 2013 at 06:15:17PM -0500, Eric Sandeen wrote:
> Preparatory patch to move cmd & test files into their
> own subdirs.

I'm adding this to integration as it's just an infrastructure change,
but there are some bits missing before we can move more .c files into
their own subdirs. More under 'move files to tests/' patch.

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

Patch

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)