[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnulib-tool changes
From: |
Bruno Haible |
Subject: |
gnulib-tool changes |
Date: |
Wed, 31 Aug 2005 13:09:09 +0200 |
User-agent: |
KMail/1.5 |
Hi all,
In the next days, I'll commit a few significant changes to gnulib-tool's
--import functionality.
1) Ease of use
"gnulib-tool --import" shall be usable for four purposes:
- For making the first use of gnulib in a package, updating configure.ac,
Makefile.am etc.
- For changing the gnulib part of a package so that it uses additional
modules.
- For updating the gnulib part of a package so that it uses a newer copy
of gnulib.
- For restoring lost files.
In gettext, I have organized the first+second+third and the fourth use
in different programs ('gettextize' vs. 'autopoint'), but it appears that
people have a hard time understanding this.
2) Support for multiple gnulib directories with a single configure.ac.
It happens that a project wants to use gnulib in different parts, sometimes
even with different licenses, but these parts share the same config.h and
therefore the same configure.ac. (It is quite hard to work with different
config.h's in different subdirectories.)
3) CVS issues
Some projects like to omit all autogenerated and imported files from the CVS,
relying on an 'autogen.sh' script to restore them. So there needs to be a
distinction among gnulib-tool provided files: some few are considered "precious"
and committed into the CVS, the others are can be omitted from CVS.
4) ChangeLogs
gnulib-tool creates backup files and updates the ChangeLogs, like
gettextize does.
Concretely this means
1) Changed command-line invocation conventions:
"gnulib-tool --import abc"
followed by
"gnulib-tool --import def"
is equivalent to
"gnulib-tool --import abc def".
I.e. gnulib-tool memoizes the last parameters and reuses them.
"gnulib-tool --import" performs an update without changing the parameters.
2) An option --macro-prefix is introduced, so that the macros exported
by one gnulib.m4 may be called foo_EARLY, foo_INIT, and the ones in
another directory bar_EARLY, bar_INIT.
Also the parameters like module list, avoid list, etc. are stored outside
configure.ac.
3) gnulib.m4 is split into gnulib-cache.m4 (containing the cached parameters)
and gnulib-comp.m4 (containing the output that depends on the contents of
gnulib's modules/* files). gnulib-cache.m4 is "precious", whereas
gnulib-comp.m4 can be omitted from a CVS.
The autogen.sh script will then typically contain a single command:
(type -f gnulib-tool) > /dev/null 2>&1 && gnulib-tool --import
This should simplify 'bison/bootstrap' and 'tar/bootstrap' considerably.
Comments? Objections?
Bruno
- gnulib-tool changes,
Bruno Haible <=