From: Taylor R Campbell Date: Fri, 16 Nov 2018 09:18:19 +0000 (+0000) Subject: Use a make macro with $(MAKE) to make in subdirs, with + modifier. X-Git-Tag: mit-scheme-pucked-10.1.2~16^2~74 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=d90ef930fa397e6e9018b5d5579adeb7481c2d37;p=mit-scheme.git Use a make macro with $(MAKE) to make in subdirs, with + modifier. - Avoids relying on `make' to execute the right make. - Works with `make -n'. --- diff --git a/src/Makefile.in b/src/Makefile.in index ab78d479d..3d68d8a16 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -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 index caf53e721..000000000 --- a/src/etc/make-in-subdirs.sh +++ /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