This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: make clean doesn't run in gdbserver/common
- From: Yao Qi <yao at codesourcery dot com>
- To: Michael Snyder <msnyder at vmware dot com>
- Cc: "gdb at sourceware dot org" <gdb at sourceware dot org>
- Date: Wed, 23 Feb 2011 11:30:41 +0800
- Subject: Re: make clean doesn't run in gdbserver/common
- References: <4D642638.8090207@vmware.com>
On 02/23/2011 05:10 AM, Michael Snyder wrote:
> Hi,
>
> I think gdbserver/Makefile.in needs to be told to run make clean and
> make distclean in the common subdir.
Here is the patch to fix this.
--
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