Exploit `install' with multiple files at once for some file types.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 8 Mar 2008 12:58:18 +0000 (13:58 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 8 Mar 2008 13:01:57 +0000 (14:01 +0100)
commit2139f25bdab938fa648d8f54250eb99bc66a0a86
tree73e5e5e49d1387d45973d79acb44e5235a3853c1
parent8aad9804d86190b47c745c3f39df8f1810f55ef6
Exploit `install' with multiple files at once for some file types.

With nobase targets, at most 50 files are installed at once,
to avoid quadratic string concatenation and line length limits.
This isn't yet done with base targets.  One hope is that there,
the typical file name length is lower.  If this turns out to be
a problem, it should be revisited.

* lib/am/inst-vars.am (am__nobase_list): New helper macro for
installation of multiple nobase files at once: sorts and lists
files keyed by their target directory.
* lib/am/data.am (%DIR%%PRIMARY%_INSTALL): No need to set it to
$(install_sh_DATA) any more, not even for nobase targets.
(install-%DIR%%PRIMARY%): Split base and nobase cases.
Rewrite to pass lists of files which all go in the same
directory to `install'.  In the nobase case, make use of
$(am__nobase_list) and $(MKDIR_P) each directory before
populating it.  Take care of files in source and build trees,
and avoid creating directories where no files are to be
installed.
* lib/am/libs.am (%DIR%LIBRARIES_INSTALL): Likewise.
(install-%DIR%LIBRARIES): Likewise.
* lib/am/python.am (%DIR%PYTHON_INSTALL): Likewise.
(install-%DIR%PYTHON): Likewise.  Also take care to keep note of
a list for byte compilation after installation.
* lib/am/texinfos.am (install-dvi-am, install-html-am)
(install-info-am, install-pdf-am, install-ps-am): Use file lists
to install multiple files at once.
* NEWS: Update.
Suggested by Akim Demaille.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12 files changed:
ChangeLog
NEWS
doc/Makefile.in
lib/Automake/Makefile.in
lib/Makefile.in
lib/am/Makefile.in
lib/am/data.am
lib/am/inst-vars.am
lib/am/libs.am
lib/am/python.am
lib/am/texinfos.am
m4/Makefile.in