annotate gnulib-tool @ 17378:1d9362a18c34

Assume gnulib is checked out from Git, not CVS In fact, access to the gnulib repository through CVS has been disabled, or more precisely, got broken and was never restored; see: <http://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00008.html> Note that support for CVS is not removed completely and unthinkingly by this change: only support for CVS checkouts of gnulib itself is removed. For example, the 'bootstrap' script still cater to .cvsingore files and CVS directories, for the benefit of those poor gnulib clients still stuck with CVS. Ditto for the 'gnulib-tool' script itself. * gnulib-tool: Simplify accordingly. * posix-modules: Likewise. * MODULES.html.sh: Likewise. * doc/gnulib.texi: No longer mention the decommissioned CVS gnulib repository. * doc/gnulib-intro.texi: Likewise. * doc/gnulib-readme.texi: Likewise. * doc/gnulib-tool.texi: In the examples and explanations, refer to a sample '.gitignore' file rather than a sample '.cvsignore'. * NEWS: Update. * m4/extensions.m4: While at it, remove a comment mistakenly referring to "CVS Autoconf" rather than "git Autoconf". Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com> Acked-by: Paul Eggert <eggert@cs.ucla.edu>
author Stefano Lattarini <stefano.lattarini@gmail.com>
date Sat, 04 May 2013 10:30:14 +0200
parents c9d7491e3e78
children 9815ae1c3b4f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1 #! /bin/sh
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2 #
17249
e542fd46ad6f maint: update all copyright year number ranges
Eric Blake <eblake@redhat.com>
parents: 17065
diff changeset
3 # Copyright (C) 2002-2013 Free Software Foundation, Inc.
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4 #
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9284
diff changeset
5 # This program is free software: you can redistribute it and/or modify
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6 # it under the terms of the GNU General Public License as published by
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9284
diff changeset
7 # the Free Software Foundation; either version 3 of the License, or
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9284
diff changeset
8 # (at your option) any later version.
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 #
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
10 # This program is distributed in the hope that it will be useful,
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
13 # GNU General Public License for more details.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
14 #
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
15 # You should have received a copy of the GNU General Public License
9309
bbbbbf4cd1c5 Change copyright notice from GPLv2+ to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9284
diff changeset
16 # along with this program. If not, see <http://www.gnu.org/licenses/>.
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
17 #
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
18
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
19 # This program is meant for authors or maintainers which want to import
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
20 # modules from gnulib into their packages.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
21
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
22 progname=$0
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
23 package=gnulib
7322
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
24 nl='
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
25 '
9005
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
26 IFS=" "" $nl"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
27
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
28 # You can set AUTOCONFPATH to empty if autoconf 2.57 is already in your PATH.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
29 AUTOCONFPATH=
5250
46a747db97f2 Comment out private settings.
Bruno Haible <bruno@clisp.org>
parents: 5237
diff changeset
30 #case $USER in
46a747db97f2 Comment out private settings.
Bruno Haible <bruno@clisp.org>
parents: 5237
diff changeset
31 # bruno )
46a747db97f2 Comment out private settings.
Bruno Haible <bruno@clisp.org>
parents: 5237
diff changeset
32 # AUTOCONFBINDIR=/packages/gnu-inst-autoconf/2.57/bin
46a747db97f2 Comment out private settings.
Bruno Haible <bruno@clisp.org>
parents: 5237
diff changeset
33 # AUTOCONFPATH="eval env PATH=${AUTOCONFBINDIR}:\$PATH "
46a747db97f2 Comment out private settings.
Bruno Haible <bruno@clisp.org>
parents: 5237
diff changeset
34 # ;;
46a747db97f2 Comment out private settings.
Bruno Haible <bruno@clisp.org>
parents: 5237
diff changeset
35 #esac
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
36
6547
1a65fb7ddbbb Don't waste time in a recursive autoreconf.
Bruno Haible <bruno@clisp.org>
parents: 6546
diff changeset
37 # You can set AUTOMAKEPATH to empty if automake 1.9.x is already in your PATH.
1a65fb7ddbbb Don't waste time in a recursive autoreconf.
Bruno Haible <bruno@clisp.org>
parents: 6546
diff changeset
38 AUTOMAKEPATH=
1a65fb7ddbbb Don't waste time in a recursive autoreconf.
Bruno Haible <bruno@clisp.org>
parents: 6546
diff changeset
39
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
40 # You can set GETTEXTPATH to empty if autopoint 0.15 is already in your PATH.
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
41 GETTEXTPATH=
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
42
12978
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
43 # You can set LIBTOOLPATH to empty if libtoolize 2.x is already in your PATH.
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
44 LIBTOOLPATH=
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
45
6551
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
46 # If you didn't set AUTOCONFPATH and AUTOMAKEPATH, you can also set the
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
47 # variables AUTOCONF, AUTOHEADER, ACLOCAL, AUTOMAKE, AUTORECONF individually.
6551
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
48 if test -z "${AUTOCONF}" || test -n "${AUTOCONFPATH}"; then
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
49 AUTOCONF="${AUTOCONFPATH}autoconf"
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
50 fi
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
51 if test -z "${AUTOHEADER}" || test -n "${AUTOCONFPATH}"; then
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
52 AUTOHEADER="${AUTOCONFPATH}autoheader"
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
53 fi
6551
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
54 if test -z "${ACLOCAL}" || test -n "${AUTOMAKEPATH}"; then
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
55 ACLOCAL="${AUTOMAKEPATH}aclocal"
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
56 fi
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
57 if test -z "${AUTOMAKE}" || test -n "${AUTOMAKEPATH}"; then
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
58 AUTOMAKE="${AUTOMAKEPATH}automake"
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
59 fi
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
60 if test -z "${AUTORECONF}" || test -n "${AUTOCONFPATH}"; then
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
61 AUTORECONF="${AUTOCONFPATH}autoreconf"
d37637700b4e Make the AUTOCONF etc. commands overridable by the user.
Bruno Haible <bruno@clisp.org>
parents: 6550
diff changeset
62 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
63
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
64 # If you didn't set GETTEXTPATH, you can also set the variable AUTOPOINT.
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
65 if test -z "${AUTOPOINT}" || test -n "${GETTEXTPATH}"; then
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
66 AUTOPOINT="${GETTEXTPATH}autopoint"
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
67 fi
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
68
12978
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
69 # If you didn't set LIBTOOLPATH, you can also set the variable LIBTOOLIZE.
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
70 if test -z "${LIBTOOLIZE}" || test -n "${LIBTOOLPATH}"; then
12979
845824c37d6a gnulib-tool (LIBTOOLPATH): Fix cut'n'paste bug.
Simon Josefsson <simon@josefsson.org>
parents: 12978
diff changeset
71 LIBTOOLIZE="${LIBTOOLPATH}libtoolize"
12978
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
72 fi
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
73
11404
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
74 # You can set MAKE.
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
75 if test -z "${MAKE}"; then
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
76 MAKE=make
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
77 fi
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
78
11249
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
79 # When using GNU sed, turn off as many GNU extensions as possible,
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
80 # to minimize the risk of accidentally using non-portable features.
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
81 # However, do this only for gnulib-tool itself, not for the code that
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
82 # gnulib-tool generates, since we don't want "sed --posix" to leak
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
83 # into makefiles. And do it only for sed versions 4.2 or newer,
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
84 # because "sed --posix" is buggy in GNU sed 4.1.5, see
11231
30f41a946fb0 Don't use "sed --posix", since it is buggy.
Bruno Haible <bruno@clisp.org>
parents: 11094
diff changeset
85 # <http://lists.gnu.org/archive/html/bug-gnulib/2009-02/msg00225.html>.
11249
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
86 if (alias) > /dev/null 2>&1 \
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
87 && echo | sed --posix -e d >/dev/null 2>&1 \
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
88 && case `sed --version | sed -e 's/^[^0-9]*//' -e 1q` in \
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
89 [1-3]* | 4.[01]*) false;; \
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
90 *) true;; \
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
91 esac \
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
92 ; then
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
93 # Define sed as an alias.
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
94 # It is not always possible to use aliases. Aliases are guaranteed to work
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
95 # if the executing shell is bash and either it is invoked as /bin/sh or
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
96 # is a version >= 2.0, supporting shopt. This is the common case.
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
97 # Two other approaches (use of a variable $sed or of a function func_sed
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
98 # instead of an alias) require massive, fragile code changes.
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
99 # An other approach (use of function sed) requires `which sed` - but
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
100 # 'which' is hard to emulate, due to missing "test -x" on some platforms.
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
101 if test -n "$BASH_VERSION"; then
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
102 shopt -s expand_aliases >/dev/null 2>&1
9213
6c916785c03e Try harder to enable the alias for 'sed'.
Bruno Haible <bruno@clisp.org>
parents: 9189
diff changeset
103 fi
11249
0a95b8deac2e Re-enable the use of "sed --posix" with sed >= 4.2.
Bruno Haible <bruno@clisp.org>
parents: 11232
diff changeset
104 alias sed='sed --posix'
7737
19ff03763d73 Use "sed --posix" instead of "sed" when possible.
Bruno Haible <bruno@clisp.org>
parents: 7722
diff changeset
105 fi
19ff03763d73 Use "sed --posix" instead of "sed" when possible.
Bruno Haible <bruno@clisp.org>
parents: 7722
diff changeset
106
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
107 # sed_noop is a sed expression that does nothing.
10401
4881ac7042cf Oops, typo in comment.
Bruno Haible <bruno@clisp.org>
parents: 10400
diff changeset
108 # An empty expression does not work with the native 'sed' on AIX 6.1.
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
109 sed_noop='s,x,x,'
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
110
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
111 # sed_comments is true or false, depending whether 'sed' supports comments.
13562
f304978fb062 Fix gnulib-tool sed script de-commentation for AIX sed.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 13420
diff changeset
112 # AIX 5.3 sed barfs over indented comments.
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
113 if echo fo | sed -e 's/f/g/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
114 # s/o/u/
13562
f304978fb062 Fix gnulib-tool sed script de-commentation for AIX sed.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 13420
diff changeset
115 # indented comment
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
116 s/o/e/' 2>/dev/null | grep ge > /dev/null; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
117 sed_comments=true
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
118 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
119 sed_comments=false
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
120 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
121
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
122 # func_usage
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
123 # outputs to stdout the --help usage message.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
124 func_usage ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
125 {
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
126 echo "\
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
127 Usage: gnulib-tool --list
14385
ed68f818ecca gnulib-tool: remove use of bold display in help screen
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 14323
diff changeset
128 gnulib-tool --find filename
5344
c2f5677fc6ed Initialize supplied_libname. Tweak usage message.
Bruno Haible <bruno@clisp.org>
parents: 5343
diff changeset
129 gnulib-tool --import [module1 ... moduleN]
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
130 gnulib-tool --add-import [module1 ... moduleN]
14385
ed68f818ecca gnulib-tool: remove use of bold display in help screen
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 14323
diff changeset
131 gnulib-tool --remove-import [module1 ... moduleN]
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
132 gnulib-tool --update
7484
57fe575409ae --create-testdir without module names now means to use nearly all modules.
Bruno Haible <bruno@clisp.org>
parents: 7421
diff changeset
133 gnulib-tool --create-testdir --dir=directory [module1 ... moduleN]
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
134 gnulib-tool --create-megatestdir --dir=directory [module1 ... moduleN]
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
135 gnulib-tool --test --dir=directory module1 ... moduleN
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
136 gnulib-tool --megatest --dir=directory [module1 ... moduleN]
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
137 gnulib-tool --extract-description module
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
138 gnulib-tool --extract-comment module
10743
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
139 gnulib-tool --extract-status module
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
140 gnulib-tool --extract-notice module
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
141 gnulib-tool --extract-applicability module
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
142 gnulib-tool --extract-filelist module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
143 gnulib-tool --extract-dependencies module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
144 gnulib-tool --extract-autoconf-snippet module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
145 gnulib-tool --extract-automake-snippet module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
146 gnulib-tool --extract-include-directive module
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
147 gnulib-tool --extract-link-directive module
5251
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
148 gnulib-tool --extract-license module
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
149 gnulib-tool --extract-maintainer module
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
150 gnulib-tool --extract-tests-module module
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
151 gnulib-tool --copy-file file [destination]
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
152
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
153 Operation modes:
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
154
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
155 --list print the available module names
14385
ed68f818ecca gnulib-tool: remove use of bold display in help screen
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 14323
diff changeset
156 --find find the modules which contain the specified file
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
157 --import import the given modules into the current package
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
158 --add-import augment the list of imports from gnulib into the
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
159 current package, by adding the given modules;
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
160 if no modules are specified, update the current
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
161 package from the current gnulib
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
162 --remove-import reduce the list of imports from gnulib into the
14385
ed68f818ecca gnulib-tool: remove use of bold display in help screen
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 14323
diff changeset
163 current package, by removing the given modules
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
164 --update update the current package, restore files omitted
13636
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
165 from version control
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
166 --create-testdir create a scratch package with the given modules
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
167 --create-megatestdir create a mega scratch package with the given modules
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
168 one by one and all together
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
169 --test test the combination of the given modules
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
170 (recommended to use CC=\"gcc -Wall\" here)
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
171 --megatest test the given modules one by one and all together
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
172 (recommended to use CC=\"gcc -Wall\" here)
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
173 --extract-description extract the description
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
174 --extract-comment extract the comment
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
175 --extract-status extract the status (obsolete etc.)
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
176 --extract-notice extract the notice or banner
13069
5a91813baecc Addendum to 2010-02-07 commit.
Bruno Haible <bruno@clisp.org>
parents: 13067
diff changeset
177 --extract-applicability extract the applicability
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
178 --extract-filelist extract the list of files
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
179 --extract-dependencies extract the dependencies
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
180 --extract-autoconf-snippet extract the snippet for configure.ac
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
181 --extract-automake-snippet extract the snippet for library makefile
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
182 --extract-include-directive extract the #include directive
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
183 --extract-link-directive extract the linker directive
5251
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
184 --extract-license report the license terms of the source files
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
185 under lib/
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
186 --extract-maintainer report the maintainer(s) inside gnulib
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
187 --extract-tests-module report the unit test module, if it exists
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
188 --copy-file copy a file that is not part of any module
16377
c06c4d94d8a4 gnulib-tool: Improve usage message.
Bruno Haible <bruno@clisp.org>
parents: 16370
diff changeset
189 --help Show this help text.
c06c4d94d8a4 gnulib-tool: Improve usage message.
Bruno Haible <bruno@clisp.org>
parents: 16370
diff changeset
190 --version Show version and authorship information.
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
191
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
192 General options:
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
193
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
194 --dir=DIRECTORY Specify the target directory.
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
195 For --import, this specifies where your
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
196 configure.ac can be found. Defaults to current
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
197 directory.
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
198 --local-dir=DIRECTORY Specify a local override directory where to look
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
199 up files before looking in gnulib's directory.
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
200 --cache-modules Enable module caching optimization.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
201 --no-cache-modules Disable module caching optimization.
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
202 --verbose Increase verbosity. May be repeated.
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
203 --quiet Decrease verbosity. May be repeated.
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
204
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
205 Options for --import, --add/remove-import, --update:
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
206
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
207 --dry-run Only print what would have been done.
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
208
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
209 Options for --import, --add/remove-import:
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
210
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
211 --with-tests Include unit tests for the included modules.
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
212
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
213 Options for --create-[mega]testdir, --[mega]test:
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
214
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
215 --without-tests Don't include unit tests for the included modules.
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
216
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
217 Options for --import, --add/remove-import,
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
218 --create-[mega]testdir, --[mega]test:
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
219
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
220 --with-obsolete Include obsolete modules when they occur among the
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
221 dependencies. By default, dependencies to obsolete
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
222 modules are ignored.
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
223 --with-c++-tests Include even unit tests for C++ interoperability.
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
224 --without-c++-tests Exclude unit tests for C++ interoperability.
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
225 --with-longrunning-tests
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
226 Include even unit tests that are long-runners.
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
227 --without-longrunning-tests
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
228 Exclude unit tests that are long-runners.
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
229 --with-privileged-tests
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
230 Include even unit tests that require root
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
231 privileges.
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
232 --without-privileged-tests
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
233 Exclude unit tests that require root privileges.
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
234 --with-unportable-tests
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
235 Include even unit tests that fail on some platforms.
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
236 --without-unportable-tests
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
237 Exclude unit tests that fail on some platforms.
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
238 --with-all-tests Include all kinds of problematic unit tests.
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
239 --avoid=MODULE Avoid including the given MODULE. Useful if you
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
240 have code that provides equivalent functionality.
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
241 This option can be repeated.
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
242 --conditional-dependencies
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
243 Support conditional dependencies (may save configure
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
244 time and object code).
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
245 --no-conditional-dependencies
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
246 Don't use conditional dependencies.
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
247 --libtool Use libtool rules.
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
248 --no-libtool Don't use libtool rules.
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
249
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
250 Options for --import, --add/remove-import:
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
251
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
252 --lib=LIBRARY Specify the library name. Defaults to 'libgnu'.
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
253 --source-base=DIRECTORY
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
254 Directory relative to --dir where source code is
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
255 placed (default \"lib\").
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
256 --m4-base=DIRECTORY Directory relative to --dir where *.m4 macros are
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
257 placed (default \"m4\").
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
258 --po-base=DIRECTORY Directory relative to --dir where *.po files are
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
259 placed (default \"po\").
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
260 --doc-base=DIRECTORY Directory relative to --dir where doc files are
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
261 placed (default \"doc\").
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
262 --tests-base=DIRECTORY
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
263 Directory relative to --dir where unit tests are
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
264 placed (default \"tests\").
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
265 --aux-dir=DIRECTORY Directory relative to --dir where auxiliary build
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
266 tools are placed (default comes from configure.ac).
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
267 --lgpl[=2|=3] Abort if modules aren't available under the LGPL.
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
268 Also modify license template from GPL to LGPL.
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
269 The version number of the LGPL can be specified;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
270 the default is currently LGPLv3.
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
271 --makefile-name=NAME Name of makefile in automake syntax in the
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
272 source-base and tests-base directories
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
273 (default \"Makefile.am\").
7068
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
274 --macro-prefix=PREFIX Specify the prefix of the macros 'gl_EARLY' and
ec1cfcfd352a Revert the --help output reordering.
Bruno Haible <bruno@clisp.org>
parents: 7067
diff changeset
275 'gl_INIT'. Default is 'gl'.
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
276 --po-domain=NAME Specify the prefix of the i18n domain. Usually use
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
277 the package name. A suffix '-gnulib' is appended.
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
278 --witness-c-macro=NAME Specify the C macro that is defined when the
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
279 sources in this directory are compiled or used.
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
280 --vc-files Update version control related files.
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
281 --no-vc-files Don't update version control related files
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
282 (.gitignore and/or .cvsignore).
7069
0fb5ef99e00f Split the --help output into several paragraphs.
Bruno Haible <bruno@clisp.org>
parents: 7068
diff changeset
283
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
284 Options for --create-[mega]testdir, --[mega]test:
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
285
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
286 --single-configure Generate a single configure file, not a separate
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
287 configure file for the tests directory.
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
288
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
289 Options for --import, --add/remove-import, --update,
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
290 --create-[mega]testdir, --[mega]test:
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
291
6966
42730fffa002 help message tweaks
Karl Berry <karl@freefriends.org>
parents: 6955
diff changeset
292 -s, --symbolic, --symlink Make symbolic links instead of copying files.
7643
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
293 --local-symlink Make symbolic links instead of copying files, only
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
294 for files from the local override directory.
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
295
13705
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
296 Options for --import, --add/remove-import, --update:
ed2bd36db406 gnulib-tool: Fix --help output.
Bruno Haible <bruno@clisp.org>
parents: 13660
diff changeset
297
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
298 -S, --more-symlinks Make symbolic links instead of copying files, and
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
299 don't replace copyright notices.
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
300
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
301 Report bugs to <bug-gnulib@gnu.org>."
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
302 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
303
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
304 # func_version
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
305 # outputs to stdout the --version message.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
306 func_version ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
307 {
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
308 func_gnulib_dir
9805
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
309 if test -d "$gnulib_dir"/.git \
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
310 && (git --version) >/dev/null 2>/dev/null \
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
311 && (date --version) >/dev/null 2>/dev/null; then
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
312 # gnulib checked out from git.
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
313 sed_extract_first_date='/^Date/{
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
314 s/^Date:[ ]*//p
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
315 q
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
316 }'
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
317 date=`cd "$gnulib_dir" && git log ChangeLog | sed -n -e "$sed_extract_first_date"`
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
318 # Turn "Fri Mar 21 07:16:51 2008 -0600" into "Mar 21 2008 07:16:51 -0600".
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
319 sed_year_before_time='s/^[^ ]* \([^ ]*\) \([0-9]*\) \([0-9:]*\) \([0-9]*\) /\1 \2 \4 \3 /'
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
320 date=`echo "$date" | sed -e "$sed_year_before_time"`
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
321 # Use GNU date to compute the time in GMT.
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
322 date=`date -d "$date" -u +"%Y-%m-%d %H:%M:%S"`
10495
78d1bdfaa67e Make "gnulib-tool --version" work from any directory.
Bruno Haible <bruno@clisp.org>
parents: 10479
diff changeset
323 version=' '`cd "$gnulib_dir" && ./build-aux/git-version-gen /dev/null | sed -e 's/-dirty/-modified/'`
9805
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
324 else
17378
1d9362a18c34 Assume gnulib is checked out from Git, not CVS
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 17269
diff changeset
325 # gnulib copy without versioning information.
1d9362a18c34 Assume gnulib is checked out from Git, not CVS
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 17269
diff changeset
326 date=`sed -e 's/ .*//;q' "$gnulib_dir"/ChangeLog`
9805
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
327 version=
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
328 fi
12417
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
329 year=`"$gnulib_dir"/build-aux/mdate-sh "$self_abspathname" | sed -e 's,^.* ,,'`
7347
d86464f614f7 * gnulib-tool (func_version): Create output all at once. This
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7335
diff changeset
330 echo "\
9805
d3af04de9f0b Tweak "gnulib --version" output.
Bruno Haible <bruno@clisp.org>
parents: 9804
diff changeset
331 gnulib-tool (GNU $package $date)$version
7347
d86464f614f7 * gnulib-tool (func_version): Create output all at once. This
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7335
diff changeset
332 Copyright (C) $year Free Software Foundation, Inc.
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
333 License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
334 This is free software: you are free to change and redistribute it.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
335 There is NO WARRANTY, to the extent permitted by law.
16802
b21cba808f11 gnulib-tool: Fix list of authors.
Bruno Haible <bruno@clisp.org>
parents: 16714
diff changeset
336 "
b21cba808f11 gnulib-tool: Fix list of authors.
Bruno Haible <bruno@clisp.org>
parents: 16714
diff changeset
337 printf "Written by %s, %s, and %s.\n" "Bruno Haible" "Paul Eggert" "Simon Josefsson"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
338 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
339
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
340 # func_emit_copyright_notice
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
341 # outputs to stdout a header for a generated file.
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
342 func_emit_copyright_notice ()
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
343 {
12417
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
344 sed -n -e '/Copyright/ {
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
345 p
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
346 q
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
347 }' < "$self_abspathname"
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
348 echo "#"
15790
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
349 echo "# This file is free software; you can redistribute it and/or modify"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
350 echo "# it under the terms of the GNU General Public License as published by"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
351 echo "# the Free Software Foundation; either version 3 of the License, or"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
352 echo "# (at your option) any later version."
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
353 echo "#"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
354 echo "# This file is distributed in the hope that it will be useful,"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
355 echo "# but WITHOUT ANY WARRANTY; without even the implied warranty of"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
356 echo "# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
357 echo "# GNU General Public License for more details."
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
358 echo "#"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
359 echo "# You should have received a copy of the GNU General Public License"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
360 echo "# along with this file. If not, see <http://www.gnu.org/licenses/>."
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
361 echo "#"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
362 echo "# As a special exception to the GNU General Public License,"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
363 echo "# this file may be distributed as part of a program that"
ccb791a4a8a7 gnulib: use more-standard license notice wording
Paul Eggert <eggert@cs.ucla.edu>
parents: 15482
diff changeset
364 echo "# contains a configuration script generated by Autoconf, under"
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
365 echo "# the same distribution terms as the rest of that program."
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
366 echo "#"
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
367 echo "# Generated by gnulib-tool."
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
368 }
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
369
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
370 # func_exit STATUS
10453
483ea2002278 Update comment.
Bruno Haible <bruno@clisp.org>
parents: 10401
diff changeset
371 # exits with a given status.
483ea2002278 Update comment.
Bruno Haible <bruno@clisp.org>
parents: 10401
diff changeset
372 # This function needs to be used, rather than 'exit', when a 'trap' handler is
483ea2002278 Update comment.
Bruno Haible <bruno@clisp.org>
parents: 10401
diff changeset
373 # in effect that refers to $?.
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
374 func_exit ()
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
375 {
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
376 (exit $1); exit $1
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
377 }
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
378
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
379 # func_gnulib_dir
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
380 # locates the directory where the gnulib repository lives
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
381 # Input:
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
382 # - progname name of this program
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
383 # Sets variables
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
384 # - self_abspathname absolute pathname of gnulib-tool
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
385 # - gnulib_dir absolute pathname of gnulib repository
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
386 func_gnulib_dir ()
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
387 {
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
388 case "$progname" in
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
389 /*) self_abspathname="$progname" ;;
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
390 */*) self_abspathname=`pwd`/"$progname" ;;
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
391 *)
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
392 # Look in $PATH.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
393 # Iterate through the elements of $PATH.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
394 # We use IFS=: instead of
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
395 # for d in `echo ":$PATH:" | sed -e 's/:::*/:.:/g' | sed -e 's/:/ /g'`
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
396 # because the latter does not work when some PATH element contains spaces.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
397 # We use a canonicalized $pathx instead of $PATH, because empty PATH
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
398 # elements are by definition equivalent to '.', however field splitting
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
399 # according to IFS=: loses empty fields in many shells:
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
400 # - /bin/sh on OSF/1 and Solaris loses all empty fields (at the
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
401 # beginning, at the end, and in the middle),
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
402 # - /bin/sh on IRIX and /bin/ksh on IRIX and OSF/1 lose empty fields
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
403 # at the beginning and at the end,
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
404 # - GNU bash, /bin/sh on AIX and HP-UX, and /bin/ksh on AIX, HP-UX,
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
405 # Solaris lose empty fields at the end.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
406 # The 'case' statement is an optimization, to avoid evaluating the
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
407 # explicit canonicalization command when $PATH contains no empty fields.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
408 self_abspathname=
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
409 if test "${PATH_SEPARATOR+set}" != set; then
13625
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
410 # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
411 # contains only /bin. Note that ksh looks also at the FPATH variable,
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
412 # so we have to set that as well for the test.
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
413 PATH_SEPARATOR=:
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
414 (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
415 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
416 || PATH_SEPARATOR=';'
c2d737898a4e Set PATH_SEPARATOR the same way autoconf does.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 13562
diff changeset
417 }
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
418 fi
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
419 if test "$PATH_SEPARATOR" = ";"; then
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
420 # On Windows, programs are searched in "." before $PATH.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
421 pathx=".;$PATH"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
422 else
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
423 # On Unix, we have to convert empty PATH elements to ".".
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
424 pathx="$PATH"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
425 case :$PATH: in
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
426 *::*)
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
427 pathx=`echo ":$PATH:" | sed -e 's/:::*/:.:/g' -e 's/^://' -e 's/:\$//'`
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
428 ;;
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
429 esac
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
430 fi
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
431 save_IFS="$IFS"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
432 IFS="$PATH_SEPARATOR"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
433 for d in $pathx; do
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
434 IFS="$save_IFS"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
435 test -z "$d" && d=.
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
436 if test -x "$d/$progname" && test ! -d "$d/$progname"; then
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
437 self_abspathname="$d/$progname"
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
438 break
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
439 fi
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
440 done
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
441 IFS="$save_IFS"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
442 if test -z "$self_abspathname"; then
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
443 func_fatal_error "could not locate the gnulib-tool program - how did you invoke it?"
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
444 fi
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
445 ;;
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
446 esac
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
447 while test -h "$self_abspathname"; do
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
448 # Resolve symbolic link.
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
449 linkval=`func_readlink "$self_abspathname"`
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
450 test -n "$linkval" || break
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
451 case "$linkval" in
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
452 /* ) self_abspathname="$linkval" ;;
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
453 * ) self_abspathname=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'`/"$linkval" ;;
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
454 esac
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
455 done
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
456 gnulib_dir=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'`
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
457 }
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
458
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
459 # func_tmpdir
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
460 # creates a temporary directory.
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
461 # Input:
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
462 # - progname name of this program
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
463 # Sets variable
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
464 # - tmp pathname of freshly created temporary directory
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
465 func_tmpdir ()
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
466 {
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
467 # Use the environment variable TMPDIR, falling back to /tmp. This allows
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
468 # users to specify a different temporary directory, for example, if their
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
469 # /tmp is filled up or too small.
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
470 : ${TMPDIR=/tmp}
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
471 {
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
472 # Use the mktemp program if available. If not available, hide the error
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
473 # message.
6581
bc61a0c9a750 * gnulib-tool, build-aux/csharpcomp.sh.in: Do not pass `-q' to mktemp.
Paul Eggert <eggert@cs.ucla.edu>
parents: 6570
diff changeset
474 tmp=`(umask 077 && mktemp -d "$TMPDIR/glXXXXXX") 2>/dev/null` &&
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
475 test -n "$tmp" && test -d "$tmp"
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
476 } ||
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
477 {
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
478 # Use a simple mkdir command. It is guaranteed to fail if the directory
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
479 # already exists. $RANDOM is bash specific and expands to empty in shells
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
480 # other than bash, ksh and zsh. Its use does not increase security;
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
481 # rather, it minimizes the probability of failure in a very cluttered /tmp
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
482 # directory.
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
483 tmp=$TMPDIR/gl$$-$RANDOM
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
484 (umask 077 && mkdir "$tmp")
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
485 } ||
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
486 {
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
487 echo "$progname: cannot create a temporary directory in $TMPDIR" >&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
488 func_exit 1
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
489 }
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
490 }
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
491
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
492 # func_append var value
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
493 # appends the given value to the shell variable var.
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
494 if ( foo=bar; foo+=baz && test "$foo" = barbaz ) >/dev/null 2>&1; then
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
495 # Use bash's += operator. It reduces complexity of appending repeatedly to
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
496 # a single variable from O(n^2) to O(n).
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
497 func_append ()
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
498 {
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
499 eval "$1+=\"\$2\""
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
500 }
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
501 fast_func_append=true
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
502 else
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
503 func_append ()
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
504 {
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
505 eval "$1=\"\$$1\$2\""
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
506 }
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
507 fast_func_append=false
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
508 fi
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
509
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
510 # func_remove_prefix var prefix
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
511 # removes the given prefix from the value of the shell variable var.
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
512 # var should be the name of a shell variable.
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
513 # Its value should not contain a newline and not start or end with whitespace.
11037
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
514 # prefix should not contain the characters "$`\{}[]^|.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
515 if ( foo=bar; eval 'test "${foo#b}" = ar' ) >/dev/null 2>&1; then
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
516 func_remove_prefix ()
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
517 {
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
518 eval "$1=\${$1#\$2}"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
519 }
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
520 fast_func_remove_prefix=true
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
521 else
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
522 func_remove_prefix ()
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
523 {
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
524 eval "value=\"\$$1\""
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
525 prefix="$2"
11037
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
526 case "$prefix" in
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
527 *.*)
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
528 sed_escape_dots='s/\([.]\)/\\\1/g'
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
529 prefix=`echo "$prefix" | sed -e "$sed_escape_dots"`
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
530 ;;
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
531 esac
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
532 value=`echo "$value" | sed -e "s|^${prefix}||"`
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
533 eval "$1=\"\$value\""
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
534 }
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
535 fast_func_remove_prefix=false
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
536 fi
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
537
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
538 # func_remove_suffix var suffix
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
539 # removes the given suffix from the value of the shell variable var.
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
540 # var should be the name of a shell variable.
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
541 # Its value should not contain a newline and not start or end with whitespace.
11037
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
542 # suffix should not contain the characters "$`\{}[]^|.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
543 if ( foo=bar; eval 'test "${foo%r}" = ba' ) >/dev/null 2>&1; then
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
544 func_remove_suffix ()
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
545 {
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
546 eval "$1=\${$1%\$2}"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
547 }
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
548 fast_func_remove_suffix=true
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
549 else
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
550 func_remove_suffix ()
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
551 {
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
552 eval "value=\"\$$1\""
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
553 suffix="$2"
11037
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
554 case "$suffix" in
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
555 *.*)
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
556 sed_escape_dots='s/\([.]\)/\\\1/g'
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
557 suffix=`echo "$suffix" | sed -e "$sed_escape_dots"`
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
558 ;;
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
559 esac
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
560 value=`echo "$value" | sed -e "s|${suffix}\$||"`
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
561 eval "$1=\"\$value\""
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
562 }
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
563 fast_func_remove_suffix=false
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
564 fi
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
565
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
566 # func_fatal_error message
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
567 # outputs to stderr a fatal error message, and terminates the program.
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
568 # Input:
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
569 # - progname name of this program
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
570 func_fatal_error ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
571 {
10501
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
572 echo "$progname: *** $1" 1>&2
4e04aaeb17f9 Fix previous patch, and tweak references to $0.
Eric Blake <ebb9@byu.net>
parents: 10495
diff changeset
573 echo "$progname: *** Stop." 1>&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
574 func_exit 1
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
575 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
576
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
577 # func_warning message
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
578 # Outputs to stderr a warning message,
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
579 func_warning ()
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
580 {
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
581 echo "gnulib-tool: warning: $1" 1>&2
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
582 }
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
583
6248
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
584 # func_readlink SYMLINK
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
585 # outputs the target of the given symlink.
16925
eb8ffcf6fd24 Do use readlink if available
Bernd Jendrissek <bernd.jendrissek@gmail.com>
parents: 16808
diff changeset
586 if (type readlink) > /dev/null 2>&1; then
6248
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
587 func_readlink ()
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
588 {
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
589 # Use the readlink program from GNU coreutils.
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
590 readlink "$1"
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
591 }
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
592 else
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
593 func_readlink ()
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
594 {
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
595 # Use two sed invocations. A single sed -n -e 's,^.* -> \(.*\)$,\1,p'
6263
9750529a8cf5 Sort in a locale-independent way.
Bruno Haible <bruno@clisp.org>
parents: 6262
diff changeset
596 # would do the wrong thing if the link target contains " -> ".
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
597 LC_ALL=C ls -l "$1" | sed -e 's, -> ,#%%#,' | sed -n -e 's,^.*#%%#\(.*\)$,\1,p'
6248
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
598 }
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
599 fi
ba937772eda4 Portability fix: readlink is not portable.
Bruno Haible <bruno@clisp.org>
parents: 6247
diff changeset
600
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
601 # func_relativize DIR1 DIR2
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
602 # computes a relative pathname RELDIR such that DIR1/RELDIR = DIR2.
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
603 # Input:
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
604 # - DIR1 relative pathname, relative to the current directory
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
605 # - DIR2 relative pathname, relative to the current directory
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
606 # Output:
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
607 # - reldir relative pathname of DIR2, relative to DIR1
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
608 func_relativize ()
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
609 {
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
610 dir0=`pwd`
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
611 dir1="$1"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
612 dir2="$2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
613 sed_first='s,^\([^/]*\)/.*$,\1,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
614 sed_rest='s,^[^/]*/*,,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
615 sed_last='s,^.*/\([^/]*\)$,\1,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
616 sed_butlast='s,/*[^/]*$,,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
617 while test -n "$dir1"; do
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
618 first=`echo "$dir1" | sed -e "$sed_first"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
619 if test "$first" != "."; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
620 if test "$first" = ".."; then
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
621 dir2=`echo "$dir0" | sed -e "$sed_last"`/"$dir2"
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
622 dir0=`echo "$dir0" | sed -e "$sed_butlast"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
623 else
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
624 first2=`echo "$dir2" | sed -e "$sed_first"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
625 if test "$first2" = "$first"; then
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
626 dir2=`echo "$dir2" | sed -e "$sed_rest"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
627 else
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
628 dir2="../$dir2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
629 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
630 dir0="$dir0"/"$first"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
631 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
632 fi
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
633 dir1=`echo "$dir1" | sed -e "$sed_rest"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
634 done
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
635 reldir="$dir2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
636 }
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
637
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
638 # func_relconcat DIR1 DIR2
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
639 # computes a relative pathname DIR1/DIR2, with obvious simplifications.
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
640 # Input:
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
641 # - DIR1 relative pathname, relative to the current directory
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
642 # - DIR2 relative pathname, relative to DIR1
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
643 # Output:
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
644 # - relconcat DIR1/DIR2, relative to the current directory
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
645 func_relconcat ()
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
646 {
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
647 dir1="$1"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
648 dir2="$2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
649 sed_first='s,^\([^/]*\)/.*$,\1,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
650 sed_rest='s,^[^/]*/*,,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
651 sed_last='s,^.*/\([^/]*\)$,\1,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
652 sed_butlast='s,/*[^/]*$,,'
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
653 while true; do
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
654 first=`echo "$dir2" | sed -e "$sed_first"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
655 if test "$first" = "."; then
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
656 dir2=`echo "$dir2" | sed -e "$sed_rest"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
657 if test -z "$dir2"; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
658 relconcat="$dir1"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
659 break
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
660 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
661 else
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
662 last=`echo "$dir1" | sed -e "$sed_last"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
663 while test "$last" = "."; do
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
664 dir1=`echo "$dir1" | sed -e "$sed_butlast"`
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
665 last=`echo "$dir1" | sed -e "$sed_last"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
666 done
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
667 if test -z "$dir1"; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
668 relconcat="$dir2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
669 break
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
670 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
671 if test "$first" = ".."; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
672 if test "$last" = ".."; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
673 relconcat="$dir1/$dir2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
674 break
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
675 fi
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
676 dir1=`echo "$dir1" | sed -e "$sed_butlast"`
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
677 dir2=`echo "$dir2" | sed -e "$sed_rest"`
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
678 if test -z "$dir1"; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
679 relconcat="$dir2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
680 break
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
681 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
682 if test -z "$dir2"; then
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
683 relconcat="$dir1"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
684 break
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
685 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
686 else
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
687 relconcat="$dir1/$dir2"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
688 break
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
689 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
690 fi
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
691 done
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
692 }
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
693
7642
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
694 # func_ln SRC DEST
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
695 # Like ln -s, except that SRC is given relative to the current directory (or
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
696 # absolute), not given relative to the directory of DEST.
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
697 func_ln ()
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
698 {
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
699 case "$1" in
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
700 /*)
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
701 ln -s "$1" "$2" ;;
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
702 *) # SRC is relative.
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
703 case "$2" in
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
704 /*)
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
705 ln -s "`pwd`/$1" "$2" ;;
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
706 *) # DEST is relative too.
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
707 ln_destdir=`echo "$2" | sed -e 's,[^/]*$,,'`
7642
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
708 test -n "$ln_destdir" || ln_destdir="."
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
709 func_relativize "$ln_destdir" "$1"
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
710 ln -s "$reldir" "$2"
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
711 ;;
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
712 esac
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
713 ;;
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
714 esac
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
715 }
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
716
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
717 # func_ln_if_changed SRC DEST
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
718 # Like func_ln, but avoids munging timestamps if the link is correct.
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
719 func_ln_if_changed ()
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
720 {
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
721 if test $# -ne 2; then
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
722 echo "usage: func_ln_if_changed SRC DEST" >&2
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
723 fi
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
724 ln_target=`func_readlink "$2"`
9167
a459223799e0 Use test -h, not test -L.
Bruno Haible <bruno@clisp.org>
parents: 9119
diff changeset
725 if test -h "$2" && test "$1" = "$ln_target"; then
7642
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
726 :
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
727 else
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
728 rm -f "$2"
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
729 func_ln "$1" "$2"
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
730 fi
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
731 }
0878abcc59c9 Fix the symlinks installed by the --symlink option.
Bruno Haible <bruno@clisp.org>
parents: 7641
diff changeset
732
12882
4c2d2e457224 Typo in comment.
Bruno Haible <bruno@clisp.org>
parents: 12881
diff changeset
733 # Ensure an 'echo' command that
12881
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
734 # 1. does not interpret backslashes and
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
735 # 2. does not print an error message "broken pipe" when writing into a pipe
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
736 # with no writers.
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
737 #
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
738 # Test cases for problem 1:
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
739 # echo '\n' | wc -l prints 1 when OK, 2 when KO
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
740 # echo '\t' | grep t > /dev/null has return code 0 when OK, 1 when KO
12881
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
741 # Test cases for problem 2:
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
742 # echo hi | true frequently prints
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
743 # "bash: echo: write error: Broken pipe"
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
744 # to standard error in bash 3.2.
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
745 #
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
746 # Problem 1 is a weird heritage from SVR4. BSD got it right (except that
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
747 # BSD echo interprets '-n' as an option, which is also not desirable).
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
748 # Nowadays the problem occurs in 4 situations:
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
749 # - in bash, when the shell option xpg_echo is set (bash >= 2.04)
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
750 # or when it was built with --enable-usg-echo-default (bash >= 2.0)
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
751 # or when it was built with DEFAULT_ECHO_TO_USG (bash < 2.0),
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
752 # - in zsh, when sh-emulation is not set,
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
753 # - in ksh (e.g. AIX /bin/sh and Solaris /usr/xpg4/bin/sh are ksh instances,
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
754 # and HP-UX /bin/sh and IRIX /bin/sh behave similarly),
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
755 # - in Solaris /bin/sh and OSF/1 /bin/sh.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
756 # We try the following workarounds:
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
757 # - for all: respawn using $CONFIG_SHELL if that is set and works.
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
758 # - for bash >= 2.04: unset the shell option xpg_echo.
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
759 # - for bash >= 2.0: define echo to a function that uses the printf built-in.
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
760 # - for bash < 2.0: define echo to a function that uses cat of a here document.
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
761 # - for zsh: turn sh-emulation on.
9008
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
762 # - for ksh: alias echo to 'print -r'.
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
763 # - for ksh: alias echo to a function that uses cat of a here document.
9008
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
764 # - for Solaris /bin/sh and OSF/1 /bin/sh: respawn using /bin/ksh and rely on
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
765 # the ksh workaround.
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
766 # - otherwise: respawn using /bin/sh and rely on the workarounds.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
767 # When respawning, we pass --no-reexec as first argument, so as to avoid
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
768 # turning this script into a fork bomb in unlucky situations.
12881
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
769 #
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
770 # Problem 2 is specific to bash 3.2 and affects the 'echo' built-in, but not
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
771 # the 'printf' built-in. See
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
772 # <http://lists.gnu.org/archive/html/bug-bash/2008-12/msg00050.html>
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
773 # <http://lists.gnu.org/archive/html/bug-gnulib/2010-02/msg00154.html>
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
774 # The workaround is: define echo to a function that uses the printf built-in.
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
775 have_echo=
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
776 if echo '\t' | grep t > /dev/null; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
777 have_echo=yes # Lucky!
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
778 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
779 # Try the workarounds.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
780 # Respawn using $CONFIG_SHELL if that is set and works.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
781 if test -z "$have_echo" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
782 && test "X$1" != "X--no-reexec" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
783 && test -n "$CONFIG_SHELL" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
784 && test -f "$CONFIG_SHELL" \
11919
6a1268d2cf2a Fix test whether $CONFIG_SHELL has a working 'echo' command.
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 11737
diff changeset
785 && $CONFIG_SHELL -c "echo '\\t' | grep t > /dev/null"; then
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
786 exec $CONFIG_SHELL "$0" --no-reexec "$@"
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
787 exit 127
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
788 fi
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
789 # For bash >= 2.04: unset the shell option xpg_echo.
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
790 if test -z "$have_echo" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
791 && test -n "$BASH_VERSION" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
792 && (shopt -o xpg_echo; echo '\t' | grep t > /dev/null) 2>/dev/null; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
793 shopt -o xpg_echo
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
794 have_echo=yes
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
795 fi
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
796 # For bash >= 2.0: define echo to a function that uses the printf built-in.
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
797 # For bash < 2.0: define echo to a function that uses cat of a here document.
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
798 # (There is no win in using 'printf' over 'cat' if it is not a shell built-in.)
12903
82f649e8c371 Fix breakage of gnulib-tool with ksh, introduced on 2010-02-21.
Bruno Haible <bruno@clisp.org>
parents: 12882
diff changeset
799 # Also handle problem 2, specific to bash 3.2, here.
82f649e8c371 Fix breakage of gnulib-tool with ksh, introduced on 2010-02-21.
Bruno Haible <bruno@clisp.org>
parents: 12882
diff changeset
800 if { test -z "$have_echo" \
82f649e8c371 Fix breakage of gnulib-tool with ksh, introduced on 2010-02-21.
Bruno Haible <bruno@clisp.org>
parents: 12882
diff changeset
801 || case "$BASH_VERSION" in 3.2*) true;; *) false;; esac; \
82f649e8c371 Fix breakage of gnulib-tool with ksh, introduced on 2010-02-21.
Bruno Haible <bruno@clisp.org>
parents: 12882
diff changeset
802 } \
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
803 && test -n "$BASH_VERSION"; then \
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
804 if type printf 2>/dev/null | grep / > /dev/null; then
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
805 # 'printf' is not a shell built-in.
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
806 echo ()
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
807 {
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
808 cat <<EOF
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
809 $*
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
810 EOF
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
811 }
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
812 else
9007
620c0e20f9db Tweak comment.
Bruno Haible <bruno@clisp.org>
parents: 9006
diff changeset
813 # 'printf' is a shell built-in.
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
814 echo ()
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
815 {
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
816 printf '%s\n' "$*"
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
817 }
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
818 fi
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
819 if echo '\t' | grep t > /dev/null; then
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
820 have_echo=yes
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
821 fi
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
822 fi
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
823 # For zsh: turn sh-emulation on.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
824 if test -z "$have_echo" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
825 && test -n "$ZSH_VERSION" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
826 && (emulate sh) >/dev/null 2>&1; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
827 emulate sh
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
828 fi
9008
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
829 # For ksh: alias echo to 'print -r'.
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
830 if test -z "$have_echo" \
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
831 && (type print) >/dev/null 2>&1; then
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
832 # A 'print' command exists.
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
833 if type print 2>/dev/null | grep / > /dev/null; then
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
834 :
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
835 else
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
836 # 'print' is a shell built-in.
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
837 if (print -r '\told' | grep told > /dev/null) 2>/dev/null; then
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
838 # 'print' is the ksh shell built-in.
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
839 alias echo='print -r'
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
840 fi
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
841 fi
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
842 fi
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
843 if test -z "$have_echo" \
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
844 && echo '\t' | grep t > /dev/null; then
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
845 have_echo=yes
78f53a569f31 Make use of ksh's 'print' built-in.
Bruno Haible <bruno@clisp.org>
parents: 9007
diff changeset
846 fi
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
847 # For ksh: alias echo to a function that uses cat of a here document.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
848 # The ksh manual page says:
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
849 # "Aliasing is performed when scripts are read, not while they are executed.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
850 # Therefore, for an alias to take effect, the alias definition command has
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
851 # to be executed before the command which references the alias is read."
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
852 # Because of this, we have to play strange tricks with have_echo, to ensure
9006
0df4abf0cce4 Add better support for bash versions < 2.04.
Bruno Haible <bruno@clisp.org>
parents: 9005
diff changeset
853 # that the top-level statement containing the test starts after the 'alias'
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
854 # command.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
855 if test -z "$have_echo"; then
13658
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
856 bsd_echo ()
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
857 {
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
858 cat <<EOF
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
859 $*
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
860 EOF
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
861 }
13658
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
862 if (alias echo=bsd_echo) 2>/dev/null; then
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
863 alias echo=bsd_echo 2>/dev/null
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
864 fi
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
865 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
866 if test -z "$have_echo" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
867 && echo '\t' | grep t > /dev/null; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
868 have_echo=yes
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
869 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
870 if test -z "$have_echo"; then
13658
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
871 if (alias echo=bsd_echo) 2>/dev/null; then
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
872 unalias echo 2>/dev/null
a597697ae97c gnulib-tool: Avoid stderr output on IRIX related to 'alias', 'unalias'.
Bruno Haible <bruno@clisp.org>
parents: 13650
diff changeset
873 fi
9003
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
874 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
875 # For Solaris /bin/sh and OSF/1 /bin/sh: respawn using /bin/ksh.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
876 if test -z "$have_echo" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
877 && test "X$1" != "X--no-reexec" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
878 && test -f /bin/ksh; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
879 exec /bin/ksh "$0" --no-reexec "$@"
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
880 exit 127
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
881 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
882 # Otherwise: respawn using /bin/sh.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
883 if test -z "$have_echo" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
884 && test "X$1" != "X--no-reexec" \
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
885 && test -f /bin/sh; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
886 exec /bin/sh "$0" --no-reexec "$@"
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
887 exit 127
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
888 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
889 if test -z "$have_echo"; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
890 func_fatal_error "Shell does not support 'echo' correctly. Please install GNU bash and set the environment variable CONFIG_SHELL to point to it."
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
891 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
892 if echo '\t' | grep t > /dev/null; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
893 : # Works fine now.
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
894 else
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
895 func_fatal_error "Shell does not support 'echo' correctly. Workaround does not work. Please report this as a bug to bug-gnulib@gnu.org."
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
896 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
897 if test "X$1" = "X--no-reexec"; then
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
898 shift
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
899 fi
952d16aa4c29 Ensure a POSIX:2001 compliant 'echo' command.
Bruno Haible <bruno@clisp.org>
parents: 9001
diff changeset
900
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
901 # Command-line option processing.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
902 # Removes the OPTIONS from the arguments. Sets the variables:
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
903 # - mode one of: list, find, import, add-import, remove-import,
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
904 # update, create-testdir, create-megatestdir, test, megatest,
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
905 # copy-file
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
906 # - destdir from --dir
7215
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
907 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
908 # - modcache true or false, from --cache-modules/--no-cache-modules
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
909 # - verbose integer, default 0, inc/decremented by --verbose/--quiet
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
910 # - libname, supplied_libname from --lib
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
911 # - sourcebase from --source-base
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
912 # - m4base from --m4-base
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
913 # - pobase from --po-base
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
914 # - docbase from --doc-base
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
915 # - testsbase from --tests-base
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
916 # - auxdir from --aux-dir
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
917 # - inctests true if --with-tests was given, false if --without-tests
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
918 # was given, blank otherwise
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
919 # - incobsolete true if --with-obsolete was given, blank otherwise
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
920 # - inc_cxx_tests true if --with-c++-tests was given, blank otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
921 # - inc_longrunning_tests true if --with-longrunning-tests was given, blank
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
922 # otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
923 # - inc_privileged_tests true if --with-privileged-tests was given, blank
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
924 # otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
925 # - inc_unportable_tests true if --with-unportable-tests was given, blank
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
926 # otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
927 # - inc_all_tests true if --with-all-tests was given, blank otherwise
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
928 # - excl_cxx_tests true if --without-c++-tests was given, blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
929 # - excl_longrunning_tests true if --without-longrunning-tests was given,
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
930 # blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
931 # - excl_privileged_tests true if --without-privileged-tests was given, blank
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
932 # otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
933 # - excl_unportable_tests true if --without-unportable-tests was given, blank
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
934 # otherwise
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
935 # - single_configure true if --single-configure was given, false otherwise
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
936 # - avoidlist list of modules to avoid, from --avoid
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
937 # - cond_dependencies true if --conditional-dependencies was given, false if
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
938 # --no-conditional-dependencies was given, blank otherwise
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
939 # - lgpl yes or a number if --lgpl was given, blank otherwise
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
940 # - makefile_name from --makefile-name
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
941 # - libtool true if --libtool was given, false if --no-libtool was
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
942 # given, blank otherwise
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
943 # - macro_prefix from --macro-prefix
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
944 # - po_domain from --po-domain
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
945 # - witness_c_macro from --witness-c-macro
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
946 # - vc_files true if --vc-files was given, false if --no-vc-files was
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
947 # given, blank otherwise
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
948 # - autoconf_minversion minimum supported autoconf version
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
949 # - doit : if actions shall be executed, false if only to be printed
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
950 # - symbolic true if --symlink or --more-symlinks was given, blank
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
951 # otherwise
7643
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
952 # - lsymbolic true if --local-symlink was given, blank otherwise
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
953 # - do_copyrights blank if --more-symlinks was given, true otherwise
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
954 {
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
955 mode=
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
956 destdir=
7215
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
957 local_gnulib_dir=
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
958 modcache=true
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
959 verbose=0
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
960 libname=libgnu
5344
c2f5677fc6ed Initialize supplied_libname. Tweak usage message.
Bruno Haible <bruno@clisp.org>
parents: 5343
diff changeset
961 supplied_libname=
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
962 sourcebase=
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
963 m4base=
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
964 pobase=
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
965 docbase=
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
966 testsbase=
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
967 auxdir=
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
968 inctests=
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
969 incobsolete=
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
970 inc_cxx_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
971 inc_longrunning_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
972 inc_privileged_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
973 inc_unportable_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
974 inc_all_tests=
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
975 excl_cxx_tests=
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
976 excl_longrunning_tests=
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
977 excl_privileged_tests=
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
978 excl_unportable_tests=
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
979 single_configure=false
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
980 avoidlist=
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
981 cond_dependencies=
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
982 lgpl=
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
983 makefile_name=
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
984 libtool=
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
985 macro_prefix=
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
986 po_domain=
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
987 witness_c_macro=
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
988 vc_files=
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
989 doit=:
5799
ad9eff556694 2005-04-15 Simon Josefsson <jas@extundo.com>
Simon Josefsson <simon@josefsson.org>
parents: 5798
diff changeset
990 symbolic=
7643
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
991 lsymbolic=
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
992 do_copyrights=true
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
993
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
994 supplied_opts="$@"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
995
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
996 while test $# -gt 0; do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
997 case "$1" in
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
998 --list | --lis )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
999 mode=list
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1000 shift ;;
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1001 --find | --fin | --fi | --f )
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1002 mode=find
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1003 shift ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1004 --import | --impor | --impo | --imp | --im | --i )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1005 mode=import
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1006 shift ;;
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1007 --add-import | --add-impor | --add-impo | --add-imp | --add-im | --add-i | --add- | --add | --ad )
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1008 mode=add-import
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1009 shift ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1010 --remove-import | --remove-impor | --remove-impo | --remove-imp | --remove-im | --remove-i | --remove- | --remove | --remov | --remo | --rem | --re | --r )
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1011 mode=remove-import
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1012 shift ;;
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1013 --update | --updat | --upda | --upd | --up | --u )
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1014 mode=update
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1015 shift ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1016 --create-testdir | --create-testdi | --create-testd | --create-test | --create-tes | --create-te | --create-t )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1017 mode=create-testdir
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1018 shift ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1019 --create-megatestdir | --create-megatestdi | --create-megatestd | --create-megatest | --create-megates | --create-megate | --create-megat | --create-mega | --create-meg | --create-me | --create-m )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1020 mode=create-megatestdir
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1021 shift ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1022 --test | --tes | --te | --t )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1023 mode=test
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1024 shift ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1025 --megatest | --megates | --megate | --megat | --mega | --meg | --me | --m )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1026 mode=megatest
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1027 shift ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1028 --extract-* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1029 mode=`echo "X$1" | sed -e 's/^X--//'`
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1030 shift ;;
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1031 --copy-file | --copy-fil | --copy-fi | --copy-f | --copy- | --copy | --cop )
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
1032 mode=copy-file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
1033 shift ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1034 --dir )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1035 shift
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1036 if test $# = 0; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1037 func_fatal_error "missing argument for --dir"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1038 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1039 destdir=$1
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1040 shift ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1041 --dir=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1042 destdir=`echo "X$1" | sed -e 's/^X--dir=//'`
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1043 shift ;;
7215
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1044 --local-dir )
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1045 shift
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1046 if test $# = 0; then
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1047 func_fatal_error "missing argument for --local-dir"
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1048 fi
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1049 local_gnulib_dir=$1
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1050 shift ;;
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1051 --local-dir=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1052 local_gnulib_dir=`echo "X$1" | sed -e 's/^X--local-dir=//'`
7215
3869ca15e2bb Reorder some statements.
Bruno Haible <bruno@clisp.org>
parents: 7214
diff changeset
1053 shift ;;
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1054 --cache-modules | --cache-module | --cache-modul | --cache-modu | --cache-mod | --cache-mo | --cache-m | --cache- | --cache | --cach | --cac | --ca )
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1055 modcache=true
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1056 shift ;;
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1057 --no-cache-modules | --no-cache-module | --no-cache-modul | --no-cache-modu | --no-cache-mod | --no-cache-mo | --no-cache-m | --no-cache- | --no-cache | --no-cach | --no-cac | --no-ca )
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1058 modcache=false
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1059 shift ;;
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1060 --verbose | --verbos | --verbo | --verb )
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1061 verbose=`expr $verbose + 1`
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1062 shift ;;
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1063 --quiet | --quie | --qui | --qu | --q )
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1064 verbose=`expr $verbose - 1`
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1065 shift ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1066 --lib )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1067 shift
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1068 if test $# = 0; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1069 func_fatal_error "missing argument for --lib"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1070 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1071 libname=$1
5343
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
1072 supplied_libname=true
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1073 shift ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1074 --lib=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1075 libname=`echo "X$1" | sed -e 's/^X--lib=//'`
5343
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
1076 supplied_libname=true
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1077 shift ;;
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1078 --source-base )
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1079 shift
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1080 if test $# = 0; then
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1081 func_fatal_error "missing argument for --source-base"
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1082 fi
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1083 sourcebase=$1
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1084 shift ;;
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1085 --source-base=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1086 sourcebase=`echo "X$1" | sed -e 's/^X--source-base=//'`
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1087 shift ;;
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1088 --m4-base )
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1089 shift
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1090 if test $# = 0; then
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1091 func_fatal_error "missing argument for --m4-base"
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1092 fi
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1093 m4base=$1
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1094 shift ;;
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1095 --m4-base=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1096 m4base=`echo "X$1" | sed -e 's/^X--m4-base=//'`
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1097 shift ;;
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1098 --po-base )
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1099 shift
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1100 if test $# = 0; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1101 func_fatal_error "missing argument for --po-base"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1102 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1103 pobase=$1
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1104 shift ;;
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1105 --po-base=* )
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1106 pobase=`echo "X$1" | sed -e 's/^X--po-base=//'`
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1107 shift ;;
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1108 --doc-base )
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1109 shift
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1110 if test $# = 0; then
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1111 func_fatal_error "missing argument for --doc-base"
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1112 fi
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1113 docbase=$1
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1114 shift ;;
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1115 --doc-base=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1116 docbase=`echo "X$1" | sed -e 's/^X--doc-base=//'`
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1117 shift ;;
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1118 --tests-base )
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1119 shift
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1120 if test $# = 0; then
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1121 func_fatal_error "missing argument for --tests-base"
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1122 fi
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1123 testsbase=$1
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1124 shift ;;
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1125 --tests-base=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1126 testsbase=`echo "X$1" | sed -e 's/^X--tests-base=//'`
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1127 shift ;;
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1128 --aux-dir )
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1129 shift
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1130 if test $# = 0; then
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1131 func_fatal_error "missing argument for --aux-dir"
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1132 fi
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1133 auxdir=$1
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1134 shift ;;
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1135 --aux-dir=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1136 auxdir=`echo "X$1" | sed -e 's/^X--aux-dir=//'`
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1137 shift ;;
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1138 --with-tests | --with-test | --with-tes | --with-te | --with-t)
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1139 inctests=true
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1140 shift ;;
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1141 --with-obsolete | --with-obsolet | --with-obsole | --with-obsol | --with-obso | --with-obs | --with-ob | --with-o)
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
1142 incobsolete=true
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
1143 shift ;;
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1144 --with-c++-tests | --with-c++-test | --with-c++-tes | --with-c++-te | --with-c++-t | --with-c++- | --with-c++ | --with-c+ | --with-c)
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1145 inc_cxx_tests=true
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1146 shift ;;
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1147 --with-longrunning-tests | --with-longrunning-test | --with-longrunning-tes | --with-longrunning-te | --with-longrunning-t | --with-longrunning- | --with-longrunning | --with-longrunnin | --with-longrunni | --with-longrunn | --with-longrun | --with-longru | --with-longr | --with-long | --with-lon | --with-lo | --with-l)
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1148 inc_longrunning_tests=true
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1149 shift ;;
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1150 --with-privileged-tests | --with-privileged-test | --with-privileged-tes | --with-privileged-te | --with-privileged-t | --with-privileged- | --with-privileged | --with-privilege | --with-privileg | --with-privile | --with-privil | --with-privi | --with-priv | --with-pri | --with-pr | --with-p)
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1151 inc_privileged_tests=true
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1152 shift ;;
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1153 --with-unportable-tests | --with-unportable-test | --with-unportable-tes | --with-unportable-te | --with-unportable-t | --with-unportable- | --with-unportable | --with-unportabl | --with-unportab | --with-unporta | --with-unport | --with-unpor | --with-unpo | --with-unp | --with-un | --with-u)
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1154 inc_unportable_tests=true
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1155 shift ;;
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1156 --with-all-tests | --with-all-test | --with-all-tes | --with-all-te | --with-all-t | --with-all- | --with-all | --with-al | --with-a)
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1157 inc_all_tests=true
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1158 shift ;;
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1159 --without-tests | --without-test | --without-tes | --without-te | --without-t)
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1160 inctests=false
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1161 shift ;;
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1162 --without-c++-tests | --without-c++-test | --without-c++-tes | --without-c++-te | --without-c++-t | --without-c++- | --without-c++ | --without-c+ | --without-c)
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1163 excl_cxx_tests=true
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1164 shift ;;
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1165 --without-longrunning-tests | --without-longrunning-test | --without-longrunning-tes | --without-longrunning-te | --without-longrunning-t | --without-longrunning- | --without-longrunning | --without-longrunnin | --without-longrunni | --without-longrunn | --without-longrun | --without-longru | --without-longr | --without-long | --without-lon | --without-lo | --without-l)
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1166 excl_longrunning_tests=true
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1167 shift ;;
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1168 --without-privileged-tests | --without-privileged-test | --without-privileged-tes | --without-privileged-te | --without-privileged-t | --without-privileged- | --without-privileged | --without-privilege | --without-privileg | --without-privile | --without-privil | --without-privi | --without-priv | --without-pri | --without-pr | --without-p)
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1169 excl_privileged_tests=true
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1170 shift ;;
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1171 --without-unportable-tests | --without-unportable-test | --without-unportable-tes | --without-unportable-te | --without-unportable-t | --without-unportable- | --without-unportable | --without-unportabl | --without-unportab | --without-unporta | --without-unport | --without-unpor | --without-unpo | --without-unp | --without-un | --without-u)
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1172 excl_unportable_tests=true
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1173 shift ;;
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
1174 --single-configure | --single-configur | --single-configu | --single-config | --single-confi | --single-conf | --single-con | --single-con | --single-co | --single-c | --single- | --single | --singl | --sing | --sin | --si)
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
1175 single_configure=true
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
1176 shift ;;
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1177 --avoid )
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1178 shift
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1179 if test $# = 0; then
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1180 func_fatal_error "missing argument for --avoid"
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1181 fi
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
1182 func_append avoidlist " $1"
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1183 shift ;;
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1184 --avoid=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1185 arg=`echo "X$1" | sed -e 's/^X--avoid=//'`
7327
6db875979695 * gnulib-tool (avoidlist): Fix typo that broke options like
Paul Eggert <eggert@cs.ucla.edu>
parents: 7326
diff changeset
1186 func_append avoidlist " $arg"
5198
9317c9ebe82c Add --source-base, --m4-base, --libtool options.
Paul Eggert <eggert@cs.ucla.edu>
parents: 4717
diff changeset
1187 shift ;;
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1188 --conditional-dependencies | --conditional-dependencie | --conditional-dependenci | --conditional-dependenc | --conditional-dependen | --conditional-depende | --conditional-depend | --conditional-depen | --conditional-depe | --conditional-dep | --conditional-de | --conditional-d | --conditional- | --conditional | --conditiona | --condition | --conditio | --conditi | --condit | --condi | --cond | --con)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1189 cond_dependencies=true
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1190 shift ;;
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
1191 --no-conditional-dependencies | --no-conditional-dependencie | --no-conditional-dependenci | --no-conditional-dependenc | --no-conditional-dependen | --no-conditional-depende | --no-conditional-depend | --no-conditional-depen | --no-conditional-depe | --no-conditional-dep | --no-conditional-de | --no-conditional-d | --no-conditional- | --no-conditional | --no-conditiona | --no-condition | --no-conditio | --no-conditi | --no-condit | --no-condi | --no-cond | --no-con | --no-co)
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
1192 cond_dependencies=false
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
1193 shift ;;
5262
97ed4b64d853 New parameter --lgpl, to asseert that modules are
Paul Eggert <eggert@cs.ucla.edu>
parents: 5255
diff changeset
1194 --lgpl )
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1195 lgpl=yes
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1196 shift ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1197 --lgpl=* )
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1198 arg=`echo "X$1" | sed -e 's/^X--lgpl=//'`
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1199 case "$arg" in
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1200 2 | 3) ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1201 *) func_fatal_error "invalid LGPL version number for --lgpl" ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1202 esac
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
1203 lgpl=$arg
5262
97ed4b64d853 New parameter --lgpl, to asseert that modules are
Paul Eggert <eggert@cs.ucla.edu>
parents: 5255
diff changeset
1204 shift ;;
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1205 --makefile-name )
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1206 shift
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1207 if test $# = 0; then
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1208 func_fatal_error "missing argument for --makefile-name"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1209 fi
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1210 makefile_name="$1"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1211 shift ;;
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1212 --makefile-name=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1213 makefile_name=`echo "X$1" | sed -e 's/^X--makefile-name=//'`
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
1214 shift ;;
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1215 --libtool )
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1216 libtool=true
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
1217 shift ;;
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
1218 --no-libtool )
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
1219 libtool=false
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
1220 shift ;;
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1221 --macro-prefix )
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1222 shift
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1223 if test $# = 0; then
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1224 func_fatal_error "missing argument for --macro-prefix"
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1225 fi
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1226 macro_prefix="$1"
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1227 shift ;;
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1228 --macro-prefix=* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1229 macro_prefix=`echo "X$1" | sed -e 's/^X--macro-prefix=//'`
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
1230 shift ;;
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1231 --po-domain )
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1232 shift
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1233 if test $# = 0; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1234 func_fatal_error "missing argument for --po-domain"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1235 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1236 po_domain="$1"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1237 shift ;;
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1238 --po-domain=* )
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1239 po_domain=`echo "X$1" | sed -e 's/^X--po-domain=//'`
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1240 shift ;;
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1241 --witness-c-macro )
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1242 shift
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1243 if test $# = 0; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1244 func_fatal_error "missing argument for --witness-c-macro"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1245 fi
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1246 witness_c_macro="$1"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1247 shift ;;
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1248 --witness-c-macro=* )
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1249 witness_c_macro=`echo "X$1" | sed -e 's/^X--witness-c-macro=//'`
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1250 shift ;;
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
1251 --vc-files )
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
1252 vc_files=true
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
1253 shift ;;
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
1254 --no-vc-files )
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
1255 vc_files=false
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
1256 shift ;;
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1257 --no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch )
17065
e7db46543239 gnulib-tool: Remove no-op option --no-changelog.
Bruno Haible <bruno@clisp.org>
parents: 17047
diff changeset
1258 # A no-op for backward compatibility.
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1259 shift ;;
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
1260 --dry-run )
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
1261 doit=false
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
1262 shift ;;
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1263 -s | --symbolic | --symboli | --symbol | --symbo | --symb | --symlink | --symlin | --symli | --syml | --sym | --sy )
5799
ad9eff556694 2005-04-15 Simon Josefsson <jas@extundo.com>
Simon Josefsson <simon@josefsson.org>
parents: 5798
diff changeset
1264 symbolic=true
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
1265 shift ;;
7643
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
1266 --local-symlink | --local-symlin | --local-symli | --local-syml | --local-sym | --local-sy | --local-s )
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
1267 lsymbolic=true
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
1268 shift ;;
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
1269 -S | --more-symlinks | --more-symlink | --more-symlin | --more-symli | --more-syml | --more-sym | --more-sy | --more-s | --more- | --more | --mor | --mo )
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
1270 symbolic=true
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
1271 do_copyrights=
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
1272 shift ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1273 --help | --hel | --he | --h )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1274 func_usage
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1275 func_exit $? ;;
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
1276 --version | --versio | --versi | --vers )
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1277 func_version
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1278 func_exit $? ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1279 -- )
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1280 # Stop option processing
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1281 shift
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1282 break ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1283 -* )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1284 echo "gnulib-tool: unknown option $1" 1>&2
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1285 echo "Try 'gnulib-tool --help' for more information." 1>&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1286 func_exit 1 ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1287 * )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1288 break ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1289 esac
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1290 done
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1291
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1292 if case "$mode" in import | add-import | remove-import) true;; *) false;; esac; then
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1293 if test -n "$excl_cxx_tests" || test -n "$excl_longrunning_tests" \
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
1294 || test -n "$excl_privileged_tests" || test -n "$excl_unportable_tests" \
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
1295 || test "$single_configure" != false; then
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1296 echo "gnulib-tool: invalid options for '$mode' mode" 1>&2
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1297 echo "Try 'gnulib-tool --help' for more information." 1>&2
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1298 func_exit 1
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1299 fi
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1300 fi
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1301 if test "$mode" = update; then
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1302 if test $# != 0; then
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1303 echo "gnulib-tool: too many arguments in 'update' mode" 1>&2
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1304 echo "Try 'gnulib-tool --help' for more information." 1>&2
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1305 echo "If you really want to modify the gnulib configuration of your project," 1>&2
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1306 echo "you need to use 'gnulib --import' - at your own risk!" 1>&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1307 func_exit 1
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1308 fi
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
1309 if test -n "$local_gnulib_dir" || test -n "$supplied_libname" \
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1310 || test -n "$sourcebase" || test -n "$m4base" || test -n "$pobase" \
6993
dc8f2a1ff75f Reorder tests in doc-base patch.
Bruno Haible <bruno@clisp.org>
parents: 6966
diff changeset
1311 || test -n "$docbase" || test -n "$testsbase" || test -n "$auxdir" \
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
1312 || test -n "$inctests" || test -n "$incobsolete" \
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1313 || test -n "$inc_cxx_tests" || test -n "$inc_longrunning_tests" \
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1314 || test -n "$inc_privileged_tests" || test -n "$inc_unportable_tests" \
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
1315 || test -n "$inc_all_tests" \
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1316 || test -n "$excl_cxx_tests" || test -n "$excl_longrunning_tests" \
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
1317 || test -n "$excl_privileged_tests" || test -n "$excl_unportable_tests" \
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
1318 || test -n "$avoidlist" || test -n "$lgpl" || test -n "$makefile_name" \
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
1319 || test -n "$macro_prefix" || test -n "$po_domain" \
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
1320 || test -n "$witness_c_macro" || test -n "$vc_files"; then
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1321 echo "gnulib-tool: invalid options for 'update' mode" 1>&2
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1322 echo "Try 'gnulib-tool --help' for more information." 1>&2
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1323 echo "If you really want to modify the gnulib configuration of your project," 1>&2
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1324 echo "you need to use 'gnulib --import' - at your own risk!" 1>&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1325 func_exit 1
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1326 fi
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1327 fi
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1328 if test -n "$pobase" && test -z "$po_domain"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1329 echo "gnulib-tool: together with --po-base, you need to specify --po-domain" 1>&2
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1330 echo "Try 'gnulib-tool --help' for more information." 1>&2
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1331 func_exit 1
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1332 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1333 if test -z "$pobase" && test -n "$po_domain"; then
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
1334 func_warning "--po-domain has no effect without a --po-base option"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1335 fi
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1336 # Canonicalize the inctests variable.
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1337 case "$mode" in
17004
1a403c75d360 gnulib-tool: Fix handling of inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16932
diff changeset
1338 import | add-import | remove-import | update)
16931
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1339 if test -z "$inctests"; then
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1340 inctests=false
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1341 fi
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1342 ;;
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1343 create-testdir | create-megatestdir | test | megatest)
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1344 if test -z "$inctests"; then
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1345 inctests=true
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1346 fi
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1347 ;;
9c0df43d88f4 gnulib-tool: --create-[mega]testdir, --[mega]test implies --with-tests.
Bruno Haible <bruno@clisp.org>
parents: 16925
diff changeset
1348 esac
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
1349 # Now the only possible values of "$inctests" are true and false
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
1350 # (or blank but then it is irrelevant).
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
1351 if test "$cond_dependencies" = true && test "$inctests" = true; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1352 echo "gnulib-tool: option --conditional-dependencies is not supported with --with-tests" 1>&2
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1353 func_exit 1
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
1354 fi
6443
1a35941d29ab Implement the --update option.
Bruno Haible <bruno@clisp.org>
parents: 6425
diff changeset
1355
7071
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1356 # Determine the minimum supported autoconf version from the project's
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1357 # configure.ac.
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
1358 DEFAULT_AUTOCONF_MINVERSION="2.59"
7078
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1359 autoconf_minversion=
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1360 configure_ac=
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1361 if case "$mode" in import | add-import | remove-import | update) true;; *) false;; esac \
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1362 && test -n "$destdir"; then
7078
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1363 if test -f "$destdir"/configure.ac; then
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1364 configure_ac="$destdir/configure.ac"
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1365 else
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1366 if test -f "$destdir"/configure.in; then
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1367 configure_ac="$destdir/configure.in"
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1368 fi
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1369 fi
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1370 else
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1371 if test -f configure.ac; then
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1372 configure_ac="configure.ac"
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1373 else
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1374 if test -f configure.in; then
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1375 configure_ac="configure.in"
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1376 fi
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1377 fi
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1378 fi
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1379 if test -n "$configure_ac"; then
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1380 # Use sed, not autoconf --trace, to look for the AC_PREREQ invocation,
13636
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
1381 # because when some m4 files are omitted from a version control repository,
7078
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1382 # "autoconf --trace=AC_PREREQ" fails with an error message like this:
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1383 # m4: aclocal.m4:851: Cannot open m4/absolute-header.m4: No such file or directory
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1384 # autom4te: m4 failed with exit status: 1
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1385 prereqs=
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1386 my_sed_traces='
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1387 s,#.*$,,
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1388 s,^dnl .*$,,
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1389 s, dnl .*$,,
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1390 /AC_PREREQ/ {
7767
0339d0fb77b2 * gnulib-tool (SORT): Remove, since we no longer assume GNU sort.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7754
diff changeset
1391 s,^.*AC_PREREQ([[ ]*\([^])]*\).*$,\1,p
7078
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1392 }'
7767
0339d0fb77b2 * gnulib-tool (SORT): Remove, since we no longer assume GNU sort.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7754
diff changeset
1393 prereqs=`sed -n -e "$my_sed_traces" < "$configure_ac"`
7078
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1394 if test -n "$prereqs"; then
7767
0339d0fb77b2 * gnulib-tool (SORT): Remove, since we no longer assume GNU sort.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7754
diff changeset
1395 autoconf_minversion=`
0339d0fb77b2 * gnulib-tool (SORT): Remove, since we no longer assume GNU sort.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7754
diff changeset
1396 for version in $prereqs; do echo $version; done |
12417
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
1397 LC_ALL=C sort -nru | sed -e 1q
7767
0339d0fb77b2 * gnulib-tool (SORT): Remove, since we no longer assume GNU sort.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7754
diff changeset
1398 `
7078
a060dfddc867 Improve autoconf_minversion detection.
Bruno Haible <bruno@clisp.org>
parents: 7077
diff changeset
1399 fi
7071
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1400 fi
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1401 if test -z "$autoconf_minversion"; then
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1402 autoconf_minversion=$DEFAULT_AUTOCONF_MINVERSION
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1403 fi
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
1404 case "$autoconf_minversion" in
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
1405 1.* | 2.[0-4]* | 2.5[0-8]*)
7071
71c5caf223fc Remove the --assume-autoconf option.
Bruno Haible <bruno@clisp.org>
parents: 7070
diff changeset
1406 func_fatal_error "minimum supported autoconf version is 2.59. Try adding AC_PREREQ([$DEFAULT_AUTOCONF_MINVERSION]) to your configure.ac." ;;
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
1407 esac
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
1408
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1409 # Remove trailing slashes from the directory names. This is necessary for
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1410 # m4base (to avoid an error in func_import) and optional for the others.
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1411 sed_trimtrailingslashes='s,\([^/]\)//*$,\1,'
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
1412 case "$local_gnulib_dir" in
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1413 */ ) local_gnulib_dir=`echo "$local_gnulib_dir" | sed -e "$sed_trimtrailingslashes"` ;;
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
1414 esac
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1415 case "$sourcebase" in
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1416 */ ) sourcebase=`echo "$sourcebase" | sed -e "$sed_trimtrailingslashes"` ;;
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1417 esac
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1418 case "$m4base" in
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1419 */ ) m4base=`echo "$m4base" | sed -e "$sed_trimtrailingslashes"` ;;
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1420 esac
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1421 case "$pobase" in
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1422 */ ) pobase=`echo "$pobase" | sed -e "$sed_trimtrailingslashes"` ;;
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
1423 esac
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1424 case "$docbase" in
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1425 */ ) docbase=`echo "$docbase" | sed -e "$sed_trimtrailingslashes"` ;;
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
1426 esac
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1427 case "$testsbase" in
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1428 */ ) testsbase=`echo "$testsbase" | sed -e "$sed_trimtrailingslashes"` ;;
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1429 esac
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1430 case "$auxdir" in
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1431 */ ) auxdir=`echo "$auxdir" | sed -e "$sed_trimtrailingslashes"` ;;
6264
eaa3b6787ec9 Ignore trailing slashes in --m4-base value etc.
Bruno Haible <bruno@clisp.org>
parents: 6263
diff changeset
1432 esac
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1433 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1434
9793
f899dba61804 Fix 'gnulib-tool --version' output to work with git.
Eric Blake <ebb9@byu.net>
parents: 9541
diff changeset
1435 func_gnulib_dir
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1436 func_tmpdir
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1437 trap 'exit_status=$?
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1438 if test "$signal" != 0; then
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1439 echo "caught signal $signal" >&2
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1440 fi
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1441 rm -rf "$tmp"
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1442 exit $exit_status' 0
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1443 for signal in 1 2 3 13 15; do
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1444 trap '{ signal='$signal'; func_exit 1; }' $signal
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1445 done
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
1446 signal=0
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1447
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1448 # Note: The 'eval' silences stderr output in dash.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1449 if (declare -A x && { x[f/2]='foo'; x[f/3]='bar'; eval test '${x[f/2]}' = foo; }) 2>/dev/null; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1450 # Zsh 4 and Bash 4 have associative arrays.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1451 have_associative=true
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1452 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1453 # For other shells, use 'eval' with computed shell variable names.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1454 have_associative=false
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1455 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
1456
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1457 # func_lookup_file file
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1458 # looks up a file in $local_gnulib_dir or $gnulib_dir, or combines it through
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1459 # 'patch'.
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1460 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1461 # - local_gnulib_dir from --local-dir
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1462 # Output:
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1463 # - lookedup_file name of the merged (combined) file
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1464 # - lookedup_tmp true if it is located in the tmp directory, blank otherwise
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1465 func_lookup_file ()
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1466 {
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1467 lkfile="$1"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1468 if test -n "$local_gnulib_dir" && test -f "$local_gnulib_dir/$lkfile"; then
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1469 lookedup_file="$local_gnulib_dir/$lkfile"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1470 lookedup_tmp=
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1471 else
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1472 if test -f "$gnulib_dir/$lkfile"; then
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1473 if test -n "$local_gnulib_dir" && test -f "$local_gnulib_dir/$lkfile.diff"; then
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1474 lkbase=`echo "$lkfile" | sed -e 's,^.*/,,'`
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1475 rm -f "$tmp/$lkbase"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1476 cp "$gnulib_dir/$lkfile" "$tmp/$lkbase"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1477 patch -s "$tmp/$lkbase" < "$local_gnulib_dir/$lkfile.diff" \
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1478 || func_fatal_error "patch file $local_gnulib_dir/$lkfile.diff didn't apply cleanly"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1479 lookedup_file="$tmp/$lkbase"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1480 lookedup_tmp=true
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1481 else
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1482 lookedup_file="$gnulib_dir/$lkfile"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1483 lookedup_tmp=
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1484 fi
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1485 else
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1486 func_fatal_error "file $gnulib_dir/$lkfile not found"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1487 fi
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1488 fi
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1489 }
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1490
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1491 # func_sanitize_modulelist
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1492 # receives a list of possible module names on standard input, one per line.
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1493 # It removes those which are just file names unrelated to modules, and outputs
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1494 # the resulting list to standard output, one per line.
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1495 func_sanitize_modulelist ()
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1496 {
17378
1d9362a18c34 Assume gnulib is checked out from Git, not CVS
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 17269
diff changeset
1497 sed -e '/^ChangeLog$/d' -e '/\/ChangeLog$/d' \
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1498 -e '/^COPYING$/d' -e '/\/COPYING$/d' \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1499 -e '/^README$/d' -e '/\/README$/d' \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1500 -e '/^TEMPLATE$/d' \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1501 -e '/^TEMPLATE-EXTENDED$/d' \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1502 -e '/^TEMPLATE-TESTS$/d' \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1503 -e '/^\..*/d' \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1504 -e '/~$/d'
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1505 }
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1506
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1507 # func_all_modules
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1508 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1509 # - local_gnulib_dir from --local-dir
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1510 func_all_modules ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1511 {
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1512 # Filter out metainformation files like README, which are not modules.
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1513 # Filter out unit test modules; they can be retrieved through
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1514 # --extract-tests-module if desired.
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1515 {
7805
2ee7433618fe Add support for subdirectories of the 'modules/' directory.
Bruno Haible <bruno@clisp.org>
parents: 7788
diff changeset
1516 (cd "$gnulib_dir" && find modules -type f -print | sed -e 's,^modules/,,')
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1517 if test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules"; then
7805
2ee7433618fe Add support for subdirectories of the 'modules/' directory.
Bruno Haible <bruno@clisp.org>
parents: 7788
diff changeset
1518 (cd "$local_gnulib_dir" && find modules -type f -print | sed -e 's,^modules/,,' -e 's,\.diff$,,')
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1519 fi
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
1520 } \
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
1521 | func_sanitize_modulelist \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
1522 | sed -e '/-tests$/d' \
7319
1726cc39709b Use "sort -u" where it makes sense.
Bruno Haible <bruno@clisp.org>
parents: 7299
diff changeset
1523 | LC_ALL=C sort -u
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1524 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1525
13081
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1526 # func_exists_module module
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1527 # tests whether a module, given by name, exists
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1528 # Input:
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1529 # - local_gnulib_dir from --local-dir
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1530 func_exists_module ()
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1531 {
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1532 { test -f "$gnulib_dir/modules/$1" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1533 || { test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1534 && test -f "$local_gnulib_dir/modules/$1"; }; } \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1535 && test "ChangeLog" != "$1" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1536 && test "COPYING" != "$1" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1537 && test "README" != "$1" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1538 && test "TEMPLATE" != "$1" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1539 && test "TEMPLATE-EXTENDED" != "$1" \
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1540 && test "TEMPLATE-TESTS" != "$1"
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1541 }
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1542
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1543 # func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1544 # verifies a module name
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1545 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1546 # - local_gnulib_dir from --local-dir
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1547 # - module module name argument
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1548 func_verify_module ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1549 {
13081
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
1550 if func_exists_module "$module"; then
7168
56632b3512af Make it work also with Solaris /bin/sh.
Bruno Haible <bruno@clisp.org>
parents: 7142
diff changeset
1551 # OK, $module is a correct module name.
7212
232ee448d272 Better error handling.
Bruno Haible <bruno@clisp.org>
parents: 7199
diff changeset
1552 # Verify that building the module description with 'patch' succeeds.
232ee448d272 Better error handling.
Bruno Haible <bruno@clisp.org>
parents: 7199
diff changeset
1553 func_lookup_file "modules/$module"
7168
56632b3512af Make it work also with Solaris /bin/sh.
Bruno Haible <bruno@clisp.org>
parents: 7142
diff changeset
1554 else
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
1555 func_warning "module $module doesn't exist"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1556 module=
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1557 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1558 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1559
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1560 # func_verify_nontests_module
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1561 # verifies a module name, excluding tests modules
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1562 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1563 # - local_gnulib_dir from --local-dir
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1564 # - module module name argument
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1565 func_verify_nontests_module ()
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1566 {
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1567 case "$module" in
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1568 *-tests ) module= ;;
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1569 * ) func_verify_module ;;
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1570 esac
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1571 }
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1572
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1573 # func_verify_tests_module
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1574 # verifies a module name, considering only tests modules
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1575 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1576 # - local_gnulib_dir from --local-dir
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1577 # - module module name argument
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1578 func_verify_tests_module ()
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1579 {
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1580 case "$module" in
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1581 *-tests ) func_verify_module ;;
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1582 * ) module= ;;
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1583 esac
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1584 }
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
1585
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1586 # Suffix of a sed expression that extracts a particular field from a
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1587 # module description.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1588 # A field starts with a line that contains a keyword, such as 'Description',
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1589 # followed by a colon and optional whitespace. All following lines, up to
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1590 # the next field (or end of file if there is none) form the contents of the
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1591 # field.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1592 # An absent field is equivalent to a field with empty contents.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1593 # NOTE: Keep this in sync with sed_extract_cache_prog below!
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1594 sed_extract_prog=':[ ]*$/ {
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1595 :a
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1596 n
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1597 s/^Description:[ ]*$//
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1598 s/^Comment:[ ]*$//
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1599 s/^Status:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1600 s/^Notice:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1601 s/^Applicability:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1602 s/^Files:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1603 s/^Depends-on:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1604 s/^configure\.ac-early:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1605 s/^configure\.ac:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1606 s/^Makefile\.am:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1607 s/^Include:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1608 s/^Link:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1609 s/^License:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1610 s/^Maintainer:[ ]*$//
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1611 tb
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1612 p
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1613 ba
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1614 :b
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1615 }'
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1616
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1617 # Piece of a sed expression that converts a field header line to a shell
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1618 # variable name,
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1619 # NOTE: Keep this in sync with sed_extract_prog above!
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1620 sed_extract_field_header='
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1621 s/^Description:[ ]*$/description/
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1622 s/^Comment:[ ]*$/comment/
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1623 s/^Status:[ ]*$/status/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1624 s/^Notice:[ ]*$/notice/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1625 s/^Applicability:[ ]*$/applicability/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1626 s/^Files:[ ]*$/files/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1627 s/^Depends-on:[ ]*$/dependson/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1628 s/^configure\.ac-early:[ ]*$/configureac_early/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1629 s/^configure\.ac:[ ]*$/configureac/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1630 s/^Makefile\.am:[ ]*$/makefile/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1631 s/^Include:[ ]*$/include/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1632 s/^Link:[ ]*$/link/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1633 s/^License:[ ]*$/license/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1634 s/^Maintainer:[ ]*$/maintainer/'
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1635
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1636 if $modcache; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1637
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1638 if $have_associative; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1639
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1640 # Declare the associative arrays.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1641 declare -A modcache_cached
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1642 sed_to_declare_statement='s|^.*/\([a-zA-Z0-9_]*\)/$|declare -A modcache_\1|p'
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1643 declare_script=`echo "$sed_extract_field_header" | sed -n -e "$sed_to_declare_statement"`
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1644 eval "$declare_script"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1645
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1646 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1647
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1648 # func_cache_var module
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1649 # computes the cache variable name corresponding to $module.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1650 # Note: This computation can map different module names to the same
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1651 # cachevar (such as 'foo-bar', 'foo_bar', or 'foo/bar'); the caller has
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1652 # to protect against this case.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1653 # Output:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1654 # - cachevar a shell variable name
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1655 if (f=foo; eval echo '${f//o/e}') < /dev/null 2>/dev/null | grep fee >/dev/null; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1656 # Bash 2.0 and newer, ksh, and zsh support the syntax
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1657 # ${param//pattern/replacement}
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1658 # as a shorthand for
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1659 # `echo "$param" | sed -e "s/pattern/replacement/g"`.
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1660 # Note: The 'eval' is necessary for dash and NetBSD /bin/sh.
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1661 eval 'func_cache_var ()
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1662 {
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1663 cachevar=c_${1//[!a-zA-Z0-9_]/_}
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1664 }'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1665 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1666 func_cache_var ()
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1667 {
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1668 case $1 in
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1669 *[!a-zA-Z0-9_]*)
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1670 cachevar=c_`echo "$1" | LC_ALL=C sed -e 's/[^a-zA-Z0-9_]/_/g'` ;;
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1671 *)
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1672 cachevar=c_$1 ;;
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1673 esac
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1674 }
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1675 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1676
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1677 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1678
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1679 # func_init_sed_convert_to_cache_statements
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1680 # Input:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1681 # - modcachevar_assignment
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1682 # Output:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1683 # - sed_convert_to_cache_statements
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1684 func_init_sed_convert_to_cache_statements ()
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1685 {
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1686 # 'sed' script that turns a module description into shell script
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1687 # assignments, suitable to be eval'ed. All active characters are escaped.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1688 # This script turns
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1689 # Description:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1690 # Some module's description
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1691 #
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1692 # Files:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1693 # lib/file.h
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1694 # into:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1695 # modcache_description[$1]=\
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1696 # 'Some module'"'"'s description
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1697 # '
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1698 # modcache_files[$1]=\
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1699 # 'lib/file.h'
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1700 # or:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1701 # c_MODULE_description_set=set; c_MODULE_description=\
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1702 # 'Some module'"'"'s description
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1703 # '
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1704 # c_MODULE_files_set=set; c_MODULE_files=\
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1705 # 'lib/file.h'
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1706 # The script consists of two parts:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1707 # 1) Ignore the lines before the first field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1708 # 2) A loop, treating non-field-header lines by escaping single quotes
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1709 # and adding a closing quote in the last line,
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1710 sed_convert_to_cache_statements="
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1711 :llla
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1712 # Here we have not yet seen a field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1713
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1714 # See if the current line contains a field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1715 t llla1
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1716 :llla1
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1717 ${sed_extract_field_header}
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1718 t lllb
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1719
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1720 # No field header. Ignore the line.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1721
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1722 # Read the next line. Upon EOF, just exit.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1723 n
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1724 b llla
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1725
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1726 :lllb
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1727 # The current line contains a field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1728
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1729 # Turn it into the beginning of an assignment.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1730 s/^\\(.*\\)\$/${modcachevar_assignment}\\\\/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1731
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1732 # Move it to the hold space. Don't print it yet,
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1733 # because we want no assignment if the field is empty.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1734 h
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1735
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1736 # Read the next line.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1737 # Upon EOF, the field was empty. Print no assignment. Just exit.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1738 n
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1739
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1740 # See if the current line contains a field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1741 t lllb1
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1742 :lllb1
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1743 ${sed_extract_field_header}
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1744 # If it is, the previous field was empty. Print no assignment.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1745 t lllb
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1746
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1747 # Not a field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1748
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1749 # Print the previous line, held in the hold space.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1750 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1751 p
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1752 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1753
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1754 # Transform single quotes.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1755 s/'/'\"'\"'/g
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1756
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1757 # Prepend a single quote.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1758 s/^/'/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1759
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1760 :lllc
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1761
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1762 # Move it to the hold space.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1763 h
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1764
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1765 # Read the next line.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1766 # Upon EOF, branch.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1767 \${
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1768 b llle
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1769 }
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1770 n
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1771
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1772 # See if the current line contains a field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1773 t lllc1
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1774 :lllc1
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1775 ${sed_extract_field_header}
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1776 t llld
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1777
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1778 # Print the previous line, held in the hold space.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1779 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1780 p
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1781 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1782
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1783 # Transform single quotes.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1784 s/'/'\"'\"'/g
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1785
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1786 b lllc
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1787
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1788 :llld
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1789 # A field header.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1790 # Print the previous line, held in the hold space, with a single quote
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1791 # to end the assignment.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1792 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1793 s/\$/'/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1794 p
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1795 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1796
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1797 b lllb
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1798
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1799 :llle
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1800 # EOF seen.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1801 # Print the previous line, held in the hold space, with a single quote
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1802 # to end the assignment.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1803 x
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1804 s/\$/'/
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1805 p
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1806 # Exit.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1807 n
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1808 "
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1809 if ! $sed_comments; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1810 # Remove comments.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1811 sed_convert_to_cache_statements=`echo "$sed_convert_to_cache_statements" \
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1812 | sed -e 's/^ *//' -e 's/^#.*//'`
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1813 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1814 }
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1815
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1816 if $have_associative; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1817 # sed_convert_to_cache_statements does not depend on the module.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1818 modcachevar_assignment='modcache_\1[$1]='
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1819 func_init_sed_convert_to_cache_statements
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1820 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1821
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1822 # func_cache_lookup_module module
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1823 #
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1824 # looks up a module, like 'func_lookup_file modules/$module', and stores all
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1825 # of its relevant data in a cache in the memory of the processing shell. If
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1826 # already cached, it does not look it up again, thus saving file access time.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1827 # Parameters:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1828 # - module non-empty string
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1829 # Output if $have_associative:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1830 # - modcache_cached[$module] set to yes
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1831 # - modcache_description[$module] ==
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1832 # - modcache_status[$module] \ set to the field's value, minus the
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1833 # - ... / final newline,
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1834 # - modcache_maintainer[$module] == or unset if the field's value is empty
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1835 # Output if ! $have_associative:
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1836 # - cachevar a shell variable name
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1837 # - ${cachevar}_cached set to $module
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1838 # - ${cachevar}_description ==
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1839 # - ${cachevar}_status \ set to the field's value, minus the
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1840 # - ... / final newline,
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1841 # - ${cachevar}_maintainer == or unset if the field's value is empty
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1842 # - ${cachevar}_description_set ==
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1843 # - ${cachevar}_status_set \ set to non-empty if the field's value
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1844 # - ... / is non-empty,
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1845 # - ${cachevar}_maintainer_set == or unset if the field's value is empty
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1846 func_cache_lookup_module ()
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1847 {
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1848 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1849 eval 'cached=${modcache_cached[$1]}'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1850 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1851 func_cache_var "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1852 eval "cached=\"\$${cachevar}_cached\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1853 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1854 if test -z "$cached"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1855 # Not found in cache. Look it up on the file system.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1856 func_lookup_file "modules/$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1857 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1858 eval 'modcache_cached[$1]=yes'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1859 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1860 eval "${cachevar}_cached=\"\$1\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1861 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1862 if ! $have_associative; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1863 # sed_convert_to_cache_statements depends on the module.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1864 modcachevar_assignment="${cachevar}"'_\1_set=set; '"${cachevar}"'_\1='
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1865 func_init_sed_convert_to_cache_statements
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1866 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1867 cache_statements=`LC_ALL=C sed -n -e "$sed_convert_to_cache_statements" < "$lookedup_file"`
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1868 eval "$cache_statements"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1869 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1870 if ! $have_associative; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1871 if test "$1" != "$cached"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1872 func_fatal_error "cache variable collision between $1 and $cached"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1873 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1874 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1875 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1876 }
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1877
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1878 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1879
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1880 # func_get_description module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1881 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
1882 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1883 # - modcache true or false, from --cache-modules/--no-cache-modules
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1884 func_get_description ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1885 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1886 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1887 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1888 sed -n -e "/^Description$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1889 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1890 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1891 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1892 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1893 if eval 'test -n "${modcache_description[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1894 eval 'echo "${modcache_description[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1895 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1896 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1897 eval "field_set=\"\$${cachevar}_description_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1898 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1899 eval "field_value=\"\$${cachevar}_description\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1900 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1901 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1902 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1903 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1904 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
1905
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1906 # func_get_comment module
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1907 # Input:
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1908 # - local_gnulib_dir from --local-dir
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1909 # - modcache true or false, from --cache-modules/--no-cache-modules
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1910 func_get_comment ()
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1911 {
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1912 if ! $modcache; then
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1913 func_lookup_file "modules/$1"
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1914 sed -n -e "/^Comment$sed_extract_prog" < "$lookedup_file"
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1915 else
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1916 func_cache_lookup_module "$1"
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1917 # Output the field's value, including the final newline (if any).
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1918 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1919 if eval 'test -n "${modcache_comment[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1920 eval 'echo "${modcache_comment[$1]}"'
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1921 fi
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1922 else
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1923 eval "field_set=\"\$${cachevar}_comment_set\""
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1924 if test -n "$field_set"; then
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1925 eval "field_value=\"\$${cachevar}_comment\""
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1926 echo "${field_value}"
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1927 fi
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1928 fi
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1929 fi
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1930 }
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
1931
10743
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1932 # func_get_status module
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1933 # Input:
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1934 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1935 # - modcache true or false, from --cache-modules/--no-cache-modules
10743
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1936 func_get_status ()
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1937 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1938 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1939 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1940 sed -n -e "/^Status$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1941 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1942 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1943 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1944 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1945 if eval 'test -n "${modcache_status[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1946 eval 'echo "${modcache_status[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1947 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1948 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1949 eval "field_set=\"\$${cachevar}_status_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1950 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1951 eval "field_value=\"\$${cachevar}_status\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1952 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1953 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1954 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1955 fi
10743
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1956 }
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
1957
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1958 # func_get_notice module
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1959 # Input:
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1960 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1961 # - modcache true or false, from --cache-modules/--no-cache-modules
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1962 func_get_notice ()
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1963 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1964 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1965 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1966 sed -n -e "/^Notice$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1967 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1968 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1969 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1970 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1971 if eval 'test -n "${modcache_notice[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1972 eval 'echo "${modcache_notice[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1973 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1974 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1975 eval "field_set=\"\$${cachevar}_notice_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1976 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1977 eval "field_value=\"\$${cachevar}_notice\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1978 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1979 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1980 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1981 fi
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1982 }
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
1983
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
1984 # func_get_applicability module
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
1985 # Input:
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
1986 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1987 # - modcache true or false, from --cache-modules/--no-cache-modules
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
1988 # The expected result (on stdout) is either 'main', or 'tests', or 'all'.
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
1989 func_get_applicability ()
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
1990 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1991 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1992 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
1993 my_applicability=`sed -n -e "/^Applicability$sed_extract_prog" < "$lookedup_file"`
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1994 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1995 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1996 # Get the field's value, without the final newline.
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1997 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
1998 eval 'my_applicability="${modcache_applicability[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
1999 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2000 eval "my_applicability=\"\$${cachevar}_applicability\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2001 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2002 fi
12854
a57c17c10b63 gnulib-tool: cache module metainformation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12819
diff changeset
2003 if test -n "$my_applicability"; then
a57c17c10b63 gnulib-tool: cache module metainformation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12819
diff changeset
2004 echo $my_applicability
a57c17c10b63 gnulib-tool: cache module metainformation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12819
diff changeset
2005 else
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
2006 # The default is 'main' or 'tests', depending on the module's name.
12854
a57c17c10b63 gnulib-tool: cache module metainformation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12819
diff changeset
2007 case $1 in
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2008 *-tests) echo "tests";;
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2009 *) echo "main";;
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
2010 esac
12854
a57c17c10b63 gnulib-tool: cache module metainformation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12819
diff changeset
2011 fi
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
2012 }
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
2013
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2014 # func_get_filelist module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2015 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2016 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2017 # - modcache true or false, from --cache-modules/--no-cache-modules
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2018 func_get_filelist ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2019 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2020 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2021 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2022 sed -n -e "/^Files$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2023 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2024 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2025 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2026 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2027 if eval 'test -n "${modcache_files[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2028 eval 'echo "${modcache_files[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2029 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2030 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2031 eval "field_set=\"\$${cachevar}_files_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2032 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2033 eval "field_value=\"\$${cachevar}_files\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2034 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2035 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2036 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2037 fi
11094
5e937a2f5647 Backport improved autoconf semantics of AC_DEFUN_ONCE.
Eric Blake <ebb9@byu.net>
parents: 11065
diff changeset
2038 echo m4/00gnulib.m4
7788
e3424061171f Back from an automatic module-indicator macro to a module-indicator macro
Bruno Haible <bruno@clisp.org>
parents: 7781
diff changeset
2039 echo m4/gnulib-common.m4
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
2040 case "$autoconf_minversion" in
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
2041 2.59)
9879
e0ce0891df69 Avoid some more autoconf warnings.
Eric Blake <ebb9@byu.net>
parents: 9875
diff changeset
2042 echo m4/onceonly.m4
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
2043 ;;
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
2044 esac
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2045 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2046
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2047 # func_filter_filelist outputvar separator filelist prefix suffix removed_prefix removed_suffix [added_prefix [added_suffix]]
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2048 # stores in outputvar the filtered and processed filelist. Filtering: Only the
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2049 # elements starting with prefix and ending with suffix are considered.
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2050 # Processing: removed_prefix and removed_suffix are removed from each element,
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2051 # added_prefix and added_suffix are added to each element.
12743
3d337755e12c gnulib-tool: fix filelist for AIX, HP-UX ksh.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12741
diff changeset
2052 # prefix, suffix should not contain shell-special characters.
11037
d94dc78c3947 Improve func_remove_prefix, func_remove_suffix.
Bruno Haible <bruno@clisp.org>
parents: 10993
diff changeset
2053 # removed_prefix, removed_suffix should not contain the characters "$`\{}[]^|.
11421
57b6d75143fd Fix comment for func_filter_filelist.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11404
diff changeset
2054 # added_prefix, added_suffix should not contain the characters \|&.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2055 func_filter_filelist ()
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2056 {
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2057 if test "$2" != "$nl" \
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2058 || { $fast_func_append \
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2059 && { test -z "$6" || $fast_func_remove_prefix; } \
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2060 && { test -z "$7" || $fast_func_remove_suffix; }; \
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2061 }; then
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2062 ffflist=
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2063 for fff in $3; do
12743
3d337755e12c gnulib-tool: fix filelist for AIX, HP-UX ksh.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12741
diff changeset
2064 # Do not quote possibly-empty parameters in case patterns,
3d337755e12c gnulib-tool: fix filelist for AIX, HP-UX ksh.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12741
diff changeset
2065 # AIX and HP-UX ksh won't match them if they are empty.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2066 case "$fff" in
12743
3d337755e12c gnulib-tool: fix filelist for AIX, HP-UX ksh.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12741
diff changeset
2067 $4*$5)
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2068 if test -n "$6"; then
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2069 func_remove_prefix fff "$6"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2070 fi
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2071 if test -n "$7"; then
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2072 func_remove_suffix fff "$7"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2073 fi
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2074 fff="$8${fff}$9"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2075 if test -z "$ffflist"; then
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2076 ffflist="${fff}"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2077 else
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2078 func_append ffflist "$2${fff}"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2079 fi
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2080 ;;
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2081 esac
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2082 done
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2083 else
10993
996a5b3859fe gnulib-tool: fix sed-based filtering
Jim Meyering <meyering@redhat.com>
parents: 10989
diff changeset
2084 sed_fff_filter="s|^$6\(.*\)$7\$|$8\\1$9|"
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2085 ffflist=`for fff in $3; do
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2086 case "$fff" in
12743
3d337755e12c gnulib-tool: fix filelist for AIX, HP-UX ksh.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12741
diff changeset
2087 $4*$5) echo "$fff" ;;
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2088 esac
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2089 done | sed -e "$sed_fff_filter"`
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2090 fi
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2091 eval "$1=\"\$ffflist\""
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2092 }
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2093
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2094 # func_get_dependencies module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2095 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2096 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2097 # - modcache true or false, from --cache-modules/--no-cache-modules
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2098 func_get_dependencies ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2099 {
13081
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
2100 # ${module}-tests implicitly depends on ${module}, if that module exists.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2101 case "$1" in
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2102 *-tests)
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2103 fgd1="$1"
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2104 func_remove_suffix fgd1 '-tests'
13081
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
2105 if func_exists_module "$fgd1"; then
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
2106 echo "$fgd1"
012563ccbd85 gnulib-tool: Allow 'foo-tests' module even if there is no module 'foo'.
Bruno Haible <bruno@clisp.org>
parents: 13080
diff changeset
2107 fi
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2108 ;;
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2109 esac
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2110 # Then the explicit dependencies listed in the module description.
14908
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2111 { if ! $modcache; then
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2112 func_lookup_file "modules/$1"
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2113 sed -n -e "/^Depends-on$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2114 else
14908
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2115 func_cache_lookup_module "$1"
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2116 # Output the field's value, including the final newline (if any).
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2117 if $have_associative; then
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2118 if eval 'test -n "${modcache_dependson[$1]+set}"'; then
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2119 eval 'echo "${modcache_dependson[$1]}"'
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2120 fi
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2121 else
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2122 eval "field_set=\"\$${cachevar}_dependson_set\""
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2123 if test -n "$field_set"; then
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2124 eval "field_value=\"\$${cachevar}_dependson\""
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2125 echo "${field_value}"
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2126 fi
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2127 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2128 fi
14908
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2129 } \
2b58e21ecf3c gnulib-tool: Allow comments in the 'Depends-on' section.
Bruno Haible <bruno@clisp.org>
parents: 14894
diff changeset
2130 | sed -e '/^#/d'
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2131 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2132
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2133 # func_get_autoconf_early_snippet module
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2134 # Input:
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2135 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2136 # - modcache true or false, from --cache-modules/--no-cache-modules
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2137 func_get_autoconf_early_snippet ()
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2138 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2139 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2140 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2141 sed -n -e "/^configure\.ac-early$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2142 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2143 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2144 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2145 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2146 if eval 'test -n "${modcache_configureac_early[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2147 eval 'echo "${modcache_configureac_early[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2148 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2149 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2150 eval "field_set=\"\$${cachevar}_configureac_early_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2151 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2152 eval "field_value=\"\$${cachevar}_configureac_early\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2153 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2154 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2155 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2156 fi
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2157 }
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
2158
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2159 # func_get_autoconf_snippet module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2160 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2161 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2162 # - modcache true or false, from --cache-modules/--no-cache-modules
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2163 func_get_autoconf_snippet ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2164 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2165 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2166 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2167 sed -n -e "/^configure\.ac$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2168 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2169 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2170 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2171 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2172 if eval 'test -n "${modcache_configureac[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2173 eval 'echo "${modcache_configureac[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2174 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2175 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2176 eval "field_set=\"\$${cachevar}_configureac_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2177 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2178 eval "field_value=\"\$${cachevar}_configureac\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2179 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2180 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2181 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2182 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2183 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2184
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2185 # func_get_automake_snippet_conditional module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2186 # returns the part of the Makefile.am snippet that can be put inside Automake
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2187 # conditionals.
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2188 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2189 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2190 # - modcache true or false, from --cache-modules/--no-cache-modules
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2191 func_get_automake_snippet_conditional ()
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2192 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2193 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2194 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2195 sed -n -e "/^Makefile\.am$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2196 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2197 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2198 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2199 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2200 if eval 'test -n "${modcache_makefile[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2201 eval 'echo "${modcache_makefile[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2202 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2203 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2204 eval "field_set=\"\$${cachevar}_makefile_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2205 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2206 eval "field_value=\"\$${cachevar}_makefile\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2207 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2208 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2209 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2210 fi
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2211 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2212
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2213 # func_get_automake_snippet_unconditional module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2214 # returns the part of the Makefile.am snippet that must stay outside of
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2215 # Automake conditionals.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2216 # Input:
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2217 # - local_gnulib_dir from --local-dir
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2218 # - modcache true or false, from --cache-modules/--no-cache-modules
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2219 func_get_automake_snippet_unconditional ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2220 {
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2221 case "$1" in
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2222 *-tests)
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2223 # *-tests module live in tests/, not lib/.
9284
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2224 # Synthesize an EXTRA_DIST augmentation.
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2225 all_files=`func_get_filelist $1`
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2226 func_filter_filelist tests_files " " "$all_files" 'tests/' '' 'tests/' ''
9284
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2227 extra_files="$tests_files"
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2228 if test -n "$extra_files"; then
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2229 echo "EXTRA_DIST +=" $extra_files
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2230 echo
afba4e078ebc Synthesize an EXTRA_DIST augmentation also for tests modules.
Bruno Haible <bruno@clisp.org>
parents: 9275
diff changeset
2231 fi
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2232 ;;
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2233 *)
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2234 # Synthesize an EXTRA_DIST augmentation.
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2235 sed_combine_lines='/\\$/{
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2236 :a
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2237 N
7599
352da45c182e Interpret a backslash-newline sequence in the Makefile.am snippet as a space.
Bruno Haible <bruno@clisp.org>
parents: 7591
diff changeset
2238 s/\\\n/ /
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2239 s/\\$/\\/
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2240 ta
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2241 }'
7754
ed8105720327 * modules/absolute-header: New module.
Eric Blake <ebb9@byu.net>
parents: 7752
diff changeset
2242 sed_extract_mentioned_files='s/^lib_SOURCES[ ]*+=[ ]*//p'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2243 already_mentioned_files=` \
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2244 { if ! $modcache; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2245 func_lookup_file "modules/$1"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2246 sed -n -e "/^Makefile\.am$sed_extract_prog" < "$lookedup_file"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2247 else
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2248 func_cache_lookup_module "$1"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2249 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2250 if eval 'test -n "${modcache_makefile[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2251 eval 'echo "${modcache_makefile[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2252 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2253 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2254 eval 'field_set="$'"${cachevar}"'_makefile_set"'
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2255 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2256 eval 'field_value="$'"${cachevar}"'_makefile"'
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2257 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2258 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2259 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2260 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2261 } \
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2262 | sed -e "$sed_combine_lines" \
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2263 | sed -n -e "$sed_extract_mentioned_files" | sed -e 's/#.*//'`
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2264 all_files=`func_get_filelist $1`
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2265 func_filter_filelist lib_files "$nl" "$all_files" 'lib/' '' 'lib/' ''
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2266 # Remove $already_mentioned_files from $lib_files.
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2267 echo "$lib_files" | LC_ALL=C sort -u > "$tmp"/lib-files
12881
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
2268 extra_files=`for f in $already_mentioned_files; do echo $f; done \
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2269 | LC_ALL=C sort -u | LC_ALL=C join -v 2 - "$tmp"/lib-files`
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2270 if test -n "$extra_files"; then
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2271 echo "EXTRA_DIST +=" $extra_files
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2272 echo
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2273 fi
7640
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2274 # Synthesize also an EXTRA_lib_SOURCES augmentation.
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2275 # This is necessary so that automake can generate the right list of
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2276 # dependency rules.
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2277 # A possible approach would be to use autom4te --trace of the redefined
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2278 # AC_LIBOBJ and AC_REPLACE_FUNCS macros when creating the Makefile.am
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2279 # (use autom4te --trace, not just grep, so that AC_LIBOBJ invocations
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2280 # inside autoconf's built-in macros are not missed).
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2281 # But it's simpler and more robust to do it here, based on the file list.
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2282 # If some .c file exists and is not used with AC_LIBOBJ - for example,
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2283 # a .c file is preprocessed into another .c file for BUILT_SOURCES -,
a4d97c9b97de Synthesize also an EXTRA_lib_SOURCES augmentation.
Bruno Haible <bruno@clisp.org>
parents: 7638
diff changeset
2284 # automake will generate a useless dependency; this is harmless.
8356
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2285 case "$1" in
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2286 relocatable-prog-wrapper) ;;
13759
38b745d4e6a4 gnulib-tool: Fixes for --create-testdir with --libtool.
Bruno Haible <bruno@clisp.org>
parents: 13752
diff changeset
2287 pt_chown) ;;
8356
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2288 *)
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2289 func_filter_filelist extra_files "$nl" "$extra_files" '' '.c' '' ''
8356
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2290 if test -n "$extra_files"; then
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2291 echo "EXTRA_lib_SOURCES +=" $extra_files
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2292 echo
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2293 fi
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2294 ;;
72f47158c694 Special handling for the 'relocatable-prog-wrapper' module.
Bruno Haible <bruno@clisp.org>
parents: 8079
diff changeset
2295 esac
9107
2878e8c70604 Ensure that also files under build-aux/ are distributed.
Bruno Haible <bruno@clisp.org>
parents: 9096
diff changeset
2296 # Synthesize an EXTRA_DIST augmentation also for the files in build-aux/.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2297 func_filter_filelist buildaux_files "$nl" "$all_files" 'build-aux/' '' 'build-aux/' ''
9107
2878e8c70604 Ensure that also files under build-aux/ are distributed.
Bruno Haible <bruno@clisp.org>
parents: 9096
diff changeset
2298 if test -n "$buildaux_files"; then
2878e8c70604 Ensure that also files under build-aux/ are distributed.
Bruno Haible <bruno@clisp.org>
parents: 9096
diff changeset
2299 sed_prepend_auxdir='s,^,$(top_srcdir)/'"$auxdir"'/,'
2878e8c70604 Ensure that also files under build-aux/ are distributed.
Bruno Haible <bruno@clisp.org>
parents: 9096
diff changeset
2300 echo "EXTRA_DIST += "`echo "$buildaux_files" | sed -e "$sed_prepend_auxdir"`
2878e8c70604 Ensure that also files under build-aux/ are distributed.
Bruno Haible <bruno@clisp.org>
parents: 9096
diff changeset
2301 echo
2878e8c70604 Ensure that also files under build-aux/ are distributed.
Bruno Haible <bruno@clisp.org>
parents: 9096
diff changeset
2302 fi
9807
24b7b77b3295 Install files from top/ in the destination directory.
Bruno Haible <bruno@clisp.org>
parents: 9806
diff changeset
2303 # Synthesize an EXTRA_DIST augmentation also for the files from top/.
10989
8b11d1d206e0 Speed up gnulib-tool by doing more string processing through shell built-ins.
Bruno Haible <bruno@clisp.org>
parents: 10987
diff changeset
2304 func_filter_filelist top_files "$nl" "$all_files" 'top/' '' 'top/' ''
9807
24b7b77b3295 Install files from top/ in the destination directory.
Bruno Haible <bruno@clisp.org>
parents: 9806
diff changeset
2305 if test -n "$top_files"; then
24b7b77b3295 Install files from top/ in the destination directory.
Bruno Haible <bruno@clisp.org>
parents: 9806
diff changeset
2306 sed_prepend_topdir='s,^,$(top_srcdir)/,'
24b7b77b3295 Install files from top/ in the destination directory.
Bruno Haible <bruno@clisp.org>
parents: 9806
diff changeset
2307 echo "EXTRA_DIST += "`echo "$top_files" | sed -e "$sed_prepend_topdir"`
24b7b77b3295 Install files from top/ in the destination directory.
Bruno Haible <bruno@clisp.org>
parents: 9806
diff changeset
2308 echo
24b7b77b3295 Install files from top/ in the destination directory.
Bruno Haible <bruno@clisp.org>
parents: 9806
diff changeset
2309 fi
7497
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2310 ;;
6a764f23e302 gnulib-tool now synthesizes the EXTRA_DIST line.
Bruno Haible <bruno@clisp.org>
parents: 7486
diff changeset
2311 esac
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2312 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2313
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2314 # func_get_automake_snippet module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2315 # Input:
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2316 # - local_gnulib_dir from --local-dir
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2317 # - modcache true or false, from --cache-modules/--no-cache-modules
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2318 func_get_automake_snippet ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2319 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2320 func_get_automake_snippet_conditional "$1"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2321 func_get_automake_snippet_unconditional "$1"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2322 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2323
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2324 # func_get_include_directive module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2325 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2326 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2327 # - modcache true or false, from --cache-modules/--no-cache-modules
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2328 func_get_include_directive ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2329 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2330 {
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2331 if ! $modcache; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2332 func_lookup_file "modules/$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2333 sed -n -e "/^Include$sed_extract_prog" < "$lookedup_file"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2334 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2335 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2336 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2337 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2338 if eval 'test -n "${modcache_include[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2339 eval 'echo "${modcache_include[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2340 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2341 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2342 eval "field_set=\"\$${cachevar}_include_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2343 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2344 eval "field_value=\"\$${cachevar}_include\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2345 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2346 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2347 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2348 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2349 } | sed -e 's/^\(["<]\)/#include \1/'
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2350 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
2351
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2352 # func_get_link_directive module
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2353 # Input:
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2354 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2355 # - modcache true or false, from --cache-modules/--no-cache-modules
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2356 func_get_link_directive ()
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2357 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2358 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2359 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2360 sed -n -e "/^Link$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2361 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2362 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2363 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2364 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2365 if eval 'test -n "${modcache_link[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2366 eval 'echo "${modcache_link[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2367 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2368 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2369 eval "field_set=\"\$${cachevar}_link_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2370 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2371 eval "field_value=\"\$${cachevar}_link\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2372 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2373 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2374 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2375 fi
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2376 }
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
2377
16153
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2378 # func_get_license_raw module
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2379 # Input:
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2380 # - local_gnulib_dir from --local-dir
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2381 # - modcache true or false, from --cache-modules/--no-cache-modules
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2382 func_get_license_raw ()
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2383 {
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2384 if ! $modcache; then
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2385 func_lookup_file "modules/$1"
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2386 sed -n -e "/^License$sed_extract_prog" < "$lookedup_file"
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2387 else
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2388 func_cache_lookup_module "$1"
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2389 # Output the field's value, including the final newline (if any).
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2390 if $have_associative; then
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2391 if eval 'test -n "${modcache_license[$1]+set}"'; then
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2392 eval 'echo "${modcache_license[$1]}"'
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2393 fi
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2394 else
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2395 eval "field_set=\"\$${cachevar}_license_set\""
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2396 if test -n "$field_set"; then
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2397 eval "field_value=\"\$${cachevar}_license\""
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2398 echo "${field_value}"
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2399 fi
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2400 fi
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2401 fi
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2402 }
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2403
5251
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
2404 # func_get_license module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2405 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2406 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2407 # - modcache true or false, from --cache-modules/--no-cache-modules
5251
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
2408 func_get_license ()
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
2409 {
16153
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2410 # Warn if the License field is missing.
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2411 case "$1" in
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2412 *-tests ) ;;
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2413 * )
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2414 license=`func_get_license_raw "$1"`
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2415 if test -z "$license"; then
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2416 func_warning "module $1 lacks a License"
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2417 fi
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2418 ;;
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2419 esac
12854
a57c17c10b63 gnulib-tool: cache module metainformation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12819
diff changeset
2420 {
16153
04717ea7c365 gnulib-tool: Verify that the License field is present and non-empty.
Bruno Haible <bruno@clisp.org>
parents: 16122
diff changeset
2421 func_get_license_raw "$1"
7896
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
2422 # The default is GPL.
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
2423 echo "GPL"
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
2424 } | sed -e 's,^ *$,,' | sed -e 1q
5251
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
2425 }
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
2426
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
2427 # func_get_maintainer module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2428 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2429 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2430 # - modcache true or false, from --cache-modules/--no-cache-modules
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
2431 func_get_maintainer ()
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
2432 {
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2433 if ! $modcache; then
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2434 func_lookup_file "modules/$1"
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2435 sed -n -e "/^Maintainer$sed_extract_prog" < "$lookedup_file"
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2436 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2437 func_cache_lookup_module "$1"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2438 # Output the field's value, including the final newline (if any).
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2439 if $have_associative; then
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2440 if eval 'test -n "${modcache_maintainer[$1]+set}"'; then
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
2441 eval 'echo "${modcache_maintainer[$1]}"'
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2442 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2443 else
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2444 eval "field_set=\"\$${cachevar}_maintainer_set\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2445 if test -n "$field_set"; then
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2446 eval "field_value=\"\$${cachevar}_maintainer\""
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2447 echo "${field_value}"
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2448 fi
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2449 fi
12855
e4098d9b46fa gnulib-tool: Make caching optional.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12854
diff changeset
2450 fi
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
2451 }
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
2452
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2453 # func_get_tests_module module
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2454 # Input:
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2455 # - local_gnulib_dir from --local-dir
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2456 func_get_tests_module ()
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2457 {
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2458 # The naming convention for tests modules is hardwired: ${module}-tests.
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2459 if test -f "$gnulib_dir/modules/$1"-tests \
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2460 || { test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules" \
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2461 && test -f "$local_gnulib_dir/modules/$1"-tests; }; then
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2462 echo "$1"-tests
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2463 fi
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2464 }
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2465
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2466 # func_acceptable module
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2467 # tests whether a module is acceptable.
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2468 # Input:
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2469 # - avoidlist list of modules to avoid
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2470 func_acceptable ()
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2471 {
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2472 for avoid in $avoidlist; do
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2473 if test "$avoid" = "$1"; then
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2474 return 1
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2475 fi
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2476 done
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2477 return 0
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2478 }
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2479
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2480 # sed expression to keep the first 32 characters of each line.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2481 sed_first_32_chars='s/^\(................................\).*/\1/'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2482
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2483 # func_module_shellfunc_name module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2484 # computes the shell function name that will contain the m4 macros for the module.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2485 # Input:
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2486 # - macro_prefix prefix to use
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2487 # Output:
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2488 # - shellfunc shell function name
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2489 func_module_shellfunc_name ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2490 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2491 case $1 in
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2492 *[!a-zA-Z0-9_]*)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2493 shellfunc=func_${macro_prefix}_gnulib_m4code_`echo "$1" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"` ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2494 *)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2495 shellfunc=func_${macro_prefix}_gnulib_m4code_$1 ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2496 esac
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2497 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2498
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2499 # func_module_shellvar_name module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2500 # computes the shell variable name the will be set to true once the m4 macros
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2501 # for the module have been executed.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2502 # Output:
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2503 # - shellvar shell variable name
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2504 func_module_shellvar_name ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2505 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2506 case $1 in
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2507 *[!a-zA-Z0-9_]*)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2508 shellvar=${macro_prefix}_gnulib_enabled_`echo "$1" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"` ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2509 *)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2510 shellvar=${macro_prefix}_gnulib_enabled_$1 ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2511 esac
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2512 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2513
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2514 # func_module_conditional_name module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2515 # computes the automake conditional name for the module.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2516 # Output:
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2517 # - conditional name of automake conditional
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2518 func_module_conditional_name ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2519 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2520 case $1 in
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2521 *[!a-zA-Z0-9_]*)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2522 conditional=${macro_prefix}_GNULIB_ENABLED_`echo "$1" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"` ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2523 *)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2524 conditional=${macro_prefix}_GNULIB_ENABLED_$1 ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2525 esac
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2526 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2527
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2528 # func_uncond_add_module B
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2529 # notes the presence of B as an unconditional module.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2530 #
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2531 # func_conddep_add_module A B cond
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2532 # notes the presence of a conditional dependency from module A to module B,
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2533 # subject to the condition that A is enabled and cond is true.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2534 #
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2535 # func_cond_module_p B
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2536 # tests whether module B is conditional.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2537 #
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2538 # func_cond_module_condition A B
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2539 # returns the condition when B should be enabled as a dependency of A, once the
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2540 # m4 code for A has been executed.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2541 # Output: - condition
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2542 #
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2543 if $have_associative; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2544 declare -A conddep_isuncond
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2545 declare -A conddep_dependers
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2546 declare -A conddep_condition
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2547 func_uncond_add_module ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2548 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2549 eval 'conddep_isuncond[$1]=true'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2550 eval 'unset conddep_dependers[$1]'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2551 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2552 func_conddep_add_module ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2553 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2554 eval 'isuncond="${conddep_isuncond[$2]}"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2555 if test -z "$isuncond"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2556 # No unconditional dependency to B known at this point.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2557 eval 'conddep_dependers[$2]="${conddep_dependers[$2]} $1"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2558 eval 'conddep_condition[$1---$2]="$3"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2559 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2560 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2561 func_cond_module_p ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2562 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2563 eval 'previous_dependers="${conddep_dependers[$1]}"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2564 test -n "$previous_dependers"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2565 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2566 func_cond_module_condition ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2567 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2568 eval 'condition="${conddep_condition[$1---$2]}"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2569 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2570 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2571 func_uncond_add_module ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2572 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2573 case $1 in
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2574 *[!a-zA-Z0-9_]*)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2575 suffix=`echo "$1" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"` ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2576 *)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2577 suffix=$1 ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2578 esac
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2579 eval 'conddep_isuncond_'"$suffix"'=true'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2580 eval 'unset conddep_dependers_'"$suffix"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2581 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2582 func_conddep_add_module ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2583 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2584 case $2 in
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2585 *[!a-zA-Z0-9_]*)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2586 suffix=`echo "$2" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"` ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2587 *)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2588 suffix=$2 ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2589 esac
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2590 eval 'isuncond="${conddep_isuncond_'"$suffix"'}"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2591 if test -z "$isuncond"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2592 eval 'conddep_dependers_'"$suffix"'="${conddep_dependers_'"$suffix"'} $1"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2593 suffix=`echo "$1---$2" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"`
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2594 eval 'conddep_condition_'"$suffix"'="$3"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2595 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2596 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2597 func_cond_module_p ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2598 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2599 case $1 in
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2600 *[!a-zA-Z0-9_]*)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2601 suffix=`echo "$1" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"` ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2602 *)
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2603 suffix=$1 ;;
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2604 esac
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2605 eval 'previous_dependers="${conddep_dependers_'"$suffix"'}"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2606 test -n "$previous_dependers"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2607 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2608 func_cond_module_condition ()
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2609 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2610 suffix=`echo "$1---$2" | md5sum | LC_ALL=C sed -e "$sed_first_32_chars"`
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2611 eval 'condition="${conddep_condition_'"$suffix"'}"'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2612 }
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2613 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2614
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2615 sed_dependencies_without_conditions='s/ *\[.*//'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2616
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2617 # func_modules_transitive_closure
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2618 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2619 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2620 # - modcache true or false, from --cache-modules/--no-cache-modules
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2621 # - modules list of specified modules
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
2622 # - inctests true if tests should be included, false otherwise
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
2623 # - incobsolete true if obsolete modules among dependencies should be
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
2624 # included, blank otherwise
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2625 # - inc_cxx_tests true if C++ interoperability tests should be included,
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2626 # blank otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2627 # - inc_longrunning_tests true if long-runnings tests should be included,
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2628 # blank otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2629 # - inc_privileged_tests true if tests that require root privileges should be
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2630 # included, blank otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2631 # - inc_unportable_tests true if tests that fail on some platforms should be
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
2632 # included, blank otherwise
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2633 # - inc_all_direct_tests true if all kinds of problematic unit tests among
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2634 # the unit tests of the specified modules should be
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2635 # included, blank otherwise
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2636 # - inc_all_indirect_tests true if all kinds of problematic unit tests among
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2637 # the unit tests of the dependencies should be
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2638 # included, blank otherwise
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2639 # - excl_cxx_tests true if C++ interoperability tests should be excluded,
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2640 # blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2641 # - excl_longrunning_tests true if long-runnings tests should be excluded,
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2642 # blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2643 # - excl_privileged_tests true if tests that require root privileges should be
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2644 # excluded, blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2645 # - excl_unportable_tests true if tests that fail on some platforms should be
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
2646 # excluded, blank otherwise
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2647 # - avoidlist list of modules to avoid
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2648 # - cond_dependencies true if conditional dependencies shall be supported,
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2649 # blank otherwise
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2650 # - tmp pathname of a temporary directory
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2651 # Output:
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2652 # - modules list of modules, including dependencies
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2653 # - conddep_dependers, conddep_condition information about conditionally
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2654 # enabled modules
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2655 func_modules_transitive_closure ()
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
2656 {
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2657 sed_escape_dependency='s|\([/.]\)|\\\1|g'
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2658 # In order to process every module only once (for speed), process an "input
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2659 # list" of modules, producing an "output list" of modules. During each round,
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2660 # more modules can be queued in the input list. Once a module on the input
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2661 # list has been processed, it is added to the "handled list", so we can avoid
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2662 # to process it again.
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2663 handledmodules=
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2664 inmodules="$modules"
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2665 outmodules=
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2666 fmtc_inc_all_tests="$inc_all_direct_tests"
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
2667 if test "$cond_dependencies" = true; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2668 for module in $inmodules; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2669 func_verify_module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2670 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2671 if func_acceptable $module; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2672 func_uncond_add_module $module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2673 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2674 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2675 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2676 fi
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2677 while test -n "$inmodules"; do
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2678 inmodules_this_round="$inmodules"
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2679 inmodules= # Accumulator, queue for next round
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2680 for module in $inmodules_this_round; do
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
2681 func_verify_module
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
2682 if test -n "$module"; then
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2683 if func_acceptable $module; then
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
2684 func_append outmodules " $module"
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
2685 if test "$cond_dependencies" = true; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2686 if func_get_automake_snippet_conditional $module | grep '^if ' > /dev/null; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2687 # A module whose Makefile.am snippet contains a reference to an
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2688 # automake conditional. If we were to use it conditionally, we
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2689 # would get an error
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2690 # configure: error: conditional "..." was never defined.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2691 # because automake 1.11.1 does not handle nested conditionals
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2692 # correctly. As a workaround, make the module unconditional.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2693 func_uncond_add_module $module
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2694 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2695 if func_cond_module_p $module; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2696 conditional=true
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2697 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2698 conditional=false
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2699 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2700 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2701 deps=`func_get_dependencies $module | sed -e "$sed_dependencies_without_conditions"`
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2702 # Duplicate dependencies are harmless, but Jim wants a warning.
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2703 duplicated_deps=`echo "$deps" | LC_ALL=C sort | LC_ALL=C uniq -d`
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2704 if test -n "$duplicated_deps"; then
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
2705 func_warning "module $module has duplicated dependencies: "`echo $duplicated_deps`
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2706 fi
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
2707 if $inctests; then
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2708 testsmodule=`func_get_tests_module $module`
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2709 if test -n "$testsmodule"; then
13299
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2710 deps="$deps $testsmodule"
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2711 fi
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
2712 fi
13299
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2713 for dep in $deps; do
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2714 # Determine whether to include the dependency or tests module.
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2715 inc=true
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2716 for word in `func_get_status $dep`; do
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2717 case "$word" in
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2718 obsolete)
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2719 test -n "$incobsolete" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2720 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2721 ;;
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2722 c++-test)
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2723 test -z "$excl_cxx_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2724 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2725 test -n "$fmtc_inc_all_tests" || test -n "$inc_cxx_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2726 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2727 ;;
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2728 longrunning-test)
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2729 test -z "$excl_longrunning_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2730 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2731 test -n "$fmtc_inc_all_tests" || test -n "$inc_longrunning_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2732 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2733 ;;
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2734 privileged-test)
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2735 test -z "$excl_privileged_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2736 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2737 test -n "$fmtc_inc_all_tests" || test -n "$inc_privileged_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2738 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2739 ;;
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2740 unportable-test)
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2741 test -z "$excl_unportable_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2742 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2743 test -n "$fmtc_inc_all_tests" || test -n "$inc_unportable_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2744 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2745 ;;
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2746 *-test)
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2747 test -n "$fmtc_inc_all_tests" \
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2748 || inc=false
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2749 ;;
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2750 esac
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2751 done
15854
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
2752 if $inc && func_acceptable "$dep"; then
13299
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2753 func_append inmodules " $dep"
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
2754 if test "$cond_dependencies" = true; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2755 escaped_dep=`echo "$dep" | sed -e "$sed_escape_dependency"`
14806
e551e9a7ef38 gnulib-tool: fix portability problem with MacOS sed
Paul Eggert <eggert@cs.ucla.edu>
parents: 14682
diff changeset
2756 sed_extract_condition1='/^ *'"$escaped_dep"' *$/{
e551e9a7ef38 gnulib-tool: fix portability problem with MacOS sed
Paul Eggert <eggert@cs.ucla.edu>
parents: 14682
diff changeset
2757 s/^.*$/true/p
e551e9a7ef38 gnulib-tool: fix portability problem with MacOS sed
Paul Eggert <eggert@cs.ucla.edu>
parents: 14682
diff changeset
2758 }'
e551e9a7ef38 gnulib-tool: fix portability problem with MacOS sed
Paul Eggert <eggert@cs.ucla.edu>
parents: 14682
diff changeset
2759 sed_extract_condition2='/^ *'"$escaped_dep"' *\[.*\] *$/{
e551e9a7ef38 gnulib-tool: fix portability problem with MacOS sed
Paul Eggert <eggert@cs.ucla.edu>
parents: 14682
diff changeset
2760 s/^ *'"$escaped_dep"' *\[\(.*\)\] *$/\1/p
e551e9a7ef38 gnulib-tool: fix portability problem with MacOS sed
Paul Eggert <eggert@cs.ucla.edu>
parents: 14682
diff changeset
2761 }'
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2762 condition=`func_get_dependencies $module | sed -n -e "$sed_extract_condition1" -e "$sed_extract_condition2"`
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2763 if test "$condition" = true; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2764 condition=
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2765 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2766 if test -n "$condition"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2767 func_conddep_add_module "$module" "$dep" "$condition"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2768 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2769 if $conditional; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2770 func_conddep_add_module "$module" "$dep" true
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2771 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2772 func_uncond_add_module "$dep"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2773 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2774 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
2775 fi
13299
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2776 fi
b50c33cca624 Fix regression from 2010-04-25.
Bruno Haible <bruno@clisp.org>
parents: 13264
diff changeset
2777 done
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
2778 fi
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
2779 fi
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
2780 done
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2781 handledmodules=`for m in $handledmodules $inmodules_this_round; do echo $m; done | LC_ALL=C sort -u`
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2782 # Remove $handledmodules from $inmodules.
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2783 for m in $inmodules; do echo $m; done | LC_ALL=C sort -u > "$tmp"/queued-modules
12881
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
2784 inmodules=`echo "$handledmodules" | LC_ALL=C join -v 2 - "$tmp"/queued-modules`
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
2785 fmtc_inc_all_tests="$inc_all_indirect_tests"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
2786 done
7320
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2787 modules=`for m in $outmodules; do echo $m; done | LC_ALL=C sort -u`
9349ee4e633c Speed up func_modules_transitive_closure.
Bruno Haible <bruno@clisp.org>
parents: 7319
diff changeset
2788 rm -f "$tmp"/queued-modules
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2789 }
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
2790
13420
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2791 # func_show_module_list
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2792 # Input:
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2793 # - specified_modules list of specified modules (one per line, sorted)
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2794 # - modules complete list of modules (one per line, sorted)
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2795 # - tmp pathname of a temporary directory
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2796 func_show_module_list ()
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2797 {
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2798 if case "$TERM" in
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2799 xterm*) test -t 1;;
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2800 *) false;;
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2801 esac; then
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2802 # Assume xterm compatible escape sequences.
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2803 bold_on=`printf '\x1b[1m'`
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2804 bold_off=`printf '\x1b[0m'`
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2805 else
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2806 bold_on=
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2807 bold_off=
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2808 fi
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2809 echo "Module list with included dependencies (indented):"
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2810 echo "$specified_modules" | sed -e '/^$/d' -e 's/$/| /' > "$tmp"/specified-modules
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2811 echo "$modules" | sed -e '/^$/d' \
14625
1a2352cb014f Change gnulib-tool to support NetBSD's join
J.T. Conklin <jtc@acorntoolworks.com>
parents: 14385
diff changeset
2812 | LC_ALL=C join -t '|' -a2 "$tmp"/specified-modules - \
13420
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2813 | sed -e 's/^\(.*\)|.*/|\1/' -e 's/^/ /' -e 's/^ |\(.*\)$/ '"${bold_on}"'\1'"${bold_off}"'/'
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2814 }
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
2815
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2816 # func_modules_transitive_closure_separately
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2817 # Determine main module list and tests-related module list separately.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2818 # The main module list is the transitive closure of the specified modules,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2819 # ignoring tests modules. Its lib/* sources go into $sourcebase/. If --lgpl
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2820 # is specified, it will consist only of LGPLed source.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2821 # The tests-related module list is the transitive closure of the specified
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2822 # modules, including tests modules, minus the main module list excluding
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2823 # modules of applicability 'all'. Its lib/* sources (brought in through
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2824 # dependencies of *-tests modules) go into $testsbase/. It may contain GPLed
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2825 # source, even if --lgpl is specified.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2826 # Input:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2827 # - local_gnulib_dir from --local-dir
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2828 # - modcache true or false, from --cache-modules/--no-cache-modules
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2829 # - specified_modules list of specified modules
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
2830 # - inctests true if tests should be included, false otherwise
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2831 # - incobsolete true if obsolete modules among dependencies should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2832 # included, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2833 # - inc_cxx_tests true if C++ interoperability tests should be included,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2834 # blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2835 # - inc_longrunning_tests true if long-runnings tests should be included,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2836 # blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2837 # - inc_privileged_tests true if tests that require root privileges should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2838 # included, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2839 # - inc_unportable_tests true if tests that fail on some platforms should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2840 # included, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2841 # - inc_all_direct_tests true if all kinds of problematic unit tests among
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2842 # the unit tests of the specified modules should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2843 # included, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2844 # - inc_all_indirect_tests true if all kinds of problematic unit tests among
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2845 # the unit tests of the dependencies should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2846 # included, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2847 # - excl_cxx_tests true if C++ interoperability tests should be excluded,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2848 # blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2849 # - excl_longrunning_tests true if long-runnings tests should be excluded,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2850 # blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2851 # - excl_privileged_tests true if tests that require root privileges should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2852 # excluded, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2853 # - excl_unportable_tests true if tests that fail on some platforms should be
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2854 # excluded, blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2855 # - avoidlist list of modules to avoid
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2856 # - cond_dependencies true if conditional dependencies shall be supported,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2857 # blank otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2858 # - tmp pathname of a temporary directory
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2859 # Output:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2860 # - main_modules list of modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2861 # - testsrelated_modules list of tests-related modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2862 # - conddep_dependers, conddep_condition information about conditionally
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2863 # enabled modules
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2864 func_modules_transitive_closure_separately ()
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2865 {
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2866 # Determine main module list.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2867 saved_inctests="$inctests"
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
2868 inctests=false
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2869 modules="$specified_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2870 func_modules_transitive_closure
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2871 main_modules="$modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2872 inctests="$saved_inctests"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2873 if test $verbose -ge 1; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2874 echo "Main module list:"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2875 echo "$main_modules" | sed -e 's/^/ /'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2876 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2877 # Determine tests-related module list.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2878 echo "$final_modules" | LC_ALL=C sort -u > "$tmp"/final-modules
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2879 testsrelated_modules=`for module in $main_modules; do
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2880 if test \`func_get_applicability $module\` = main; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2881 echo $module
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2882 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2883 done \
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2884 | LC_ALL=C sort -u | LC_ALL=C join -v 2 - "$tmp"/final-modules`
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2885 if test $verbose -ge 1; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2886 echo "Tests-related module list:"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2887 echo "$testsrelated_modules" | sed -e 's/^/ /'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2888 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2889 }
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2890
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2891 # func_determine_use_libtests
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2892 # Determines whether a $testsbase/libtests.a is needed.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2893 # Input:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2894 # - local_gnulib_dir from --local-dir
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2895 # - modcache true or false, from --cache-modules/--no-cache-modules
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2896 # - testsrelated_modules list of tests-related modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2897 # Output:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2898 # - use_libtests true if a $testsbase/libtests.a is needed, false otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2899 func_determine_use_libtests ()
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2900 {
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2901 use_libtests=false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2902 for module in $testsrelated_modules; do
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2903 func_verify_nontests_module
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2904 if test -n "$module"; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2905 all_files=`func_get_filelist $module`
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2906 # Test whether some file in $all_files lies in lib/.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2907 for f in $all_files; do
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2908 case $f in
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2909 lib/*)
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2910 use_libtests=true
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2911 break 2
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2912 ;;
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2913 esac
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2914 done
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2915 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2916 done
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2917 }
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2918
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2919 # func_modules_add_dummy
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2920 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
2921 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2922 # - modcache true or false, from --cache-modules/--no-cache-modules
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2923 # - modules list of modules, including dependencies
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2924 # Output:
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2925 # - modules list of modules, including 'dummy' if needed
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2926 func_modules_add_dummy ()
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2927 {
10985
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
2928 # Determine whether any module provides a lib_SOURCES augmentation.
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2929 have_lib_SOURCES=
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2930 sed_remove_backslash_newline=':a
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2931 /\\$/{
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2932 s/\\$//
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2933 N
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2934 s/\n//
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2935 ba
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2936 }'
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2937 for module in $modules; do
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2938 func_verify_nontests_module
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2939 if test -n "$module"; then
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2940 # Extract the value of "lib_SOURCES += ...".
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
2941 for file in `func_get_automake_snippet "$module" | sed -e "$sed_remove_backslash_newline" | sed -n -e 's,^lib_SOURCES[ ]*+=\([^#]*\).*$,\1,p'`; do
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2942 # Ignore .h files since they are not compiled.
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2943 case "$file" in
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2944 *.h) ;;
10985
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
2945 *)
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
2946 have_lib_SOURCES=yes
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
2947 break 2
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
2948 ;;
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2949 esac
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2950 done
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2951 fi
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2952 done
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2953 # Add the dummy module, to make sure the library will be non-empty.
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2954 if test -z "$have_lib_SOURCES"; then
8668
9c0fa5819ce3 2007-04-12 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 8626
diff changeset
2955 if func_acceptable "dummy"; then
9c0fa5819ce3 2007-04-12 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 8626
diff changeset
2956 func_append modules " dummy"
9c0fa5819ce3 2007-04-12 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 8626
diff changeset
2957 fi
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2958 fi
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2959 }
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
2960
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2961 # func_modules_add_dummy_separately
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2962 # Input:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2963 # - local_gnulib_dir from --local-dir
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2964 # - modcache true or false, from --cache-modules/--no-cache-modules
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2965 # - main_modules list of modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2966 # - testsrelated_modules list of tests-related modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2967 # - use_libtests true if a $testsbase/libtests.a is needed, false otherwise
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2968 # Output:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2969 # - main_modules list of modules, including 'dummy' if needed
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2970 # - testsrelated_modules list of tests-related modules, including 'dummy' if
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2971 # needed
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2972 func_modules_add_dummy_separately ()
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2973 {
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2974 # Add the dummy module to the main module list if needed.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2975 modules="$main_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2976 func_modules_add_dummy
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2977 main_modules="$modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2978
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2979 # Add the dummy module to the tests-related module list if needed.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2980 if $use_libtests; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2981 modules="$testsrelated_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2982 func_modules_add_dummy
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2983 testsrelated_modules="$modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2984 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2985 }
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
2986
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2987 # func_modules_notice
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2988 # Input:
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2989 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
2990 # - modcache true or false, from --cache-modules/--no-cache-modules
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2991 # - verbose integer, default 0, inc/decremented by --verbose/--quiet
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2992 # - modules list of modules, including dependencies
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2993 func_modules_notice ()
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2994 {
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2995 if test $verbose -ge -1; then
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2996 for module in $modules; do
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2997 func_verify_module
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2998 if test -n "$module"; then
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
2999 msg=`func_get_notice $module`
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3000 if test -n "$msg"; then
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3001 echo "Notice from module $module:"
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3002 echo "$msg" | sed -e 's/^/ /'
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3003 fi
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3004 fi
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3005 done
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3006 fi
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3007 }
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
3008
5348
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3009 # func_modules_to_filelist
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3010 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
3011 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3012 # - modcache true or false, from --cache-modules/--no-cache-modules
5348
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3013 # - modules list of modules, including dependencies
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3014 # Output:
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3015 # - files list of files
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3016 func_modules_to_filelist ()
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3017 {
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3018 files=
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3019 for module in $modules; do
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3020 func_verify_module
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3021 if test -n "$module"; then
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
3022 fs=`func_get_filelist $module`
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
3023 func_append files " $fs"
5348
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3024 fi
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3025 done
7319
1726cc39709b Use "sort -u" where it makes sense.
Bruno Haible <bruno@clisp.org>
parents: 7299
diff changeset
3026 files=`for f in $files; do echo $f; done | LC_ALL=C sort -u`
5348
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3027 }
6afb021e2fc1 Move duplicated code into function func_modules_to_filelist().
Bruno Haible <bruno@clisp.org>
parents: 5347
diff changeset
3028
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3029 # func_modules_to_filelist_separately
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3030 # Determine the final file lists.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3031 # They must be computed separately, because files in lib/* go into
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3032 # $sourcebase/ if they are in the main file list but into $testsbase/
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3033 # if they are in the tests-related file list. Furthermore lib/dummy.c
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3034 # can be in both.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3035 # Input:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3036 # - local_gnulib_dir from --local-dir
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3037 # - modcache true or false, from --cache-modules/--no-cache-modules
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3038 # - main_modules list of modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3039 # - testsrelated_modules list of tests-related modules, including dependencies
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3040 func_modules_to_filelist_separately ()
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3041 {
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3042 # Determine final main file list.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3043 modules="$main_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3044 func_modules_to_filelist
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3045 main_files="$files"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3046 # Determine final tests-related file list.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3047 modules="$testsrelated_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3048 func_modules_to_filelist
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3049 testsrelated_files=`echo "$files" | sed -e 's,^lib/,tests=lib/,'`
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3050 # Merge both file lists.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3051 sed_remove_empty_lines='/^$/d'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3052 files=`{ echo "$main_files"; echo "$testsrelated_files"; } | sed -e "$sed_remove_empty_lines" | LC_ALL=C sort -u`
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3053 if test $verbose -ge 0; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3054 echo "File list:"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3055 sed_prettyprint_files='s,^tests=lib/\(.*\)$,lib/\1 -> tests/\1,'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3056 echo "$files" | sed -e "$sed_prettyprint_files" -e 's/^/ /'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3057 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3058 }
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3059
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3060 # func_compute_include_guard_prefix
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3061 # Determine include_guard_prefix.
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3062 # Input:
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3063 # - macro_prefix prefix of gl_LIBOBJS macros to use
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3064 # Output:
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3065 # - include_guard_prefix replacement for ${gl_include_guard_prefix}
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3066 # - sed_replace_include_guard_prefix
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3067 # sed expression for resolving ${gl_include_guard_prefix}
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3068 func_compute_include_guard_prefix ()
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3069 {
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3070 if test "$macro_prefix" = gl; then
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3071 include_guard_prefix='GL'
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3072 else
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3073 include_guard_prefix='GL_'`echo "$macro_prefix" | LC_ALL=C tr '[a-z]' '[A-Z]'`
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3074 fi
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3075 sed_replace_include_guard_prefix='s/\${gl_include_guard_prefix}/'"${include_guard_prefix}"'/g'
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3076 }
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3077
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3078 # func_execute_command command [args...]
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3079 # Executes a command.
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3080 # Uses also the variables
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3081 # - verbose integer, default 0, inc/decremented by --verbose/--quiet
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3082 func_execute_command ()
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3083 {
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3084 if test $verbose -ge 0; then
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3085 echo "executing $*"
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3086 "$@"
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3087 else
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3088 # Commands like automake produce output to stderr even when they succeed.
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3089 # Turn this output off if the command succeeds.
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3090 "$@" > "$tmp"/cmdout 2>&1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3091 cmdret=$?
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3092 if test $cmdret = 0; then
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3093 rm -f "$tmp"/cmdout
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3094 else
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3095 echo "executing $*"
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3096 cat "$tmp"/cmdout 1>&2
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3097 rm -f "$tmp"/cmdout
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3098 (exit $cmdret)
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3099 fi
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3100 fi
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3101 }
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
3102
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3103 # func_dest_tmpfilename file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3104 # determines the name of a temporary file (file is relative to destdir).
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3105 # Input:
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3106 # - destdir target directory
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3107 # - doit : if actions shall be executed, false if only to be printed
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3108 # - tmp pathname of a temporary directory
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3109 # Sets variable:
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3110 # - tmpfile absolute filename of the temporary file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3111 func_dest_tmpfilename ()
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3112 {
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3113 if $doit; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3114 # Put the new contents of $file in a file in the same directory (needed
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3115 # to guarantee that an 'mv' to "$destdir/$file" works).
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3116 tmpfile="$destdir/$1.tmp"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3117 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3118 # Put the new contents of $file in a file in a temporary directory
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3119 # (because the directory of "$file" might not exist).
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3120 tmpfile="$tmp"/`basename "$1"`.tmp
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3121 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3122 }
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3123
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3124 # func_add_file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3125 # copies a file from gnulib into the destination directory. The destination
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3126 # is known to not exist.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3127 # Input:
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3128 # - destdir target directory
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3129 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3130 # - modcache true or false, from --cache-modules/--no-cache-modules
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3131 # - f the original file name
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3132 # - lookedup_file name of the merged (combined) file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3133 # - lookedup_tmp true if it is located in the tmp directory, blank otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3134 # - g the rewritten file name
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3135 # - tmpfile absolute filename of the temporary file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3136 # - doit : if actions shall be executed, false if only to be printed
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3137 # - symbolic true if files should be symlinked, copied otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3138 # - lsymbolic true if files from local_gnulib_dir should be symlinked,
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3139 # copied otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3140 func_add_file ()
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3141 {
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3142 if $doit; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3143 echo "Copying file $g"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3144 if { test -n "$symbolic" \
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3145 || { test -n "$lsymbolic" \
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3146 && test "$lookedup_file" = "$local_gnulib_dir/$f"; }; } \
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3147 && test -z "$lookedup_tmp" \
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
3148 && cmp -s "$lookedup_file" "$tmpfile"; then
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3149 func_ln_if_changed "$lookedup_file" "$destdir/$g"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3150 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3151 mv -f "$tmpfile" "$destdir/${g}" || func_fatal_error "failed"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3152 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3153 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3154 echo "Copy file $g"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3155 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3156 }
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3157
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3158 # func_update_file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3159 # copies a file from gnulib into the destination directory. The destination
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3160 # is known to exist.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3161 # Input:
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3162 # - destdir target directory
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3163 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3164 # - modcache true or false, from --cache-modules/--no-cache-modules
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3165 # - f the original file name
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3166 # - lookedup_file name of the merged (combined) file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3167 # - lookedup_tmp true if it is located in the tmp directory, blank otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3168 # - g the rewritten file name
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3169 # - tmpfile absolute filename of the temporary file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3170 # - doit : if actions shall be executed, false if only to be printed
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3171 # - symbolic true if files should be symlinked, copied otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3172 # - lsymbolic true if files from local_gnulib_dir should be symlinked,
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3173 # copied otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3174 # - already_present nonempty if the file should already exist, empty otherwise
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3175 func_update_file ()
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3176 {
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
3177 if cmp -s "$destdir/$g" "$tmpfile"; then
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3178 : # The file has not changed.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3179 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3180 # Replace the file.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3181 if $doit; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3182 if test -n "$already_present"; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3183 echo "Updating file $g (backup in ${g}~)"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3184 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3185 echo "Replacing file $g (non-gnulib code backed up in ${g}~) !!"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3186 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3187 mv -f "$destdir/$g" "$destdir/${g}~" || func_fatal_error "failed"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3188 if { test -n "$symbolic" \
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3189 || { test -n "$lsymbolic" \
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3190 && test "$lookedup_file" = "$local_gnulib_dir/$f"; }; } \
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3191 && test -z "$lookedup_tmp" \
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
3192 && cmp -s "$lookedup_file" "$tmpfile"; then
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3193 func_ln_if_changed "$lookedup_file" "$destdir/$g"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3194 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3195 mv -f "$tmpfile" "$destdir/${g}" || func_fatal_error "failed"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3196 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3197 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3198 if test -n "$already_present"; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3199 echo "Update file $g (backup in ${g}~)"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3200 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3201 echo "Replace file $g (non-gnulib code backed up in ${g}~) !!"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3202 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3203 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3204 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3205 }
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
3206
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3207 # func_emit_lib_Makefile_am
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
3208 # emits the contents of library makefile to standard output.
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3209 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
3210 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3211 # - modcache true or false, from --cache-modules/--no-cache-modules
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3212 # - modules list of modules, including dependencies
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3213 # - libname library name
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3214 # - pobase directory relative to destdir where to place *.po files
7644
3c0ece164bab Replace build-aux/ also in the Makefile snippet.
Bruno Haible <bruno@clisp.org>
parents: 7643
diff changeset
3215 # - auxdir directory relative to destdir where to place build aux files
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
3216 # - makefile_name from --makefile-name
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
3217 # - libtool true if libtool will be used, false or blank otherwise
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3218 # - macro_prefix prefix of gl_LIBOBJS macros to use
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3219 # - po_domain prefix of i18n domain to use (without -gnulib suffix)
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
3220 # - witness_c_macro from --witness-c-macro
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3221 # - actioncmd (optional) command that will reproduce this invocation
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3222 # - for_test true if creating a package for testing, false otherwise
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3223 # - sed_replace_include_guard_prefix
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3224 # sed expression for resolving ${gl_include_guard_prefix}
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3225 # - destfile filename relative to destdir of makefile being generated
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3226 # Input/Output:
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3227 # - makefile_am_edits and makefile_am_edit${edit}_{dir,var,val}
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3228 # list of edits to be done to Makefile.am variables
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3229 # Output:
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3230 # - uses_subdirs nonempty if object files in subdirs exist
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3231 func_emit_lib_Makefile_am ()
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3232 {
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3233 # When creating an includable Makefile.am snippet, augment variables with
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3234 # += instead of assigning them.
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3235 if test -n "$makefile_name"; then
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3236 assign='+='
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3237 else
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3238 assign='='
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3239 fi
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
3240 if test "$libtool" = true; then
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3241 libext=la
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3242 perhapsLT=LT
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
3243 sed_eliminate_LDFLAGS="$sed_noop"
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3244 else
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3245 libext=a
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3246 perhapsLT=
7335
6a496bee90ff * gnulib-tool: Avoid space-tab.
Eric Blake <ebb9@byu.net>
parents: 7332
diff changeset
3247 sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d'
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3248 fi
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3249 if $for_test; then
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3250 # When creating a package for testing: Attempt to provoke failures,
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3251 # especially link errors, already during "make" rather than during
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3252 # "make check", because "make check" is not possible in a cross-compiling
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3253 # situation. Turn check_PROGRAMS into noinst_PROGRAMS.
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3254 sed_transform_check_PROGRAMS='s,check_PROGRAMS,noinst_PROGRAMS,g'
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3255 else
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
3256 sed_transform_check_PROGRAMS="$sed_noop"
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3257 fi
7421
8bace4b08db5 Mark generated files as "DO NOT EDIT".
Bruno Haible <bruno@clisp.org>
parents: 7391
diff changeset
3258 echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!"
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3259 echo "## Process this file with automake to produce Makefile.in."
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
3260 func_emit_copyright_notice
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3261 if test -n "$actioncmd"; then
11465
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3262 # The maximum line length (excluding the terminating newline) of any file
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3263 # that is to be preprocessed by config.status is 3070. config.status uses
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3264 # awk, and the HP-UX 11.00 awk fails if a line has length >= 3071;
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3265 # similarly, the IRIX 6.5 awk fails if a line has length >= 3072.
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3266 len=`echo "$actioncmd" | wc -c`
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3267 if test -n "$len" && test "$len" -le 3000; then
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3268 echo "# Reproduce by: $actioncmd"
618e55f1fba9 Work around an autoconf limitation on line lengths.
Bruno Haible <bruno@clisp.org>
parents: 11463
diff changeset
3269 fi
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3270 fi
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3271 echo
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3272 uses_subdirs=
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3273 {
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3274 for module in $modules; do
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3275 func_verify_nontests_module
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3276 if test -n "$module"; then
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3277 {
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3278 func_get_automake_snippet_conditional "$module" |
12917
66202bb71d56 Fix incorrect Makefile.am generation in German locale.
Bruno Haible <bruno@clisp.org>
parents: 12903
diff changeset
3279 LC_ALL=C \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
3280 sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \
9005
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3281 -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' \
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3282 -e "$sed_eliminate_LDFLAGS" \
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3283 -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' \
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3284 -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3285 -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' \
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3286 -e "$sed_transform_check_PROGRAMS" \
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3287 -e "$sed_replace_include_guard_prefix"
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3288 if test "$module" = 'alloca'; then
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3289 echo "${libname}_${libext}_LIBADD += @${perhapsLT}ALLOCA@"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3290 echo "${libname}_${libext}_DEPENDENCIES += @${perhapsLT}ALLOCA@"
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3291 fi
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3292 } > "$tmp"/amsnippet1
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3293 {
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3294 func_get_automake_snippet_unconditional "$module" |
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3295 LC_ALL=C sed -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3296 } > "$tmp"/amsnippet2
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3297 # Skip the contents if it's entirely empty.
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3298 if grep '[^ ]' "$tmp"/amsnippet1 "$tmp"/amsnippet2 > /dev/null ; then
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3299 echo "## begin gnulib module $module"
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3300 echo
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
3301 if test "$cond_dependencies" = true; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3302 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3303 func_module_conditional_name "$module"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3304 echo "if $conditional"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3305 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3306 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3307 cat "$tmp"/amsnippet1
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
3308 if test "$cond_dependencies" = true; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3309 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3310 echo "endif"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3311 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3312 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3313 cat "$tmp"/amsnippet2
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3314 echo "## end gnulib module $module"
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3315 echo
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3316 fi
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3317 rm -f "$tmp"/amsnippet1 "$tmp"/amsnippet2
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3318 # Test whether there are some source files in subdirectories.
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3319 for f in `func_get_filelist "$module"`; do
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3320 case $f in
10985
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3321 lib/*/*.c)
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3322 uses_subdirs=yes
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3323 break
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3324 ;;
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3325 esac
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3326 done
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3327 fi
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3328 done
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3329 } > "$tmp"/allsnippets
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3330 if test -z "$makefile_name"; then
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3331 # If there are source files in subdirectories, prevent collision of the
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3332 # object files (example: hash.c and libxml/hash.c).
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3333 subdir_options=
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3334 if test -n "$uses_subdirs"; then
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3335 subdir_options=' subdir-objects'
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3336 fi
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3337 echo "AUTOMAKE_OPTIONS = 1.5 gnits${subdir_options}"
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3338 fi
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
3339 echo
7246
4a748ab30907 * gnulib-tool (func_emit_lib_Makefile_am): Fix typos in
Paul Eggert <eggert@cs.ucla.edu>
parents: 7245
diff changeset
3340 if test -z "$makefile_name"; then
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3341 echo "SUBDIRS ="
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3342 echo "noinst_HEADERS ="
7701
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3343 echo "noinst_LIBRARIES ="
7691
33b654c2cba8 Initialize also noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7660
diff changeset
3344 echo "noinst_LTLIBRARIES ="
16713
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3345 # Automake versions < 1.11.4 create an empty pkgdatadir at
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3346 # installation time if you specify pkgdata_DATA to empty.
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3347 # See automake bugs #10997 and #11030:
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3348 # * http://debbugs.gnu.org/10997
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3349 # * http://debbugs.gnu.org/11030
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3350 # So we need this workaround.
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3351 if grep '^pkgdata_DATA *+=' "$tmp"/allsnippets > /dev/null; then
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3352 echo "pkgdata_DATA ="
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3353 fi
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3354 echo "EXTRA_DIST ="
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3355 echo "BUILT_SOURCES ="
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3356 echo "SUFFIXES ="
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3357 fi
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3358 echo "MOSTLYCLEANFILES $assign core *.stackdump"
7246
4a748ab30907 * gnulib-tool (func_emit_lib_Makefile_am): Fix typos in
Paul Eggert <eggert@cs.ucla.edu>
parents: 7245
diff changeset
3359 if test -z "$makefile_name"; then
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3360 echo "MOSTLYCLEANDIRS ="
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3361 echo "CLEANFILES ="
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3362 echo "DISTCLEANFILES ="
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3363 echo "MAINTAINERCLEANFILES ="
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3364 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3365 # Execute edits that apply to the Makefile.am being generated.
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3366 edit=0
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3367 while test $edit != $makefile_am_edits; do
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3368 edit=`expr $edit + 1`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3369 eval dir=\"\$makefile_am_edit${edit}_dir\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3370 eval var=\"\$makefile_am_edit${edit}_var\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3371 eval val=\"\$makefile_am_edit${edit}_val\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3372 if test -n "$var"; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3373 if test "${dir}Makefile.am" = "$destfile" || test "./${dir}Makefile.am" = "$destfile"; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3374 echo "${var} += ${val}"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3375 eval "makefile_am_edit${edit}_var="
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3376 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3377 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3378 done
14917
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3379 if test -n "$witness_c_macro"; then
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3380 cppflags_part1=" -D$witness_c_macro=1"
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3381 else
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3382 cppflags_part1=
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3383 fi
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3384 if $for_test; then
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3385 cppflags_part2=" -DGNULIB_STRICT_CHECKING=1"
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3386 else
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3387 cppflags_part2=
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3388 fi
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3389 if test -z "$makefile_name"; then
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3390 echo
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
3391 echo "AM_CPPFLAGS =$cppflags_part1$cppflags_part2"
11261
f0359b41944f Make it easier to use the 'visibility' module.
Bruno Haible <bruno@clisp.org>
parents: 11249
diff changeset
3392 echo "AM_CFLAGS ="
14917
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3393 else
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3394 if test -n "$cppflags_part1$cppflags_part2"; then
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3395 echo
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3396 echo "AM_CPPFLAGS +=$cppflags_part1$cppflags_part2"
42a9e4eb100a gnulib-tool: Addendum to 2011-06-08 commit.
Bruno Haible <bruno@clisp.org>
parents: 14908
diff changeset
3397 fi
7240
e9d3ace50303 Slightly change the output generated by --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7239
diff changeset
3398 fi
6750
608add4e5b80 Support for packages that use "gettextize --intl". From Claudio Fontana.
Bruno Haible <bruno@clisp.org>
parents: 6745
diff changeset
3399 echo
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3400 if LC_ALL=C grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *+\{0,1\}= *$libname\\.$libext\$" "$tmp"/allsnippets > /dev/null \
11463
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3401 || { test -n "$makefile_name" \
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3402 && test -f "$sourcebase/Makefile.am" \
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3403 && LC_ALL=C grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *+\{0,1\}= *$libname\\.$libext\$" "$sourcebase/Makefile.am" > /dev/null; \
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3404 }; then
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3405 # One of the snippets or the user's Makefile.am already specifies an
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3406 # installation location for the library. Don't confuse automake by saying
9b74d1d0b267 Make it easier to distribute gnulib-built libraries.
Bruno Haible <bruno@clisp.org>
parents: 11461
diff changeset
3407 # it should not be installed.
7701
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3408 :
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3409 else
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3410 # By default, the generated library should not be installed.
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3411 echo "noinst_${perhapsLT}LIBRARIES += $libname.$libext"
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3412 fi
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3413 echo
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3414 echo "${libname}_${libext}_SOURCES ="
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3415 # Here we use $(LIBOBJS), not @LIBOBJS@. The value is the same. However,
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3416 # automake during its analysis looks for $(LIBOBJS), not for @LIBOBJS@.
7701
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3417 echo "${libname}_${libext}_LIBADD = \$(${macro_prefix}_${perhapsLT}LIBOBJS)"
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3418 echo "${libname}_${libext}_DEPENDENCIES = \$(${macro_prefix}_${perhapsLT}LIBOBJS)"
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3419 echo "EXTRA_${libname}_${libext}_SOURCES ="
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3420 if test "$libtool" = true; then
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3421 echo "${libname}_${libext}_LDFLAGS = \$(AM_LDFLAGS)"
13763
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3422 echo "${libname}_${libext}_LDFLAGS += -no-undefined"
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3423 # Synthesize an ${libname}_${libext}_LDFLAGS augmentation by combining
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3424 # the link dependencies of all modules.
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3425 for module in $modules; do
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3426 func_verify_nontests_module
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3427 if test -n "$module"; then
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3428 func_get_link_directive "$module"
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3429 fi
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3430 done \
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3431 | LC_ALL=C sed -e '/^$/d' -e 's/ when linking with libtool.*//' \
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3432 | LC_ALL=C sort -u \
064af6542c0a gnulib-tool: Synthesize appropriate _LDFLAGS for a libtool library.
Bruno Haible <bruno@clisp.org>
parents: 13759
diff changeset
3433 | LC_ALL=C sed -e 's/^/'"${libname}_${libext}"'_LDFLAGS += /'
7701
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3434 fi
c59b96cb52c7 Fix double initialization of noinst_LTLIBRARIES.
Bruno Haible <bruno@clisp.org>
parents: 7691
diff changeset
3435 echo
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3436 if test -n "$pobase"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3437 echo "AM_CPPFLAGS += -DDEFAULT_TEXT_DOMAIN=\\\"${po_domain}-gnulib\\\""
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3438 echo
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3439 fi
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3440 cat "$tmp"/allsnippets \
14273
8f6d3e05c7e2 libposix: Revert the unreviewed part of yesterday's big merge.
Bruce Korb <bkorb@gnu.org>
parents: 14271
diff changeset
3441 | sed -e 's|\$(top_srcdir)/build-aux/|$(top_srcdir)/'"$auxdir"'/|g'
5357
8bce169f70cc Fix comments. Fix parse problem.
Simon Josefsson <simon@josefsson.org>
parents: 5356
diff changeset
3442 echo
7086
ba6d3c85213f Fix for "make -j 3".
Bruno Haible <bruno@clisp.org>
parents: 7079
diff changeset
3443 echo "mostlyclean-local: mostlyclean-generic"
7545
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3444 echo " @for dir in '' \$(MOSTLYCLEANDIRS); do \\"
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3445 echo " if test -n \"\$\$dir\" && test -d \$\$dir; then \\"
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3446 echo " echo \"rmdir \$\$dir\"; rmdir \$\$dir; \\"
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3447 echo " fi; \\"
9010
03602a916a9a Don't let the 'mostlyclean' target fail because of a nonempty directory.
Bruno Haible <bruno@clisp.org>
parents: 9009
diff changeset
3448 echo " done; \\"
03602a916a9a Don't let the 'mostlyclean' target fail because of a nonempty directory.
Bruno Haible <bruno@clisp.org>
parents: 9009
diff changeset
3449 echo " :"
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3450 rm -f "$tmp"/allsnippets
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3451 }
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
3452
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3453 # func_emit_po_Makevars
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3454 # emits the contents of po/ makefile parameterization to standard output.
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3455 # Input:
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3456 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3457 # - modcache true or false, from --cache-modules/--no-cache-modules
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3458 # - sourcebase directory relative to destdir where to place source code
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3459 # - pobase directory relative to destdir where to place *.po files
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3460 # - po_domain prefix of i18n domain to use (without -gnulib suffix)
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3461 func_emit_po_Makevars ()
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3462 {
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3463 echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3464 func_emit_copyright_notice
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3465 echo
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3466 echo "# Usually the message domain is the same as the package name."
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3467 echo "# But here it has a '-gnulib' suffix."
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3468 echo "DOMAIN = ${po_domain}-gnulib"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3469 echo
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3470 echo "# These two variables depend on the location of this directory."
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3471 echo "subdir = ${pobase}"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3472 echo "top_builddir = "`echo "$pobase" | sed -e 's,//*,/,g' -e 's,[^/][^/]*,..,g'`
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3473 echo
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3474 cat <<\EOF
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3475 # These options get passed to xgettext.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3476 XGETTEXT_OPTIONS = \
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3477 --keyword=_ --flag=_:1:pass-c-format \
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3478 --keyword=N_ --flag=N_:1:pass-c-format \
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3479 --keyword='proper_name:1,"This is a proper name. See the gettext manual, section Names."' \
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3480 --keyword='proper_name_utf8:1,"This is a proper name. See the gettext manual, section Names."' \
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3481 --flag=error:3:c-format --flag=error_at_line:5:c-format
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3482
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3483 # This is the copyright holder that gets inserted into the header of the
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3484 # $(DOMAIN).pot file. gnulib is copyrighted by the FSF.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3485 COPYRIGHT_HOLDER = Free Software Foundation, Inc.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3486
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3487 # This is the email address or URL to which the translators shall report
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3488 # bugs in the untranslated strings:
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3489 # - Strings which are not entire sentences, see the maintainer guidelines
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3490 # in the GNU gettext documentation, section 'Preparing Strings'.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3491 # - Strings which use unclear terms or require additional context to be
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3492 # understood.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3493 # - Strings which make invalid assumptions about notation of date, time or
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3494 # money.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3495 # - Pluralisation problems.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3496 # - Incorrect English spelling.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3497 # - Incorrect formatting.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3498 # It can be your email address, or a mailing list address where translators
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3499 # can write to without being subscribed, or the URL of a web page through
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3500 # which the translators can contact you.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3501 MSGID_BUGS_ADDRESS = bug-gnulib@gnu.org
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3502
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3503 # This is the list of locale categories, beyond LC_MESSAGES, for which the
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3504 # message catalogs shall be used. It is usually empty.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3505 EXTRA_LOCALE_CATEGORIES =
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3506
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3507 # This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt'
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3508 # context. Possible values are "yes" and "no". Set this to yes if the
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3509 # package uses functions taking also a message context, like pgettext(), or
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3510 # if in $(XGETTEXT_OPTIONS) you define keywords with a context argument.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3511 USE_MSGCTXT = no
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3512 EOF
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3513 }
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3514
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3515 # func_emit_po_POTFILES_in
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3516 # emits the file list to be passed to xgettext to standard output.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3517 # Input:
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3518 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3519 # - modcache true or false, from --cache-modules/--no-cache-modules
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3520 # - sourcebase directory relative to destdir where to place source code
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3521 # - files list of new files
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3522 func_emit_po_POTFILES_in ()
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3523 {
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3524 echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3525 func_emit_copyright_notice
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3526 echo
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3527 echo "# List of files which contain translatable strings."
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3528 echo "$files" | sed -n -e "s,^lib/,$sourcebase/,p"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3529 }
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
3530
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
3531 # func_emit_tests_Makefile_am witness_macro
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
3532 # emits the contents of tests makefile to standard output.
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3533 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
3534 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
3535 # - modcache true or false, from --cache-modules/--no-cache-modules
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3536 # - modules list of modules, including dependencies
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3537 # - libname library name
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3538 # - auxdir directory relative to destdir where to place build aux files
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
3539 # - makefile_name from --makefile-name
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
3540 # - libtool true if libtool will be used, false or blank otherwise
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3541 # - sourcebase relative directory containing lib source code
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
3542 # - m4base relative directory containing autoconf macros
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
3543 # - testsbase relative directory containing unit test code
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3544 # - macro_prefix prefix of gl_LIBOBJS macros to use
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
3545 # - witness_c_macro from --witness-c-macro
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3546 # - for_test true if creating a package for testing, false otherwise
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3547 # - single_configure true if a single configure file should be generated,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3548 # false for a separate configure file for the tests
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3549 # - use_libtests true if a libtests.a should be built, false otherwise
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3550 # - sed_replace_include_guard_prefix
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3551 # sed expression for resolving ${gl_include_guard_prefix}
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3552 # - destfile filename relative to destdir of makefile being generated
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3553 # Input/Output:
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3554 # - makefile_am_edits and makefile_am_edit${edit}_{dir,var,val}
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3555 # list of edits to be done to Makefile.am variables
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3556 # Output:
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3557 # - uses_subdirs nonempty if object files in subdirs exist
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3558 func_emit_tests_Makefile_am ()
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3559 {
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
3560 witness_macro="$1"
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
3561 if test "$libtool" = true; then
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3562 libext=la
17047
458e7152e580 gnulib-tool: Improve coding style.
Bruno Haible <bruno@clisp.org>
parents: 17046
diff changeset
3563 perhapsLT=LT
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
3564 sed_eliminate_LDFLAGS="$sed_noop"
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
3565 else
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
3566 libext=a
17047
458e7152e580 gnulib-tool: Improve coding style.
Bruno Haible <bruno@clisp.org>
parents: 17046
diff changeset
3567 perhapsLT=
7335
6a496bee90ff * gnulib-tool: Avoid space-tab.
Eric Blake <ebb9@byu.net>
parents: 7332
diff changeset
3568 sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d'
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
3569 fi
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3570 if $for_test; then
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3571 # When creating a package for testing: Attempt to provoke failures,
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3572 # especially link errors, already during "make" rather than during
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3573 # "make check", because "make check" is not possible in a cross-compiling
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3574 # situation. Turn check_PROGRAMS into noinst_PROGRAMS.
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3575 sed_transform_check_PROGRAMS='s,check_PROGRAMS,noinst_PROGRAMS,g'
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3576 else
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
3577 sed_transform_check_PROGRAMS="$sed_noop"
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3578 fi
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
3579 testsbase_inverse=`echo "$testsbase" | sed -e 's,/$,,' | sed -e 's,[^/][^/]*,..,g'`
7421
8bace4b08db5 Mark generated files as "DO NOT EDIT".
Bruno Haible <bruno@clisp.org>
parents: 7391
diff changeset
3580 echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!"
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3581 echo "## Process this file with automake to produce Makefile.in."
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
3582 func_emit_copyright_notice
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3583 echo
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3584 uses_subdirs=
12054
1c9a8901e75c Fix value of uses_subdirs in tests/Makefile.am.
Bruno Haible <bruno@clisp.org>
parents: 12021
diff changeset
3585 {
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3586 for module in $modules; do
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3587 if $for_test && ! $single_configure; then
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3588 func_verify_tests_module
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3589 else
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3590 func_verify_module
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3591 fi
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3592 if test -n "$module"; then
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
3593 {
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
3594 func_get_automake_snippet "$module" |
12917
66202bb71d56 Fix incorrect Makefile.am generation in German locale.
Bruno Haible <bruno@clisp.org>
parents: 12903
diff changeset
3595 LC_ALL=C \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
3596 sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \
9005
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3597 -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' \
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3598 -e "$sed_eliminate_LDFLAGS" \
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3599 -e 's,lib_\([A-Z][A-Z]*\),libtests_a_\1,g' \
9005
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3600 -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
3601 -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' \
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3602 -e "$sed_transform_check_PROGRAMS" \
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
3603 -e "$sed_replace_include_guard_prefix"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3604 if $use_libtests && test "$module" = 'alloca'; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3605 echo "libtests_a_LIBADD += @${perhapsLT}ALLOCA@"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3606 echo "libtests_a_DEPENDENCIES += @${perhapsLT}ALLOCA@"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3607 fi
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3608 } > "$tmp"/amsnippet
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3609 # Skip the contents if it's entirely empty.
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3610 if grep '[^ ]' "$tmp"/amsnippet > /dev/null ; then
13111
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3611 # Mention long-running tests at the end.
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3612 ofd=3
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3613 for word in `func_get_status "$module"`; do
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3614 if test "$word" = 'longrunning-test'; then
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3615 ofd=4
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3616 break
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3617 fi
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3618 done
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3619 { echo "## begin gnulib module $module"
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3620 echo
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3621 cat "$tmp"/amsnippet
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3622 echo "## end gnulib module $module"
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3623 echo
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3624 } >&$ofd
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3625 fi
12741
12d8c6b23748 gnulib-tool: avoid writing in the current directory.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 12559
diff changeset
3626 rm -f "$tmp"/amsnippet
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3627 # Test whether there are some source files in subdirectories.
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3628 for f in `func_get_filelist "$module"`; do
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3629 case $f in
10985
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3630 lib/*/*.c | tests/*/*.c)
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3631 uses_subdirs=yes
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3632 break
32537aa6364d Terminate loops early when possible.
Bruno Haible <bruno@clisp.org>
parents: 10981
diff changeset
3633 ;;
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3634 esac
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3635 done
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3636 fi
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3637 done
13111
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3638 } 3> "$tmp"/main_snippets 4> "$tmp"/longrunning_snippets
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3639 # Generate dependencies here, since it eases the debugging of test failures.
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3640 # If there are source files in subdirectories, prevent collision of the
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3641 # object files (example: hash.c and libxml/hash.c).
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3642 subdir_options=
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3643 if test -n "$uses_subdirs"; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3644 subdir_options=' subdir-objects'
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3645 fi
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3646 echo "AUTOMAKE_OPTIONS = 1.5 foreign${subdir_options}"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3647 echo
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
3648 if $for_test && ! $single_configure; then
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3649 echo "ACLOCAL_AMFLAGS = -I ${testsbase_inverse}/${m4base}"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3650 echo
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3651 fi
6533
6bc4290ca85f Avoid an automake error regarding the 'gettext' module.
Bruno Haible <bruno@clisp.org>
parents: 6512
diff changeset
3652 # Nothing is being added to SUBDIRS; nevertheless the existence of this
6bc4290ca85f Avoid an automake error regarding the 'gettext' module.
Bruno Haible <bruno@clisp.org>
parents: 6512
diff changeset
3653 # variable is needed to avoid an error from automake:
6bc4290ca85f Avoid an automake error regarding the 'gettext' module.
Bruno Haible <bruno@clisp.org>
parents: 6512
diff changeset
3654 # "AM_GNU_GETTEXT used but SUBDIRS not defined"
13110
48f80c38f0ed gnulib-tool: Ensure the tests in the main directory are executed first.
Bruno Haible <bruno@clisp.org>
parents: 13107
diff changeset
3655 echo "SUBDIRS = ."
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3656 echo "TESTS ="
12295
b8c65d432a3e Add xalloc-die self-test.
Simon Josefsson <simon@josefsson.org>
parents: 12288
diff changeset
3657 echo "XFAIL_TESTS ="
10732
a97c57b9b48e argp: Use standard gnulib idiom for EXEEXT.
Simon Josefsson <simon@josefsson.org>
parents: 10729
diff changeset
3658 echo "TESTS_ENVIRONMENT ="
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3659 echo "noinst_PROGRAMS ="
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3660 if ! $for_test; then
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3661 echo "check_PROGRAMS ="
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
3662 fi
6548
060487c0b13c Initialize also noinst_HEADERS to empty.
Bruno Haible <bruno@clisp.org>
parents: 6547
diff changeset
3663 echo "noinst_HEADERS ="
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3664 echo "noinst_LIBRARIES ="
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3665 if $use_libtests; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3666 if $for_test; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3667 echo "noinst_LIBRARIES += libtests.a"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3668 else
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3669 echo "check_LIBRARIES = libtests.a"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3670 fi
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3671 fi
16713
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3672 # Automake versions < 1.11.4 create an empty pkgdatadir at
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3673 # installation time if you specify pkgdata_DATA to empty.
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3674 # See automake bugs #10997 and #11030:
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3675 # * http://debbugs.gnu.org/10997
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3676 # * http://debbugs.gnu.org/11030
5090324ee0c8 gnulib-tool: fix imprecise comments w.r.t. an automake bug
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 16377
diff changeset
3677 # So we need this workaround.
13111
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3678 if grep '^pkgdata_DATA *+=' "$tmp"/main_snippets "$tmp"/longrunning_snippets > /dev/null; then
7169
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3679 echo "pkgdata_DATA ="
cb505deddb22 Don't create a $(pkgdatadir) if there's nothing to be installed in it.
Bruno Haible <bruno@clisp.org>
parents: 7168
diff changeset
3680 fi
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3681 echo "EXTRA_DIST ="
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3682 echo "BUILT_SOURCES ="
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3683 echo "SUFFIXES ="
7079
ecd48b98b094 Clean core dumps.
Bruno Haible <bruno@clisp.org>
parents: 7078
diff changeset
3684 echo "MOSTLYCLEANFILES = core *.stackdump"
6862
ba1b5722df42 Invent MOSTLYCLEANDIRS.
Bruno Haible <bruno@clisp.org>
parents: 6777
diff changeset
3685 echo "MOSTLYCLEANDIRS ="
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3686 echo "CLEANFILES ="
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3687 echo "DISTCLEANFILES ="
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3688 echo "MAINTAINERCLEANFILES ="
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3689 # Execute edits that apply to the Makefile.am being generated.
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3690 edit=0
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3691 while test $edit != $makefile_am_edits; do
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3692 edit=`expr $edit + 1`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3693 eval dir=\"\$makefile_am_edit${edit}_dir\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3694 eval var=\"\$makefile_am_edit${edit}_var\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3695 eval val=\"\$makefile_am_edit${edit}_val\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3696 if test -n "$var"; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3697 if test "${dir}Makefile.am" = "$destfile" || test "./${dir}Makefile.am" = "$destfile"; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3698 echo "${var} += ${val}"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3699 eval "makefile_am_edit${edit}_var="
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3700 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3701 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
3702 done
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3703 echo
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3704 echo "AM_CPPFLAGS = \\"
13217
885b58a1c02f Stricter declaration checking in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13111
diff changeset
3705 if $for_test; then
885b58a1c02f Stricter declaration checking in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13111
diff changeset
3706 echo " -DGNULIB_STRICT_CHECKING=1 \\"
885b58a1c02f Stricter declaration checking in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13111
diff changeset
3707 fi
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
3708 if test -n "$witness_c_macro"; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
3709 echo " -D$witness_c_macro=1 \\"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
3710 fi
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
3711 if test -n "${witness_macro}"; then
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
3712 echo " -D@${witness_macro}@=1 \\"
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
3713 fi
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3714 echo " -I. -I\$(srcdir) \\"
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
3715 echo " -I${testsbase_inverse} -I\$(srcdir)/${testsbase_inverse} \\"
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
3716 echo " -I${testsbase_inverse}/${sourcebase-lib} -I\$(srcdir)/${testsbase_inverse}/${sourcebase-lib}"
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3717 echo
9540
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3718 local_ldadd_before=''
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3719 local_ldadd_after=''
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3720 if $use_libtests; then
9540
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3721 # All test programs need to be linked with libtests.a.
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3722 # It needs to be passed to the linker before ${libname}.${libext}, since
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3723 # the tests-related modules depend on the main modules.
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3724 # It also needs to be passed to the linker after ${libname}.${libext}
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3725 # because the latter might contain incomplete modules (such as the 'error'
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3726 # module whose dependency to 'progname' is voluntarily omitted).
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3727 # The LIBTESTS_LIBDEPS can be passed to the linker once or twice, it does
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3728 # not matter.
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3729 local_ldadd_before=' libtests.a'
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3730 local_ldadd_after=' libtests.a $(LIBTESTS_LIBDEPS)'
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3731 fi
9540
56fe79dce87d Remove unnecessary -l options from LDFLAGS.
Bruno Haible <bruno@clisp.org>
parents: 9523
diff changeset
3732 echo "LDADD =${local_ldadd_before} ${testsbase_inverse}/${sourcebase-lib}/${libname}.${libext}${local_ldadd_after}"
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3733 echo
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3734 if $use_libtests; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3735 echo "libtests_a_SOURCES ="
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3736 # Here we use $(LIBOBJS), not @LIBOBJS@. The value is the same. However,
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3737 # automake during its analysis looks for $(LIBOBJS), not for @LIBOBJS@.
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3738 echo "libtests_a_LIBADD = \$(${macro_prefix}tests_LIBOBJS)"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3739 echo "libtests_a_DEPENDENCIES = \$(${macro_prefix}tests_LIBOBJS)"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3740 echo "EXTRA_libtests_a_SOURCES ="
9523
49f7561fc2d3 Allow circular dependency of separate libtests.a
Eric Blake <ebb9@byu.net>
parents: 9520
diff changeset
3741 # The circular dependency in LDADD requires this.
49f7561fc2d3 Allow circular dependency of separate libtests.a
Eric Blake <ebb9@byu.net>
parents: 9520
diff changeset
3742 echo "AM_LIBTOOLFLAGS = --preserve-dup-deps"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3743 echo
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3744 fi
12775
03aab12b3f15 Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
Bruno Haible <bruno@clisp.org>
parents: 12743
diff changeset
3745 # Many test scripts use ${EXEEXT} or ${srcdir}.
03aab12b3f15 Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
Bruno Haible <bruno@clisp.org>
parents: 12743
diff changeset
3746 # EXEEXT is defined by AC_PROG_CC through autoconf.
03aab12b3f15 Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
Bruno Haible <bruno@clisp.org>
parents: 12743
diff changeset
3747 # srcdir is defined by autoconf and automake.
03aab12b3f15 Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
Bruno Haible <bruno@clisp.org>
parents: 12743
diff changeset
3748 echo "TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='\$(srcdir)'"
03aab12b3f15 Provide EXEEXT and srcdir in TESTS_ENVIRONMENT by default.
Bruno Haible <bruno@clisp.org>
parents: 12743
diff changeset
3749 echo
13111
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3750 cat "$tmp"/main_snippets "$tmp"/longrunning_snippets \
9515
b0f1495adfd8 Fix references to the build-aux directory in the generated tests/Makefile.am.
Bruno Haible <bruno@clisp.org>
parents: 9514
diff changeset
3751 | sed -e 's|\$(top_srcdir)/build-aux/|$(top_srcdir)/'"$auxdir"'/|g'
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3752 echo "# Clean up after Solaris cc."
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3753 echo "clean-local:"
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3754 echo " rm -rf SunWS_cache"
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3755 echo
7086
ba6d3c85213f Fix for "make -j 3".
Bruno Haible <bruno@clisp.org>
parents: 7079
diff changeset
3756 echo "mostlyclean-local: mostlyclean-generic"
7545
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3757 echo " @for dir in '' \$(MOSTLYCLEANDIRS); do \\"
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3758 echo " if test -n \"\$\$dir\" && test -d \$\$dir; then \\"
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3759 echo " echo \"rmdir \$\$dir\"; rmdir \$\$dir; \\"
fade8d6feee3 Avoid syntax error from bash 2.00 ... 2.05.
Bruno Haible <bruno@clisp.org>
parents: 7533
diff changeset
3760 echo " fi; \\"
9010
03602a916a9a Don't let the 'mostlyclean' target fail because of a nonempty directory.
Bruno Haible <bruno@clisp.org>
parents: 9009
diff changeset
3761 echo " done; \\"
03602a916a9a Don't let the 'mostlyclean' target fail because of a nonempty directory.
Bruno Haible <bruno@clisp.org>
parents: 9009
diff changeset
3762 echo " :"
13111
1af4e2d31f2a gnulib-tool: Ensure that long-running tests are executed last.
Bruno Haible <bruno@clisp.org>
parents: 13110
diff changeset
3763 rm -f "$tmp"/main_snippets "$tmp"/longrunning_snippets
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3764 }
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
3765
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3766 # func_emit_initmacro_start macro_prefix
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3767 # emits the first few statements of the gl_INIT macro to standard output.
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3768 # - macro_prefix prefix of gl_EARLY, gl_INIT macros to use
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3769 func_emit_initmacro_start ()
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3770 {
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3771 macro_prefix_arg="$1"
7646
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3772 # Overriding AC_LIBOBJ and AC_REPLACE_FUNCS has the effect of storing
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3773 # platform-dependent object files in ${macro_prefix_arg}_LIBOBJS instead of
7646
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3774 # LIBOBJS. The purpose is to allow several gnulib instantiations under
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3775 # a single configure.ac file. (AC_CONFIG_LIBOBJ_DIR does not allow this
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3776 # flexibility.)
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3777 # Furthermore it avoids an automake error like this when a Makefile.am
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3778 # that uses pieces of gnulib also uses $(LIBOBJ):
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3779 # automatically discovered file `error.c' should not be explicitly mentioned
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3780 echo " m4_pushdef([AC_LIBOBJ], m4_defn([${macro_prefix_arg}_LIBOBJ]))"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3781 echo " m4_pushdef([AC_REPLACE_FUNCS], m4_defn([${macro_prefix_arg}_REPLACE_FUNCS]))"
7646
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3782 # Overriding AC_LIBSOURCES has the same purpose of avoiding the automake
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3783 # error when a Makefile.am that uses pieces of gnulib also uses $(LIBOBJ):
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3784 # automatically discovered file `error.c' should not be explicitly mentioned
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3785 # We let automake know about the files to be distributed through the
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3786 # EXTRA_lib_SOURCES variable.
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3787 echo " m4_pushdef([AC_LIBSOURCES], m4_defn([${macro_prefix_arg}_LIBSOURCES]))"
10066
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3788 # Create data variables for checking the presence of files that are mentioned
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3789 # as AC_LIBSOURCES arguments. These are m4 variables, not shell variables,
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3790 # because we want the check to happen when the configure file is created,
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3791 # not when it is run. ${macro_prefix_arg}_LIBSOURCES_LIST is the list of
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3792 # files to check for. ${macro_prefix_arg}_LIBSOURCES_DIR is the subdirectory
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3793 # in which to expect them.
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3794 echo " m4_pushdef([${macro_prefix_arg}_LIBSOURCES_LIST], [])"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3795 echo " m4_pushdef([${macro_prefix_arg}_LIBSOURCES_DIR], [])"
9887
f2408973947f Fix __GNUC_STDC_INLINE__ predefine with Apple GCC on MacOS X 10.5.
Bruno Haible <bruno@clisp.org>
parents: 9879
diff changeset
3796 echo " gl_COMMON"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3797 }
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3798
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3799 # func_emit_initmacro_end macro_prefix
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3800 # emits the last few statements of the gl_INIT macro to standard output.
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3801 # - macro_prefix prefix of gl_EARLY, gl_INIT macros to use
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3802 func_emit_initmacro_end ()
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3803 {
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3804 macro_prefix_arg="$1"
10066
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3805 # Check the presence of files that are mentioned as AC_LIBSOURCES arguments.
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3806 # The check is performed only when autoconf is run from the directory where
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3807 # the configure.ac resides; if it is run from a different directory, the
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3808 # check is skipped.
10067
40a8c0b4f5e0 Oops, fix small mistake in last commit.
Bruno Haible <bruno@clisp.org>
parents: 10066
diff changeset
3809 echo " m4_ifval(${macro_prefix_arg}_LIBSOURCES_LIST, ["
10261
eb86b5a38e84 Work with tar's bootstrap.
Eric Blake <ebb9@byu.net>
parents: 10255
diff changeset
3810 echo " m4_syscmd([test ! -d ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[ ||"
10066
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3811 echo " for gl_file in ]${macro_prefix_arg}_LIBSOURCES_LIST[ ; do"
10261
eb86b5a38e84 Work with tar's bootstrap.
Eric Blake <ebb9@byu.net>
parents: 10255
diff changeset
3812 echo " if test ! -r ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[/\$gl_file ; then"
eb86b5a38e84 Work with tar's bootstrap.
Eric Blake <ebb9@byu.net>
parents: 10255
diff changeset
3813 echo " echo \"missing file ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[/\$gl_file\" >&2"
10066
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3814 echo " exit 1"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3815 echo " fi"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3816 echo " done])dnl"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3817 echo " m4_if(m4_sysval, [0], [],"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3818 echo " [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3819 echo " ])"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3820 echo " m4_popdef([${macro_prefix_arg}_LIBSOURCES_DIR])"
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3821 echo " m4_popdef([${macro_prefix_arg}_LIBSOURCES_LIST])"
7646
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3822 echo " m4_popdef([AC_LIBSOURCES])"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3823 echo " m4_popdef([AC_REPLACE_FUNCS])"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3824 echo " m4_popdef([AC_LIBOBJ])"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3825 echo " AC_CONFIG_COMMANDS_PRE(["
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3826 echo " ${macro_prefix_arg}_libobjs="
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3827 echo " ${macro_prefix_arg}_ltlibobjs="
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3828 echo " if test -n \"\$${macro_prefix_arg}_LIBOBJS\"; then"
7528
472795eea368 Remove duplicates from the gl_LIBOBJS list.
Bruno Haible <bruno@clisp.org>
parents: 7497
diff changeset
3829 echo " # Remove the extension."
472795eea368 Remove duplicates from the gl_LIBOBJS list.
Bruno Haible <bruno@clisp.org>
parents: 7497
diff changeset
3830 echo " sed_drop_objext='s/\\.o\$//;s/\\.obj\$//'"
12417
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
3831 echo " for i in \`for i in \$${macro_prefix_arg}_LIBOBJS; do echo \"\$i\"; done | sed -e \"\$sed_drop_objext\" | sort | uniq\`; do"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3832 echo " ${macro_prefix_arg}_libobjs=\"\$${macro_prefix_arg}_libobjs \$i.\$ac_objext\""
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3833 echo " ${macro_prefix_arg}_ltlibobjs=\"\$${macro_prefix_arg}_ltlibobjs \$i.lo\""
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3834 echo " done"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3835 echo " fi"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3836 echo " AC_SUBST([${macro_prefix_arg}_LIBOBJS], [\$${macro_prefix_arg}_libobjs])"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3837 echo " AC_SUBST([${macro_prefix_arg}_LTLIBOBJS], [\$${macro_prefix_arg}_ltlibobjs])"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3838 echo " ])"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3839 }
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3840
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3841 # func_emit_initmacro_done macro_prefix sourcebase
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3842 # emits a few statements after the gl_INIT macro to standard output.
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3843 # - macro_prefix prefix of gl_EARLY, gl_INIT macros to use
9232
01d4e199e19f Enforce that AC_REPLACE_FUNCS files exist.
Eric Blake <ebb9@byu.net>
parents: 9215
diff changeset
3844 # - sourcebase directory relative to destdir where to place source code
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3845 func_emit_initmacro_done ()
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3846 {
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3847 macro_prefix_arg="$1"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3848 sourcebase_arg="$2"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3849 echo
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3850 echo "# Like AC_LIBOBJ, except that the module name goes"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3851 echo "# into ${macro_prefix_arg}_LIBOBJS instead of into LIBOBJS."
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3852 echo "AC_DEFUN([${macro_prefix_arg}_LIBOBJ], ["
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3853 echo " AS_LITERAL_IF([\$1], [${macro_prefix_arg}_LIBSOURCES([\$1.c])])dnl"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3854 echo " ${macro_prefix_arg}_LIBOBJS=\"\$${macro_prefix_arg}_LIBOBJS \$1.\$ac_objext\""
9237
aeb8e2d99afa m4 macro indentation.
Bruno Haible <bruno@linuix.haible.de>
parents: 9232
diff changeset
3855 echo "])"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3856 echo
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3857 echo "# Like AC_REPLACE_FUNCS, except that the module name goes"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3858 echo "# into ${macro_prefix_arg}_LIBOBJS instead of into LIBOBJS."
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3859 echo "AC_DEFUN([${macro_prefix_arg}_REPLACE_FUNCS], ["
9237
aeb8e2d99afa m4 macro indentation.
Bruno Haible <bruno@linuix.haible.de>
parents: 9232
diff changeset
3860 echo " m4_foreach_w([gl_NAME], [\$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3861 echo " AC_CHECK_FUNCS([\$1], , [${macro_prefix_arg}_LIBOBJ(\$ac_func)])"
9237
aeb8e2d99afa m4 macro indentation.
Bruno Haible <bruno@linuix.haible.de>
parents: 9232
diff changeset
3862 echo "])"
7646
33bd42644eec Override also AC_LIBSOURCES. Works around an automake error
Bruno Haible <bruno@clisp.org>
parents: 7644
diff changeset
3863 echo
9275
1c749136a76e AC_LIBSOURCES([alloca.c]) must be a no-op, otherwise it breaks the 'alloca-opt'
Bruno Haible <bruno@clisp.org>
parents: 9237
diff changeset
3864 echo "# Like AC_LIBSOURCES, except the directory where the source file is"
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
3865 echo "# expected is derived from the gnulib-tool parameterization,"
9275
1c749136a76e AC_LIBSOURCES([alloca.c]) must be a no-op, otherwise it breaks the 'alloca-opt'
Bruno Haible <bruno@clisp.org>
parents: 9237
diff changeset
3866 echo "# and alloca is special cased (for the alloca-opt module)."
1c749136a76e AC_LIBSOURCES([alloca.c]) must be a no-op, otherwise it breaks the 'alloca-opt'
Bruno Haible <bruno@clisp.org>
parents: 9237
diff changeset
3867 echo "# We could also entirely rely on EXTRA_lib..._SOURCES."
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
3868 echo "AC_DEFUN([${macro_prefix_arg}_LIBSOURCES], ["
9237
aeb8e2d99afa m4 macro indentation.
Bruno Haible <bruno@linuix.haible.de>
parents: 9232
diff changeset
3869 echo " m4_foreach([_gl_NAME], [\$1], ["
9275
1c749136a76e AC_LIBSOURCES([alloca.c]) must be a no-op, otherwise it breaks the 'alloca-opt'
Bruno Haible <bruno@clisp.org>
parents: 9237
diff changeset
3870 echo " m4_if(_gl_NAME, [alloca.c], [], ["
10066
9a2a9c43db65 Reduce number of forks required during autoconf.
Eric Blake <ebb9@byu.net>
parents: 10065
diff changeset
3871 echo " m4_define([${macro_prefix_arg}_LIBSOURCES_DIR], [$sourcebase_arg])"
10070
61be13abdf14 Avoid quadratic growth in gl_LIBSOURCES.
Eric Blake <ebb9@byu.net>
parents: 10067
diff changeset
3872 echo " m4_append([${macro_prefix_arg}_LIBSOURCES_LIST], _gl_NAME, [ ])"
9275
1c749136a76e AC_LIBSOURCES([alloca.c]) must be a no-op, otherwise it breaks the 'alloca-opt'
Bruno Haible <bruno@clisp.org>
parents: 9237
diff changeset
3873 echo " ])"
9237
aeb8e2d99afa m4 macro indentation.
Bruno Haible <bruno@linuix.haible.de>
parents: 9232
diff changeset
3874 echo " ])"
aeb8e2d99afa m4 macro indentation.
Bruno Haible <bruno@linuix.haible.de>
parents: 9232
diff changeset
3875 echo "])"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3876 }
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
3877
14672
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3878 # func_emit_autoconf_snippet indentation
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3879 # emits the autoconf snippet of a module.
14669
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3880 # Input:
17042
61736e6c8fbe gnulib-tool: Fix indentation of generated gnulib-comp.m4 file.
Bruno Haible <bruno@clisp.org>
parents: 17039
diff changeset
3881 # - indentation spaces to prepend on each line
14669
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3882 # - local_gnulib_dir from --local-dir
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3883 # - modcache true or false, from --cache-modules/--no-cache-modules
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3884 # - sed_replace_build_aux sed expression that replaces reference to build-aux
16122
e3e8e2fc21a9 Fix conflict between two instantiations of module 'unistd'.
Bruno Haible <bruno@clisp.org>
parents: 15854
diff changeset
3885 # - sed_replace_include_guard_prefix
e3e8e2fc21a9 Fix conflict between two instantiations of module 'unistd'.
Bruno Haible <bruno@clisp.org>
parents: 15854
diff changeset
3886 # sed expression for resolving ${gl_include_guard_prefix}
14672
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3887 # - module the module name
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3888 # - toplevel true or false. 'false' means a subordinate use of
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3889 # gnulib-tool.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3890 # - disable_libtool true or false. It tells whether to disable libtool
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3891 # handling even if it has been specified through the
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3892 # command line options.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3893 # - disable_gettext true or false. It tells whether to disable AM_GNU_GETTEXT
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3894 # invocations.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3895 func_emit_autoconf_snippet ()
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3896 {
17042
61736e6c8fbe gnulib-tool: Fix indentation of generated gnulib-comp.m4 file.
Bruno Haible <bruno@clisp.org>
parents: 17039
diff changeset
3897 indentation="$1"
14672
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3898 if { case $module in
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3899 gnumakefile | maintainer-makefile)
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3900 # These modules are meant to be used only in the top-level directory.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3901 $toplevel ;;
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3902 *)
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3903 true ;;
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3904 esac
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3905 }; then
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3906 func_get_autoconf_snippet "$module" \
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3907 | sed -e '/^$/d;' -e "s/^/$indentation/" \
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3908 -e "$sed_replace_build_aux" \
16122
e3e8e2fc21a9 Fix conflict between two instantiations of module 'unistd'.
Bruno Haible <bruno@clisp.org>
parents: 15854
diff changeset
3909 -e "$sed_replace_include_guard_prefix" \
14672
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3910 | { if $disable_libtool; then
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3911 sed -e 's/\$gl_cond_libtool/false/g' \
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3912 -e 's/gl_libdeps/gltests_libdeps/g' \
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3913 -e 's/gl_ltlibdeps/gltests_ltlibdeps/g'
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3914 else
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3915 cat
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3916 fi
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3917 } \
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3918 | { if $disable_gettext; then
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3919 sed -e 's/AM_GNU_GETTEXT(\[external\])/dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac./'
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3920 else
17269
c9d7491e3e78 gnulib-tool: fix incompatibility with autopoint 0.18.2
Paul Eggert <eggert@cs.ucla.edu>
parents: 17249
diff changeset
3921 # Don't indent AM_GNU_GETTEXT_VERSION line, as that confuses
c9d7491e3e78 gnulib-tool: fix incompatibility with autopoint 0.18.2
Paul Eggert <eggert@cs.ucla.edu>
parents: 17249
diff changeset
3922 # autopoint through at least GNU gettext version 0.18.2.
c9d7491e3e78 gnulib-tool: fix incompatibility with autopoint 0.18.2
Paul Eggert <eggert@cs.ucla.edu>
parents: 17249
diff changeset
3923 sed -e 's/^ *AM_GNU_GETTEXT_VERSION/AM_GNU_GETTEXT_VERSION/'
14672
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3924 fi
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3925 }
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3926 if test "$module" = 'alloca' && test "$libtool" = true && ! $disable_libtool; then
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3927 echo 'changequote(,)dnl'
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3928 echo 'LTALLOCA=`echo "$ALLOCA" | sed -e '"'"'s/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'"'"'`'
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3929 echo 'changequote([, ])dnl'
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3930 echo 'AC_SUBST([LTALLOCA])'
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3931 fi
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3932 fi
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3933 }
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3934
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3935 # func_emit_autoconf_snippets modules verifier toplevel disable_libtool disable_gettext
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3936 # collects and emit the autoconf snippets of a set of modules.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3937 # Input:
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3938 # - local_gnulib_dir from --local-dir
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3939 # - modcache true or false, from --cache-modules/--no-cache-modules
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3940 # - sed_replace_build_aux sed expression that replaces reference to build-aux
16122
e3e8e2fc21a9 Fix conflict between two instantiations of module 'unistd'.
Bruno Haible <bruno@clisp.org>
parents: 15854
diff changeset
3941 # - sed_replace_include_guard_prefix
e3e8e2fc21a9 Fix conflict between two instantiations of module 'unistd'.
Bruno Haible <bruno@clisp.org>
parents: 15854
diff changeset
3942 # sed expression for resolving ${gl_include_guard_prefix}
14672
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3943 # - modules the list of modules.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3944 # - verifier one of func_verify_module, func_verify_nontests_module,
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3945 # func_verify_tests_module. It selects the subset of
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3946 # $modules to consider.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3947 # - toplevel true or false. 'false' means a subordinate use of
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3948 # gnulib-tool.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3949 # - disable_libtool true or false. It tells whether to disable libtool
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3950 # handling even if it has been specified through the
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3951 # command line options.
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3952 # - disable_gettext true or false. It tells whether to disable AM_GNU_GETTEXT
258142b2fe00 gnulib-tool: Refactor.
Bruno Haible <bruno@clisp.org>
parents: 14669
diff changeset
3953 # invocations.
14669
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3954 func_emit_autoconf_snippets ()
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3955 {
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3956 verifier="$2"
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3957 toplevel="$3"
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3958 disable_libtool="$4"
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
3959 disable_gettext="$5"
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
3960 if test "$cond_dependencies" = true; then
15854
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
3961 for m in $modules; do echo $m; done | LC_ALL=C sort -u > "$tmp"/modules
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3962 # Emit the autoconf code for the unconditional modules.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3963 for module in $1; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3964 eval $verifier
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3965 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3966 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3967 :
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3968 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3969 func_emit_autoconf_snippet " "
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3970 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3971 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3972 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3973 # Initialize the shell variables indicating that the modules are enabled.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3974 for module in $1; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3975 eval $verifier
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3976 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3977 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3978 func_module_shellvar_name "$module"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3979 echo " $shellvar=false"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3980 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3981 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3982 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3983 # Emit the autoconf code for the conditional modules, each in a separate
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3984 # function. This makes it possible to support cycles among conditional
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3985 # modules.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3986 for module in $1; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3987 eval $verifier
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3988 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3989 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3990 func_module_shellfunc_name "$module"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3991 func_module_shellvar_name "$module"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3992 echo " $shellfunc ()"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3993 echo ' {'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3994 echo " if ! \$$shellvar; then"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3995 func_emit_autoconf_snippet " "
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3996 echo " $shellvar=true"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
3997 deps=`func_get_dependencies $module | sed -e "$sed_dependencies_without_conditions"`
15854
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
3998 # Intersect $deps with the modules list $1.
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
3999 deps=`for m in $deps; do echo $m; done | LC_ALL=C sort -u | LC_ALL=C join - "$tmp"/modules`
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4000 for dep in $deps; do
15854
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
4001 if func_cond_module_p "$dep"; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4002 func_module_shellfunc_name "$dep"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4003 func_cond_module_condition "$module" "$dep"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4004 if test "$condition" != true; then
15852
44740f4ef8e2 gnulib-tool: fix typo that broke Emacs on powerpc-apple-darwin9.8.0.
Paul Eggert <eggert@cs.ucla.edu>
parents: 15801
diff changeset
4005 echo " if $condition; then"
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4006 echo " $shellfunc"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4007 echo ' fi'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4008 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4009 echo " $shellfunc"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4010 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4011 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4012 # The autoconf code for $dep has already been emitted above and
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4013 # therefore is already executed when this function is run.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4014 :
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4015 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4016 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4017 echo ' fi'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4018 echo ' }'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4019 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4020 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4021 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4022 # Emit the dependencies from the unconditional to the conditional modules.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4023 for module in $1; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4024 eval $verifier
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4025 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4026 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4027 :
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4028 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4029 deps=`func_get_dependencies $module | sed -e "$sed_dependencies_without_conditions"`
15854
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
4030 # Intersect $deps with the modules list $1.
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
4031 deps=`for m in $deps; do echo $m; done | LC_ALL=C sort -u | LC_ALL=C join - "$tmp"/modules`
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4032 for dep in $deps; do
15854
d3633bf8b61d gnulib-tool: Improve last commit.
Bruno Haible <bruno@clisp.org>
parents: 15853
diff changeset
4033 if func_cond_module_p "$dep"; then
14682
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4034 func_module_shellfunc_name "$dep"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4035 func_cond_module_condition "$module" "$dep"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4036 if test "$condition" != true; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4037 echo " if $condition; then"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4038 echo " $shellfunc"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4039 echo ' fi'
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4040 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4041 echo " $shellfunc"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4042 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4043 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4044 # The autoconf code for $dep has already been emitted above and
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4045 # therefore is already executed when this code is run.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4046 :
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4047 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4048 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4049 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4050 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4051 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4052 # Define the Automake conditionals.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4053 echo " m4_pattern_allow([^${macro_prefix}_GNULIB_ENABLED_])"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4054 for module in $1; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4055 eval $verifier
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4056 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4057 if func_cond_module_p "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4058 func_module_conditional_name "$module"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4059 func_module_shellvar_name "$module"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4060 echo " AM_CONDITIONAL([$conditional], [\$$shellvar])"
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4061 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4062 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4063 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4064 else
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4065 # Ignore the conditions, and enable all modules unconditionally.
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4066 for module in $1; do
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4067 eval $verifier
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4068 if test -n "$module"; then
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4069 func_emit_autoconf_snippet " "
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4070 fi
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4071 done
af0bb23f406a Support for conditional dependencies.
Bruno Haible <bruno@clisp.org>
parents: 14672
diff changeset
4072 fi
14669
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
4073 }
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
4074
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4075 # func_import modules
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4076 # Uses also the variables
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4077 # - mode import or add-import or remove-import or update
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4078 # - destdir target directory
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
4079 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
4080 # - modcache true or false, from --cache-modules/--no-cache-modules
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
4081 # - verbose integer, default 0, inc/decremented by --verbose/--quiet
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4082 # - libname library name
13632
09362ffa0085 gnulib-tool: Avoid error when run in a package without Makefile.am.
Bruno Haible <bruno@clisp.org>
parents: 13625
diff changeset
4083 # - supplied_libname true if --lib was given, blank otherwise
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4084 # - sourcebase directory relative to destdir where to place source code
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4085 # - m4base directory relative to destdir where to place *.m4 macros
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4086 # - pobase directory relative to destdir where to place *.po files
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
4087 # - docbase directory relative to destdir where to place doc files
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
4088 # - testsbase directory relative to destdir where to place unit test code
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
4089 # - auxdir directory relative to destdir where to place build aux files
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4090 # - inctests true if --with-tests was given, false otherwise
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4091 # - incobsolete true if --with-obsolete was given, blank otherwise
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4092 # - inc_cxx_tests true if --with-c++-tests was given, blank otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4093 # - inc_longrunning_tests true if --with-longrunning-tests was given, blank
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4094 # otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4095 # - inc_privileged_tests true if --with-privileged-tests was given, blank
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4096 # otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4097 # - inc_unportable_tests true if --with-unportable-tests was given, blank
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4098 # otherwise
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4099 # - inc_all_tests true if --with-all-tests was given, blank otherwise
5981
09850e201e79 New option --avoid.
Bruno Haible <bruno@clisp.org>
parents: 5963
diff changeset
4100 # - avoidlist list of modules to avoid, from --avoid
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4101 # - cond_dependencies true if --conditional-dependencies was given, false if
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4102 # --no-conditional-dependencies was given, blank otherwise
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4103 # - lgpl yes or a number if library's license shall be LGPL,
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4104 # blank otherwise
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4105 # - makefile_name from --makefile-name
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
4106 # - libtool true if --libtool was given, false if --no-libtool was
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
4107 # given, blank otherwise
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
4108 # - guessed_libtool true if the configure.ac file uses libtool, false otherwise
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
4109 # - macro_prefix prefix of gl_EARLY, gl_INIT macros to use
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4110 # - po_domain prefix of i18n domain to use (without -gnulib suffix)
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4111 # - witness_c_macro from --witness-c-macro
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4112 # - vc_files true if --vc-files was given, false if --no-vc-files was
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4113 # given, blank otherwise
6994
3484a8772427 Add option --assume-autoconf. Default is back to 2.59.
Bruno Haible <bruno@clisp.org>
parents: 6993
diff changeset
4114 # - autoconf_minversion minimum supported autoconf version
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4115 # - doit : if actions shall be executed, false if only to be printed
5799
ad9eff556694 2005-04-15 Simon Josefsson <jas@extundo.com>
Simon Josefsson <simon@josefsson.org>
parents: 5798
diff changeset
4116 # - symbolic true if files should be symlinked, copied otherwise
7643
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
4117 # - lsymbolic true if files from local_gnulib_dir should be symlinked,
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
4118 # copied otherwise
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
4119 # - do_copyrights true if copyright notices in files should be replaced,
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
4120 # blank otherwise
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4121 func_import ()
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4122 {
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4123 # Get the cached settings.
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4124 # In 'import' mode, we read them only for the purpose of knowing the old
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4125 # installed file list, and don't use them as defaults.
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
4126 cached_local_gnulib_dir=
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4127 cached_specified_modules=
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4128 cached_incobsolete=
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4129 cached_inc_cxx_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4130 cached_inc_longrunning_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4131 cached_inc_privileged_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4132 cached_inc_unportable_tests=
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4133 cached_inc_all_tests=
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4134 cached_avoidlist=
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4135 cached_sourcebase=
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4136 cached_m4base=
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4137 cached_pobase=
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
4138 cached_docbase=
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
4139 cached_testsbase=
8890
576d3e4f31c2 Remember the presence of the --with-tests command-line option through
Bruno Haible <bruno@clisp.org>
parents: 8672
diff changeset
4140 cached_inctests=
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4141 cached_libname=
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4142 cached_lgpl=
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4143 cached_makefile_name=
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4144 cached_cond_dependencies=
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4145 cached_libtool=
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4146 cached_macro_prefix=
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4147 cached_po_domain=
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4148 cached_witness_c_macro=
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4149 cached_vc_files=
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4150 cached_files=
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4151 if test -f "$destdir"/$m4base/gnulib-cache.m4; then
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
4152 cached_libtool=false
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4153 my_sed_traces='
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4154 s,#.*$,,
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4155 s,^dnl .*$,,
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4156 s, dnl .*$,,
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
4157 /gl_LOCAL_DIR(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4158 s,^.*gl_LOCAL_DIR([[ ]*\([^]"$`\\)]*\).*$,cached_local_gnulib_dir="\1",p
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
4159 }
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4160 /gl_MODULES(/ {
10293
3c624b3d1039 Make a sed program more robust.
Bruno Haible <bruno@clisp.org>
parents: 10261
diff changeset
4161 ta
10246
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
4162 :a
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
4163 s/)/)/
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
4164 tb
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
4165 N
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
4166 ba
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
4167 :b
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4168 s,^.*gl_MODULES([[ ]*\([^]"$`\\)]*\).*$,cached_specified_modules="\1",p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4169 }
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4170 /gl_WITH_OBSOLETE/ {
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4171 s,^.*$,cached_incobsolete=true,p
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4172 }
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4173 /gl_WITH_CXX_TESTS/ {
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4174 s,^.*$,cached_inc_cxx_tests=true,p
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4175 }
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4176 /gl_WITH_LONGRUNNING_TESTS/ {
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4177 s,^.*$,cached_inc_longrunning_tests=true,p
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4178 }
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4179 /gl_WITH_PRIVILEGED_TESTS/ {
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4180 s,^.*$,cached_inc_privileged_tests=true,p
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4181 }
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4182 /gl_WITH_UNPORTABLE_TESTS/ {
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4183 s,^.*$,cached_inc_unportable_tests=true,p
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4184 }
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4185 /gl_WITH_ALL_TESTS/ {
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4186 s,^.*$,cached_inc_all_tests=true,p
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4187 }
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4188 /gl_AVOID(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4189 s,^.*gl_AVOID([[ ]*\([^]"$`\\)]*\).*$,cached_avoidlist="\1",p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4190 }
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4191 /gl_SOURCE_BASE(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4192 s,^.*gl_SOURCE_BASE([[ ]*\([^]"$`\\)]*\).*$,cached_sourcebase="\1",p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4193 }
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4194 /gl_M4_BASE(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4195 s,^.*gl_M4_BASE([[ ]*\([^]"$`\\)]*\).*$,cached_m4base="\1",p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4196 }
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4197 /gl_PO_BASE(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4198 s,^.*gl_PO_BASE([[ ]*\([^]"$`\\)]*\).*$,cached_pobase="\1",p
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4199 }
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
4200 /gl_DOC_BASE(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4201 s,^.*gl_DOC_BASE([[ ]*\([^]"$`\\)]*\).*$,cached_docbase="\1",p
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
4202 }
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
4203 /gl_TESTS_BASE(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4204 s,^.*gl_TESTS_BASE([[ ]*\([^]"$`\\)]*\).*$,cached_testsbase="\1",p
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
4205 }
8890
576d3e4f31c2 Remember the presence of the --with-tests command-line option through
Bruno Haible <bruno@clisp.org>
parents: 8672
diff changeset
4206 /gl_WITH_TESTS/ {
576d3e4f31c2 Remember the presence of the --with-tests command-line option through
Bruno Haible <bruno@clisp.org>
parents: 8672
diff changeset
4207 s,^.*$,cached_inctests=true,p
576d3e4f31c2 Remember the presence of the --with-tests command-line option through
Bruno Haible <bruno@clisp.org>
parents: 8672
diff changeset
4208 }
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4209 /gl_LIB(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4210 s,^.*gl_LIB([[ ]*\([^]"$`\\)]*\).*$,cached_libname="\1",p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4211 }
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4212 /gl_LGPL(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4213 s,^.*gl_LGPL([[ ]*\([^]"$`\\)]*\).*$,cached_lgpl="\1",p
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4214 }
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4215 /gl_LGPL/ {
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4216 s,^.*$,cached_lgpl=yes,p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4217 }
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4218 /gl_MAKEFILE_NAME(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4219 s,^.*gl_MAKEFILE_NAME([[ ]*\([^]"$`\\)]*\).*$,cached_makefile_name="\1",p
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4220 }
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4221 /gl_CONDITIONAL_DEPENDENCIES/ {
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4222 s,^.*$,cached_cond_dependencies=true,p
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4223 }
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4224 /gl_LIBTOOL/ {
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4225 s,^.*$,cached_libtool=true,p
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4226 }
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4227 /gl_MACRO_PREFIX(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4228 s,^.*gl_MACRO_PREFIX([[ ]*\([^]"$`\\)]*\).*$,cached_macro_prefix="\1",p
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4229 }
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4230 /gl_PO_DOMAIN(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4231 s,^.*gl_PO_DOMAIN([[ ]*\([^]"$`\\)]*\).*$,cached_po_domain="\1",p
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4232 }
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4233 /gl_WITNESS_C_MACRO(/ {
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4234 s,^.*gl_WITNESS_C_MACRO([[ ]*\([^]"$`\\)]*\).*$,cached_witness_c_macro="\1",p
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4235 }
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4236 /gl_VC_FILES(/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4237 s,^.*gl_VC_FILES([[ ]*\([^]"$`\\)]*\).*$,cached_vc_files="\1",p
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4238 }'
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4239 eval `sed -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-cache.m4`
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4240 if test -f "$destdir"/$m4base/gnulib-comp.m4; then
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4241 my_sed_traces='
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4242 s,#.*$,,
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4243 s,^dnl .*$,,
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4244 s, dnl .*$,,
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4245 /AC_DEFUN(\['"${cached_macro_prefix}"'_FILE_LIST\], \[/ {
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4246 s,^.*$,cached_files=",p
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4247 n
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4248 ta
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4249 :a
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4250 s,^\]).*$,",
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4251 tb
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
4252 s,["$`\\],,g
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4253 p
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4254 n
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4255 ba
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4256 :b
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4257 p
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4258 }'
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4259 eval `sed -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-comp.m4`
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4260 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4261 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4262
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4263 if test "$mode" = import; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4264 # In 'import' mode, the new set of specified modules overrides the cached
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4265 # set of modules. Ignore the cached settings.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4266 specified_modules="$1"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4267 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4268 # Merge the cached settings with the specified ones.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4269 # The m4base must be the same as expected from the pathname.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4270 if test -n "$cached_m4base" && test "$cached_m4base" != "$m4base"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4271 func_fatal_error "$m4base/gnulib-cache.m4 is expected to contain gl_M4_BASE([$m4base])"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4272 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4273 # The local_gnulib_dir defaults to the cached one. Recall that the cached one
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4274 # is relative to $destdir, whereas the one we use is relative to . or absolute.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4275 if test -z "$local_gnulib_dir"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4276 if test -n "$cached_local_gnulib_dir"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4277 case "$destdir" in
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4278 /*)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4279 local_gnulib_dir="$destdir/$cached_local_gnulib_dir" ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4280 *)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4281 case "$cached_local_gnulib_dir" in
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4282 /*)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4283 local_gnulib_dir="$destdir/$cached_local_gnulib_dir" ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4284 *)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4285 func_relconcat "$destdir" "$cached_local_gnulib_dir"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4286 local_gnulib_dir="$relconcat" ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4287 esac ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4288 esac
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4289 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4290 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4291 case $mode in
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4292 add-import)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4293 # Append the cached and the specified module names. So that
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4294 # "gnulib-tool --add-import foo" means to add the module foo.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4295 specified_modules="$cached_specified_modules $1"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4296 ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4297 remove-import)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4298 # Take the cached module names, minus the specified module names.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4299 specified_modules=
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4300 if $have_associative; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4301 # Use an associative array, for O(N) worst-case run time.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4302 declare -A to_remove
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4303 for m in $1; do
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
4304 eval 'to_remove[$m]=yes'
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4305 done
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4306 for module in $cached_specified_modules; do
13660
6a2c7d3ca5f0 gnulib-tool: work with NetBSD /bin/sh
Eric Blake <eblake@redhat.com>
parents: 13658
diff changeset
4307 if eval 'test -z "${to_remove[$module]}"'; then
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4308 func_append specified_modules "$module "
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4309 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4310 done
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4311 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4312 # This loop has O(N²) worst-case run time.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4313 for module in $cached_specified_modules; do
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4314 to_remove=
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4315 for m in $1; do
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4316 if test "$m" = "$module"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4317 to_remove=yes
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4318 break
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4319 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4320 done
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4321 if test -z "$to_remove"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4322 func_append specified_modules "$module "
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4323 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4324 done
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4325 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4326 ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4327 update)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4328 # Take the cached module names. There are no specified module names.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4329 specified_modules="$cached_specified_modules"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4330 ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4331 esac
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4332 # Included obsolete modules among the dependencies if specified either way.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4333 if test -z "$incobsolete"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4334 incobsolete="$cached_incobsolete"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4335 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4336 # Included special kinds of tests modules among the dependencies if specified
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4337 # either way.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4338 if test -z "$inc_cxx_tests"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4339 inc_cxx_tests="$cached_inc_cxx_tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4340 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4341 if test -z "$inc_longrunning_tests"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4342 inc_longrunning_tests="$cached_inc_longrunning_tests"
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
4343 fi
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4344 if test -z "$inc_privileged_tests"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4345 inc_privileged_tests="$cached_inc_privileged_tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4346 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4347 if test -z "$inc_unportable_tests"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4348 inc_unportable_tests="$cached_inc_unportable_tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4349 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4350 if test -z "$inc_all_tests"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4351 inc_all_tests="$cached_inc_all_tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4352 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4353 # Append the cached and the specified avoidlist. This is probably better
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4354 # than dropping the cached one when --avoid is specified at least once.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4355 avoidlist=`for m in $cached_avoidlist $avoidlist; do echo $m; done | LC_ALL=C sort -u`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4356 avoidlist=`echo $avoidlist`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4357
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4358 # The sourcebase defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4359 if test -z "$sourcebase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4360 sourcebase="$cached_sourcebase"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4361 if test -z "$sourcebase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4362 func_fatal_error "missing --source-base option"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4363 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4364 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4365 # The pobase defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4366 if test -z "$pobase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4367 pobase="$cached_pobase"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4368 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4369 # The docbase defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4370 if test -z "$docbase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4371 docbase="$cached_docbase"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4372 if test -z "$docbase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4373 func_fatal_error "missing --doc-base option. --doc-base has been introduced on 2006-07-11; if your last invocation of 'gnulib-tool --import' is before that date, you need to run 'gnulib-tool --import' once, with a --doc-base option."
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4374 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4375 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4376 # The testsbase defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4377 if test -z "$testsbase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4378 testsbase="$cached_testsbase"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4379 if test -z "$testsbase"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4380 func_fatal_error "missing --tests-base option"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4381 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4382 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4383 # Require the tests if specified either way.
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4384 if ! $inctests; then
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4385 inctests="$cached_inctests"
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4386 if test -z "$inctests"; then
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4387 inctests=false
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4388 fi
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4389 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4390 # The libname defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4391 if test -z "$supplied_libname"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4392 libname="$cached_libname"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4393 if test -z "$libname"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4394 func_fatal_error "missing --lib option"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4395 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4396 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4397 # Require LGPL if specified either way.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4398 if test -z "$lgpl"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4399 lgpl="$cached_lgpl"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4400 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4401 # The makefile_name defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4402 if test -z "$makefile_name"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4403 makefile_name="$cached_makefile_name"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4404 fi
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4405 # Use conditional dependencies if specified either way.
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4406 if test -z "$cond_dependencies"; then
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4407 cond_dependencies="$cached_cond_dependencies"
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4408 fi
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4409 # Use libtool if specified either way, or if guessed.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4410 if test -z "$libtool"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4411 if test -n "$cached_m4base"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4412 libtool="$cached_libtool"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4413 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4414 libtool="$guessed_libtool"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4415 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4416 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4417 # The macro_prefix defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4418 if test -z "$macro_prefix"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4419 macro_prefix="$cached_macro_prefix"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4420 if test -z "$macro_prefix"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4421 func_fatal_error "missing --macro-prefix option"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4422 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4423 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4424 # The po_domain defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4425 if test -z "$po_domain"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4426 po_domain="$cached_po_domain"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4427 fi
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4428 # The witness_c_macro defaults to the cached one.
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4429 if test -z "$witness_c_macro"; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4430 witness_c_macro="$cached_witness_c_macro"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4431 fi
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4432 # The vc_files defaults to the cached one.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4433 if test -z "$vc_files"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4434 vc_files="$cached_vc_files"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
4435 fi
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4436 # Ensure constraints.
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4437 if test "$cond_dependencies" = true && $inctests; then
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4438 echo "gnulib-tool: option --conditional-dependencies is not supported with --with-tests" 1>&2
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4439 func_exit 1
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4440 fi
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4441 fi
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
4442 # --without-*-tests options are not supported here.
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
4443 excl_cxx_tests=
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
4444 excl_longrunning_tests=
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
4445 excl_privileged_tests=
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
4446 excl_unportable_tests=
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4447
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4448 # Canonicalize the list of specified modules.
7319
1726cc39709b Use "sort -u" where it makes sense.
Bruno Haible <bruno@clisp.org>
parents: 7299
diff changeset
4449 specified_modules=`for m in $specified_modules; do echo $m; done | LC_ALL=C sort -u`
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4450
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
4451 # Include all kinds of tests modules if --with-all-tests was specified.
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
4452 inc_all_direct_tests="$inc_all_tests"
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
4453 inc_all_indirect_tests="$inc_all_tests"
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
4454
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4455 # Determine final module list.
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4456 modules="$specified_modules"
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
4457 func_modules_transitive_closure
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
4458 if test $verbose -ge 0; then
13420
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
4459 func_show_module_list
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
4460 fi
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4461 final_modules="$modules"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4462
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4463 # Determine main module list and tests-related module list separately.
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4464 func_modules_transitive_closure_separately
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4465
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4466 # Determine whether a $testsbase/libtests.a is needed.
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4467 func_determine_use_libtests
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4468
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4469 # Add the dummy module to the main module list or to the tests-related module
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4470 # list if needed.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4471 func_modules_add_dummy_separately
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
4472
7235
3dbbe645b976 * MODULES.html.sh (Support for building documentation): Add gpl, lgpl.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7222
diff changeset
4473 # If --lgpl, verify that the licenses of modules are compatible.
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4474 if test -n "$lgpl"; then
10479
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4475 license_incompatibilities=
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4476 for module in $main_modules; do
5346
40f5d74050d5 Use func_get_license.
Bruno Haible <bruno@clisp.org>
parents: 5345
diff changeset
4477 license=`func_get_license $module`
5963
6fb8c48c4dcd * gnulib-tool (func_import): Add support for 'public domain' license.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
4478 case $license in
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4479 'GPLed build tool') ;;
7245
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4480 'public domain' | 'unlimited' | 'unmodifiable license text') ;;
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4481 *)
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4482 case "$lgpl" in
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4483 yes | 3)
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4484 case $license in
12310
4473116f2155 Add `gnulib-tool --import' support for LGPLv3+.
Ludovic Courtès <ludo@gnu.org>
parents: 12295
diff changeset
4485 LGPL | LGPLv2+ | LGPLv3+) ;;
10479
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4486 *) func_append license_incompatibilities "$module $license$nl" ;;
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4487 esac
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4488 ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4489 2)
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4490 case $license in
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4491 LGPLv2+) ;;
10479
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4492 *) func_append license_incompatibilities "$module $license$nl" ;;
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4493 esac
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4494 ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4495 *) func_fatal_error "invalid value lgpl=$lgpl" ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4496 esac
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4497 ;;
5963
6fb8c48c4dcd * gnulib-tool (func_import): Add support for 'public domain' license.
Paul Eggert <eggert@cs.ucla.edu>
parents: 5848
diff changeset
4498 esac
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4499 done
10479
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4500 if test -n "$license_incompatibilities"; then
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4501 # Format the license incompatibilities as a table.
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4502 sed_expand_column1_width50_indent17='s,^\([^ ]*\) ,\1 ,
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4503 s,^\(.................................................[^ ]*\) *, \1 ,'
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4504 license_incompatibilities=`echo "$license_incompatibilities" | sed -e "$sed_expand_column1_width50_indent17"`
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4505 func_fatal_error "incompatible license on modules:$nl$license_incompatibilities"
74885eaea206 Report all license incompatibilities during --import.
Bruno Haible <bruno@clisp.org>
parents: 10478
diff changeset
4506 fi
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4507 fi
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4508
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
4509 # Show banner notice of every module.
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4510 modules="$main_modules"
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
4511 func_modules_notice
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
4512
7199
85ef7b18536b New config-h module, so that "make" output needn't be cluttered
Paul Eggert <eggert@cs.ucla.edu>
parents: 7195
diff changeset
4513 # Determine script to apply to imported library files.
85ef7b18536b New config-h module, so that "make" output needn't be cluttered
Paul Eggert <eggert@cs.ucla.edu>
parents: 7195
diff changeset
4514 sed_transform_lib_file=
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4515 for module in $main_modules; do
7245
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4516 if test $module = config-h; then
7199
85ef7b18536b New config-h module, so that "make" output needn't be cluttered
Paul Eggert <eggert@cs.ucla.edu>
parents: 7195
diff changeset
4517 # Assume config.h exists, and that -DHAVE_CONFIG_H is omitted.
85ef7b18536b New config-h module, so that "make" output needn't be cluttered
Paul Eggert <eggert@cs.ucla.edu>
parents: 7195
diff changeset
4518 sed_transform_lib_file=$sed_transform_lib_file'
7245
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4519 s/^#ifdef[ ]*HAVE_CONFIG_H[ ]*$/#if 1/
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4520 '
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4521 break
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4522 fi
138333fc7a90 Improve maintainability.
Bruno Haible <bruno@clisp.org>
parents: 7241
diff changeset
4523 done
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4524 sed_transform_main_lib_file="$sed_transform_lib_file"
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
4525 if test -n "$do_copyrights"; then
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
4526 if test -n "$lgpl"; then
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
4527 # Update license.
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4528 case "$lgpl" in
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4529 yes | 3)
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4530 sed_transform_main_lib_file=$sed_transform_main_lib_file'
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4531 s/GNU General/GNU Lesser General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4532 s/General Public License/Lesser General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4533 s/Lesser Lesser General Public License/Lesser General Public License/g
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4534 '
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4535 ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4536 2)
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4537 sed_transform_main_lib_file=$sed_transform_main_lib_file'
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4538 s/GNU General/GNU Lesser General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4539 s/General Public License/Lesser General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4540 s/Lesser Lesser General Public License/Lesser General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4541
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4542 s/version [23]\([ ,]\)/version 2.1\1/g
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4543 '
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4544 ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4545 *) func_fatal_error "invalid value lgpl=$lgpl" ;;
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4546 esac
9424
d852c1c185e4 If --lgpl is not specified, convert copyright headers to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9417
diff changeset
4547 else
d852c1c185e4 If --lgpl is not specified, convert copyright headers to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9417
diff changeset
4548 # Update license.
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4549 sed_transform_main_lib_file=$sed_transform_main_lib_file'
9424
d852c1c185e4 If --lgpl is not specified, convert copyright headers to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9417
diff changeset
4550 s/GNU Lesser General/GNU General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4551 s/Lesser General Public License/General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4552
9424
d852c1c185e4 If --lgpl is not specified, convert copyright headers to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9417
diff changeset
4553 s/GNU Library General/GNU General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4554 s/Library General Public License/General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4555
11592
345504ca672e gnulib-tool: Don't use non-POSIX regexps.
Simon Josefsson <simon@josefsson.org>
parents: 11560
diff changeset
4556 s/version 2\(.1\)\{0,1\}\([ ,]\)/version 3\2/g
9424
d852c1c185e4 If --lgpl is not specified, convert copyright headers to GPLv3+.
Bruno Haible <bruno@clisp.org>
parents: 9417
diff changeset
4557 '
9096
7f1880b27b89 New gnulib-tool option --more-symlinks.
Bruno Haible <bruno@clisp.org>
parents: 9090
diff changeset
4558 fi
7199
85ef7b18536b New config-h module, so that "make" output needn't be cluttered
Paul Eggert <eggert@cs.ucla.edu>
parents: 7195
diff changeset
4559 fi
85ef7b18536b New config-h module, so that "make" output needn't be cluttered
Paul Eggert <eggert@cs.ucla.edu>
parents: 7195
diff changeset
4560
11594
36af7f748bb9 Don't do HAVE_CONFIG_H replacements on build-aux/ files.
Bruno Haible <bruno@clisp.org>
parents: 11593
diff changeset
4561 # Determine script to apply to auxiliary files that go into $auxdir/.
36af7f748bb9 Don't do HAVE_CONFIG_H replacements on build-aux/ files.
Bruno Haible <bruno@clisp.org>
parents: 11593
diff changeset
4562 sed_transform_build_aux_file=
11593
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4563 if test -n "$do_copyrights"; then
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4564 # Update license.
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4565 sed_transform_build_aux_file=$sed_transform_build_aux_file'
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4566 s/GNU Lesser General/GNU General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4567 s/Lesser General Public License/General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4568
11593
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4569 s/GNU Library General/GNU General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4570 s/Library General Public License/General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4571
11593
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4572 s/version 2\(.1\)\{0,1\}\([ ,]\)/version 3\2/g
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4573 '
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4574 fi
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4575
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4576 # Determine script to apply to library files that go into $testsbase/.
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4577 sed_transform_testsrelated_lib_file="$sed_transform_lib_file"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4578 if test -n "$do_copyrights"; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4579 # Update license.
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4580 sed_transform_testsrelated_lib_file=$sed_transform_testsrelated_lib_file'
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4581 s/GNU Lesser General/GNU General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4582 s/Lesser General Public License/General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4583
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4584 s/GNU Library General/GNU General/g
14323
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4585 s/Library General Public License/General Public License/g
c1410c31aa51 gnulib-tool: Make copyright notice adjustment more robust.
Bruno Haible <bruno@clisp.org>
parents: 14273
diff changeset
4586
11592
345504ca672e gnulib-tool: Don't use non-POSIX regexps.
Simon Josefsson <simon@josefsson.org>
parents: 11560
diff changeset
4587 s/version 2\(.1\)\{0,1\}\([ ,]\)/version 3\2/g
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4588 '
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4589 fi
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4590
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4591 # Determine the final file lists.
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
4592 func_modules_to_filelist_separately
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4593
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4594 test -n "$files" \
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4595 || func_fatal_error "refusing to do nothing"
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4596
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4597 # Add m4/gnulib-tool.m4 to the file list. It is not part of any module.
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4598 new_files="$files m4/gnulib-tool.m4"
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4599 old_files="$cached_files"
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4600 if test -f "$destdir"/$m4base/gnulib-tool.m4; then
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4601 func_append old_files " m4/gnulib-tool.m4"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4602 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4603
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4604 rewritten='%REWRITTEN%'
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4605 sed_rewrite_old_files="\
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4606 s,^build-aux/,$rewritten$auxdir/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4607 s,^doc/,$rewritten$cached_docbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4608 s,^lib/,$rewritten$cached_sourcebase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4609 s,^m4/,$rewritten$cached_m4base/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4610 s,^tests/,$rewritten$cached_testsbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4611 s,^tests=lib/,$rewritten$cached_testsbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4612 s,^top/,$rewritten,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4613 s,^$rewritten,,"
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4614 sed_rewrite_new_files="\
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4615 s,^build-aux/,$rewritten$auxdir/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4616 s,^doc/,$rewritten$docbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4617 s,^lib/,$rewritten$sourcebase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4618 s,^m4/,$rewritten$m4base/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4619 s,^tests/,$rewritten$testsbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4620 s,^tests=lib/,$rewritten$testsbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4621 s,^top/,$rewritten,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
4622 s,^$rewritten,,"
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4623
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
4624 # Create directories.
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4625 { echo "$sourcebase"
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4626 echo "$m4base"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4627 if test -n "$pobase"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4628 echo "$pobase"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4629 fi
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4630 docfiles=`echo "$files" | sed -n -e 's,^doc/,,p'`
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4631 if test -n "$docfiles"; then
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4632 echo "$docbase"
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4633 fi
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4634 if $inctests; then
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4635 echo "$testsbase"
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
4636 fi
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4637 echo "$auxdir"
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4638 for f in $files; do echo $f; done \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4639 | sed -e "$sed_rewrite_new_files" \
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4640 | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4641 | LC_ALL=C sort -u
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4642 } > "$tmp"/dirs
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4643 { # Rearrange file descriptors. Needed because "while ... done < ..."
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4644 # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4645 exec 5<&0 < "$tmp"/dirs
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4646 while read d; do
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4647 if test ! -d "$destdir/$d"; then
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4648 if $doit; then
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4649 echo "Creating directory $destdir/$d"
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4650 mkdir -p "$destdir/$d" || func_fatal_error "failed"
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4651 else
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4652 echo "Create directory $destdir/$d"
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4653 fi
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
4654 fi
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4655 done
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4656 exec 0<&5 5<&-
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
4657 }
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
4658
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4659 # Copy files or make symbolic links. Remove obsolete files.
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
4660 added_files=''
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
4661 removed_files=''
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4662 delimiter=' '
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4663 # Construct a table with 2 columns: rewritten-file-name original-file-name,
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4664 # representing the files according to the last gnulib-tool invocation.
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4665 for f in $old_files; do echo $f; done \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4666 | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_old_files" \
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4667 | LC_ALL=C sort \
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4668 > "$tmp"/old-files
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4669 # Construct a table with 2 columns: rewritten-file-name original-file-name,
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4670 # representing the files after this gnulib-tool invocation.
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4671 for f in $new_files; do echo $f; done \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4672 | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" \
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4673 | LC_ALL=C sort \
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4674 > "$tmp"/new-files
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4675 # First the files that are in old-files, but not in new-files:
6595
0c67f1400c5b Fix portability problem to Solaris 9 sh.
Bruno Haible <bruno@clisp.org>
parents: 6581
diff changeset
4676 sed_take_first_column='s,'"$delimiter"'.*,,'
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4677 for g in `LC_ALL=C join -t"$delimiter" -v1 "$tmp"/old-files "$tmp"/new-files | sed -e "$sed_take_first_column"`; do
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4678 # Remove the file. Do nothing if the user already removed it.
9168
9b8032e2af0c Care about dangling symbolic links.
Bruno Haible <bruno@clisp.org>
parents: 9167
diff changeset
4679 if test -f "$destdir/$g" || test -h "$destdir/$g"; then
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4680 if $doit; then
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4681 echo "Removing file $g (backup in ${g}~)"
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4682 mv -f "$destdir/$g" "$destdir/${g}~" || func_fatal_error "failed"
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4683 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4684 echo "Remove file $g (backup in ${g}~)"
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4685 fi
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
4686 func_append removed_files "$g$nl"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4687 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4688 done
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4689 # func_add_or_update handles a file that ought to be present afterwards.
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4690 # Uses parameters
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4691 # - f the original file name
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4692 # - g the rewritten file name
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
4693 # - already_present nonempty if the file should already exist, empty
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
4694 # otherwise
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4695 func_add_or_update ()
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4696 {
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4697 of="$f"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4698 case "$f" in
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4699 tests=lib/*) f=`echo "$f" | sed -e 's,^tests=lib/,lib/,'` ;;
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4700 esac
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4701 func_dest_tmpfilename "$g"
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
4702 func_lookup_file "$f"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
4703 cp "$lookedup_file" "$tmpfile" || func_fatal_error "failed"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4704 if test -n "$sed_transform_main_lib_file"; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4705 case "$of" in
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4706 lib/*)
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4707 sed -e "$sed_transform_main_lib_file" \
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4708 < "$lookedup_file" > "$tmpfile" || func_fatal_error "failed"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4709 ;;
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4710 esac
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4711 fi
11593
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4712 if test -n "$sed_transform_build_aux_file"; then
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4713 case "$of" in
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4714 build-aux/*)
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4715 sed -e "$sed_transform_build_aux_file" \
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4716 < "$lookedup_file" > "$tmpfile" || func_fatal_error "failed"
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4717 ;;
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4718 esac
476a58fbc9b9 gnulib-tool: Transform license on build-aux/ files too.
Simon Josefsson <simon@josefsson.org>
parents: 11592
diff changeset
4719 fi
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4720 if test -n "$sed_transform_testsrelated_lib_file"; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4721 case "$of" in
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4722 tests=lib/*)
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4723 sed -e "$sed_transform_testsrelated_lib_file" \
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
4724 < "$lookedup_file" > "$tmpfile" || func_fatal_error "failed"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4725 ;;
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4726 esac
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
4727 fi
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4728 if test -f "$destdir/$g"; then
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4729 # The file already exists.
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
4730 func_update_file
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4731 else
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4732 # Install the file.
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4733 # Don't protest if the file should be there but isn't: it happens
13636
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
4734 # frequently that developers don't put autogenerated files under version control.
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
4735 func_add_file
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
4736 func_append added_files "$g$nl"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4737 fi
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4738 rm -f "$tmpfile"
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4739 }
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4740 # Then the files that are in new-files, but not in old-files:
6595
0c67f1400c5b Fix portability problem to Solaris 9 sh.
Bruno Haible <bruno@clisp.org>
parents: 6581
diff changeset
4741 sed_take_last_column='s,^.*'"$delimiter"',,'
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4742 already_present=
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4743 LC_ALL=C join -t"$delimiter" -v2 "$tmp"/old-files "$tmp"/new-files \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4744 | sed -e "$sed_take_last_column" \
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4745 | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/added-files
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4746 { # Rearrange file descriptors. Needed because "while ... done < ..."
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4747 # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
7368
a7abebdb07f4 * gnulib-tool (func_import, func_create_testdir): Fix typos in
Eric Blake <ebb9@byu.net>
parents: 7350
diff changeset
4748 exec 5<&0 < "$tmp"/added-files
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4749 while read g f; do
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4750 func_add_or_update
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4751 done
7373
330a972d58f0 Tweak last patch, for symmetry.
Bruno Haible <bruno@clisp.org>
parents: 7368
diff changeset
4752 exec 0<&5 5<&-
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4753 }
6245
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4754 # Then the files that are in new-files and in old-files:
07b16a28510d Speed up the matching of new and old files.
Bruno Haible <bruno@clisp.org>
parents: 6213
diff changeset
4755 already_present=true
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
4756 LC_ALL=C join -t"$delimiter" "$tmp"/old-files "$tmp"/new-files \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4757 | sed -e "$sed_take_last_column" \
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
4758 | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/kept-files
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4759 { # Rearrange file descriptors. Needed because "while ... done < ..."
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4760 # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
7368
a7abebdb07f4 * gnulib-tool (func_import, func_create_testdir): Fix typos in
Eric Blake <ebb9@byu.net>
parents: 7350
diff changeset
4761 exec 5<&0 < "$tmp"/kept-files
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4762 while read g f; do
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4763 func_add_or_update
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4764 done
7373
330a972d58f0 Tweak last patch, for symmetry.
Bruno Haible <bruno@clisp.org>
parents: 7368
diff changeset
4765 exec 0<&5 5<&-
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
4766 }
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4767
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4768 # Command-line invocation printed in a comment in generated gnulib-cache.m4.
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4769 actioncmd="gnulib-tool --import"
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4770 func_append actioncmd " --dir=$destdir"
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
4771 if test -n "$local_gnulib_dir"; then
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4772 func_append actioncmd " --local-dir=$local_gnulib_dir"
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
4773 fi
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4774 func_append actioncmd " --lib=$libname"
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4775 func_append actioncmd " --source-base=$sourcebase"
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4776 func_append actioncmd " --m4-base=$m4base"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4777 if test -n "$pobase"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4778 func_append actioncmd " --po-base=$pobase"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4779 fi
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4780 func_append actioncmd " --doc-base=$docbase"
10475
b80084824a77 Store the --tests-base option in the comment in gnulib-cache.m4.
Yoann Vandoorselaere <yoann.v@prelude-ids.com>
parents: 10453
diff changeset
4781 func_append actioncmd " --tests-base=$testsbase"
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4782 func_append actioncmd " --aux-dir=$auxdir"
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4783 if $inctests; then
8890
576d3e4f31c2 Remember the presence of the --with-tests command-line option through
Bruno Haible <bruno@clisp.org>
parents: 8672
diff changeset
4784 func_append actioncmd " --with-tests"
576d3e4f31c2 Remember the presence of the --with-tests command-line option through
Bruno Haible <bruno@clisp.org>
parents: 8672
diff changeset
4785 fi
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4786 if test -n "$incobsolete"; then
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4787 func_append actioncmd " --with-obsolete"
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
4788 fi
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4789 if test -n "$inc_cxx_tests"; then
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4790 func_append actioncmd " --with-c++-tests"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4791 fi
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4792 if test -n "$inc_longrunning_tests"; then
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4793 func_append actioncmd " --with-longrunning-tests"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4794 fi
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4795 if test -n "$inc_privileged_tests"; then
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4796 func_append actioncmd " --with-privileged-tests"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4797 fi
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4798 if test -n "$inc_unportable_tests"; then
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4799 func_append actioncmd " --with-unportable-tests"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4800 fi
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4801 if test -n "$inc_all_tests"; then
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4802 func_append actioncmd " --with-all-tests"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
4803 fi
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4804 for module in $avoidlist; do
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4805 func_append actioncmd " --avoid=$module"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4806 done
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4807 if test -n "$lgpl"; then
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4808 if test "$lgpl" = yes; then
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4809 func_append actioncmd " --lgpl"
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4810 else
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4811 func_append actioncmd " --lgpl=$lgpl"
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
4812 fi
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4813 fi
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4814 if test -n "$makefile_name"; then
7600
42c51a6fef88 Fix typo in actioncmd. From Charles WIlson.
Bruno Haible <bruno@clisp.org>
parents: 7599
diff changeset
4815 func_append actioncmd " --makefile-name=$makefile_name"
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4816 fi
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4817 if test "$cond_dependencies" = true; then
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4818 func_append actioncmd " --conditional-dependencies"
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4819 else
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4820 func_append actioncmd " --no-conditional-dependencies"
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
4821 fi
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
4822 if test "$libtool" = true; then
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4823 func_append actioncmd " --libtool"
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
4824 else
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4825 func_append actioncmd " --no-libtool"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4826 fi
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4827 func_append actioncmd " --macro-prefix=$macro_prefix"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4828 if test -n "$po_domain"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4829 func_append actioncmd " --po-domain=$po_domain"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4830 fi
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4831 if test -n "$witness_c_macro"; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4832 func_append actioncmd " --witness-c-macro=$witness_c_macro"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
4833 fi
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4834 if test -n "$vc_files"; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4835 if test "$vc_files" = true; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4836 func_append actioncmd " --vc-files"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4837 else
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4838 func_append actioncmd " --no-vc-files"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4839 fi
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
4840 fi
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
4841 func_append actioncmd " `echo $specified_modules`"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4842
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
4843 # Determine include_guard_prefix.
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
4844 func_compute_include_guard_prefix
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
4845
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4846 # Default the makefile name to Makefile.am.
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4847 if test -n "$makefile_name"; then
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4848 makefile_am=$makefile_name
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4849 else
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4850 makefile_am=Makefile.am
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4851 fi
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4852
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
4853 # Create normal Makefile.ams.
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
4854 for_test=false
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
4855
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4856 # Setup list of Makefile.am edits that are to be performed afterwards.
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4857 # Some of these edits apply to files that we will generate; others are
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4858 # under the responsibility of the developer.
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4859 makefile_am_edits=0
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4860 # func_note_Makefile_am_edit dir var value
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4861 # remembers that ${dir}Makefile.am needs to be edited to that ${var} mentions
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4862 # ${value}.
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4863 func_note_Makefile_am_edit ()
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4864 {
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4865 makefile_am_edits=`expr $makefile_am_edits + 1`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4866 eval makefile_am_edit${makefile_am_edits}_dir=\"\$1\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4867 eval makefile_am_edit${makefile_am_edits}_var=\"\$2\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4868 eval makefile_am_edit${makefile_am_edits}_val=\"\$3\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4869 }
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4870 if test "$makefile_am" = Makefile.am; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4871 sourcebase_dir=`echo "$sourcebase" | sed -n -e 's,/[^/]*$,/,p'`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4872 sourcebase_base=`basename "$sourcebase"`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4873 func_note_Makefile_am_edit "$sourcebase_dir" SUBDIRS "$sourcebase_base"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4874 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4875 if test -n "$pobase"; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4876 pobase_dir=`echo "$pobase" | sed -n -e 's,/[^/]*$,/,p'`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4877 pobase_base=`basename "$pobase"`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4878 func_note_Makefile_am_edit "$pobase_dir" SUBDIRS "$pobase_base"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4879 fi
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4880 if $inctests; then
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4881 if test "$makefile_am" = Makefile.am; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4882 testsbase_dir=`echo "$testsbase" | sed -n -e 's,/[^/]*$,/,p'`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4883 testsbase_base=`basename "$testsbase"`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4884 func_note_Makefile_am_edit "$testsbase_dir" SUBDIRS "$testsbase_base"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4885 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4886 fi
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4887 func_note_Makefile_am_edit "" ACLOCAL_AMFLAGS "-I ${m4base}"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4888 {
10478
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4889 # Find the first parent directory of $m4base that contains or will contain
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4890 # a Makefile.am.
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4891 sed_last='s,^.*/\([^/][^/]*\)//*$,\1/,
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4892 s,//*$,/,'
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4893 sed_butlast='s,[^/][^/]*//*$,,'
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4894 dir1="${m4base}/"; dir2=""
10478
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4895 while test -n "$dir1" \
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4896 && ! { test -f "${destdir}/${dir1}Makefile.am" \
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4897 || test "${dir1}Makefile.am" = "$sourcebase/$makefile_am" \
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4898 || test "./${dir1}Makefile.am" = "$sourcebase/$makefile_am" \
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
4899 || { $inctests \
10478
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4900 && { test "${dir1}Makefile.am" = "$testsbase/$makefile_am" \
569d6cd01c90 Oops, tweak last commit so that it also works in the first gnulib-tool run.
Bruno Haible <bruno@clisp.org>
parents: 10476
diff changeset
4901 || test "./${dir1}Makefile.am" = "$testsbase/$makefile_am"; }; }; }; do
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4902 dir2=`echo "$dir1" | sed -e "$sed_last"`"$dir2"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4903 dir1=`echo "$dir1" | sed -e "$sed_butlast"`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4904 done
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4905 func_note_Makefile_am_edit "$dir1" EXTRA_DIST "${dir2}gnulib-cache.m4"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4906 }
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4907
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
4908 # Create library makefile.
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4909 func_dest_tmpfilename $sourcebase/$makefile_am
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
4910 destfile="$sourcebase/$makefile_am"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
4911 modules="$main_modules"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4912 func_emit_lib_Makefile_am > "$tmpfile"
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4913 if test -f "$destdir"/$sourcebase/$makefile_am; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
4914 if cmp -s "$destdir"/$sourcebase/$makefile_am "$tmpfile"; then
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4915 rm -f "$tmpfile"
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4916 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4917 if $doit; then
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4918 echo "Updating $sourcebase/$makefile_am (backup in $sourcebase/$makefile_am~)"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4919 mv -f "$destdir"/$sourcebase/$makefile_am "$destdir"/$sourcebase/$makefile_am~
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4920 mv -f "$tmpfile" "$destdir"/$sourcebase/$makefile_am
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4921 else
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4922 echo "Update $sourcebase/$makefile_am (backup in $sourcebase/$makefile_am~)"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4923 rm -f "$tmpfile"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4924 fi
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4925 fi
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4926 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4927 if $doit; then
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4928 echo "Creating $sourcebase/$makefile_am"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4929 mv -f "$tmpfile" "$destdir"/$sourcebase/$makefile_am
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
4930 else
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
4931 echo "Create $sourcebase/$makefile_am"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
4932 rm -f "$tmpfile"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
4933 fi
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
4934 func_append added_files "$sourcebase/$makefile_am$nl"
5351
7c565c8ecabc Move duplicated code into function func_emit_lib_Makefile_am().
Bruno Haible <bruno@clisp.org>
parents: 5350
diff changeset
4935 fi
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
4936
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4937 # Create po/ directory.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4938 if test -n "$pobase"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4939 # Create po makefile and auxiliary files.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4940 for file in Makefile.in.in remove-potcdate.sin; do
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4941 func_dest_tmpfilename $pobase/$file
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4942 func_lookup_file build-aux/po/$file
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4943 cat "$lookedup_file" > "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4944 if test -f "$destdir"/$pobase/$file; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
4945 if cmp -s "$destdir"/$pobase/$file "$tmpfile"; then
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4946 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4947 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4948 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4949 echo "Updating $pobase/$file (backup in $pobase/$file~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4950 mv -f "$destdir"/$pobase/$file "$destdir"/$pobase/$file~
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4951 mv -f "$tmpfile" "$destdir"/$pobase/$file
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4952 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4953 echo "Update $pobase/$file (backup in $pobase/$file~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4954 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4955 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4956 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4957 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4958 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4959 echo "Creating $pobase/$file"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4960 mv -f "$tmpfile" "$destdir"/$pobase/$file
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4961 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4962 echo "Create $pobase/$file"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4963 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4964 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4965 func_append added_files "$pobase/$file$nl"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4966 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4967 done
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
4968 # Create po makefile parameterization, part 1.
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4969 func_dest_tmpfilename $pobase/Makevars
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4970 func_emit_po_Makevars > "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4971 if test -f "$destdir"/$pobase/Makevars; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
4972 if cmp -s "$destdir"/$pobase/Makevars "$tmpfile"; then
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4973 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4974 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4975 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4976 echo "Updating $pobase/Makevars (backup in $pobase/Makevars~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4977 mv -f "$destdir"/$pobase/Makevars "$destdir"/$pobase/Makevars~
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4978 mv -f "$tmpfile" "$destdir"/$pobase/Makevars
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4979 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4980 echo "Update $pobase/Makevars (backup in $pobase/Makevars~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4981 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4982 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4983 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4984 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4985 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4986 echo "Creating $pobase/Makevars"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4987 mv -f "$tmpfile" "$destdir"/$pobase/Makevars
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4988 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4989 echo "Create $pobase/Makevars"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4990 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4991 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4992 func_append added_files "$pobase/Makevars$nl"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4993 fi
10065
e1449fcc7ecb * gnulib-tool: Fix various comment typos.
Eric Blake <ebb9@byu.net>
parents: 9887
diff changeset
4994 # Create po makefile parameterization, part 2.
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4995 func_dest_tmpfilename $pobase/POTFILES.in
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4996 func_emit_po_POTFILES_in > "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4997 if test -f "$destdir"/$pobase/POTFILES.in; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
4998 if cmp -s "$destdir"/$pobase/POTFILES.in "$tmpfile"; then
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
4999 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5000 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5001 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5002 echo "Updating $pobase/POTFILES.in (backup in $pobase/POTFILES.in~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5003 mv -f "$destdir"/$pobase/POTFILES.in "$destdir"/$pobase/POTFILES.in~
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5004 mv -f "$tmpfile" "$destdir"/$pobase/POTFILES.in
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5005 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5006 echo "Update $pobase/POTFILES.in (backup in $pobase/POTFILES.in~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5007 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5008 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5009 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5010 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5011 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5012 echo "Creating $pobase/POTFILES.in"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5013 mv -f "$tmpfile" "$destdir"/$pobase/POTFILES.in
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5014 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5015 echo "Create $pobase/POTFILES.in"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5016 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5017 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5018 func_append added_files "$pobase/POTFILES.in$nl"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5019 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5020 # Fetch PO files.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5021 TP_URL="http://translationproject.org/latest/"
9187
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5022 TP_RSYNC_URI="translationproject.org::tp/latest/"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5023 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5024 echo "Fetching gnulib PO files from $TP_URL"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5025 (cd "$destdir"/$pobase \
9187
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5026 && { # Prefer rsync over wget if it is available, since it consumes
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5027 # less network bandwidth, due to compression.
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5028 if type rsync 2>/dev/null | grep / > /dev/null; then
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5029 rsync -Lrtz "${TP_RSYNC_URI}gnulib/" .
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5030 else
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5031 wget --quiet -r -l1 -nd -np -A.po "${TP_URL}gnulib"
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5032 fi
9d2d1cd46644 Prefer rsync over wget when available.
Bruno Haible <bruno@clisp.org>
parents: 9168
diff changeset
5033 }
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5034 )
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5035 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5036 echo "Fetch gnulib PO files from $TP_URL"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5037 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5038 # Create po/LINGUAS.
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5039 if $doit; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5040 func_dest_tmpfilename $pobase/LINGUAS
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5041 (cd "$destdir"/$pobase \
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5042 && { echo '# Set of available languages.'
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5043 LC_ALL=C ls -1 *.po | sed -e 's,\.po$,,'
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5044 }
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5045 ) > "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5046 if test -f "$destdir"/$pobase/LINGUAS; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
5047 if cmp -s "$destdir"/$pobase/LINGUAS "$tmpfile"; then
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5048 rm -f "$tmpfile"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5049 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5050 echo "Updating $pobase/LINGUAS (backup in $pobase/LINGUAS~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5051 mv -f "$destdir"/$pobase/LINGUAS "$destdir"/$pobase/LINGUAS~
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5052 mv -f "$tmpfile" "$destdir"/$pobase/LINGUAS
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5053 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5054 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5055 echo "Creating $pobase/LINGUAS"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5056 mv -f "$tmpfile" "$destdir"/$pobase/LINGUAS
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5057 func_append added_files "$pobase/LINGUAS$nl"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5058 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5059 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5060 if test -f "$destdir"/$pobase/LINGUAS; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5061 echo "Update $pobase/LINGUAS (backup in $pobase/LINGUAS~)"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5062 else
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5063 echo "Create $pobase/LINGUAS"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5064 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5065 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5066 fi
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5067
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5068 # Create m4/gnulib-cache.m4.
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5069 func_dest_tmpfilename $m4base/gnulib-cache.m4
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5070 (
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
5071 func_emit_copyright_notice
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5072 echo "#"
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5073 echo "# This file represents the specification of how gnulib-tool is used."
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5074 echo "# It acts as a cache: It is written and read by gnulib-tool."
13636
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
5075 echo "# In projects that use version control, this file is meant to be put under"
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
5076 echo "# version control, like the configure.ac and various Makefile.am files."
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5077 echo
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5078 echo
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5079 echo "# Specification in the form of a command-line invocation:"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5080 echo "# $actioncmd"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5081 echo
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5082 echo "# Specification in the form of a few gnulib-tool.m4 macro invocations:"
7213
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5083 # Store the local_gnulib_dir relative to destdir.
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5084 case "$local_gnulib_dir" in
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5085 "" | /*)
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5086 relative_local_gnulib_dir="$local_gnulib_dir" ;;
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5087 * )
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5088 case "$destdir" in
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5089 /*) relative_local_gnulib_dir="$local_gnulib_dir" ;;
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5090 *)
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5091 # destdir, local_gnulib_dir are both relative.
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5092 func_relativize "$destdir" "$local_gnulib_dir"
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5093 relative_local_gnulib_dir="$reldir" ;;
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5094 esac ;;
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5095 esac
0f2957c42e86 Save the --local-dir value in the cache file.
Bruno Haible <bruno@clisp.org>
parents: 7212
diff changeset
5096 echo "gl_LOCAL_DIR([$relative_local_gnulib_dir])"
10246
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
5097 echo "gl_MODULES(["
12417
e09c73938d46 Use sed with option -e.
Bruno Haible <bruno@clisp.org>
parents: 12310
diff changeset
5098 echo "$specified_modules" | sed -e 's/^/ /g'
10246
50a9076d476d Make gnulib-cache.m4 easier to diff.
Eric Blake <ebb9@byu.net>
parents: 10157
diff changeset
5099 echo "])"
10744
7fb7b37150b3 New option --with-obsolete.
Bruno Haible <bruno@clisp.org>
parents: 10743
diff changeset
5100 test -z "$incobsolete" || echo "gl_WITH_OBSOLETE"
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
5101 test -z "$inc_cxx_tests" || echo "gl_WITH_CXX_TESTS"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
5102 test -z "$inc_longrunning_tests" || echo "gl_WITH_LONGRUNNING_TESTS"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
5103 test -z "$inc_privileged_tests" || echo "gl_WITH_PRIVILEGED_TESTS"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
5104 test -z "$inc_unportable_tests" || echo "gl_WITH_UNPORTABLE_TESTS"
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
5105 test -z "$inc_all_tests" || echo "gl_WITH_ALL_TESTS"
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5106 echo "gl_AVOID([$avoidlist])"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5107 echo "gl_SOURCE_BASE([$sourcebase])"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5108 echo "gl_M4_BASE([$m4base])"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5109 echo "gl_PO_BASE([$pobase])"
6955
7715890c929a * gnulib-tool: List --doc-base before --tests-base.
Eric Blake <ebb9@byu.net>
parents: 6952
diff changeset
5110 echo "gl_DOC_BASE([$docbase])"
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5111 echo "gl_TESTS_BASE([$testsbase])"
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5112 if $inctests; then
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5113 echo "gl_WITH_TESTS"
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5114 fi
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5115 echo "gl_LIB([$libname])"
9417
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5116 if test -n "$lgpl"; then
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5117 if test "$lgpl" = yes; then
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5118 echo "gl_LGPL"
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5119 else
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5120 echo "gl_LGPL([$lgpl])"
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5121 fi
95cbd64f5138 Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3.
Bruno Haible <bruno@clisp.org>
parents: 9377
diff changeset
5122 fi
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5123 echo "gl_MAKEFILE_NAME([$makefile_name])"
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
5124 if test "$cond_dependencies" = true; then
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
5125 echo "gl_CONDITIONAL_DEPENDENCIES"
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
5126 fi
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5127 if test "$libtool" = true; then
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5128 echo "gl_LIBTOOL"
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5129 fi
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5130 echo "gl_MACRO_PREFIX([$macro_prefix])"
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5131 echo "gl_PO_DOMAIN([$po_domain])"
17039
e5d33904a8b2 gnulib-tool: Fix persistence of --witness-c-macro option.
Bruno Haible <bruno@clisp.org>
parents: 17004
diff changeset
5132 echo "gl_WITNESS_C_MACRO([$witness_c_macro])"
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5133 if test -n "$vc_files"; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5134 echo "gl_VC_FILES([$vc_files])"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5135 fi
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5136 ) > "$tmpfile"
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5137 if test -f "$destdir"/$m4base/gnulib-cache.m4; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
5138 if cmp -s "$destdir"/$m4base/gnulib-cache.m4 "$tmpfile"; then
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5139 rm -f "$tmpfile"
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5140 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5141 if $doit; then
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5142 echo "Updating $m4base/gnulib-cache.m4 (backup in $m4base/gnulib-cache.m4~)"
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5143 mv -f "$destdir"/$m4base/gnulib-cache.m4 "$destdir"/$m4base/gnulib-cache.m4~
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5144 mv -f "$tmpfile" "$destdir"/$m4base/gnulib-cache.m4
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5145 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5146 echo "Update $m4base/gnulib-cache.m4 (backup in $m4base/gnulib-cache.m4~)"
6249
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5147 if false; then
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5148 cat "$tmpfile"
6249
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5149 echo
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5150 echo "# gnulib-cache.m4 ends here"
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5151 fi
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5152 rm -f "$tmpfile"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5153 fi
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5154 fi
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5155 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5156 if $doit; then
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5157 echo "Creating $m4base/gnulib-cache.m4"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5158 mv -f "$tmpfile" "$destdir"/$m4base/gnulib-cache.m4
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5159 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5160 echo "Create $m4base/gnulib-cache.m4"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5161 cat "$tmpfile"
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5162 rm -f "$tmpfile"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5163 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5164 fi
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5165
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5166 # Create m4/gnulib-comp.m4.
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5167 func_dest_tmpfilename $m4base/gnulib-comp.m4
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5168 (
7421
8bace4b08db5 Mark generated files as "DO NOT EDIT".
Bruno Haible <bruno@clisp.org>
parents: 7391
diff changeset
5169 echo "# DO NOT EDIT! GENERATED AUTOMATICALLY!"
6777
d9b10884dc69 * gnulib-tool (func_version): Base copyright year on CVS date.
Eric Blake <ebb9@byu.net>
parents: 6765
diff changeset
5170 func_emit_copyright_notice
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5171 echo "#"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5172 echo "# This file represents the compiled summary of the specification in"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5173 echo "# gnulib-cache.m4. It lists the computed macro invocations that need"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5174 echo "# to be invoked from configure.ac."
13636
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
5175 echo "# In projects that use version control, this file can be treated like"
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
5176 echo "# other built files."
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5177 echo
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5178 echo
6160
2fb771c0af6b Emit more comments and advice.
Bruno Haible <bruno@clisp.org>
parents: 6159
diff changeset
5179 echo "# This macro should be invoked from $configure_ac, in the section"
2fb771c0af6b Emit more comments and advice.
Bruno Haible <bruno@clisp.org>
parents: 6159
diff changeset
5180 echo "# \"Checks for programs\", right after AC_PROG_CC, and certainly before"
2fb771c0af6b Emit more comments and advice.
Bruno Haible <bruno@clisp.org>
parents: 6159
diff changeset
5181 echo "# any checks for libraries, header files, types and library functions."
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
5182 echo "AC_DEFUN([${macro_prefix}_EARLY],"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5183 echo "["
7105
641bac73140c * gnulib-tool (func_import): Detect unexpanded macros in gnulib
Eric Blake <ebb9@byu.net>
parents: 7090
diff changeset
5184 echo " m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5185 echo " m4_pattern_allow([^gl_ES\$])dnl a valid locale name"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5186 echo " m4_pattern_allow([^gl_LIBOBJS\$])dnl a variable"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5187 echo " m4_pattern_allow([^gl_LTLIBOBJS\$])dnl a variable"
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 14917
diff changeset
5188 echo " AC_REQUIRE([gl_PROG_AR_RANLIB])"
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
5189 if test -n "$uses_subdirs"; then
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
5190 echo " AC_REQUIRE([AM_PROG_CC_C_O])"
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
5191 fi
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5192 for module in $final_modules; do
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5193 func_verify_module
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5194 if test -n "$module"; then
12983
39ddc4b73387 gnulib-tool (func_import): Explain origin of code.
Simon Josefsson <simon@josefsson.org>
parents: 12982
diff changeset
5195 echo "# Code from module $module:"
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5196 func_get_autoconf_early_snippet "$module"
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5197 fi
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5198 done \
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5199 | sed -e '/^$/d;' -e 's/^/ /'
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5200 echo "])"
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5201 echo
6160
2fb771c0af6b Emit more comments and advice.
Bruno Haible <bruno@clisp.org>
parents: 6159
diff changeset
5202 echo "# This macro should be invoked from $configure_ac, in the section"
2fb771c0af6b Emit more comments and advice.
Bruno Haible <bruno@clisp.org>
parents: 6159
diff changeset
5203 echo "# \"Check for header files, types and library functions\"."
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
5204 echo "AC_DEFUN([${macro_prefix}_INIT],"
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5205 echo "["
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5206 if test "$libtool" = true; then
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5207 echo " AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5208 echo " gl_cond_libtool=true"
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5209 else
6512
f8abe8d41137 RANLIB is needed.
Bruno Haible <bruno@clisp.org>
parents: 6464
diff changeset
5210 echo " AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5211 echo " gl_cond_libtool=false"
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5212 echo " gl_libdeps="
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5213 echo " gl_ltlibdeps="
6414
46d47c8fe734 * gnulib-tool: Define automake conditional GL_COND_LIBTOOL if
Simon Josefsson <simon@josefsson.org>
parents: 6389
diff changeset
5214 fi
6556
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5215 if test "$auxdir" != "build-aux"; then
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5216 sed_replace_build_aux='
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5217 :a
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5218 /AC_CONFIG_FILES(.*:build-aux\/.*)/{
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5219 s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5220 ba
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5221 }'
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5222 else
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
5223 sed_replace_build_aux="$sed_noop"
6556
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5224 fi
13105
6d950d2ec11e gnulib-tool: Provide the value of --m4-base to modules.
Bruno Haible <bruno@clisp.org>
parents: 13090
diff changeset
5225 echo " gl_m4_base='$m4base'"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5226 func_emit_initmacro_start $macro_prefix
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5227 echo " gl_source_base='$sourcebase'"
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5228 if test -n "$witness_c_macro"; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5229 echo " m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$witness_c_macro])"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5230 fi
14669
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
5231 func_emit_autoconf_snippets "$main_modules" func_verify_module true false true
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5232 if test -n "$witness_c_macro"; then
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5233 echo " m4_popdef([gl_MODULE_INDICATOR_CONDITION])"
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5234 fi
12983
39ddc4b73387 gnulib-tool (func_import): Explain origin of code.
Simon Josefsson <simon@josefsson.org>
parents: 12982
diff changeset
5235 echo " # End of code from modules"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5236 func_emit_initmacro_end $macro_prefix
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5237 echo " gltests_libdeps="
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5238 echo " gltests_ltlibdeps="
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5239 func_emit_initmacro_start ${macro_prefix}tests
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5240 echo " gl_source_base='$testsbase'"
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5241 # Define a tests witness macro that depends on the package.
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5242 # PACKAGE is defined by AM_INIT_AUTOMAKE, PACKAGE_TARNAME is defined by AC_INIT.
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5243 # See <http://lists.gnu.org/archive/html/automake/2009-05/msg00145.html>.
13089
a1999d4ef573 Fix definition of tests witness macro.
Bruno Haible <bruno@clisp.org>
parents: 13081
diff changeset
5244 echo "changequote(,)dnl"
13090
f870702f0e45 Fix definition of tests witness macro.
Bruno Haible <bruno@clisp.org>
parents: 13089
diff changeset
5245 echo " ${macro_prefix}tests_WITNESS=IN_\`echo \"\${PACKAGE-\$PACKAGE_TARNAME}\" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'\`_GNULIB_TESTS"
13089
a1999d4ef573 Fix definition of tests witness macro.
Bruno Haible <bruno@clisp.org>
parents: 13081
diff changeset
5246 echo "changequote([, ])dnl"
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5247 echo " AC_SUBST([${macro_prefix}tests_WITNESS])"
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5248 echo " gl_module_indicator_condition=\$${macro_prefix}tests_WITNESS"
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5249 echo " m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [\$gl_module_indicator_condition])"
14669
7d7930e97930 gnulib-tool: Reduce code duplication.
Bruno Haible <bruno@clisp.org>
parents: 14625
diff changeset
5250 func_emit_autoconf_snippets "$testsrelated_modules" func_verify_module true true true
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5251 echo " m4_popdef([gl_MODULE_INDICATOR_CONDITION])"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5252 func_emit_initmacro_end ${macro_prefix}tests
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5253 # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5254 # created using libtool, because libtool already handles the dependencies.
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5255 if test "$libtool" != true; then
13768
f19c8837df90 more ports to Solaris tr, which needs [] around ranges
Paul Eggert <eggert@cs.ucla.edu>
parents: 13763
diff changeset
5256 libname_upper=`echo "$libname" | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5257 echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5258 echo " AC_SUBST([${libname_upper}_LIBDEPS])"
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5259 echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5260 echo " AC_SUBST([${libname_upper}_LTLIBDEPS])"
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5261 fi
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5262 if $use_libtests; then
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5263 echo " LIBTESTS_LIBDEPS=\"\$gltests_libdeps\""
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5264 echo " AC_SUBST([LIBTESTS_LIBDEPS])"
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5265 fi
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5266 echo "])"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5267 func_emit_initmacro_done $macro_prefix $sourcebase
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5268 func_emit_initmacro_done ${macro_prefix}tests $testsbase
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5269 echo
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5270 echo "# This macro records the list of files which have been installed by"
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5271 echo "# gnulib-tool and may be removed by future gnulib-tool invocations."
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5272 echo "AC_DEFUN([${macro_prefix}_FILE_LIST], ["
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
5273 echo "$files" | sed -e 's,^, ,'
6180
a0904de304e5 Separate the generates files into cvs-committable files and frequently
Bruno Haible <bruno@clisp.org>
parents: 6179
diff changeset
5274 echo "])"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5275 ) > "$tmpfile"
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5276 if test -f "$destdir"/$m4base/gnulib-comp.m4; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
5277 if cmp -s "$destdir"/$m4base/gnulib-comp.m4 "$tmpfile"; then
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5278 rm -f "$tmpfile"
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5279 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5280 if $doit; then
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5281 echo "Updating $m4base/gnulib-comp.m4 (backup in $m4base/gnulib-comp.m4~)"
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5282 mv -f "$destdir"/$m4base/gnulib-comp.m4 "$destdir"/$m4base/gnulib-comp.m4~
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5283 mv -f "$tmpfile" "$destdir"/$m4base/gnulib-comp.m4
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5284 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5285 echo "Update $m4base/gnulib-comp.m4 (backup in $m4base/gnulib-comp.m4~)"
6249
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5286 if false; then
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5287 cat "$tmpfile"
6249
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5288 echo
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5289 echo "# gnulib-comp.m4 ends here"
564133adbd69 Comment out too much verbosity in --dry-run.
Bruno Haible <bruno@clisp.org>
parents: 6248
diff changeset
5290 fi
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5291 rm -f "$tmpfile"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5292 fi
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5293 fi
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5294 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5295 if $doit; then
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5296 echo "Creating $m4base/gnulib-comp.m4"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5297 mv -f "$tmpfile" "$destdir"/$m4base/gnulib-comp.m4
6246
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5298 else
7c089b3b2200 Rework the way --dry-run works.
Bruno Haible <bruno@clisp.org>
parents: 6245
diff changeset
5299 echo "Create $m4base/gnulib-comp.m4"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5300 cat "$tmpfile"
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5301 rm -f "$tmpfile"
6181
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5302 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5303 fi
95b89dc3f638 Read the previous cached settings.
Bruno Haible <bruno@clisp.org>
parents: 6180
diff changeset
5304
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5305 if $inctests; then
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
5306 # Create tests makefile.
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5307 func_dest_tmpfilename $testsbase/$makefile_am
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5308 destfile="$testsbase/$makefile_am"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5309 modules="$testsrelated_modules"
13067
0e829091f9c0 Avoid side effects from tests-related modules on the compilation of lib.
Bruno Haible <bruno@clisp.org>
parents: 12986
diff changeset
5310 func_emit_tests_Makefile_am "${macro_prefix}tests_WITNESS" > "$tmpfile"
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5311 if test -f "$destdir"/$testsbase/$makefile_am; then
16714
2e2bf6c7bf38 gnulib-tool: Avoid unintended error output from 'cmp'.
Bruno Haible <bruno@clisp.org>
parents: 16713
diff changeset
5312 if cmp -s "$destdir"/$testsbase/$makefile_am "$tmpfile"; then
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5313 rm -f "$tmpfile"
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5314 else
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5315 if $doit; then
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5316 echo "Updating $testsbase/$makefile_am (backup in $testsbase/$makefile_am~)"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5317 mv -f "$destdir"/$testsbase/$makefile_am "$destdir"/$testsbase/$makefile_am~
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5318 mv -f "$tmpfile" "$destdir"/$testsbase/$makefile_am
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5319 else
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5320 echo "Update $testsbase/$makefile_am (backup in $testsbase/$makefile_am~)"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5321 rm -f "$tmpfile"
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5322 fi
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5323 fi
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5324 else
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5325 if $doit; then
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5326 echo "Creating $testsbase/$makefile_am"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5327 mv -f "$tmpfile" "$destdir"/$testsbase/$makefile_am
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5328 else
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5329 echo "Create $testsbase/$makefile_am"
6745
aca74c06bca0 Fix "gnulib-tool --dry-run --import" in a package that has no lib/ and
Bruno Haible <bruno@clisp.org>
parents: 6633
diff changeset
5330 rm -f "$tmpfile"
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5331 fi
17046
e23106558036 gnulib-tool: Fix indentation.
Bruno Haible <bruno@clisp.org>
parents: 17045
diff changeset
5332 func_append added_files "$testsbase/$makefile_am$nl"
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5333 fi
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5334 fi
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5335
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5336 if test "$vc_files" != false; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5337 # Update the .cvsignore and .gitignore files.
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5338 { echo "$added_files" | sed -e '/^$/d' -e 's,\([^/]*\)$,|A|\1,'
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5339 echo "$removed_files" | sed -e '/^$/d' -e 's,\([^/]*\)$,|R|\1,'
10252
66f4295bd26d Put gnulib-comp.m4 into .cvsignore or .gitignore.
Bruno Haible <bruno@clisp.org>
parents: 10250
diff changeset
5340 # Treat gnulib-comp.m4 like an added file, even if it already existed.
66f4295bd26d Put gnulib-comp.m4 into .cvsignore or .gitignore.
Bruno Haible <bruno@clisp.org>
parents: 10250
diff changeset
5341 echo "$m4base/|A|gnulib-comp.m4"
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5342 } | LC_ALL=C sort -t'|' -k1,1 > "$tmp"/fileset-changes
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5343 { # Rearrange file descriptors. Needed because "while ... done < ..."
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5344 # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5345 exec 5<&0 < "$tmp"/fileset-changes
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5346 func_update_ignorelist ()
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5347 {
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5348 ignore="$1"
10298
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5349 if test "$ignore" = .gitignore; then
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5350 # In a .gitignore file, "foo" applies to the current directory and all
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5351 # subdirectories, whereas "/foo" applies to the current directory only.
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5352 anchor='/'
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5353 escaped_anchor='\/'
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5354 doubly_escaped_anchor='\\/'
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5355 else
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5356 anchor=''
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5357 escaped_anchor=''
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5358 doubly_escaped_anchor=''
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5359 fi
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5360 if test -f "$destdir/$dir$ignore"; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5361 if test -n "$dir_added" || test -n "$dir_removed"; then
10298
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5362 sed -e "s|^$anchor||" < "$destdir/$dir$ignore" | LC_ALL=C sort > "$tmp"/ignore
12881
c6e9c683bc41 Really work around around "broken pipe" error message from bash 3.2.
Bruno Haible <bruno@clisp.org>
parents: 12877
diff changeset
5363 (echo "$dir_added" | sed -e '/^$/d' | LC_ALL=C sort -u \
10980
d54e63808f25 work around Solaris 8 'join' bug
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10969
diff changeset
5364 | LC_ALL=C join -v 1 - "$tmp"/ignore > "$tmp"/ignore-added
10379
a4e295b67e54 Attempt to avoid error messages like "echo: write error: Broken pipe".
Bruno Haible <bruno@clisp.org>
parents: 10298
diff changeset
5365 echo "$dir_removed" | sed -e '/^$/d' | LC_ALL=C sort -u \
17045
0e193bb29639 gnulib-tool: Remove old file names from .cvsignore, .gitignore.
Bruno Haible <bruno@clisp.org>
parents: 17042
diff changeset
5366 > "$tmp"/ignore-removed
10379
a4e295b67e54 Attempt to avoid error messages like "echo: write error: Broken pipe".
Bruno Haible <bruno@clisp.org>
parents: 10298
diff changeset
5367 )
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5368 if test -s "$tmp"/ignore-added || test -s "$tmp"/ignore-removed; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5369 if $doit; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5370 echo "Updating $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5371 mv -f "$destdir/$dir$ignore" "$destdir/$dir$ignore"~
10981
78dea9790e0f Fix small bug in update of .cvsignore or .gitignore.
Bruno Haible <bruno@clisp.org>
parents: 10980
diff changeset
5372 { sed -e 's,/,\\/,g' -e 's,^,/^,' -e 's,$,\$/d,' < "$tmp"/ignore-removed
11232
6df7300b55df Make a sed expression POSIX compliant.
Bruno Haible <bruno@clisp.org>
parents: 11231
diff changeset
5373 if test -n "$anchor"; then sed -e 's,/,\\/,g' -e "s,^,/^${doubly_escaped_anchor}," -e 's,$,$/d,' < "$tmp"/ignore-removed; fi
10298
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5374 } > "$tmp"/sed-ignore-removed
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5375 { cat "$destdir/$dir$ignore"~
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5376 sed -e "s|^|$anchor|" < "$tmp"/ignore-added
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5377 } | sed -f "$tmp"/sed-ignore-removed \
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5378 > "$destdir/$dir$ignore"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5379 else
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5380 echo "Update $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5381 fi
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5382 fi
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5383 fi
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5384 else
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5385 if test -n "$dir_added"; then
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5386 if $doit; then
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5387 echo "Creating $destdir/$dir$ignore"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5388 {
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5389 if test "$ignore" = .cvsignore; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5390 echo ".deps"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5391 # Automake generates Makefile rules that create .dirstamp files.
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5392 echo ".dirstamp"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5393 fi
10298
9b0ceb24a573 Prepend each added line in .gitignore files with a slash.
Bruno Haible <bruno@clisp.org>
parents: 10293
diff changeset
5394 echo "$dir_added" | sed -e '/^$/d' -e "s|^|$anchor|" | LC_ALL=C sort -u
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5395 } > "$destdir/$dir$ignore"
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5396 else
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5397 echo "Create $destdir/$dir$ignore"
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5398 fi
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5399 fi
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5400 fi
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5401 }
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5402 func_done_dir ()
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5403 {
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5404 dir="$1"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5405 dir_added="$2"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5406 dir_removed="$3"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5407 if test -d "$destdir/CVS" || test -d "$destdir/${dir}CVS" || test -f "$destdir/${dir}.cvsignore"; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5408 func_update_ignorelist .cvsignore
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5409 fi
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5410 if test -d "$destdir/.git" || test -f "$destdir/${dir}.gitignore"; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5411 func_update_ignorelist .gitignore
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5412 fi
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5413 }
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5414 last_dir=
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5415 last_dir_added=
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5416 last_dir_removed=
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5417 while read line; do
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5418 # Why not ''read next_dir op file'' ? Because the dir column can be empty.
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5419 next_dir=`echo "$line" | sed -e 's,|.*,,'`
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5420 op=`echo "$line" | sed -e 's,^[^|]*|\([^|]*\)|.*$,\1,'`
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5421 file=`echo "$line" | sed -e 's,^[^|]*|[^|]*|,,'`
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5422 if test "$next_dir" != "$last_dir"; then
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5423 func_done_dir "$last_dir" "$last_dir_added" "$last_dir_removed"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5424 last_dir="$next_dir"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5425 last_dir_added=
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5426 last_dir_removed=
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5427 fi
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5428 case $op in
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5429 A) func_append last_dir_added "$file$nl";;
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5430 R) func_append last_dir_removed "$file$nl";;
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5431 esac
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5432 done
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5433 func_done_dir "$last_dir" "$last_dir_added" "$last_dir_removed"
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5434 exec 0<&5 5<&-
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5435 }
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5436 fi
8451
ba5ed28cb276 Update .cvsignore and .gitignore files.
Bruno Haible <bruno@clisp.org>
parents: 8432
diff changeset
5437
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5438 echo "Finished."
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5439 echo
5572
54000928a33d Print #include directives when --import'ing.
Simon Josefsson <simon@josefsson.org>
parents: 5527
diff changeset
5440 echo "You may need to add #include directives for the following .h files."
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5441 # Intersect $specified_modules and $main_modules
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5442 # (since $specified_modules is not necessarily of subset of $main_modules
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5443 # - some may have been skipped through --avoid, and since the elements of
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5444 # $main_modules but not in $specified_modules can go away without explicit
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5445 # notice - through changes in the module dependencies).
7721
ef2654457d79 Don't show the includes for modules that were not explicitly specified.
Bruno Haible <bruno@clisp.org>
parents: 7701
diff changeset
5446 echo "$specified_modules" > "$tmp"/modules1 # a sorted list, one module per line
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5447 echo "$main_modules" > "$tmp"/modules2 # also a sorted list, one module per line
7322
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5448 # First the #include <...> directives without #ifs, sorted for convenience,
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5449 # then the #include "..." directives without #ifs, sorted for convenience,
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5450 # then the #include directives that are surrounded by #ifs. Not sorted.
7722
504e81510ee5 Fix 'join' invocation.
Bruno Haible <bruno@clisp.org>
parents: 7721
diff changeset
5451 for module in `LC_ALL=C join "$tmp"/modules1 "$tmp"/modules2`; do
7322
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5452 include_directive=`func_get_include_directive "$module"`
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5453 case "$nl$include_directive" in
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5454 *"$nl#if"*)
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5455 echo "$include_directive" 1>&5
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5456 ;;
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5457 *)
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5458 echo "$include_directive" | grep -v 'include "' 1>&6
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5459 echo "$include_directive" | grep 'include "' 1>&7
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5460 ;;
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5461 esac
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5462 done 5> "$tmp"/include-if 6> "$tmp"/include-angles 7> "$tmp"/include-quotes
6756
4d481eff340f Sort the #include directives more carefully.
Bruno Haible <bruno@clisp.org>
parents: 6750
diff changeset
5463 (
7322
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5464 LC_ALL=C sort -u "$tmp"/include-angles
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5465 LC_ALL=C sort -u "$tmp"/include-quotes
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5466 cat "$tmp"/include-if
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
5467 ) | sed -e '/^$/d' -e 's/^/ /'
7322
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5468 rm -f "$tmp"/include-angles "$tmp"/include-quotes "$tmp"/include-if
46d98b687a87 Speed up presentation of the include files.
Bruno Haible <bruno@clisp.org>
parents: 7321
diff changeset
5469
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5470 for module in $main_modules; do
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5471 func_get_link_directive "$module"
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5472 done \
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5473 | LC_ALL=C sort -u | sed -e '/^$/d' -e 's/^/ /' > "$tmp"/link
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5474 if test `wc -l < "$tmp"/link` != 0; then
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5475 echo
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5476 echo "You may need to use the following Makefile variables when linking."
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5477 echo "Use them in <program>_LDADD when linking a program, or"
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5478 echo "in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library."
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5479 cat "$tmp"/link
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5480 fi
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5481 rm -f "$tmp"/link
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
5482
5572
54000928a33d Print #include directives when --import'ing.
Simon Josefsson <simon@josefsson.org>
parents: 5527
diff changeset
5483 echo
6160
2fb771c0af6b Emit more comments and advice.
Bruno Haible <bruno@clisp.org>
parents: 6159
diff changeset
5484 echo "Don't forget to"
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
5485 if test "$makefile_am" = Makefile.am; then
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5486 echo " - add \"$sourcebase/Makefile\" to AC_CONFIG_FILES in $configure_ac,"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5487 else
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5488 echo " - \"include $makefile_name\" from within \"$sourcebase/Makefile.am\","
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5489 fi
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5490 if test -n "$pobase"; then
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5491 echo " - add \"$pobase/Makefile.in\" to AC_CONFIG_FILES in $configure_ac,"
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5492 fi
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5493 if $inctests; then
7222
06eec4eaf416 * gnulib-tool (emit_lib_Makefile_am): Don't put $makefile_name
Paul Eggert <eggert@cs.ucla.edu>
parents: 7216
diff changeset
5494 if test "$makefile_am" = Makefile.am; then
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5495 echo " - add \"$testsbase/Makefile\" to AC_CONFIG_FILES in $configure_ac,"
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5496 else
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5497 echo " - \"include $makefile_name\" from within \"$testsbase/Makefile.am\","
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5498 fi
6250
2c772fe1e1d0 Support --with-tests also with --import.
Bruno Haible <bruno@clisp.org>
parents: 6249
diff changeset
5499 fi
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5500 edit=0
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5501 while test $edit != $makefile_am_edits; do
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5502 edit=`expr $edit + 1`
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5503 eval dir=\"\$makefile_am_edit${edit}_dir\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5504 eval var=\"\$makefile_am_edit${edit}_var\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5505 eval val=\"\$makefile_am_edit${edit}_val\"
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5506 if test -n "$var"; then
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5507 echo " - mention \"${val}\" in ${var} in ${dir}Makefile.am,"
7216
91df49e70c77 New option --makefile-name.
Bruno Haible <bruno@clisp.org>
parents: 7215
diff changeset
5508 fi
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5509 done
15801
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5510 if grep '^ *AC_PROG_CC_STDC' "$configure_ac" > /dev/null; then
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5511 position_early_after=AC_PROG_CC_STDC
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5512 else
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5513 if grep '^ *AC_PROG_CC_C99' "$configure_ac" > /dev/null; then
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5514 position_early_after=AC_PROG_CC_C99
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5515 else
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5516 position_early_after=AC_PROG_CC
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5517 fi
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5518 fi
3002f394d1fe gnulib-tool: Improve suggestion where to put gl_EARLY invocation.
Bruno Haible <bruno@clisp.org>
parents: 15790
diff changeset
5519 echo " - invoke ${macro_prefix}_EARLY in $configure_ac, right after $position_early_after,"
6176
1a1e2f878f04 New option --macro-prefix.
Bruno Haible <bruno@clisp.org>
parents: 6175
diff changeset
5520 echo " - invoke ${macro_prefix}_INIT in $configure_ac."
5345
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5521 }
8394c9bf619f Move a lot of code into function func_import().
Bruno Haible <bruno@clisp.org>
parents: 5344
diff changeset
5522
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5523 # func_create_testdir testdir modules
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
5524 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
5525 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
5526 # - modcache true or false, from --cache-modules/--no-cache-modules
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
5527 # - auxdir directory relative to destdir where to place build aux files
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5528 # - inctests true if tests should be included, false otherwise
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5529 # - incobsolete true if obsolete modules among dependencies should be
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5530 # included, blank otherwise
13263
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5531 # - excl_cxx_tests true if C++ interoperability tests should be excluded,
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5532 # blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5533 # - excl_longrunning_tests true if long-runnings tests should be excluded,
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5534 # blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5535 # - excl_privileged_tests true if tests that require root privileges should be
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5536 # excluded, blank otherwise
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5537 # - excl_unportable_tests true if tests that fail on some platforms should be
e7d114c00ff9 gnulib-tool: Add --without-*-tests options.
Bruno Haible <bruno@clisp.org>
parents: 13223
diff changeset
5538 # excluded, blank otherwise
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5539 # - single_configure true if a single configure file should be generated,
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5540 # false for a separate configure file for the tests
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5541 # - avoidlist list of modules to avoid
14833
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
5542 # - cond_dependencies true if --conditional-dependencies was given, false if
76127af7039f Finish the conditional dependencies mechanism.
Bruno Haible <bruno@clisp.org>
parents: 14806
diff changeset
5543 # --no-conditional-dependencies was given, blank otherwise
12986
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5544 # - libtool true if --libtool was given, false if --no-libtool was
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5545 # given, blank otherwise
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5546 # - symbolic true if files should be symlinked, copied otherwise
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5547 # - lsymbolic true if files from local_gnulib_dir should be symlinked,
bfc76977457d Clarify which options are available for --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12983
diff changeset
5548 # copied otherwise
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5549 func_create_testdir ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5550 {
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5551 testdir="$1"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5552 modules="$2"
7484
57fe575409ae --create-testdir without module names now means to use nearly all modules.
Bruno Haible <bruno@clisp.org>
parents: 7421
diff changeset
5553 if test -z "$modules"; then
57fe575409ae --create-testdir without module names now means to use nearly all modules.
Bruno Haible <bruno@clisp.org>
parents: 7421
diff changeset
5554 # All modules together.
57fe575409ae --create-testdir without module names now means to use nearly all modules.
Bruno Haible <bruno@clisp.org>
parents: 7421
diff changeset
5555 # Except config-h, which breaks all modules which use HAVE_CONFIG_H.
7533
029a26ecb19a Don't include ftruncate and mountlist by default.
Bruno Haible <bruno@clisp.org>
parents: 7530
diff changeset
5556 # Except ftruncate, mountlist, which abort the configuration on mingw. FIXME.
12923
cb00143b4bf6 Exclude lib-ignore module.
Bruno Haible <bruno@clisp.org>
parents: 12917
diff changeset
5557 # Except lib-ignore, which leads to link errors when Sun C++ is used. FIXME.
7484
57fe575409ae --create-testdir without module names now means to use nearly all modules.
Bruno Haible <bruno@clisp.org>
parents: 7421
diff changeset
5558 modules=`func_all_modules`
12923
cb00143b4bf6 Exclude lib-ignore module.
Bruno Haible <bruno@clisp.org>
parents: 12917
diff changeset
5559 modules=`for m in $modules; do case $m in config-h | ftruncate | mountlist | lib-ignore) ;; *) echo $m;; esac; done`
7484
57fe575409ae --create-testdir without module names now means to use nearly all modules.
Bruno Haible <bruno@clisp.org>
parents: 7421
diff changeset
5560 fi
13419
a18c56544c84 gnulib-tool: Align code of func_import and func_create_testdir.
Bruno Haible <bruno@clisp.org>
parents: 13299
diff changeset
5561 specified_modules="$modules"
a18c56544c84 gnulib-tool: Align code of func_import and func_create_testdir.
Bruno Haible <bruno@clisp.org>
parents: 13299
diff changeset
5562
a18c56544c84 gnulib-tool: Align code of func_import and func_create_testdir.
Bruno Haible <bruno@clisp.org>
parents: 13299
diff changeset
5563 # Canonicalize the list of specified modules.
a18c56544c84 gnulib-tool: Align code of func_import and func_create_testdir.
Bruno Haible <bruno@clisp.org>
parents: 13299
diff changeset
5564 specified_modules=`for m in $specified_modules; do echo $m; done | LC_ALL=C sort -u`
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5565
13264
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
5566 # Unlike in func_import, here we want to include all kinds of tests for the
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
5567 # directly specified modules, but not for dependencies.
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
5568 inc_all_direct_tests=true
d66e74e6fe48 gnulib-tool: Don't include hairy tests of dependencies in testdirs.
Bruno Haible <bruno@clisp.org>
parents: 13263
diff changeset
5569 inc_all_indirect_tests="$inc_all_tests"
13080
fad0b62b5bf5 gnulib-tool: Add support for special categories of tests.
Bruno Haible <bruno@clisp.org>
parents: 13070
diff changeset
5570
7660
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5571 # Check that the license of every module is consistent with the license of
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5572 # its dependencies.
7896
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
5573 saved_inctests="$inctests"
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
5574 # When computing transitive closures, don't consider $module to depend on
16358
a712776b11ce maint: spelling fixes
Paul Eggert <eggert@cs.ucla.edu>
parents: 16263
diff changeset
5575 # $module-tests. Need this because tests are implicitly GPL and may depend
7896
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
5576 # on GPL modules - therefore we don't want a warning in this case.
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5577 inctests=false
13419
a18c56544c84 gnulib-tool: Align code of func_import and func_create_testdir.
Bruno Haible <bruno@clisp.org>
parents: 13299
diff changeset
5578 for requested_module in $specified_modules; do
7660
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5579 requested_license=`func_get_license "$requested_module"`
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5580 if test "$requested_license" != GPL; then
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5581 # Here we use func_modules_transitive_closure, not just
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5582 # func_get_dependencies, so that we also detect weird situations like
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5583 # an LGPL module which depends on a GPLed build tool module which depends
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5584 # on a GPL module.
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5585 modules="$requested_module"
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5586 func_modules_transitive_closure
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5587 for module in $modules; do
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5588 license=`func_get_license "$module"`
9090
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5589 case "$license" in
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5590 'GPLed build tool') ;;
7660
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5591 'public domain' | 'unlimited' | 'unmodifiable license text') ;;
9090
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5592 *)
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5593 case "$requested_license" in
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5594 GPLv2+)
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5595 case "$license" in
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5596 GPLv2+ | LGPLv2+) ;;
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
5597 *) func_warning "module $requested_module depends on a module with an incompatible license: $module" ;;
9090
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5598 esac
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5599 ;;
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5600 LGPL)
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5601 case "$license" in
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5602 LGPL | LGPLv2+) ;;
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
5603 *) func_warning "module $requested_module depends on a module with an incompatible license: $module" ;;
9090
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5604 esac
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5605 ;;
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5606 LGPLv2+)
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5607 case "$license" in
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5608 LGPLv2+) ;;
12819
4b5bf4c79e0c gnulib-tool: Make warning diagnostics consistent.
Bruno Haible <bruno@clisp.org>
parents: 12775
diff changeset
5609 *) func_warning "module $requested_module depends on a module with an incompatible license: $module" ;;
9090
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5610 esac
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5611 ;;
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5612 esac
b1835d4a5e2a Handle copying terms "GPLv2+" and "LGPLv2+".
Bruno Haible <bruno@clisp.org>
parents: 9086
diff changeset
5613 ;;
7660
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5614 esac
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5615 done
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5616 fi
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5617 done
7896
cd3ed2fae0bf Tests modules are under GPL now.
Bruno Haible <bruno@clisp.org>
parents: 7872
diff changeset
5618 inctests="$saved_inctests"
7660
7aa6fbd6b3b7 Add license compatibility check in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7647
diff changeset
5619
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5620 # Subdirectory names.
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5621 sourcebase=gllib
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5622 m4base=glm4
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5623 pobase=
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
5624 docbase=gldoc
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5625 testsbase=gltests
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5626 macro_prefix=gl
9108
33eb494700d6 New options --po-base, --po-domain.
Bruno Haible <bruno@clisp.org>
parents: 9107
diff changeset
5627 po_domain=
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
5628 witness_c_macro=
9810
f805ab5f1771 New options --vc-files, --no-vc-files.
Bruno Haible <bruno@clisp.org>
parents: 9807
diff changeset
5629 vc_files=
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5630
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5631 # Determine final module list.
13419
a18c56544c84 gnulib-tool: Align code of func_import and func_create_testdir.
Bruno Haible <bruno@clisp.org>
parents: 13299
diff changeset
5632 modules="$specified_modules"
5347
0318c37925dc Move duplicated code into function func_modules_transitive_closure().
Bruno Haible <bruno@clisp.org>
parents: 5346
diff changeset
5633 func_modules_transitive_closure
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
5634 if test $verbose -ge 0; then
13420
2291a2f3d56c gnulib-tool: Display specified modules and dependencies differently.
Bruno Haible <bruno@clisp.org>
parents: 13419
diff changeset
5635 func_show_module_list
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
5636 fi
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5637 final_modules="$modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5638
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5639 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5640 # Determine main module list and tests-related module list separately.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5641 func_modules_transitive_closure_separately
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5642 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5643
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5644 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5645 # Determine whether a $testsbase/libtests.a is needed.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5646 func_determine_use_libtests
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5647 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5648
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
5649 # Add the dummy module if needed.
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5650 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5651 func_modules_add_dummy_separately
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5652 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5653 func_modules_add_dummy
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5654 fi
6550
3bb57675fc1b Avoid error due to empty archive on MacOS X.
Bruno Haible <bruno@clisp.org>
parents: 6549
diff changeset
5655
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
5656 # Show banner notice of every module.
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5657 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5658 modules="$main_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5659 func_modules_notice
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5660 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5661 func_modules_notice
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5662 fi
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
5663
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5664 # Determine final file list.
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5665 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5666 func_modules_to_filelist_separately
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5667 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5668 func_modules_to_filelist
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5669 if test $verbose -ge 0; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5670 echo "File list:"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5671 echo "$files" | sed -e 's/^/ /'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5672 fi
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
5673 fi
13752
68e7104b03e2 gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
Bruno Haible <bruno@clisp.org>
parents: 13750
diff changeset
5674 # Add files for which the copy in gnulib is newer than the one that
68e7104b03e2 gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
Bruno Haible <bruno@clisp.org>
parents: 13750
diff changeset
5675 # "automake --add-missing --copy" would provide.
68e7104b03e2 gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
Bruno Haible <bruno@clisp.org>
parents: 13750
diff changeset
5676 files="$files build-aux/config.guess"
68e7104b03e2 gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
Bruno Haible <bruno@clisp.org>
parents: 13750
diff changeset
5677 files="$files build-aux/config.sub"
68e7104b03e2 gnulib-tool: In testdirs, use the newest available config.{guess.sub}.
Bruno Haible <bruno@clisp.org>
parents: 13750
diff changeset
5678 files=`for f in $files; do echo $f; done | LC_ALL=C sort -u`
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5679
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5680 rewritten='%REWRITTEN%'
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
5681 sed_rewrite_files="\
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5682 s,^build-aux/,$rewritten$auxdir/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5683 s,^doc/,$rewritten$docbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5684 s,^lib/,$rewritten$sourcebase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5685 s,^m4/,$rewritten$m4base/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5686 s,^tests/,$rewritten$testsbase/,
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5687 s,^tests=lib/,$rewritten$testsbase/,
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5688 s,^top/,$rewritten,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
5689 s,^$rewritten,,"
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5690
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5691 # Create directories.
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5692 for f in $files; do echo $f; done \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
5693 | sed -e "$sed_rewrite_files" \
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
5694 | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \
7605
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5695 | LC_ALL=C sort -u \
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5696 > "$tmp"/dirs
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5697 { # Rearrange file descriptors. Needed because "while ... done < ..."
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5698 # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5699 exec 5<&0 < "$tmp"/dirs
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5700 while read d; do
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5701 mkdir -p "$testdir/$d"
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5702 done
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5703 exec 0<&5 5<&-
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5704 }
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5705
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5706 # Copy files or make symbolic links.
ae17dea0254d Create also all needed subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7600
diff changeset
5707 delimiter=' '
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
5708 for f in $files; do echo $f; done \
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
5709 | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_files" \
7321
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
5710 | LC_ALL=C sort \
3bf1b669d1e1 Rewrite all file names at once.
Bruno Haible <bruno@clisp.org>
parents: 7320
diff changeset
5711 > "$tmp"/files
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5712 { # Rearrange file descriptors. Needed because "while ... done < ..."
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5713 # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
7368
a7abebdb07f4 * gnulib-tool (func_import, func_create_testdir): Fix typos in
Eric Blake <ebb9@byu.net>
parents: 7350
diff changeset
5714 exec 5<&0 < "$tmp"/files
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5715 while read g f; do
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5716 case "$f" in
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5717 tests=lib/*) f=`echo "$f" | sed -e 's,^tests=lib/,lib/,'` ;;
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5718 esac
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5719 func_lookup_file "$f"
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5720 if test -n "$lookedup_tmp"; then
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
5721 cp -p "$lookedup_file" "$testdir/$g"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
5722 else
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5723 ln "$lookedup_file" "$testdir/$g" 2>/dev/null ||
7643
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
5724 if { test -n "$symbolic" \
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
5725 || { test -n "$lsymbolic" \
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
5726 && test "$lookedup_file" = "$local_gnulib_dir/$f"; }; }; then
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
5727 func_ln "$lookedup_file" "$testdir/$g"
d67f9dc6019d New option --local-symlink.
Bruno Haible <bruno@clisp.org>
parents: 7642
diff changeset
5728 else
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5729 cp -p "$lookedup_file" "$testdir/$g"
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5730 fi
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
5731 fi
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5732 done
7373
330a972d58f0 Tweak last patch, for symmetry.
Bruno Haible <bruno@clisp.org>
parents: 7368
diff changeset
5733 exec 0<&5 5<&-
7326
1ca1035630dd Avoid to execute while loops in a subshell.
Bruno Haible <bruno@clisp.org>
parents: 7323
diff changeset
5734 }
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5735
14840
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
5736 # Determine include_guard_prefix.
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
5737 func_compute_include_guard_prefix
5f709022a256 Allow multiple gnulib generated include files to be combined.
Bruno Haible <bruno@clisp.org>
parents: 14836
diff changeset
5738
7981
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
5739 # Create Makefile.ams that are for testing.
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
5740 for_test=true
41421349e26b In testing directories, link the test programs already during "make", not
Bruno Haible <bruno@clisp.org>
parents: 7911
diff changeset
5741
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5742 # No special edits are needed.
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5743 makefile_am_edits=0
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5744
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5745 # Create $sourcebase/Makefile.am.
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5746 mkdir -p "$testdir/$sourcebase"
10476
429cc7a6da60 Don't ask the user to perform edits in the generated Makefile.ams.
Bruno Haible <bruno@clisp.org>
parents: 10475
diff changeset
5747 destfile="$sourcebase/Makefile.am"
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5748 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5749 modules="$main_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5750 fi
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5751 func_emit_lib_Makefile_am > "$testdir/$sourcebase/Makefile.am"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5752 any_uses_subdirs="$uses_subdirs"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5753
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5754 # Create $m4base/Makefile.am.
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5755 mkdir -p "$testdir/$m4base"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5756 (echo "## Process this file with automake to produce Makefile.in."
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5757 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5758 echo "EXTRA_DIST ="
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5759 for f in $files; do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5760 case "$f" in
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5761 m4/* )
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
5762 echo "EXTRA_DIST += "`echo "$f" | sed -e 's,^m4/,,'` ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5763 esac
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5764 done
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5765 ) > "$testdir/$m4base/Makefile.am"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5766
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5767 subdirs="$sourcebase $m4base"
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
5768 subdirs_with_configure_ac=""
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5769
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
5770 if false && test -f "$testdir"/$m4base/gettext.m4; then
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5771 # Avoid stupid error message from automake:
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5772 # "AM_GNU_GETTEXT used but `po' not in SUBDIRS"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5773 mkdir -p "$testdir/po"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5774 (echo "## Process this file with automake to produce Makefile.in."
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5775 ) > "$testdir/po/Makefile.am"
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
5776 func_append subdirs " po"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5777 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5778
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
5779 if $inctests; then
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5780 test -d "$testdir/$testsbase" || mkdir "$testdir/$testsbase"
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5781 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5782 # Create $testsbase/Makefile.am.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5783 destfile="$testsbase/Makefile.am"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5784 modules="$testsrelated_modules"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5785 func_emit_tests_Makefile_am "${macro_prefix}tests_WITNESS" > "$testdir/$testsbase/Makefile.am"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5786 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5787 # Viewed from the $testsbase subdirectory, $auxdir is different.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5788 saved_auxdir="$auxdir"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5789 auxdir=`echo "$testsbase/" | sed -e 's%[^/][^/]*//*%../%g'`"$auxdir"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5790 # Create $testsbase/Makefile.am.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5791 use_libtests=false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5792 destfile="$testsbase/Makefile.am"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5793 func_emit_tests_Makefile_am "" > "$testdir/$testsbase/Makefile.am"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5794 any_uses_subdirs="$any_uses_subdirs$uses_subdirs"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5795 # Create $testsbase/configure.ac.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5796 (echo "# Process this file with autoconf to produce a configure script."
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5797 echo "AC_INIT([dummy], [0])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5798 echo "AC_CONFIG_AUX_DIR([$auxdir])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5799 echo "AM_INIT_AUTOMAKE"
12109
b56c1bd3de46 Conditionally emit AM_PROG_CC_C_O invocation to tests/configure.ac.
Bruno Haible <bruno@clisp.org>
parents: 12055
diff changeset
5800 echo
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5801 echo "AC_CONFIG_HEADERS([config.h])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5802 echo
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5803 echo "AC_PROG_CC"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5804 echo "AC_PROG_INSTALL"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5805 echo "AC_PROG_MAKE_SET"
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 14917
diff changeset
5806 echo "gl_PROG_AR_RANLIB"
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5807 echo
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5808 if test -n "$uses_subdirs"; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5809 echo "AM_PROG_CC_C_O"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5810 echo
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5811 fi
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5812 for module in $modules; do
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5813 func_verify_module
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5814 if test -n "$module"; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5815 case $module in
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5816 gnumakefile | maintainer-makefile)
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5817 # These modules are meant to be used only in the top-level directory.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5818 ;;
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5819 *)
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5820 func_get_autoconf_early_snippet "$module"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5821 ;;
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5822 esac
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5823 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5824 done \
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5825 | sed -e '/^$/d;' -e 's/AC_REQUIRE(\[\([^()]*\)\])/\1/'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5826 if test "$libtool" = true; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5827 echo "LT_INIT([win32-dll])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5828 echo "LT_LANG([C++])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5829 echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5830 echo "gl_cond_libtool=true"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5831 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5832 echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5833 echo "gl_cond_libtool=false"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5834 echo "gl_libdeps="
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5835 echo "gl_ltlibdeps="
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5836 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5837 # Wrap the set of autoconf snippets into an autoconf macro that is then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5838 # invoked. This is needed because autoconf does not support AC_REQUIRE
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5839 # at the top level:
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5840 # error: AC_REQUIRE(gt_CSHARPCOMP): cannot be used outside of an AC_DEFUN'd macro
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5841 # but we want the AC_REQUIRE to have its normal meaning (provide one
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5842 # expansion of the required macro before the current point, and only one
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5843 # expansion total).
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5844 echo "AC_DEFUN([gl_INIT], ["
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5845 sed_replace_build_aux='
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5846 :a
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5847 /AC_CONFIG_FILES(.*:build-aux\/.*)/{
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5848 s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5849 ba
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5850 }'
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5851 echo "gl_m4_base='../$m4base'"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5852 func_emit_initmacro_start $macro_prefix
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5853 # We don't have explicit ordering constraints between the various
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5854 # autoconf snippets. It's cleanest to put those of the library before
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5855 # those of the tests.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5856 echo "gl_source_base='../$sourcebase'"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5857 func_emit_autoconf_snippets "$modules" func_verify_nontests_module false false false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5858 echo "gl_source_base='.'"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5859 func_emit_autoconf_snippets "$modules" func_verify_tests_module false false false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5860 func_emit_initmacro_end $macro_prefix
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5861 # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5862 # created using libtool, because libtool already handles the dependencies.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5863 if test "$libtool" != true; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5864 libname_upper=`echo "$libname" | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5865 echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5866 echo " AC_SUBST([${libname_upper}_LIBDEPS])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5867 echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5868 echo " AC_SUBST([${libname_upper}_LTLIBDEPS])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5869 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5870 echo "])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5871 func_emit_initmacro_done $macro_prefix $sourcebase # FIXME use $sourcebase or $testsbase?
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5872 echo
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5873 echo "gl_INIT"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5874 echo
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5875 # Usually $testsbase/config.h will be a superset of config.h. Verify this
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5876 # by "merging" config.h into $testsbase/config.h; look out for gcc warnings.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5877 echo "AH_TOP([#include \"../config.h\"])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5878 echo
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5879 echo "AC_CONFIG_FILES([Makefile])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5880 echo "AC_OUTPUT"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5881 ) > "$testdir/$testsbase/configure.ac"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5882 auxdir="$saved_auxdir"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5883 subdirs_with_configure_ac="$subdirs_with_configure_ac $testsbase"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5884 fi
14841
9341bfde6165 gnulib-tool: Fix bug in yesterday's commit.
Bruno Haible <bruno@clisp.org>
parents: 14840
diff changeset
5885 func_append subdirs " $testsbase"
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
5886 fi
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
5887
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5888 # Create Makefile.am.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5889 (echo "## Process this file with automake to produce Makefile.in."
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5890 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5891 echo "AUTOMAKE_OPTIONS = 1.5 foreign"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5892 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5893 echo "SUBDIRS = $subdirs"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5894 echo
7195
e4a459055e78 Test other subdirectory names than 'lib' and 'm4'.
Bruno Haible <bruno@clisp.org>
parents: 7187
diff changeset
5895 echo "ACLOCAL_AMFLAGS = -I $m4base"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5896 ) > "$testdir/Makefile.am"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5897
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5898 # Create configure.ac.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5899 (echo "# Process this file with autoconf to produce a configure script."
6106
66bd85c8a9cd Proper autoconf macro argument quoting.
Bruno Haible <bruno@clisp.org>
parents: 6039
diff changeset
5900 echo "AC_INIT([dummy], [0])"
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
5901 if test "$auxdir" != "."; then
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
5902 echo "AC_CONFIG_AUX_DIR([$auxdir])"
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
5903 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5904 echo "AM_INIT_AUTOMAKE"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5905 echo
11931
d42b3b6f11d3 Replace uses of obsolete Autoconf macros with modern counterparts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11919
diff changeset
5906 echo "AC_CONFIG_HEADERS([config.h])"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5907 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5908 echo "AC_PROG_CC"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5909 echo "AC_PROG_INSTALL"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5910 echo "AC_PROG_MAKE_SET"
7106
b9fff044578d Apply last patch also to --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7105
diff changeset
5911 echo
7777
b33956fbd953 2007-01-03 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 7771
diff changeset
5912 echo "# For autobuild."
b33956fbd953 2007-01-03 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 7771
diff changeset
5913 echo "AC_CANONICAL_BUILD"
b33956fbd953 2007-01-03 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 7771
diff changeset
5914 echo "AC_CANONICAL_HOST"
b33956fbd953 2007-01-03 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 7771
diff changeset
5915 echo
7106
b9fff044578d Apply last patch also to --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7105
diff changeset
5916 echo "m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace"
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5917 echo "m4_pattern_allow([^gl_ES\$])dnl a valid locale name"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5918 echo "m4_pattern_allow([^gl_LIBOBJS\$])dnl a variable"
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
5919 echo "m4_pattern_allow([^gl_LTLIBOBJS\$])dnl a variable"
7106
b9fff044578d Apply last patch also to --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 7105
diff changeset
5920 echo
15482
74bf515b04ad Add support for Minix with ACK compiler.
Bruno Haible <bruno@clisp.org>
parents: 14917
diff changeset
5921 echo "gl_PROG_AR_RANLIB"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5922 echo
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5923 if test -n "$any_uses_subdirs"; then
7641
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
5924 echo "AM_PROG_CC_C_O"
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
5925 echo
d6fbdb213b01 Finish support for source files in subdirectories.
Bruno Haible <bruno@clisp.org>
parents: 7640
diff changeset
5926 fi
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5927 for module in $final_modules; do
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5928 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5929 func_verify_module
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5930 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5931 func_verify_nontests_module
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5932 fi
8079
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5933 if test -n "$module"; then
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5934 func_get_autoconf_early_snippet "$module"
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5935 fi
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5936 done \
0951beec5b89 New module description section 'configure.ac-early'.
Bruno Haible <bruno@clisp.org>
parents: 8055
diff changeset
5937 | sed -e '/^$/d;' -e 's/AC_REQUIRE(\[\([^()]*\)\])/\1/'
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5938 if test "$libtool" = true; then
12978
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
5939 echo "LT_INIT([win32-dll])"
12982
4bf217bee1d8 Fix problem with automake's definition of CXXLINK.
Bruno Haible <bruno@clisp.org>
parents: 12979
diff changeset
5940 echo "LT_LANG([C++])"
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5941 echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5942 echo "gl_cond_libtool=true"
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
5943 else
6418
e0a8b9b05999 Proper autoconf macro argument quoting.
Bruno Haible <bruno@clisp.org>
parents: 6414
diff changeset
5944 echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5945 echo "gl_cond_libtool=false"
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5946 echo "gl_libdeps="
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5947 echo "gl_ltlibdeps="
6414
46d47c8fe734 * gnulib-tool: Define automake conditional GL_COND_LIBTOOL if
Simon Josefsson <simon@josefsson.org>
parents: 6389
diff changeset
5948 fi
7090
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5949 # Wrap the set of autoconf snippets into an autoconf macro that is then
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5950 # invoked. This is needed because autoconf does not support AC_REQUIRE
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5951 # at the top level:
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5952 # error: AC_REQUIRE(gt_CSHARPCOMP): cannot be used outside of an AC_DEFUN'd macro
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5953 # but we want the AC_REQUIRE to have its normal meaning (provide one
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5954 # expansion of the required macro before the current point, and only one
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5955 # expansion total).
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
5956 echo "AC_DEFUN([gl_INIT], ["
6556
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5957 if test "$auxdir" != "build-aux"; then
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5958 sed_replace_build_aux='
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5959 :a
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5960 /AC_CONFIG_FILES(.*:build-aux\/.*)/{
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5961 s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5962 ba
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5963 }'
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5964 else
10400
817f1418bbde Make gnulib-tool work with native 'sed' on AIX.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 10380
diff changeset
5965 sed_replace_build_aux="$sed_noop"
6556
85c3c00fcec1 Fix sed_replace_auxdir.
Bruno Haible <bruno@clisp.org>
parents: 6551
diff changeset
5966 fi
13105
6d950d2ec11e gnulib-tool: Provide the value of --m4-base to modules.
Bruno Haible <bruno@clisp.org>
parents: 13090
diff changeset
5967 echo "gl_m4_base='$m4base'"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5968 func_emit_initmacro_start $macro_prefix
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5969 echo "gl_source_base='$sourcebase'"
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5970 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5971 func_emit_autoconf_snippets "$main_modules" func_verify_module true false false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5972 else
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5973 func_emit_autoconf_snippets "$modules" func_verify_nontests_module true false false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5974 fi
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
5975 func_emit_initmacro_end $macro_prefix
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5976 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5977 echo " gltests_libdeps="
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5978 echo " gltests_ltlibdeps="
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5979 func_emit_initmacro_start ${macro_prefix}tests
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5980 echo " gl_source_base='$testsbase'"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5981 # Define a tests witness macro.
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5982 echo " ${macro_prefix}tests_WITNESS=IN_GNULIB_TESTS"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5983 echo " AC_SUBST([${macro_prefix}tests_WITNESS])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5984 echo " gl_module_indicator_condition=\$${macro_prefix}tests_WITNESS"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5985 echo " m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [\$gl_module_indicator_condition])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5986 func_emit_autoconf_snippets "$testsrelated_modules" func_verify_module true false false
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5987 echo " m4_popdef([gl_MODULE_INDICATOR_CONDITION])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5988 func_emit_initmacro_end ${macro_prefix}tests
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5989 fi
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5990 # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5991 # created using libtool, because libtool already handles the dependencies.
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5992 if test "$libtool" != true; then
13768
f19c8837df90 more ports to Solaris tr, which needs [] around ranges
Paul Eggert <eggert@cs.ucla.edu>
parents: 13763
diff changeset
5993 libname_upper=`echo "$libname" | LC_ALL=C tr '[a-z]-' '[A-Z]_'`
7286
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5994 echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5995 echo " AC_SUBST([${libname_upper}_LIBDEPS])"
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5996 echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5997 echo " AC_SUBST([${libname_upper}_LTLIBDEPS])"
727bb5526bad For libraries not built with libtool:
Bruno Haible <bruno@clisp.org>
parents: 7270
diff changeset
5998 fi
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
5999 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6000 if $use_libtests; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6001 echo " LIBTESTS_LIBDEPS=\"\$gltests_libdeps\""
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6002 echo " AC_SUBST([LIBTESTS_LIBDEPS])"
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6003 fi
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6004 fi
7090
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
6005 echo "])"
9516
020ae1c236a0 Collect sources for tests-related modules in tests/, compile them to libtests.a.
Bruno Haible <bruno@clisp.org>
parents: 9515
diff changeset
6006 func_emit_initmacro_done $macro_prefix $sourcebase
14836
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6007 if $single_configure; then
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6008 func_emit_initmacro_done ${macro_prefix}tests $testsbase
ea0ee6fc3c8e gnulib-tool: Alternative structure of testdirs, similar to --import.
Bruno Haible <bruno@clisp.org>
parents: 14833
diff changeset
6009 fi
7486
46b72819ef52 Add support for multiple gnulib-tool invocations in the scope of a single
Bruno Haible <bruno@clisp.org>
parents: 7485
diff changeset
6010 echo
7090
dfc92f94c781 Allow AC_REQUIREs in the configure.ac snippet.
Bruno Haible <bruno@clisp.org>
parents: 7089
diff changeset
6011 echo "gl_INIT"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6012 echo
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6013 if test -n "$subdirs_with_configure_ac"; then
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6014 echo "AC_CONFIG_SUBDIRS(["`echo $subdirs_with_configure_ac`"])"
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6015 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6016 makefiles="Makefile"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6017 for d in $subdirs; do
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6018 # For subdirs that have a configure.ac by their own, it's the subdir's
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6019 # configure.ac which creates the subdir's Makefile.am, not this one.
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6020 case " $subdirs_with_configure_ac " in
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6021 *" $d "*) ;;
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
6022 *) func_append makefiles " $d/Makefile" ;;
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6023 esac
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6024 done
11931
d42b3b6f11d3 Replace uses of obsolete Autoconf macros with modern counterparts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11919
diff changeset
6025 echo "AC_CONFIG_FILES([$makefiles])"
d42b3b6f11d3 Replace uses of obsolete Autoconf macros with modern counterparts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11919
diff changeset
6026 echo "AC_OUTPUT"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6027 ) > "$testdir/configure.ac"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6028
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6029 # Create autogenerated files.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6030 (cd "$testdir"
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6031 # Do not use "${AUTORECONF} --force --install", because it may invoke
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6032 # autopoint, which brings in older versions of some of our .m4 files.
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6033 if test -f $m4base/gettext.m4; then
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6034 func_execute_command ${AUTOPOINT} --force || func_exit 1
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6035 for f in $m4base/*.m4~; do
10969
4c304a656b87 Fix a gnulib-tool failure.
Bruno Haible <bruno@clisp.org>
parents: 10854
diff changeset
6036 if test -f $f; then
4c304a656b87 Fix a gnulib-tool failure.
Bruno Haible <bruno@clisp.org>
parents: 10854
diff changeset
6037 mv -f $f `echo $f | sed -e 's,~$,,'` || func_exit 1
4c304a656b87 Fix a gnulib-tool failure.
Bruno Haible <bruno@clisp.org>
parents: 10854
diff changeset
6038 fi
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6039 done
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6040 fi
12978
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
6041 if test "$libtool" = true; then
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
6042 func_execute_command ${LIBTOOLIZE} --copy || func_exit 1
b7726f620298 gnulib-tool: Add support for --libtool in --create-testdir.
Bruno Haible <bruno@clisp.org>
parents: 12923
diff changeset
6043 fi
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6044 func_execute_command ${ACLOCAL} -I $m4base || func_exit 1
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6045 if ! test -d build-aux; then
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6046 func_execute_command mkdir build-aux || func_exit 1
7485
0194db3ad154 Handle mismatch between latest gettext release and current gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7484
diff changeset
6047 fi
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6048 func_execute_command ${AUTOCONF} || func_exit 1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6049 func_execute_command ${AUTOHEADER} || func_exit 1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6050 func_execute_command ${AUTOMAKE} --add-missing --copy || func_exit 1
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6051 ) || func_exit 1
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
6052 if $inctests && ! $single_configure; then
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6053 # Create autogenerated files.
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6054 (cd "$testdir/$testsbase" || func_exit 1
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6055 # Do not use "${AUTORECONF} --force --install", because it may invoke
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6056 # autopoint, which brings in older versions of some of our .m4 files.
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6057 if test -f ../$m4base/gettext.m4; then
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6058 func_execute_command ${AUTOPOINT} --force || func_exit 1
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6059 for f in ../$m4base/*.m4~; do
10969
4c304a656b87 Fix a gnulib-tool failure.
Bruno Haible <bruno@clisp.org>
parents: 10854
diff changeset
6060 if test -f $f; then
4c304a656b87 Fix a gnulib-tool failure.
Bruno Haible <bruno@clisp.org>
parents: 10854
diff changeset
6061 mv -f $f `echo $f | sed -e 's,~$,,'` || func_exit 1
4c304a656b87 Fix a gnulib-tool failure.
Bruno Haible <bruno@clisp.org>
parents: 10854
diff changeset
6062 fi
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6063 done
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6064 fi
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6065 func_execute_command ${ACLOCAL} -I ../$m4base || func_exit 1
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6066 if ! test -d ../build-aux; then
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6067 func_execute_command mkdir ../build-aux
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6068 fi
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6069 func_execute_command ${AUTOCONF} || func_exit 1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6070 func_execute_command ${AUTOHEADER} || func_exit 1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6071 func_execute_command ${AUTOMAKE} --add-missing --copy || func_exit 1
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6072 ) || func_exit 1
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6073 fi
7866
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6074 # Need to run configure and make once, to create built files that are to be
13769
896628c568fa parse-datetime: better name than get_date
Eric Blake <eblake@redhat.com>
parents: 13768
diff changeset
6075 # distributed (such as parse-datetime.c).
13107
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6076 sed_remove_make_variables='s,[$]([A-Za-z0-9_]*),,g'
8410
bf7fdc3211a4 Avoiding the "./configure && make && make distclean" did not work most of the
Bruno Haible <bruno@clisp.org>
parents: 8356
diff changeset
6077 # Extract the value of "CLEANFILES += ..." and "MOSTLYCLEANFILES += ...".
7866
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6078 cleaned_files=`sed -e "$sed_remove_backslash_newline" < "$testdir/$sourcebase/Makefile.am" \
8503
7c0e7f4f1ac1 * gnulib-tool: Rearrange space-tab sequences, since some editors
Eric Blake <ebb9@byu.net>
parents: 8451
diff changeset
6079 | sed -n -e 's,^CLEANFILES[ ]*+=\([^#]*\).*$,\1,p' -e 's,^MOSTLYCLEANFILES[ ]*+=\([^#]*\).*$,\1,p'`
8410
bf7fdc3211a4 Avoiding the "./configure && make && make distclean" did not work most of the
Bruno Haible <bruno@clisp.org>
parents: 8356
diff changeset
6080 cleaned_files=`for file in $cleaned_files; do echo " $file "; done`
7866
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6081 # Extract the value of "BUILT_SOURCES += ...". Remove variable references
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6082 # such $(FOO_H) because they don't refer to distributed files.
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6083 built_sources=`sed -e "$sed_remove_backslash_newline" < "$testdir/$sourcebase/Makefile.am" \
8503
7c0e7f4f1ac1 * gnulib-tool: Rearrange space-tab sequences, since some editors
Eric Blake <ebb9@byu.net>
parents: 8451
diff changeset
6084 | sed -n -e 's,^BUILT_SOURCES[ ]*+=\([^#]*\).*$,\1,p' \
7866
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6085 | sed -e "$sed_remove_make_variables"`
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6086 distributed_built_sources=`for file in $built_sources; do
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6087 case "$cleaned_files" in
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6088 *" "$file" "*) ;;
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6089 *) echo $file ;;
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6090 esac;
58d9bcb3d6c4 Don't unnecessarily run configure and make.
Bruno Haible <bruno@clisp.org>
parents: 7858
diff changeset
6091 done`
13107
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6092 tests_distributed_built_sources=
16932
48e8f0679448 gnulib-tool: Refactor inctests variable.
Bruno Haible <bruno@clisp.org>
parents: 16931
diff changeset
6093 if $inctests; then
13107
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6094 # Likewise for built files in the $testsbase directory.
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6095 tests_cleaned_files=`sed -e "$sed_remove_backslash_newline" < "$testdir/$testsbase/Makefile.am" \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6096 | sed -n -e 's,^CLEANFILES[ ]*+=\([^#]*\).*$,\1,p' -e 's,^MOSTLYCLEANFILES[ ]*+=\([^#]*\).*$,\1,p'`
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6097 tests_cleaned_files=`for file in $tests_cleaned_files; do echo " $file "; done`
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6098 tests_built_sources=`sed -e "$sed_remove_backslash_newline" < "$testdir/$testsbase/Makefile.am" \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6099 | sed -n -e 's,^BUILT_SOURCES[ ]*+=\([^#]*\).*$,\1,p' \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6100 | sed -e "$sed_remove_make_variables"`
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6101 tests_distributed_built_sources=`for file in $tests_built_sources; do
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6102 case "$tests_cleaned_files" in
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6103 *" "$file" "*) ;;
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6104 *) echo $file ;;
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6105 esac;
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6106 done`
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6107 fi
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6108 if test -n "$distributed_built_sources" || test -n "$tests_distributed_built_sources"; then
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6109 (cd "$testdir"
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6110 ./configure || func_exit 1
13107
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6111 if test -n "$distributed_built_sources"; then
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6112 cd "$sourcebase"
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6113 echo 'built_sources: $(BUILT_SOURCES)' >> Makefile
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6114 $MAKE AUTOCONF="${AUTOCONF}" AUTOHEADER="${AUTOHEADER}" ACLOCAL="${ACLOCAL}" AUTOMAKE="${AUTOMAKE}" AUTORECONF="${AUTORECONF}" AUTOPOINT="${AUTOPOINT}" LIBTOOLIZE="${LIBTOOLIZE}" \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6115 built_sources \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6116 || func_exit 1
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6117 cd ..
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6118 fi
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6119 if test -n "$tests_distributed_built_sources"; then
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6120 cd "$testsbase"
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6121 echo 'built_sources: $(BUILT_SOURCES)' >> Makefile
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6122 $MAKE AUTOCONF="${AUTOCONF}" AUTOHEADER="${AUTOHEADER}" ACLOCAL="${ACLOCAL}" AUTOMAKE="${AUTOMAKE}" AUTORECONF="${AUTORECONF}" AUTOPOINT="${AUTOPOINT}" LIBTOOLIZE="${LIBTOOLIZE}" \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6123 built_sources \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6124 || func_exit 1
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6125 cd ..
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6126 fi
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6127 $MAKE AUTOCONF="${AUTOCONF}" AUTOHEADER="${AUTOHEADER}" ACLOCAL="${ACLOCAL}" AUTOMAKE="${AUTOMAKE}" AUTORECONF="${AUTORECONF}" AUTOPOINT="${AUTOPOINT}" LIBTOOLIZE="${LIBTOOLIZE}" \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6128 distclean \
ed335ebb55f0 gnulib-tool: Create distributed built sources also for the tests.
Bruno Haible <bruno@clisp.org>
parents: 13106
diff changeset
6129 || func_exit 1
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6130 ) || func_exit 1
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6131 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6132 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6133
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6134 # func_create_megatestdir megatestdir allmodules
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6135 # Input:
7214
eb43edab28c3 Small fix after --local-dir introduction.
Bruno Haible <bruno@clisp.org>
parents: 7213
diff changeset
6136 # - local_gnulib_dir from --local-dir
12857
dfbc7f3aa6d0 gnulib-tool: Fix up caching patches.
Bruno Haible <bruno@clisp.org>
parents: 12856
diff changeset
6137 # - modcache true or false, from --cache-modules/--no-cache-modules
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6138 # - auxdir directory relative to destdir where to place build aux files
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6139 func_create_megatestdir ()
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6140 {
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6141 megatestdir="$1"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6142 allmodules="$2"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6143 if test -z "$allmodules"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6144 allmodules=`func_all_modules`
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6145 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6146
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6147 megasubdirs=
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6148 # First, all modules one by one.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6149 for onemodule in $allmodules; do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6150 func_create_testdir "$megatestdir/$onemodule" $onemodule
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
6151 func_append megasubdirs "$onemodule "
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6152 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6153 # Then, all modules all together.
7350
6c5c8c8b93a3 Don't include the config-h module in megatestdir.
Bruno Haible <bruno@clisp.org>
parents: 7348
diff changeset
6154 # Except config-h, which breaks all modules which use HAVE_CONFIG_H.
11737
351c1d4b1ca6 Undo last gnulib-tool commit: maintainer-makefile is fixed.
Bruno Haible <bruno@clisp.org>
parents: 11734
diff changeset
6155 allmodules=`for m in $allmodules; do if test $m != config-h; then echo $m; fi; done`
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6156 func_create_testdir "$megatestdir/ALL" "$allmodules"
7323
7ca0e325d5db Avoid quadratic complexity due to string concatenations.
Bruno Haible <bruno@clisp.org>
parents: 7322
diff changeset
6157 func_append megasubdirs "ALL"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6158
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6159 # Create autobuild.
17378
1d9362a18c34 Assume gnulib is checked out from Git, not CVS
Stefano Lattarini <stefano.lattarini@gmail.com>
parents: 17269
diff changeset
6160 cvsdate=`vc_witness="$gnulib_dir/.git/refs/heads/master"; \
9377
ca27c3808c95 Update after move from cvs to git.
Bruno Haible <bruno@clisp.org>
parents: 9355
diff changeset
6161 sh "$gnulib_dir/build-aux/mdate-sh" "$vc_witness" \
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6162 | sed -e 's,January,01,' -e 's,Jan,01,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6163 -e 's,February,02,' -e 's,Feb,02,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6164 -e 's,March,03,' -e 's,Mar,03,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6165 -e 's,April,04,' -e 's,Apr,04,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6166 -e 's,May,05,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6167 -e 's,June,06,' -e 's,Jun,06,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6168 -e 's,July,07,' -e 's,Jul,07,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6169 -e 's,August,08,' -e 's,Aug,08,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6170 -e 's,September,09,' -e 's,Sep,09,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6171 -e 's,October,10,' -e 's,Oct,10,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6172 -e 's,November,11,' -e 's,Nov,11,' \
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6173 -e 's,December,12,' -e 's,Dec,12,' \
9022
44509698ba9d * gnulib-tool: Fix indentation.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9010
diff changeset
6174 -e 's,^,00,' -e 's,^[0-9]*\([0-9][0-9] \),\1,' \
9005
e04f36b292ad * gnulib-tool (IFS): Initialize early, so we don't set it to
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 9003
diff changeset
6175 -e 's,^\([0-9]*\) \([0-9]*\) \([0-9]*\),\3\2\1,'`
8418
6840759b4ce2 Start the autobuild script with /bin/sh.
Bruno Haible <bruno@clisp.org>
parents: 8416
diff changeset
6176 (echo '#!/bin/sh'
6840759b4ce2 Start the autobuild script with /bin/sh.
Bruno Haible <bruno@clisp.org>
parents: 8416
diff changeset
6177 echo "CVSDATE=$cvsdate"
11403
ec75c090b646 gnulib-tool: use $MAKE not make in generated files
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11261
diff changeset
6178 echo ": \${MAKE=make}"
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6179 echo "test -d logs || mkdir logs"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6180 echo "for module in $megasubdirs; do"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6181 echo " echo \"Working on module \$module...\""
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6182 echo " safemodule=\`echo \$module | sed -e 's|/|-|g'\`"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6183 echo " (echo \"To: gnulib@autobuild.josefsson.org\""
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6184 echo " echo"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6185 echo " set -x"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6186 echo " : autobuild project... \$module"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6187 echo " : autobuild revision... cvs-\$CVSDATE-000000"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6188 echo " : autobuild timestamp... \`date \"+%Y%m%d-%H%M%S\"\`"
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6189 echo " : autobuild hostname... \`hostname\`"
11403
ec75c090b646 gnulib-tool: use $MAKE not make in generated files
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11261
diff changeset
6190 echo " cd \$module && ./configure \$CONFIGURE_OPTIONS && \$MAKE && \$MAKE check && \$MAKE distclean"
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6191 echo " echo rc=\$?"
8419
d5e85ac6458c Avoid using sed -e "", not supported by AIX sed.
Bruno Haible <bruno@clisp.org>
parents: 8418
diff changeset
6192 echo " ) 2>&1 | { if test -n \"\$AUTOBUILD_SUBST\"; then sed -e \"\$AUTOBUILD_SUBST\"; else cat; fi; } > logs/\$safemodule"
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6193 echo "done"
8672
c00e30e9aba4 2007-04-12 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 8668
diff changeset
6194 ) > "$megatestdir/do-autobuild"
c00e30e9aba4 2007-04-12 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 8668
diff changeset
6195 chmod a+x "$megatestdir/do-autobuild"
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6196
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6197 # Create Makefile.am.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6198 (echo "## Process this file with automake to produce Makefile.in."
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6199 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6200 echo "AUTOMAKE_OPTIONS = 1.5 foreign"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6201 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6202 echo "SUBDIRS = $megasubdirs"
8416
0bf5cb89a6b9 Create also an autobuild script.
Bruno Haible <bruno@clisp.org>
parents: 8410
diff changeset
6203 echo
8672
c00e30e9aba4 2007-04-12 Simon Josefsson <simon@josefsson.org>
Simon Josefsson <simon@josefsson.org>
parents: 8668
diff changeset
6204 echo "EXTRA_DIST = do-autobuild"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6205 ) > "$megatestdir/Makefile.am"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6206
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6207 # Create configure.ac.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6208 (echo "# Process this file with autoconf to produce a configure script."
6106
66bd85c8a9cd Proper autoconf macro argument quoting.
Bruno Haible <bruno@clisp.org>
parents: 6039
diff changeset
6209 echo "AC_INIT([dummy], [0])"
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6210 if test "$auxdir" != "."; then
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6211 echo "AC_CONFIG_AUX_DIR([$auxdir])"
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6212 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6213 echo "AM_INIT_AUTOMAKE"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6214 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6215 echo "AC_PROG_MAKE_SET"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6216 echo
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6217 echo "AC_CONFIG_SUBDIRS([$megasubdirs])"
11931
d42b3b6f11d3 Replace uses of obsolete Autoconf macros with modern counterparts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11919
diff changeset
6218 echo "AC_CONFIG_FILES([Makefile])"
d42b3b6f11d3 Replace uses of obsolete Autoconf macros with modern counterparts.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11919
diff changeset
6219 echo "AC_OUTPUT"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6220 ) > "$megatestdir/configure.ac"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6221
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6222 # Create autogenerated files.
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6223 (cd "$megatestdir"
6547
1a65fb7ddbbb Don't waste time in a recursive autoreconf.
Bruno Haible <bruno@clisp.org>
parents: 6546
diff changeset
6224 # Do not use "${AUTORECONF} --install", because autoreconf operates
1a65fb7ddbbb Don't waste time in a recursive autoreconf.
Bruno Haible <bruno@clisp.org>
parents: 6546
diff changeset
6225 # recursively, but the subdirectories are already finished, therefore
1a65fb7ddbbb Don't waste time in a recursive autoreconf.
Bruno Haible <bruno@clisp.org>
parents: 6546
diff changeset
6226 # calling autoreconf here would only waste lots of CPU time.
9188
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6227 func_execute_command ${ACLOCAL} || func_exit 1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6228 func_execute_command mkdir build-aux
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6229 func_execute_command ${AUTOCONF} || func_exit 1
7bf3aff81ae2 New options --verbose, --quiet.
Bruno Haible <bruno@clisp.org>
parents: 9187
diff changeset
6230 func_execute_command ${AUTOMAKE} --add-missing --copy || func_exit 1
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6231 ) || func_exit 1
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6232 }
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6233
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6234 case $mode in
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6235 "" )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6236 func_fatal_error "no mode specified" ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6237
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6238 list )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6239 func_all_modules
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6240 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6241
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6242 find )
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6243 # sed expression that converts a literal to a basic regular expression.
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6244 # Needs to handle . [ \ * ^ $.
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6245 sed_literal_to_basic_regex='s/\\/\\\\/g
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6246 s/\[/\\[/g
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6247 s/\^/\\^/g
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6248 s/\([.*$]\)/[\1]/g'
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6249 for filename
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6250 do
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6251 if test -f "$gnulib_dir/$filename" \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6252 || { test -n "$local_gnulib_dir" && test -f "$local_gnulib_dir/$filename"; }; then
12877
2e190fad4cfe Tweak last commit: Reduce the candidate list.
Bruno Haible <bruno@clisp.org>
parents: 12876
diff changeset
6253 filename_anywhere_regex=`echo "$filename" | sed -e "$sed_literal_to_basic_regex"`
2e190fad4cfe Tweak last commit: Reduce the candidate list.
Bruno Haible <bruno@clisp.org>
parents: 12876
diff changeset
6254 filename_line_regex='^'"$filename_anywhere_regex"'$'
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6255 module_candidates=`
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6256 {
12877
2e190fad4cfe Tweak last commit: Reduce the candidate list.
Bruno Haible <bruno@clisp.org>
parents: 12876
diff changeset
6257 (cd "$gnulib_dir" && find modules -type f -print | xargs -n 100 grep -l "$filename_line_regex" /dev/null | sed -e 's,^modules/,,')
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6258 if test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules"; then
12877
2e190fad4cfe Tweak last commit: Reduce the candidate list.
Bruno Haible <bruno@clisp.org>
parents: 12876
diff changeset
6259 (cd "$local_gnulib_dir" && find modules -type f -print | xargs -n 100 grep -l "$filename_anywhere_regex" /dev/null | sed -e 's,^modules/,,' -e 's,\.diff$,,')
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6260 fi
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6261 } \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6262 | func_sanitize_modulelist \
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6263 | LC_ALL=C sort -u
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6264 `
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6265 for module in $module_candidates; do
12877
2e190fad4cfe Tweak last commit: Reduce the candidate list.
Bruno Haible <bruno@clisp.org>
parents: 12876
diff changeset
6266 if func_get_filelist $module | grep "$filename_line_regex" > /dev/null; then
12876
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6267 echo $module
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6268 fi
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6269 done
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6270 else
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6271 func_warning "file $filename does not exist"
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6272 fi
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6273 done
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6274 ;;
030a6f5cbffd Make it easier to find modules. New gnulib-tool option '--find'.
Bruno Haible <bruno@clisp.org>
parents: 12859
diff changeset
6275
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6276 import | add-import | remove-import | update )
6940
ca8592ba8eba * gnulib-tool (func_get_filelist): Don't echo m4/onceonly_2_57.m4,
Paul Eggert <eggert@cs.ucla.edu>
parents: 6862
diff changeset
6277
5343
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6278 # Where to import.
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6279 if test -z "$destdir"; then
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6280 destdir=.
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6281 fi
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6282 test -d "$destdir" \
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6283 || func_fatal_error "destination directory does not exist: $destdir"
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
6284
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6285 # Prefer configure.ac to configure.in.
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6286 if test -f "$destdir"/configure.ac; then
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6287 configure_ac="$destdir/configure.ac"
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6288 else
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6289 if test -f "$destdir"/configure.in; then
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6290 configure_ac="$destdir/configure.in"
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6291 else
12021
d625e819e6ea Add advice to an error message.
Bruno Haible <bruno@clisp.org>
parents: 11931
diff changeset
6292 func_fatal_error "cannot find $destdir/configure.ac - make sure you run gnulib-tool from within your package's directory"
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6293 fi
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6294 fi
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6295
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6296 # Analyze configure.ac.
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6297 guessed_auxdir="."
7077
c2122624e8ed New option --no-libtool.
Bruno Haible <bruno@clisp.org>
parents: 7076
diff changeset
6298 guessed_libtool=false
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6299 my_sed_traces='
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6300 s,#.*$,,
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6301 s,^dnl .*$,,
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6302 s, dnl .*$,,
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6303 /AC_CONFIG_AUX_DIR/ {
10987
06ce5e3302ba Fix a security bug.
Bruno Haible <bruno@clisp.org>
parents: 10986
diff changeset
6304 s,^.*AC_CONFIG_AUX_DIR([[ ]*\([^]"$`\\)]*\).*$,guessed_auxdir="\1",p
5798
49900d80eaaf 2005-04-15 Oskar Liljeblad <oskar@osk.mine.nu>
Simon Josefsson <simon@josefsson.org>
parents: 5685
diff changeset
6305 }
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6306 /A[CM]_PROG_LIBTOOL/ {
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6307 s,^.*$,guessed_libtool=true,p
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6308 }'
7752
fc2ff707c74b * gnulib-tool (SED): Remove, undoing previous change.
Paul Eggert <eggert@cs.ucla.edu>
parents: 7737
diff changeset
6309 eval `sed -n -e "$my_sed_traces" < "$configure_ac"`
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
6310
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6311 if test -z "$auxdir"; then
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6312 auxdir="$guessed_auxdir"
5343
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6313 fi
5202
64446bf39961 Use sed instead of autoconf --trace, inspired by
Paul Eggert <eggert@cs.ucla.edu>
parents: 5198
diff changeset
6314
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6315 # Determine where to apply func_import.
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6316 if test "$mode" = import; then
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6317 # Apply func_import to a particular gnulib directory.
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6318 # The command line contains the complete specification; don't look at
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6319 # the contents of gnulib-cache.m4.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6320 test -n "$supplied_libname" || supplied_libname=true
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6321 test -n "$sourcebase" || sourcebase="lib"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6322 test -n "$m4base" || m4base="m4"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6323 test -n "$docbase" || docbase="doc"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6324 test -n "$testsbase" || testsbase="tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6325 test -n "$macro_prefix" || macro_prefix="gl"
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6326 func_import "$*"
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6327 else
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6328 if test -n "$m4base"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6329 # Apply func_import to a particular gnulib directory.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6330 # Any number of additional modules can be given.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6331 if test ! -f "$destdir/$m4base"/gnulib-cache.m4; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6332 # First use of gnulib in the given m4base.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6333 test -n "$supplied_libname" || supplied_libname=true
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6334 test -n "$sourcebase" || sourcebase="lib"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6335 test -n "$docbase" || docbase="doc"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6336 test -n "$testsbase" || testsbase="tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6337 test -n "$macro_prefix" || macro_prefix="gl"
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6338 fi
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6339 func_import "$*"
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6340 else
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6341 # Apply func_import to all gnulib directories.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6342 # To get this list of directories, look at Makefile.am. (Not at
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6343 # configure, because it may be omitted from version control. Also,
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6344 # don't run "find $destdir -name gnulib-cache.m4", as it might be
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6345 # too expensive.)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6346 m4dirs=
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6347 m4dirs_count=0
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6348 if test -f "$destdir"/Makefile.am; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6349 aclocal_amflags=`sed -n -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/p' "$destdir"/Makefile.am`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6350 m4dir_is_next=
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6351 for arg in $aclocal_amflags; do
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6352 if test -n "$m4dir_is_next"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6353 # Ignore absolute directory pathnames, like /usr/local/share/aclocal.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6354 case "$arg" in
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6355 /*) ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6356 *)
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6357 if test -f "$destdir/$arg"/gnulib-cache.m4; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6358 func_append m4dirs " $arg"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6359 m4dirs_count=`expr $m4dirs_count + 1`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6360 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6361 ;;
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6362 esac
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6363 m4dir_is_next=
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6364 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6365 if test "X$arg" = "X-I"; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6366 m4dir_is_next=yes
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6367 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6368 m4dir_is_next=
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6369 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6370 fi
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6371 done
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6372 else
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6373 # No Makefile.am! Oh well. Look at the last generated aclocal.m4.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6374 if test -f "$destdir"/aclocal.m4; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6375 sedexpr1='s,^m4_include(\[\(.*\)])$,\1,p'
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6376 sedexpr2='s,^[^/]*$,.,'
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6377 sedexpr3='s,/[^/]*$,,'
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6378 m4dirs=`sed -n -e "$sedexpr1" aclocal.m4 | sed -e "$sedexpr2" -e "$sedexpr3" | LC_ALL=C sort -u`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6379 m4dirs=`for arg in $m4dirs; do if test -f "$destdir/$arg"/gnulib-cache.m4; then echo $arg; fi; done`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6380 m4dirs_count=`for arg in $m4dirs; do echo "$arg"; done | wc -l`
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6381 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6382 fi
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6383 if test $m4dirs_count = 0; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6384 # First use of gnulib in a package.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6385 # Any number of additional modules can be given.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6386 test -n "$supplied_libname" || supplied_libname=true
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6387 test -n "$sourcebase" || sourcebase="lib"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6388 m4base="m4"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6389 test -n "$docbase" || docbase="doc"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6390 test -n "$testsbase" || testsbase="tests"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6391 test -n "$macro_prefix" || macro_prefix="gl"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6392 func_import "$*"
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6393 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6394 if test $m4dirs_count = 1; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6395 # There's only one use of gnulib here. Assume the user means it.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6396 # Any number of additional modules can be given.
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6397 for m4base in $m4dirs; do
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6398 func_import "$*"
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6399 done
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6400 else
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6401 # Ambiguous - guess what the user meant.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6402 if test $# = 0; then
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6403 # No further arguments. Guess the user wants to update all of them.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6404 for m4base in $m4dirs; do
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6405 # Perform func_import in a subshell, so that variable values
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6406 # such as
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6407 # local_gnulib_dir, incobsolete, inc_cxx_tests,
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6408 # inc_longrunning_tests, inc_privileged_tests,
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6409 # inc_unportable_tests, inc_all_tests, avoidlist, sourcebase,
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6410 # m4base, pobase, docbase, testsbase, inctests, libname, lgpl,
14894
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
6411 # makefile_name, libtool, macro_prefix, po_domain,
b22360ddefc4 gnulib-tool: Better isolation between different gnulib-tool invocations.
Bruno Haible <bruno@clisp.org>
parents: 14841
diff changeset
6412 # witness_c_macro, vc_files
13638
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6413 # don't propagate from one directory to another.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6414 (func_import) || func_exit 1
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6415 done
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6416 else
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6417 # Really ambiguous.
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6418 func_fatal_error "Ambiguity: to which directory should the modules be added? Please specify at least --m4-base=..."
8ae47cf4002f gnulib-tool: Change --import. New options --add/remove-import.
Bruno Haible <bruno@clisp.org>
parents: 13636
diff changeset
6419 fi
6183
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6420 fi
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6421 fi
d12635ef6eb5 Make it possible to use multiple gnulib instantiations with the same
Bruno Haible <bruno@clisp.org>
parents: 6182
diff changeset
6422 fi
6178
3830993b4c7a Rename some variables.
Bruno Haible <bruno@clisp.org>
parents: 6177
diff changeset
6423 fi
5343
eae956a8e0ec Untabify.
Bruno Haible <bruno@clisp.org>
parents: 5312
diff changeset
6424 ;;
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6425
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6426 create-testdir )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6427 if test -z "$destdir"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6428 func_fatal_error "please specify --dir option"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6429 fi
4126
e8caa337b4e1 (create-testdir): don't complain if destdir
Karl Berry <karl@freefriends.org>
parents: 4124
diff changeset
6430 mkdir "$destdir"
e8caa337b4e1 (create-testdir): don't complain if destdir
Karl Berry <karl@freefriends.org>
parents: 4124
diff changeset
6431 test -d "$destdir" \
e8caa337b4e1 (create-testdir): don't complain if destdir
Karl Berry <karl@freefriends.org>
parents: 4124
diff changeset
6432 || func_fatal_error "could not create destination directory"
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6433 test -n "$auxdir" || auxdir="build-aux"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6434 func_create_testdir "$destdir" "$*"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6435 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6436
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6437 create-megatestdir )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6438 if test -z "$destdir"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6439 func_fatal_error "please specify --dir option"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6440 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6441 mkdir "$destdir" || func_fatal_error "could not create destination directory"
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6442 test -n "$auxdir" || auxdir="build-aux"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6443 func_create_megatestdir "$destdir" "$*"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6444 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6445
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6446 test )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6447 test -n "$destdir" || destdir=testdir$$
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6448 mkdir "$destdir" || func_fatal_error "could not create destination directory"
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6449 test -n "$auxdir" || auxdir="build-aux"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6450 func_create_testdir "$destdir" "$*"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6451 cd "$destdir"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6452 mkdir build
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6453 cd build
7638
581c011e05d6 * gnulib-tool (func_create_testdir): Fix replacement of
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7605
diff changeset
6454 ../configure || func_exit 1
11404
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
6455 $MAKE || func_exit 1
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
6456 $MAKE check || func_exit 1
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
6457 $MAKE distclean || func_exit 1
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6458 remaining=`find . -type f -print`
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6459 if test -n "$remaining"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6460 echo "Remaining files:" $remaining 1>&2
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6461 echo "gnulib-tool: *** Stop." 1>&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
6462 func_exit 1
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6463 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6464 cd ..
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6465 cd ..
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6466 rm -rf "$destdir"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6467 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6468
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6469 megatest )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6470 test -n "$destdir" || destdir=testdir$$
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6471 mkdir "$destdir" || func_fatal_error "could not create destination directory"
6109
a52f596fdf00 Generalize support for --aux-dir.
Bruno Haible <bruno@clisp.org>
parents: 6108
diff changeset
6472 test -n "$auxdir" || auxdir="build-aux"
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6473 func_create_megatestdir "$destdir" "$*"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6474 cd "$destdir"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6475 mkdir build
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6476 cd build
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6477 ../configure
11404
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
6478 $MAKE
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
6479 $MAKE check
eb725d01cd4c gnulib-tool: execute $MAKE not make
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 11403
diff changeset
6480 $MAKE distclean
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6481 remaining=`find . -type f -print`
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6482 if test -n "$remaining"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6483 echo "Remaining files:" $remaining 1>&2
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6484 echo "gnulib-tool: *** Stop." 1>&2
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
6485 func_exit 1
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6486 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6487 cd ..
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6488 cd ..
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6489 rm -rf "$destdir"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6490 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6491
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6492 extract-description )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6493 for module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6494 do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6495 func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6496 if test -n "$module"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6497 func_get_description "$module"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6498 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6499 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6500 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6501
13070
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6502 extract-comment )
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6503 for module
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6504 do
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6505 func_verify_module
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6506 if test -n "$module"; then
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6507 func_get_comment "$module"
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6508 fi
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6509 done
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6510 ;;
71d59ec8c75f New module description field 'Comment'.
Bruno Haible <bruno@clisp.org>
parents: 13069
diff changeset
6511
10743
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6512 extract-status )
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6513 for module
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6514 do
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6515 func_verify_module
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6516 if test -n "$module"; then
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6517 func_get_status "$module"
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6518 fi
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6519 done
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6520 ;;
ec39330cb04e Modules now have a 'status' attribute.
Bruno Haible <bruno@clisp.org>
parents: 10732
diff changeset
6521
9189
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6522 extract-notice )
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6523 for module
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6524 do
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6525 func_verify_module
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6526 if test -n "$module"; then
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6527 func_get_notice "$module"
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6528 fi
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6529 done
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6530 ;;
1d7d9694f1e2 Allow for modules to show an arbitrary notice.
Bruno Haible <bruno@clisp.org>
parents: 9188
diff changeset
6531
12460
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6532 extract-applicability )
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6533 for module
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6534 do
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6535 func_verify_module
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6536 if test -n "$module"; then
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6537 func_get_applicability "$module"
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6538 fi
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6539 done
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6540 ;;
282eecca2301 New module attribute 'Applicability'.
Bruno Haible <bruno@clisp.org>
parents: 12417
diff changeset
6541
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6542 extract-filelist )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6543 for module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6544 do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6545 func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6546 if test -n "$module"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6547 func_get_filelist "$module"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6548 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6549 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6550 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6551
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6552 extract-dependencies )
15853
3034b1243e09 gnulib-tool: don't follow dependencies to avoided modules
Paul Eggert <eggert@cs.ucla.edu>
parents: 15852
diff changeset
6553 if test -n "$avoidlist"; then
3034b1243e09 gnulib-tool: don't follow dependencies to avoided modules
Paul Eggert <eggert@cs.ucla.edu>
parents: 15852
diff changeset
6554 func_fatal_error "cannot combine --avoid and --extract-dependencies"
3034b1243e09 gnulib-tool: don't follow dependencies to avoided modules
Paul Eggert <eggert@cs.ucla.edu>
parents: 15852
diff changeset
6555 fi
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6556 for module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6557 do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6558 func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6559 if test -n "$module"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6560 func_get_dependencies "$module"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6561 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6562 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6563 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6564
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6565 extract-autoconf-snippet )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6566 for module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6567 do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6568 func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6569 if test -n "$module"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6570 func_get_autoconf_snippet "$module"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6571 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6572 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6573 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6574
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6575 extract-automake-snippet )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6576 for module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6577 do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6578 func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6579 if test -n "$module"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6580 func_get_automake_snippet "$module"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6581 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6582 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6583 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6584
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6585 extract-include-directive )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6586 for module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6587 do
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6588 func_verify_module
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6589 if test -n "$module"; then
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6590 func_get_include_directive "$module"
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6591 fi
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6592 done
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6593 ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6594
8055
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6595 extract-link-directive )
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6596 for module
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6597 do
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6598 func_verify_module
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6599 if test -n "$module"; then
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6600 func_get_link_directive "$module"
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6601 fi
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6602 done
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6603 ;;
5c79d44f739d New module description field 'Link'.
Bruno Haible <bruno@clisp.org>
parents: 8040
diff changeset
6604
5251
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6605 extract-license )
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6606 for module
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6607 do
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6608 func_verify_module
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6609 if test -n "$module"; then
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6610 func_get_license "$module"
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6611 fi
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6612 done
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6613 ;;
42b53a22aee5 Add a license tag to every module.
Bruno Haible <bruno@clisp.org>
parents: 5250
diff changeset
6614
4197
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6615 extract-maintainer )
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6616 for module
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6617 do
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6618 func_verify_module
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6619 if test -n "$module"; then
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6620 func_get_maintainer "$module"
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6621 fi
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6622 done
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6623 ;;
3ccc6d0d52bb Add a Maintainer.
Bruno Haible <bruno@clisp.org>
parents: 4175
diff changeset
6624
6113
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6625 extract-tests-module )
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6626 for module
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6627 do
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6628 func_verify_module
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6629 if test -n "$module"; then
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6630 func_get_tests_module "$module"
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6631 fi
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6632 done
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6633 ;;
dac0e048bd40 Support for unit test modules.
Bruno Haible <bruno@clisp.org>
parents: 6111
diff changeset
6634
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6635 copy-file )
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6636 # Verify the number of arguments.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6637 if test $# -lt 1 || test $# -gt 2; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6638 func_fatal_error "invalid number of arguments for --$mode"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6639 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6640
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6641 # The first argument is the file to be copied.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6642 f="$1"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6643 # Verify the file exists.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6644 func_lookup_file "$f"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6645
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6646 # The second argument is the destination; either a directory ot a file.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6647 # It defaults to the current directory.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6648 dest="$2"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6649 test -n "$dest" || dest='.'
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6650 test -n "$sourcebase" || sourcebase="lib"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6651 test -n "$m4base" || m4base="m4"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6652 test -n "$docbase" || docbase="doc"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6653 test -n "$testsbase" || testsbase="tests"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6654 test -n "$auxdir" || auxdir="build-aux"
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6655 rewritten='%REWRITTEN%'
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6656 sed_rewrite_files="\
11560
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6657 s,^build-aux/,$rewritten$auxdir/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6658 s,^doc/,$rewritten$docbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6659 s,^lib/,$rewritten$sourcebase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6660 s,^m4/,$rewritten$m4base/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6661 s,^tests/,$rewritten$testsbase/,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6662 s,^top/,$rewritten,
987b2dec97b7 Fix the rewriting rules for file names.
Bruno Haible <bruno@clisp.org>
parents: 11533
diff changeset
6663 s,^$rewritten,,"
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6664 if test -d "$dest"; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6665 destdir="$dest"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6666 g=`echo "$f" | sed -e "$sed_rewrite_files"`
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6667 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6668 destdir=`dirname "$dest"`
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6669 g=`basename "$dest"`
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6670 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6671
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6672 # Create the directory for destfile.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6673 d=`dirname "$destdir/$g"`
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6674 if $doit; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6675 if test -n "$d" && test ! -d "$d"; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6676 mkdir -p "$d" || func_fatal_error "failed"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6677 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6678 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6679 # Copy the file.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6680 func_dest_tmpfilename "$g"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6681 cp "$lookedup_file" "$tmpfile" || func_fatal_error "failed"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6682 already_present=true
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6683 if test -f "$destdir/$g"; then
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6684 # The file already exists.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6685 func_update_file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6686 else
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6687 # Install the file.
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6688 # Don't protest if the file should be there but isn't: it happens
13636
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
6689 # frequently that developers don't put autogenerated files under version
06064a28d167 gnulib-tool: Don't talk about CVS any more.
Bruno Haible <bruno@clisp.org>
parents: 13634
diff changeset
6690 # control.
11461
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6691 func_add_file
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6692 fi
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6693 rm -f "$tmpfile"
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6694 ;;
263b7daa235d New gnulib-tool option --copy-file.
Bruno Haible <bruno@clisp.org>
parents: 11421
diff changeset
6695
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6696 * )
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6697 func_fatal_error "unknown operation mode --$mode" ;;
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6698 esac
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6699
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6700 rm -rf "$tmp"
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6701 # Undo the effect of the previous 'trap' command. Some shellology:
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
6702 # We cannot use "trap - 0 1 2 3 13 15", because Solaris sh would attempt to
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6703 # execute the command "-". "trap '' ..." is fine only for signal 0 (= normal
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6704 # exit); for the others we need to call 'exit' explicitly. The value of $? is
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6705 # 128 + signal number and is set before the trap-registered command is run.
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6706 trap '' 0
7332
dd6e80d0c89e * gnulib-tool (func_exit): New function, to allow to pass the
Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
parents: 7327
diff changeset
6707 trap 'func_exit $?' 1 2 3 13 15
7073
eb23418a908e Make it possible to use a locally augmented gnulib.
Bruno Haible <bruno@clisp.org>
parents: 7072
diff changeset
6708
4112
98e795b64056 Tool for managing gnulib modules.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6709 exit 0
7241
aed440dca701 * gnulib-tool: Don't let emacs change spaces to TAB.
Eric Blake <ebb9@byu.net>
parents: 7240
diff changeset
6710
aed440dca701 * gnulib-tool: Don't let emacs change spaces to TAB.
Eric Blake <ebb9@byu.net>
parents: 7240
diff changeset
6711 # Local Variables:
aed440dca701 * gnulib-tool: Don't let emacs change spaces to TAB.
Eric Blake <ebb9@byu.net>
parents: 7240
diff changeset
6712 # indent-tabs-mode: nil
aed440dca701 * gnulib-tool: Don't let emacs change spaces to TAB.
Eric Blake <ebb9@byu.net>
parents: 7240
diff changeset
6713 # whitespace-check-buffer-indent: nil
aed440dca701 * gnulib-tool: Don't let emacs change spaces to TAB.
Eric Blake <ebb9@byu.net>
parents: 7240
diff changeset
6714 # End: