annotate bootstrap-funclib.sh @ 32058:e242124f1240

Overhaul input validation of sparse() function. * sparse.cc (Fsparse): Decode input type and identify floating point inputs. If input is of single type, emit new warning "Octave:sparse:double-conversion". If input is neither floating point or logical, then call err_wrong_type_arg() for pretty error message. Rename temporary variable 'k' to "argidx" for clarity. New temporary variable "arg" to increase readability of code. Add FIXME note about unreachable code due to behavior of get_dimensions(). * sparse.cc (Fissparse): Turn off warning about double-conversion temporarily for test which has single input. * warning_ids.m: Add description for new warning ID "Octave:sparse:double-conversion". * mk-sparse-tst.sh: Redo BIST tests for sparse() construction.
author Rik <rik@octave.org>
date Wed, 26 Apr 2023 10:09:09 -0700
parents e98fb9b4be86
children e6d339b9309d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31420
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1 # A library of shell functions for autopull.sh, autogen.sh, and bootstrap.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3 # Copyright (C) 2003-2022 Free Software Foundation, Inc.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4 #
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5 # This program is free software: you can redistribute it and/or modify
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7 # the Free Software Foundation, either version 3 of the License, or
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8 # (at your option) any later version.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9 #
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10 # This program is distributed in the hope that it will be useful,
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
13 # GNU General Public License for more details.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
14 #
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
16 # along with this program. If not, see <https://www.gnu.org/licenses/>.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
17
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
18 # Originally written by Paul Eggert. The canonical version of this
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
19 # script is maintained as top/bootstrap-funclib.sh in gnulib. However,
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
20 # to be useful to your package, you should place a copy of it under
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
21 # version control in the top-level directory of your package. The
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
22 # intent is that all customization can be done with a bootstrap.conf
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
23 # file also maintained in your version control; gnulib comes with a
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
24 # template build-aux/bootstrap.conf to get you started.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
25
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
26 scriptversion=2022-07-24.15; # UTC
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
27
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
28 nl='
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
29 '
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
30
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
31 # Ensure file names are sorted consistently across platforms.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
32 LC_ALL=C
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
33 export LC_ALL
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
34
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
35 # Honor $PERL, but work even if there is none.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
36 PERL="${PERL-perl}"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
37
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
38 default_gnulib_url=https://git.savannah.gnu.org/git/gnulib.git
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
39
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
40 # Copyright year, for the --version output.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
41 copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'`
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
42 copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
43 License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
44 This is free software: you are free to change and redistribute it.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
45 There is NO WARRANTY, to the extent permitted by law."
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
46
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
47 # warnf_ FORMAT-STRING ARG1...
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
48 warnf_ ()
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
49 {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
50 warnf_format_=$1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
51 shift
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
52 nl='
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
53 '
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
54 case $* in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
55 *$nl*) me_=$(printf "$me"|tr "$nl|" '??')
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
56 printf "$warnf_format_" "$@" | sed "s|^|$me_: |" ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
57 *) printf "$me: $warnf_format_" "$@" ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
58 esac >&2
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
59 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
60
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
61 # warn_ WORD1...
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
62 warn_ ()
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
63 {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
64 # If IFS does not start with ' ', set it and emit the warning in a subshell.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
65 case $IFS in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
66 ' '*) warnf_ '%s\n' "$*";;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
67 *) (IFS=' '; warn_ "$@");;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
68 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
69 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
70
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
71 # die WORD1...
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
72 die() { warn_ "$@"; exit 1; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
73
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
74 # ------------------------------ Configuration. ------------------------------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
75
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
76 # Directory that contains package-specific gnulib modules and/or overrides.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
77 local_gl_dir=gl
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
78
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
79 # Name of the Makefile.am
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
80 # XXX Not used.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
81 gnulib_mk=gnulib.mk
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
82
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
83 # List of gnulib modules needed.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
84 gnulib_modules=
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
85
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
86 # Any gnulib files needed that are not in modules.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
87 gnulib_files=
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
88
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
89 # A function to be called for each unrecognized option. Returns 0 if
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
90 # the option in $1 has been processed by the function. Returns 1 if
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
91 # the option has not been processed by the function. Override it via
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
92 # your own definition in bootstrap.conf
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
93 bootstrap_option_hook() { return 1; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
94
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
95 # A function to be called in order to print the --help information
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
96 # corresponding to user-defined command-line options.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
97 bootstrap_print_option_usage_hook() { :; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
98
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
99 # A function to be called at the end of autopull.sh.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
100 # Override it via your own definition in bootstrap.conf.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
101 bootstrap_post_pull_hook() { :; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
102
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
103 # A function to be called right after gnulib-tool is run.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
104 # Override it via your own definition in bootstrap.conf.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
105 bootstrap_post_import_hook() { :; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
106
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
107 # A function to be called after everything else in this script.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
108 # Override it via your own definition in bootstrap.conf.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
109 bootstrap_epilogue() { :; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
110
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
111 # The command to download all .po files for a specified domain into a
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
112 # specified directory. Fill in the first %s with the destination
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
113 # directory and the second with the domain name.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
114 po_download_command_format=\
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
115 "wget --mirror --level=1 -nd -nv -A.po -P '%s' \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
116 https://translationproject.org/latest/%s/"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
117
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
118 # Prefer a non-empty tarname (4th argument of AC_INIT if given), else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
119 # fall back to the package name (1st argument with munging).
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
120 extract_package_name='
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
121 /^AC_INIT(\[*/{
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
122 s///
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
123 /^[^,]*,[^,]*,[^,]*,[ []*\([^][ ,)]\)/{
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
124 s//\1/
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
125 s/[],)].*//
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
126 p
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
127 q
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
128 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
129 s/[],)].*//
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
130 s/^GNU //
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
131 y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
132 s/[^abcdefghijklmnopqrstuvwxyz0123456789_]/-/g
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
133 p
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
134 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
135 '
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
136 package=$(${AUTOCONF:-autoconf} --trace AC_INIT:\$4 configure.ac 2>/dev/null)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
137 if test -z "$package"; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
138 package=$(sed -n "$extract_package_name" configure.ac) \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
139 || die 'cannot find package name in configure.ac'
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
140 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
141 gnulib_name=lib$package
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
142
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
143 build_aux=build-aux
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
144 source_base=lib
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
145 m4_base=m4
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
146 doc_base=doc
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
147 tests_base=tests
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
148 gnulib_extra_files="
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
149 build-aux/install-sh
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
150 build-aux/mdate-sh
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
151 build-aux/texinfo.tex
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
152 build-aux/depcomp
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
153 build-aux/config.guess
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
154 build-aux/config.sub
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
155 doc/INSTALL
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
156 "
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
157
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
158 # Additional gnulib-tool options to use. Use "\newline" to break lines.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
159 gnulib_tool_option_extras=
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
160
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
161 # Other locale categories that need message catalogs.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
162 EXTRA_LOCALE_CATEGORIES=
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
163
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
164 # Additional xgettext options to use. Use "\\\newline" to break lines.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
165 XGETTEXT_OPTIONS='\\\
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
166 --flag=_:1:pass-c-format\\\
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
167 --flag=N_:1:pass-c-format\\\
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
168 --flag=error:3:c-format --flag=error_at_line:5:c-format\\\
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
169 '
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
170
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
171 # Package bug report address and copyright holder for gettext files
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
172 COPYRIGHT_HOLDER='Free Software Foundation, Inc.'
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
173 MSGID_BUGS_ADDRESS=bug-$package@gnu.org
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
174
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
175 # Files we don't want to import.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
176 # XXX Not used.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
177 excluded_files=
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
178
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
179 # File that should exist in the top directory of a checked out hierarchy,
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
180 # but not in a distribution tarball.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
181 checkout_only_file=README-hacking
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
182
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
183 # Set this to '.cvsignore .gitignore' in bootstrap.conf if you want
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
184 # those files to be generated in directories like lib/, m4/, and po/.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
185 # Or set it to 'auto' to make this script select which to use based
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
186 # on which version control system (if any) is used in the source directory.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
187 vc_ignore=auto
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
188
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
189 # Set this to true in bootstrap.conf to enable --bootstrap-sync by
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
190 # default.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
191 bootstrap_sync=false
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
192
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
193 # Override the default configuration, if necessary.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
194 # Make sure that bootstrap.conf is sourced from the current directory
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
195 # if we were invoked as "sh bootstrap".
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
196 conffile=`dirname "$me"`/bootstrap.conf
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
197 test -r "$conffile" && . "$conffile"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
198
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
199 # ------------------------- Build-time prerequisites -------------------------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
200
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
201 check_exists() {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
202 if test "$1" = "--verbose"; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
203 ($2 --version </dev/null) >/dev/null 2>&1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
204 if test $? -ge 126; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
205 # If not found, run with diagnostics as one may be
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
206 # presented with env variables to set to find the right version
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
207 ($2 --version </dev/null)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
208 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
209 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
210 ($1 --version </dev/null) >/dev/null 2>&1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
211 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
212
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
213 test $? -lt 126
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
214 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
215
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
216 # Note this deviates from the version comparison in automake
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
217 # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
218 # but this should suffice as we won't be specifying old
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
219 # version formats or redundant trailing .0 in bootstrap.conf.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
220 # If we did want full compatibility then we should probably
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
221 # use m4_version_compare from autoconf.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
222 sort_ver() { # sort -V is not generally available
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
223 ver1="$1"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
224 ver2="$2"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
225
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
226 # split on '.' and compare each component
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
227 i=1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
228 while : ; do
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
229 p1=$(echo "$ver1" | cut -d. -f$i)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
230 p2=$(echo "$ver2" | cut -d. -f$i)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
231 if [ ! "$p1" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
232 echo "$1 $2"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
233 break
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
234 elif [ ! "$p2" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
235 echo "$2 $1"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
236 break
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
237 elif [ ! "$p1" = "$p2" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
238 if [ "$p1" -gt "$p2" ] 2>/dev/null; then # numeric comparison
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
239 echo "$2 $1"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
240 elif [ "$p2" -gt "$p1" ] 2>/dev/null; then # numeric comparison
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
241 echo "$1 $2"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
242 else # numeric, then lexicographic comparison
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
243 lp=$(printf "%s\n%s\n" "$p1" "$p2" | LANG=C sort -n | tail -n1)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
244 if [ "$lp" = "$p2" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
245 echo "$1 $2"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
246 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
247 echo "$2 $1"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
248 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
249 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
250 break
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
251 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
252 i=$(($i+1))
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
253 done
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
254 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
255
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
256 get_version_sed='
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
257 # Move version to start of line.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
258 s/.*[v ]\([0-9]\)/\1/
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
259
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
260 # Skip lines that do not start with version.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
261 /^[0-9]/!d
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
262
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
263 # Remove characters after the version.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
264 s/[^.a-z0-9-].*//
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
265
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
266 # The first component must be digits only.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
267 s/^\([0-9]*\)[a-z-].*/\1/
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
268
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
269 #the following essentially does s/5.005/5.5/
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
270 s/\.0*\([1-9]\)/.\1/g
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
271 p
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
272 q'
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
273
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
274 get_version() {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
275 app=$1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
276
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
277 $app --version >/dev/null 2>&1 || { $app --version; return 1; }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
278
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
279 $app --version 2>&1 | sed -n "$get_version_sed"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
280 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
281
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
282 check_versions() {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
283 ret=0
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
284
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
285 while read app req_ver; do
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
286 # We only need libtoolize from the libtool package.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
287 if test "$app" = libtool; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
288 app=libtoolize
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
289 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
290 # Exempt git if git is not needed.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
291 if test "$app" = git; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
292 $check_git || continue
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
293 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
294 # Honor $APP variables ($TAR, $AUTOCONF, etc.)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
295 appvar=$(echo $app | LC_ALL=C tr '[a-z]-' '[A-Z]_')
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
296 test "$appvar" = TAR && appvar=AMTAR
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
297 case $appvar in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
298 GZIP) ;; # Do not use $GZIP: it contains gzip options.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
299 PERL::*) ;; # Keep perl modules as-is
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
300 *) eval "app=\${$appvar-$app}" ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
301 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
302
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
303 # Handle the still-experimental Automake-NG programs specially.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
304 # They remain named as the mainstream Automake programs ("automake",
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
305 # and "aclocal") to avoid gratuitous incompatibilities with
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
306 # pre-existing usages (by, say, autoreconf, or custom autogen.sh
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
307 # scripts), but correctly identify themselves (as being part of
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
308 # "GNU automake-ng") when asked their version.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
309 case $app in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
310 automake-ng|aclocal-ng)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
311 app=${app%-ng}
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
312 ($app --version | grep '(GNU automake-ng)') >/dev/null 2>&1 || {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
313 warn_ "Error: '$app' not found or not from Automake-NG"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
314 ret=1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
315 continue
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
316 } ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
317 # Another check is for perl modules. These can be written as
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
318 # e.g. perl::XML::XPath in case of XML::XPath module, etc.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
319 perl::*)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
320 # Extract module name
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
321 app="${app#perl::}"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
322 if ! $PERL -m"$app" -e 'exit 0' >/dev/null 2>&1; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
323 warn_ "Error: perl module '$app' not found"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
324 ret=1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
325 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
326 continue
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
327 ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
328 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
329 if [ "$req_ver" = "-" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
330 # Merely require app to exist; not all prereq apps are well-behaved
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
331 # so we have to rely on $? rather than get_version.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
332 if ! check_exists --verbose $app; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
333 warn_ "Error: '$app' not found"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
334 ret=1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
335 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
336 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
337 # Require app to produce a new enough version string.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
338 inst_ver=$(get_version $app)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
339 if [ ! "$inst_ver" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
340 warn_ "Error: '$app' not found"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
341 ret=1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
342 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
343 latest_ver=$(sort_ver $req_ver $inst_ver | cut -d' ' -f2)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
344 if [ ! "$latest_ver" = "$inst_ver" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
345 warnf_ '%s\n' \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
346 "Error: '$app' version == $inst_ver is too old" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
347 " '$app' version >= $req_ver is required"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
348 ret=1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
349 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
350 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
351 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
352 done
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
353
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
354 return $ret
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
355 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
356
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
357 print_versions() {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
358 echo "Program Min_version"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
359 echo "----------------------"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
360 printf %s "$buildreq"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
361 echo "----------------------"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
362 # can't depend on column -t
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
363 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
364
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
365 # check_build_prerequisites check_git
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
366 check_build_prerequisites()
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
367 {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
368 check_git="$1"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
369
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
370 # gnulib-tool requires at least automake and autoconf.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
371 # If either is not listed, add it (with minimum version) as a prerequisite.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
372 case $buildreq in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
373 *automake*) ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
374 *) buildreq="automake 1.9
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
375 $buildreq" ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
376 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
377 case $buildreq in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
378 *autoconf*) ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
379 *) buildreq="autoconf 2.59
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
380 $buildreq" ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
381 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
382
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
383 # When we can deduce that gnulib-tool will require patch,
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
384 # and when patch is not already listed as a prerequisite, add it, too.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
385 if test -d "$local_gl_dir" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
386 && ! find "$local_gl_dir" -name '*.diff' -exec false {} +; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
387 case $buildreq in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
388 *patch*) ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
389 *) buildreq="patch -
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
390 $buildreq" ;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
391 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
392 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
393
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
394 if ! printf '%s' "$buildreq" | check_versions; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
395 echo >&2
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
396 if test -f README-prereq; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
397 die "See README-prereq for how to get the prerequisite programs"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
398 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
399 die "Please install the prerequisite programs"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
400 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
401 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
402
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
403 # Warn the user if autom4te appears to be broken; this causes known
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
404 # issues with at least gettext 0.18.3.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
405 probe=$(echo 'm4_quote([hi])' | autom4te -l M4sugar -t 'm4_quote:$%' -)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
406 if test "x$probe" != xhi; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
407 warn_ "WARNING: your autom4te wrapper eats stdin;"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
408 warn_ "if bootstrap fails, consider upgrading your autotools"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
409 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
410 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
411
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
412 # find_tool ENVVAR NAMES...
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
413 # -------------------------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
414 # Search for a required program. Use the value of ENVVAR, if set,
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
415 # otherwise find the first of the NAMES that can be run.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
416 # If found, set ENVVAR to the program name, die otherwise.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
417 #
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
418 # FIXME: code duplication, see also gnu-web-doc-update.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
419 find_tool ()
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
420 {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
421 find_tool_envvar=$1
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
422 shift
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
423 find_tool_names=$@
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
424 eval "find_tool_res=\$$find_tool_envvar"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
425 if test x"$find_tool_res" = x; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
426 for i; do
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
427 if check_exists $i; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
428 find_tool_res=$i
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
429 break
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
430 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
431 done
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
432 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
433 if test x"$find_tool_res" = x; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
434 warn_ "one of these is required: $find_tool_names;"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
435 die "alternatively set $find_tool_envvar to a compatible tool"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
436 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
437 eval "$find_tool_envvar=\$find_tool_res"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
438 eval "export $find_tool_envvar"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
439 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
440
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
441 # --------------------- Preparing GNULIB_SRCDIR for use. ---------------------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
442 # This is part of autopull.sh, but bootstrap needs it too, for self-upgrading.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
443
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
444 cleanup_gnulib() {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
445 status=$?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
446 # XXX It's a bad idea to erase the submodule directory if it contains local
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
447 # modifications.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
448 rm -fr "$gnulib_path"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
449 exit $status
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
450 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
451
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
452 git_modules_config () {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
453 test -f .gitmodules && git config --file .gitmodules "$@"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
454 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
455
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
456 prepare_GNULIB_SRCDIR ()
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
457 {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
458 if test -n "$GNULIB_SRCDIR"; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
459 # Use GNULIB_SRCDIR directly.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
460 # We already checked that $GNULIB_SRCDIR references a directory.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
461 # Verify that it contains a gnulib checkout.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
462 test -f "$GNULIB_SRCDIR/gnulib-tool" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
463 || die "Error: --gnulib-srcdir or \$GNULIB_SRCDIR is specified, but does not contain gnulib-tool"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
464 elif $use_git; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
465 gnulib_path=$(git_modules_config submodule.gnulib.path)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
466 test -z "$gnulib_path" && gnulib_path=gnulib
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
467
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
468 # Get gnulib files. Populate $gnulib_path, possibly updating a
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
469 # submodule, for use in the rest of the script.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
470
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
471 if test -n "$GNULIB_REFDIR" && test -d "$GNULIB_REFDIR"/.git \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
472 && git_modules_config submodule.gnulib.url >/dev/null; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
473 # Use GNULIB_REFDIR as a reference.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
474 echo "$0: getting gnulib files..."
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
475 if git submodule -h|grep -- --reference > /dev/null; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
476 # Prefer the one-liner available in git 1.6.4 or newer.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
477 git submodule update --init --reference "$GNULIB_REFDIR" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
478 "$gnulib_path" || exit $?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
479 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
480 # This fallback allows at least git 1.5.5.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
481 if test -f "$gnulib_path"/gnulib-tool; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
482 # Since file already exists, assume submodule init already complete.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
483 git submodule update -- "$gnulib_path" || exit $?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
484 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
485 # Older git can't clone into an empty directory.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
486 rmdir "$gnulib_path" 2>/dev/null
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
487 git clone --reference "$GNULIB_REFDIR" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
488 "$(git_modules_config submodule.gnulib.url)" "$gnulib_path" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
489 && git submodule init -- "$gnulib_path" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
490 && git submodule update -- "$gnulib_path" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
491 || exit $?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
492 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
493 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
494 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
495 # GNULIB_REFDIR is not set or not usable. Ignore it.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
496 if git_modules_config submodule.gnulib.url >/dev/null; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
497 echo "$0: getting gnulib files..."
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
498 git submodule init -- "$gnulib_path" || exit $?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
499 git submodule update -- "$gnulib_path" || exit $?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
500
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
501 elif [ ! -d "$gnulib_path" ]; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
502 echo "$0: getting gnulib files..."
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
503
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
504 trap cleanup_gnulib 1 2 13 15
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
505
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
506 shallow=
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
507 if test -z "$GNULIB_REVISION"; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
508 if git clone -h 2>&1 | grep -- --depth > /dev/null; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
509 shallow='--depth 2'
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
510 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
511 git clone $shallow ${GNULIB_URL:-$default_gnulib_url} "$gnulib_path" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
512 || cleanup_gnulib
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
513 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
514 if git fetch -h 2>&1 | grep -- --depth > /dev/null; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
515 shallow='--depth 2'
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
516 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
517 mkdir -p "$gnulib_path"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
518 # Only want a shallow checkout of $GNULIB_REVISION, but git does not
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
519 # support cloning by commit hash. So attempt a shallow fetch by commit
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
520 # hash to minimize the amount of data downloaded and changes needed to
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
521 # be processed, which can drastically reduce download and processing
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
522 # time for checkout. If the fetch by commit fails, a shallow fetch can
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
523 # not be performed because we do not know what the depth of the commit
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
524 # is without fetching all commits. So fallback to fetching all commits.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
525 git -C "$gnulib_path" init
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
526 git -C "$gnulib_path" remote add origin \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
527 ${GNULIB_URL:-$default_gnulib_url}
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
528 git -C "$gnulib_path" fetch $shallow origin "$GNULIB_REVISION" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
529 || git -C "$gnulib_path" fetch origin \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
530 || cleanup_gnulib
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
531 git -C "$gnulib_path" reset --hard FETCH_HEAD
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
532 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
533
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
534 trap - 1 2 13 15
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
535
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
536 elif test -n "$GNULIB_REVISION" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
537 && ! git --git-dir="$gnulib_path"/.git cat-file \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
538 commit "$GNULIB_REVISION"; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
539 git --git-dir="$gnulib_path"/.git fetch
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
540 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
541 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
542 GNULIB_SRCDIR=$gnulib_path
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
543 # Verify that the submodule contains a gnulib checkout.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
544 test -f "$gnulib_path/gnulib-tool" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
545 || die "Error: $gnulib_path is supposed to contain a gnulib checkout, but does not contain gnulib-tool"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
546 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
547
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
548 # XXX Should this be done if $use_git is false?
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
549 if test -d "$GNULIB_SRCDIR"/.git && test -n "$GNULIB_REVISION" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
550 && ! git_modules_config submodule.gnulib.url >/dev/null; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
551 if ! git --git-dir="$GNULIB_SRCDIR"/.git cat-file \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
552 commit "$GNULIB_REVISION"; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
553 git --git-dir="$GNULIB_SRCDIR"/.git fetch
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
554 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
555 (cd "$GNULIB_SRCDIR" && git checkout "$GNULIB_REVISION") || cleanup_gnulib
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
556 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
557
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
558 # $GNULIB_SRCDIR now points to the version of gnulib to use, and
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
559 # we no longer need to use git or $gnulib_path below here.
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
560 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
561
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
562 # -------- Upgrading bootstrap to the version found in GNULIB_SRCDIR. --------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
563
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
564 upgrade_bootstrap ()
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
565 {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
566 { cmp -s "$medir"/bootstrap "$GNULIB_SRCDIR/top/bootstrap" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
567 && cmp -s "$medir"/bootstrap-funclib.sh "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
568 && cmp -s "$medir"/autopull.sh "$GNULIB_SRCDIR/top/autopull.sh" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
569 && cmp -s "$medir"/autogen.sh "$GNULIB_SRCDIR/top/autogen.sh"; \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
570 } || {
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
571 echo "$0: updating bootstrap & companions and restarting..."
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
572 case $(sh -c 'echo "$1"' -- a) in
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
573 a) ignored=--;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
574 *) ignored=ignored;;
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
575 esac
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
576 exec sh -c \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
577 '{ if test -f "$1"; then cp "$1" "$3"; else cp "$2" "$3"; fi; } && { if test -f "$4"; then cp "$4" "$5"; else rm -f "$5"; fi; } && { if test -f "$6"; then cp "$6" "$7"; else rm -f "$7"; fi; } && { if test -f "$8"; then cp "$8" "$9"; else rm -f "$9"; fi; } && shift && shift && shift && shift && shift && shift && shift && shift && shift && exec "${CONFIG_SHELL-/bin/sh}" "$@"' \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
578 $ignored \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
579 "$GNULIB_SRCDIR/top/bootstrap" "$GNULIB_SRCDIR/build-aux/bootstrap" "$medir/bootstrap" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
580 "$GNULIB_SRCDIR/top/bootstrap-funclib.sh" "$medir/bootstrap-funclib.sh" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
581 "$GNULIB_SRCDIR/top/autopull.sh" "$medir/autopull.sh" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
582 "$GNULIB_SRCDIR/top/autogen.sh" "$medir/autogen.sh" \
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
583 "$0" "$@" --no-bootstrap-sync
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
584 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
585 }
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
586
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
587 # ----------------------------------------------------------------------------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
588
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
589 if test x"$gnulib_modules$gnulib_files$gnulib_extra_files" = x; then
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
590 use_gnulib=false
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
591 else
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
592 use_gnulib=true
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
593 fi
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
594
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
595 # ----------------------------------------------------------------------------
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
596
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
597 # Local Variables:
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
598 # eval: (add-hook 'before-save-hook 'time-stamp)
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
599 # time-stamp-start: "scriptversion="
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
600 # time-stamp-format: "%:y-%02m-%02d.%02H"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
601 # time-stamp-time-zone: "UTC0"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
602 # time-stamp-end: "; # UTC"
e98fb9b4be86 maint: Update gnulib.
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
603 # End: