From: Jim Blandy <jimb@redhat.com>
To: gdb-patches@sources.redhat.com
Subject: RFA: respect -k or its absence when building sim subdirs
Date: Wed, 13 Apr 2005 17:32:00 -0000 [thread overview]
Message-ID: <vt2sm1ur3a0.fsf@zenia.home> (raw)
Overkill, probably. I just hate this kind of stuff.
2005-04-13 Jim Blandy <jimb@redhat.com>
Fix -k handling when looping over subdirectories.
* for-subdirs.sh: New script.
* Makefile.in (all clean mostlyclean distclean maintainer-clean
realclean install): Use it to loop over subdirectories.
Index: sim/for-subdirs.sh
===================================================================
RCS file: sim/for-subdirs.sh
diff -N sim/for-subdirs.sh
*** sim/for-subdirs.sh 1 Jan 1970 00:00:00 -0000
--- sim/for-subdirs.sh 13 Apr 2005 17:29:16 -0000
***************
*** 0 ****
--- 1,38 ----
+ #!/bin/sh
+
+ # usage: sh for-subdirs.sh MAKEFLAGS COMMAND SUBDIR ...
+ #
+ # For every subdirectory SUBDIR ... that is not '.', cd to that subdirectory
+ # and evaluate COMMAND.
+ #
+ # MAKEFLAGS should be the value of the 'make' variable 'MAKEFLAGS'; if
+ # its value indicates that make is being called with the '-k' flag,
+ # the subdirectory loop will exit with a non-zero status if any
+ # evaluation of COMMAND does so.
+
+ makeflags="$1"; shift
+ command="$1"; shift
+
+ # Delete variable assignments from makeflags.
+ makeflags="$(echo "$makeflags" | sed -e 's/[^ ][^ ]*=[^ ][^ ]*//g')"
+
+ final_status=0
+
+ for subdir in "$@"; do
+ if [ "$subdir" = "." ]; then
+ true;
+ elif (cd "$subdir" && eval "$command"); then
+ true;
+ else
+ status="$?"
+ case "$makeflags" in
+ *k*)
+ final_status="$status"
+ ;;
+ *)
+ exit "$status"
+ ;;
+ esac
+ fi
+ done
+ exit "$final_status"
Index: sim/Makefile.in
===================================================================
RCS file: /cvs/src/src/sim/Makefile.in,v
retrieving revision 1.6
diff -c -p -r1.6 Makefile.in
*** sim/Makefile.in 29 Jan 2005 00:53:13 -0000 1.6
--- sim/Makefile.in 13 Apr 2005 17:29:16 -0000
*************** TARGET_FLAGS_TO_PASS = \
*** 126,169 ****
all:
@rootme=`pwd` ; export rootme ; \
! for dir in . `echo ${SUBDIRS} | sed 's/testsuite//'` ; do \
! if [ "$$dir" = "." ]; then \
! true; \
! elif [ -d $$dir ]; then \
! (cd $$dir; $(MAKE) $(FLAGS_TO_PASS)) || exit 1; \
! else true; fi; \
! done
clean mostlyclean:
@rootme=`pwd` ; export rootme ; \
! for dir in . ${SUBDIRS}; do \
! if [ "$$dir" = "." ]; then \
! true; \
! elif [ -d $$dir ]; then \
! (cd $$dir; $(MAKE) $(FLAGS_TO_PASS) $@) || exit 1; \
! else true; fi; \
! done
distclean maintainer-clean realclean:
@rootme=`pwd` ; export rootme ; \
! for dir in . ${SUBDIRS}; do \
! if [ "$$dir" = "." ]; then \
! true; \
! elif [ -d $$dir ]; then \
! (cd $$dir; $(MAKE) $(FLAGS_TO_PASS) $@) || exit 1; \
! else true; fi; \
! done
rm -f Makefile config.cache config.log config.status
install:
@rootme=`pwd` ; export rootme ; \
! for dir in . ${SUBDIRS}; do \
! if [ "$$dir" = "." ]; then \
! true; \
! elif [ -d $$dir ]; then \
! (cd $$dir; $(MAKE) $(FLAGS_TO_PASS) install) || exit 1; \
! else true; fi; \
! done
installcheck:
@echo No installcheck target is available yet for the GNU simulators.
--- 126,150 ----
all:
@rootme=`pwd` ; export rootme ; \
! $(SHELL) $(srcdir)/for-subdirs.sh \
! "$(MAKEFLAGS)" "$(MAKE) "'$(FLAGS_TO_PASS)' \
! `echo ${SUBDIRS} | sed 's/testsuite//'`
clean mostlyclean:
@rootme=`pwd` ; export rootme ; \
! $(SHELL) $(srcdir)/for-subdirs.sh \
! "$(MAKEFLAGS)" "$(MAKE) "'$(FLAGS_TO_PASS) $@' $(SUBDIRS)
distclean maintainer-clean realclean:
@rootme=`pwd` ; export rootme ; \
! $(SHELL) $(srcdir)/for-subdirs.sh \
! "$(MAKEFLAGS)" "$(MAKE) "'$(FLAGS_TO_PASS) $@' $(SUBDIRS)
rm -f Makefile config.cache config.log config.status
install:
@rootme=`pwd` ; export rootme ; \
! $(SHELL) $(srcdir)/for-subdirs.sh \
! "$(MAKEFLAGS)" "$(MAKE) "'$(FLAGS_TO_PASS) install' $(SUBDIRS)
installcheck:
@echo No installcheck target is available yet for the GNU simulators.
next reply other threads:[~2005-04-13 17:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-13 17:32 Jim Blandy [this message]
2005-04-14 19:25 ` Daniel Jacobowitz
2005-04-15 0:20 ` Jim Blandy
2005-04-15 0:30 ` Daniel Jacobowitz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=vt2sm1ur3a0.fsf@zenia.home \
--to=jimb@redhat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox