[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] automake: add install dep on install-libLTLIBRARIES to all targe
From: |
Jan Engelhardt |
Subject: |
[PATCH] automake: add install dep on install-libLTLIBRARIES to all targets |
Date: |
Sun, 29 Aug 2021 13:06:11 +0200 |
A Makefile.am like
bin_PROGRAMS =
lib_LTLIBRARIES = library1.la
pkglib_LTLIBRARIES = library2.la
library2_LIBADD = library1.la
produces, in Makefile.in,
install-binPROGRAMS: install-libLTLIBRARIES
but no
install-pkglibLTLIBRARIES: install-libLTLIBRARIES
therefore potentially breaking `make install -j`. Rectify this by
depending on install-libLTLIBRARIES not just for bin_PROGRAMS, but
all PROGRAMS and LTLIBRARIES.
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
---
bin/automake.in | 23 +++++++++++++++++------
1 file changed, 17 insertions(+), 6 deletions(-)
diff --git bin/automake.in bin/automake.in
index f04f5d5f5..273415ca0 100644
--- bin/automake.in
+++ bin/automake.in
@@ -8042,13 +8042,24 @@ sub generate_makefile
handle_all ($makefile);
# FIXME: Gross!
- if (var ('lib_LTLIBRARIES') && var ('bin_PROGRAMS'))
+ for my $var (variables("PROGRAMS"), variables("LTLIBRARIES"))
{
- $output_rules .= "install-binPROGRAMS: install-libLTLIBRARIES\n\n";
- }
- if (var ('nobase_lib_LTLIBRARIES') && var ('bin_PROGRAMS'))
- {
- $output_rules .= "install-binPROGRAMS:
install-nobase_libLTLIBRARIES\n\n";
+ if ($var->name eq "lib_LTLIBRARIES"
+ || $var->name eq "nobase_lib_LTLIBRARIES"
+ || substr($var->name, 0, 7) eq "noinst_")
+ {
+ next;
+ }
+ my $shortname = $var->name;
+ $shortname =~ tr{_}{}d;
+ if ($have_lt1)
+ {
+ $output_rules .= "install-$shortname: install-libLTLIBRARIES\n\n";
+ }
+ if ($have_lt2)
+ {
+ $output_rules .= "install-$shortname:
install-nobase_libLTLIBRARIES\n\n";
+ }
}
handle_install;
--
2.32.0