[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
automake 1.5 feedback
From: |
Christian Cornelssen |
Subject: |
automake 1.5 feedback |
Date: |
Sat, 8 Sep 2001 07:39:08 +0200 (CEST) |
Dear Automake maintainers,
I am trying to make the number-theoretical C++ library LiDIA (see
http://www.informatik.tu-darmstadt.de/TI/LiDIA/) use Automake 1.5 and
Libtool. Since the LiDIA distribution is quite voluminous and deeply
structured, that task is not a trivial one. I am really glad about
the new build procedure. However, I have encountered the following
unpleasant phenomena:
(1) "automake --force-missing --add-missing" replaces COPYING,
assuming it's the GPL. However, LiDIA has an own COPYING file which
agrees with the GPL terms, but definitely should NOT be replaced.
I suggest making --force-missing leave COPYING unaffected, or
providing a separate option to control this, because stating
copyrights should be left to the authors, not to the packaging
software. It is OK when --add-missing adds a default COPYING file,
but --force-missing shall not delete or replace an existing version.
Indeed, having a copyright specification replaced automatically may
reduce its juristic significance. Better treat COPYING more like a
README file (which is required, but not affected by --force-missing).
(2) When making "dist" in a package with SUBDIRS, the Makefile.in
default top_distdir="." is passed unchanged to subdir-makes. This is
a bug that can affect dist-hook commands. Obviously, a relative
$(top_distdir) specification should be prefixed with "../" for
subdir-makes.
(3) The Makefile.in variable `distdir' should be set up relative to
top_distdir. Thus, "make dist top_distdir=somedir" would work.
(4) When installing nobase_ stuff, the mentioned subdirectories
are not created when missing; therefore that nice feature does not
ease things much.
(5) Enhancing nobase_ with an optional digit argument (e.g. nobase2_)
corresponding to patch's -p option would be really fine. More
specifically, the argument should specify the count of "/"-terminated
prefixes to strip from the listed filenames (BEFORE substituting
variables) to get what needs to be appended to the installation
dirname.
(6) Modifiers like EXTRA_, dist_, nobase_, etc. should be recognized
in any combination and order (with invalid combinations diagnosed).
(7) Automake does not try to remove directories when uninstalling.
Particularly for $(pkgxxxdir) and any user-defined $(xxxdir), this
often means that an uninstall-local rule has to be supplemented.
I suggest inventing removal of empty subdirectories in the uninstall
rules, and controlling this feature by some prefixes ("new_" vs.
"std_") for the available primaries. Using one of these prefixes in
the definition of a directory variable should provide a default
qualification of derived variables without such prefix.
(8) Included Makefile.am fragments should be listed in DIST_COMMON.
(9) Throughout the produced Makefile.in, I recommend to NEVER quote
make-expanded variables and to ALWAYS quote derived shell variables
like $$srcdir. The goal is to ensure that make variables for
filenames and such get their contents expanded by the shell (or have
quotes removed) exactly once when substituted into a command.
(10) Furthermore, full respect for wildcards in all filename list
variables would be desirable. Currently, using wildcards in directory
components of EXTRA_DIST filenames does not work as expected and
creates some funny, but erroneous directory structure in $(distdir).
I apologize for not having worked out some corresponding patches
yet: Currently, my work focuses on LiDIA.
Sincerely,
Christian Cornelssen
- automake 1.5 feedback,
Christian Cornelssen <=