bug-gnulib
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]