annotate build-aux/check-subst-vars.in.sh @ 22761:708a4fcb7382 stable release-4-2-0

Version 4.2.0 released. * configure.ac: Bump version to 4.2.0. (OCTAVE_PATCH_VERSION): Set to 0. (OCTAVE_RELEASE_DATE): Update.
author John W. Eaton <jwe@octave.org>
date Sun, 13 Nov 2016 10:20:59 -0500
parents 46a9c7afe419
children 3a2b891d0b33 3ac9f9ecfae5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21413
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 #! /bin/sh
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 #
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3 # Copyright (C) 2016 John W. Eaton
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 #
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 # This file is part of Octave.
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 #
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 # Octave is free software; you can redistribute it and/or modify it
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 # under the terms of the GNU General Public License as published by the
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 # Free Software Foundation; either version 3 of the License, or (at
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 # your option) any later version.
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 #
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 # Octave is distributed in the hope that it will be useful, but WITHOUT
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 # for more details.
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 #
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 # You should have received a copy of the GNU General Public License
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 # along with Octave; see the file COPYING. If not, see
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 # <http://www.gnu.org/licenses/>.
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 : ${AWK=@AWK@}
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 : ${SED=@SED@}
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 if test $# -ne 2; then
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25 echo "usage: check-subst-vars.sh make-vars-file config-vars-file" 2>&1
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 exit 1
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 fi
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 awk_script="check-subst-vars-$$.awk"
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 trap "rm -f $awk_script; exit 1" 1 2 15
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 make_vars="$1"
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34 config_vars="$2"
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 ## Generate awk script to check variable consitency.
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 cat << EOF > $awk_script
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 BEGIN {
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 status = 0;
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 EOF
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 while read var val; do
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44 val=`echo "$val" | $SED 's/"/\\\\"/g'`
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 echo "make_vars[\"$var\"] = \"$val\";" >> $awk_script
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 done < $make_vars
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48 cat << EOF >> $awk_script
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 } {
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 line = \$0;
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51 idx = index (line, " ");
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
52 var = substr (line, 1, idx-1);
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53 val = substr (line, idx+1);
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54 if (val != make_vars[var])
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
55 {
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56 printf ("error: mismatch for configuration variable '%s'\n", var);
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57 printf (" value set in configuration files: %s\n", val);
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58 printf (" value set in Make: %s\n", make_vars[var]);
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
59 status = 1;
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
60 }
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
61 } END {
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
62 exit status;
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
63 }
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
64 EOF
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
66 ## Execute it.
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
67
3fb2bdea47a5 check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff changeset
68 $AWK -f $awk_script $config_vars 1>&2
21441
46a9c7afe419 ensure that substituted config vars are not changed on make command line
John W. Eaton <jwe@octave.org>
parents: 21413
diff changeset
69
46a9c7afe419 ensure that substituted config vars are not changed on make command line
John W. Eaton <jwe@octave.org>
parents: 21413
diff changeset
70 rm -f $awk_script