This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: make clean doesn't run in gdbserver/common


[copy gdb-patches@ instead of gdb@]

On 02/23/2011 12:29 PM, Joel Brobecker wrote:
>> > There are two common dirs in build tree, under gdb/ and gdbserver/
>> > respectively, so it is not a problem to run 'make distclean' on top of
>> > gdb build tree.
> Aha, OK. Thanks for the explanation.
> 

OK to apply?

[I attach the same patch again, since it was sent to wrong list last time.]

-- 
Yao (éå)
gdb/gdbserver/

	* Makefile.in (CLEANDIRS, REQUIRED_SUBDIRS): New variable.
	(subdir_do): New make target.  Copied from gdb/Makefile.
	(maintainer-clean, realclean, distclean, clean): Call corresponding
	make targets in common/Makefile.

diff --git a/gdb/gdbserver/Makefile.in b/gdb/gdbserver/Makefile.in
index 07e020f..d27c942 100644
--- a/gdb/gdbserver/Makefile.in
+++ b/gdb/gdbserver/Makefile.in
@@ -136,6 +136,9 @@ LIBCOMMON_DIR = common
 LIBCOMMON = $(LIBCOMMON_DIR)/libcommon.a
 LIBCOMMON_SRC = $(srcdir)/$(LIBCOMMON_DIR)
 
+CLEANDIRS = $(LIBCOMMON_DIR)
+REQUIRED_SUBDIRS = $(LIBCOMMON_DIR)
+
 SOURCES = $(SFILES)
 TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
 
@@ -291,6 +294,7 @@ TAGS:	${TAGFILES}
 tags: TAGS
 
 clean:
+	@$(MAKE) $(FLAGS_TO_PASS) DO=clean "DODIRS=$(CLEANDIRS)" subdir_do
 	rm -f *.o ${ADD_FILES} *~
 	rm -f version.c
 	rm -f gdbserver$(EXEEXT) gdbreplay$(EXEEXT) core make.log
@@ -314,6 +318,7 @@ clean:
 	rm -f i386-mmx.c i386-mmx-linux.c
 
 maintainer-clean realclean distclean: clean
+	@$(MAKE) $(FLAGS_TO_PASS) DO=$@ "DODIRS=$(CLEANDIRS)" subdir_do
 	rm -f nm.h tm.h xm.h config.status config.h stamp-h config.log
 	rm -f Makefile
 
@@ -321,6 +326,22 @@ config.h: stamp-h ; @true
 stamp-h: config.in config.status
 	CONFIG_FILES="" CONFIG_HEADERS=config.h:config.in $(SHELL) ./config.status
 
+subdir_do: force
+	@for i in $(DODIRS); do \
+		case $$i in \
+		$(REQUIRED_SUBDIRS)) \
+			if [ ! -f ./$$i/Makefile ] ; then \
+				echo "Missing $$i/Makefile" >&2 ; \
+				exit 1 ; \
+			fi ;; \
+		esac ; \
+		if [ -f ./$$i/Makefile ] ; then \
+			if (cd ./$$i; \
+				$(MAKE) $(FLAGS_TO_PASS) $(DO)) ; then true ; \
+			else exit 1 ; fi ; \
+		else true ; fi ; \
+	done
+
 Makefile: Makefile.in config.status
 	CONFIG_HEADERS="" $(SHELL) ./config.status
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]