Use a make macro with $(MAKE) to make in subdirs, with + modifier.
authorTaylor R Campbell <campbell@mumble.net>
Fri, 16 Nov 2018 09:18:19 +0000 (09:18 +0000)
committerTaylor R Campbell <campbell@mumble.net>
Fri, 16 Nov 2018 09:18:19 +0000 (09:18 +0000)
- Avoids relying on `make' to execute the right make.
- Works with `make -n'.

src/Makefile.in
src/etc/make-in-subdirs.sh [deleted file]

index ab78d479d290ac32c2243774141ea41c20e49b3c..3d68d8a168a478dd4136b52f142ff71cdc2a3f59 100644 (file)
@@ -85,6 +85,9 @@ HOST_COMPILER = '$(MIT_SCHEME_EXE)' --batch-mode $(HOST_COMPILER_HEAP) --no-init
 HOST_RUNTIME_ONLY = '$(MIT_SCHEME_EXE)' --batch-mode $(HOST_COMPILER_HEAP) \
   --band runtime.com --no-init-file --load runtime/host-adapter.scm
 
+MAKE_IN_SUBDIRS = \
+       f () { t=$$1; shift; for d; do (cd "$$d" && $(MAKE) "$$t"); done; }; f
+
 # This rule is for LIARC.
 .SUFFIXES: .bld .pkd .c
 .pkd.c .bld.c:
@@ -586,7 +589,7 @@ install: install-standard @INSTALL_LIARC_BUNDLES@
 
 .PHONY: install-standard
 install-standard: install-auxdir-top
-       etc/make-in-subdirs.sh install $(INSTALLED_SUBDIRS)
+       @+$(MAKE_IN_SUBDIRS) install $(INSTALLED_SUBDIRS)
 
 .PHONY: install-auxdir-top
 install-auxdir-top:
@@ -619,11 +622,11 @@ liarc-dist:
 # **** Build liarc from distribution ****
 
 stamp_compile-liarc-boot-bundles: stamp_install-microcode
-       etc/make-in-subdirs.sh compile-liarc-bundle $(LIARC_BOOT_BUNDLES)
+       @+$(MAKE_IN_SUBDIRS) compile-liarc-bundle $(LIARC_BOOT_BUNDLES)
        echo "done" > $@
 
 stamp_install-liarc-boot-bundles: stamp_compile-liarc-boot-bundles
-       etc/make-in-subdirs.sh install-liarc-bundle $(LIARC_BOOT_BUNDLES)
+       @+$(MAKE_IN_SUBDIRS) install-liarc-bundle $(LIARC_BOOT_BUNDLES)
        echo "done" > $@
 
 stamp_build-liarc-boot-compiler: stamp_install-liarc-boot-bundles
@@ -644,11 +647,11 @@ stamp_compile-liarc-bundles: stamp_liarc-compile-scheme compile-liarc-bundles
 
 .PHONY: compile-liarc-bundles
 compile-liarc-bundles: compile-microcode
-       etc/make-in-subdirs.sh compile-liarc-bundle $(LIARC_BUNDLES)
+       @+$(MAKE_IN_SUBDIRS) compile-liarc-bundle $(LIARC_BUNDLES)
 
 .PHONY: install-liarc-bundles
 install-liarc-bundles:
-       etc/make-in-subdirs.sh install-liarc-bundle $(LIARC_BUNDLES)
+       @+$(MAKE_IN_SUBDIRS) install-liarc-bundle $(LIARC_BUNDLES)
 
 # **** Build native from liarc ****
 
diff --git a/src/etc/make-in-subdirs.sh b/src/etc/make-in-subdirs.sh
deleted file mode 100755 (executable)
index caf53e7..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-#
-# Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
-#     1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-#     2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
-#     2015, 2016, 2017, 2018 Massachusetts Institute of Technology
-#
-# This file is part of MIT/GNU Scheme.
-#
-# MIT/GNU Scheme is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# MIT/GNU Scheme is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with MIT/GNU Scheme; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-
-set -e
-
-. etc/functions.sh
-
-TARGET=${1}
-shift
-for SUBDIR in ${1+"$@"}; do
-    run_cmd_in_dir "${SUBDIR}" make "${TARGET}"
-done