Use shell script to conditionally update SVM file.
authorChris Hanson <org/chris-hanson/cph>
Sun, 11 Mar 2012 06:44:33 +0000 (22:44 -0800)
committerChris Hanson <org/chris-hanson/cph>
Sun, 11 Mar 2012 06:44:33 +0000 (22:44 -0800)
src/Makefile.in
src/etc/maybe-update-file.sh [new file with mode: 0755]

index 115573aa1a4916a78fe1032e9153693adc512278..4d16d1ed1f138bd9f924fb79f016bae96b89c9d2 100644 (file)
@@ -90,8 +90,9 @@ all-svm: microcode/svm1-defns.h
        $(MAKE) build-bands #build-ffis
 
 microcode/svm1-defns.h: compiler/machines/svm/svm1-defns.h
-       if ! cmp compiler/machines/svm/svm1-defns.h microcode/svm1-defns.h; \
-       then cp compiler/machines/svm/svm1-defns.h microcode/svm1-defns.h; fi
+       @$(top_srcdir)/etc/maybe-update-file.sh \
+         compiler/machines/svm/svm1-defns.h \
+         microcode/svm1-defns.h
 
 compiler/machines/svm/svm1-defns.h: \
          compiler/machines/svm/assembler-rules.scm \
diff --git a/src/etc/maybe-update-file.sh b/src/etc/maybe-update-file.sh
new file mode 100755 (executable)
index 0000000..19cda90
--- /dev/null
@@ -0,0 +1,35 @@
+#!/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 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
+
+FROM=${1}
+TO=${2}
+if ! cmp "${FROM}" "${TO}" > /dev/null 2>&1
+then
+    rm "${TO}"
+    cp "${FROM}" "${TO}"
+fi