Mercurial > octave
annotate build-aux/check-subst-vars.in.sh @ 27919:1891570abac8
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2020.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 06 Jan 2020 22:29:51 -0500 |
parents | b442ec6dda5c |
children | bd51beb6205e |
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 # |
27919
1891570abac8
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
27918
diff
changeset
|
3 # Copyright (C) 2016-2020 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
4 # |
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
5 # See the file COPYRIGHT.md in the top-level directory of this distribution |
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
6 # or <https://octave.org/COPYRIGHT.html/>. |
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
7 # |
21413
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
8 # |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
9 # This file is part of Octave. |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
10 # |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
11 # Octave is free software: you can redistribute it and/or modify it |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
21441
diff
changeset
|
12 # under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
13 # the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
21441
diff
changeset
|
14 # (at your option) any later version. |
21413
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
15 # |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
21441
diff
changeset
|
16 # Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
21441
diff
changeset
|
17 # WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
21441
diff
changeset
|
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
21441
diff
changeset
|
19 # GNU General Public License for more details. |
21413
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 # 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
|
22 # along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
23 # <https://www.gnu.org/licenses/>. |
21413
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
24 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 : ${AWK=@AWK@} |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
26 : ${SED=@SED@} |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
27 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 if test $# -ne 2; then |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 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
|
30 exit 1 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
31 fi |
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 awk_script="check-subst-vars-$$.awk" |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
34 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
35 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
|
36 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 make_vars="$1" |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
38 config_vars="$2" |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
40 ## Generate awk script to check variable consitency. |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 cat << EOF > $awk_script |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 BEGIN { |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 status = 0; |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 EOF |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
46 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
47 while read var val; do |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
48 val=`echo "$val" | $SED 's/"/\\\\"/g'` |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
49 echo "make_vars[\"$var\"] = \"$val\";" >> $awk_script |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 done < $make_vars |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 cat << EOF >> $awk_script |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 } { |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 line = \$0; |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
55 idx = index (line, " "); |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 var = substr (line, 1, idx-1); |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
57 val = substr (line, idx+1); |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
58 if (val != make_vars[var]) |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
59 { |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
60 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
|
61 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
|
62 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
|
63 status = 1; |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
64 } |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
65 } END { |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
66 exit status; |
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 EOF |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
69 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
70 ## Execute it. |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
71 |
3fb2bdea47a5
check substituted variables against current make variables
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
72 $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
|
73 |
46a9c7afe419
ensure that substituted config vars are not changed on make command line
John W. Eaton <jwe@octave.org>
parents:
21413
diff
changeset
|
74 rm -f $awk_script |