[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-
From: |
Ralf Wildenhues |
Subject: |
[Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-10-179-g7726a26 |
Date: |
Sat, 13 Sep 2008 07:46:37 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Automake".
http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=7726a26a5337ae0215f77295503ecd7b21369f2a
The branch, master has been updated
via 7726a26a5337ae0215f77295503ecd7b21369f2a (commit)
from ca414ef92868765514a2261c357a51dedd965f81 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7726a26a5337ae0215f77295503ecd7b21369f2a
Author: Ralf Wildenhues <address@hidden>
Date: Sat Sep 13 09:32:13 2008 +0200
Faster install for libtool outputs.
* lib/am/ltlib.am (install-%DIR%LTLIBRARIES): Invoke `libtool
--mode=install' with multiple libraries at once.
(%DIR%LTLIBRARIES_INSTALL): No need to use install_sh any more.
* lib/am/progs.am (install-%DIR%PROGRAMS): Likewise, remove much
of the libtool special-casing by invoking it for multiple
programs at once.
Signed-off-by: Ralf Wildenhues <address@hidden>
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 10 ++++++++++
lib/am/ltlib.am | 43 ++++++++++++++++++++++++++++++++-----------
lib/am/progs.am | 46 ++++++++++++++++++++--------------------------
3 files changed, 62 insertions(+), 37 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6cdaa97..8dfc893 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-09-13 Ralf Wildenhues <address@hidden>
+
+ Faster install for libtool outputs.
+ * lib/am/ltlib.am (install-%DIR%LTLIBRARIES): Invoke `libtool
+ --mode=install' with multiple libraries at once.
+ (%DIR%LTLIBRARIES_INSTALL): No need to use install_sh any more.
+ * lib/am/progs.am (install-%DIR%PROGRAMS): Likewise, remove much
+ of the libtool special-casing by invoking it for multiple
+ programs at once.
+
2008-09-07 Ralf Wildenhues <address@hidden>
Fast install and uninstall for SCRIPTS.
diff --git a/lib/am/ltlib.am b/lib/am/ltlib.am
index 3637ea0..7afc657 100644
--- a/lib/am/ltlib.am
+++ b/lib/am/ltlib.am
@@ -25,29 +25,50 @@ endif %?INSTALL%
if %?INSTALL%
am__installdirs += "$(DESTDIR)$(%NDIR%dir)"
-%DIR%LTLIBRARIES_INSTALL = %BASE?$(INSTALL):$(install_sh) -c%
+%DIR%LTLIBRARIES_INSTALL = $(INSTALL)
.PHONY install-%EXEC?exec:data%-am: install-%DIR%LTLIBRARIES
install-%DIR%LTLIBRARIES: $(%DIR%_LTLIBRARIES)
@$(NORMAL_INSTALL)
test -z "$(%NDIR%dir)" || $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)"
+if %?BASE%
## Funny invocation because Makefile variable can be empty, leading to
## a syntax error in sh.
- @list='$(%DIR%_LTLIBRARIES)'; for p in $$list; do \
+ @list='$(%DIR%_LTLIBRARIES)'; list2=; for p in $$list; do \
if test -f $$p; then \
-## Compute basename of source file. Unless this is a nobase_ target, we
-## want to install 'python/foo.py' as '$(DESTDIR)$(%NDIR%dir)/foo.yo',
-## not '$(DESTDIR)$(%NDIR%dir)/python/foo.yo'.
- %BASE?$(am__strip_dir):f=$$p;% \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
## Note that we explicitly set the libtool mode. This avoids any lossage
## if the program doesn't have a name that libtool expects.
## Use INSTALL and not INSTALL_DATA because libtool knows the right
## permissions to use.
-?LIBTOOL? echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p'
'$(DESTDIR)$(%NDIR%dir)/$$f'"; \
-?LIBTOOL? $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p"
"$(DESTDIR)$(%NDIR%dir)/$$f" || exit $$?; \
-?!LIBTOOL? echo " $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG)
'$$p' '$(DESTDIR)$(%NDIR%dir)/$$f'"; \
-?!LIBTOOL? $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p"
"$(DESTDIR)$(%NDIR%dir)/$$f" || exit $$?; \
- else :; fi; \
+?LIBTOOL? echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$list2
'$(DESTDIR)$(%NDIR%dir)'"; \
+?LIBTOOL? $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$list2
"$(DESTDIR)$(%NDIR%dir)"; \
+?!LIBTOOL? echo " $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG)
$$list '$(DESTDIR)$(%NDIR%dir)'"; \
+?!LIBTOOL? $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$list
"$(DESTDIR)$(%NDIR%dir)"; \
+ }
+else !%?BASE%
+ @list='$(%DIR%_LTLIBRARIES)'; $(am__nobase_list) | \
+ while read dir files; do \
+ xfiles=; for p in $$files; do \
+ if test -f "$$p"; then xfiles="$$xfiles $$p"; else :; fi; done; \
+ test -z "$$xfiles" || { \
+ test "x$$dir" = x. || { \
+ echo "$(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+ $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir"; }; \
+
+## Note that we explicitly set the libtool mode. This avoids any lossage
+## if the program doesn't have a name that libtool expects.
+## Use INSTALL and not INSTALL_DATA because libtool knows the right
+## permissions to use.
+?LIBTOOL? echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$xfiles
'$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+?LIBTOOL? $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS)
--mode=install $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$xfiles
"$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
+?!LIBTOOL? echo " $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG)
$$xfiles '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+?!LIBTOOL? $(%DIR%LTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$xfiles
"$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
+ }; \
done
+endif !%?BASE%
endif %?INSTALL%
diff --git a/lib/am/progs.am b/lib/am/progs.am
index 2a7778c..28505cf 100644
--- a/lib/am/progs.am
+++ b/lib/am/progs.am
@@ -46,36 +46,30 @@ install-%DIR%PROGRAMS: $(%DIR%_PROGRAMS)
?!BASE? -e 's|[^/]*$$||; s|^$$|.|' \
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
sed 'N;N;N;s,\n, ,g' | \
-## Note that we explicitly set the libtool mode. This avoids any
-## lossage if the install program doesn't have a name that libtool
-## expects.
-?LIBTOOL? while read p pbase dir f; do \
-?LIBTOOL??!BASE? if test "$$dir" != .; then f=$$dir/$$f; \
-?LIBTOOL??!BASE? echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
-?LIBTOOL??!BASE? $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir" || exit
$$?; \
-?LIBTOOL??!BASE? else :; fi; \
-?LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS)
$(LIBTOOLFLAGS) --mode=install $(%DIR%PROGRAMS_INSTALL) '$$p'
'$(DESTDIR)$(%NDIR%dir)/$$f'"; \
-?LIBTOOL? $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS)
$(LIBTOOLFLAGS) --mode=install $(%DIR%PROGRAMS_INSTALL) "$$p"
"$(DESTDIR)$(%NDIR%dir)/$$f" || exit $$?; \
-?LIBTOOL? done
## The following awk script turns that into one line containing directories
## and then lines of `target_name_or_directory sources...'.
-?!LIBTOOL? $(AWK) 'BEGIN { files["."] = ""; dirs["."] = "" } { \
-?!LIBTOOL? if ($$2 == $$4) tgt = $$3; else tgt = $$3 "/" $$4; \
-?!LIBTOOL? files[tgt] = files[tgt] " " $$1; dirs[$$3] = 1 } \
-?!LIBTOOL? END { d=""; for (dir in dirs) d = d " " dir; print d; \
-?!LIBTOOL? for (dir in files) print dir, files[dir] }' | { \
-?!LIBTOOL? read dirs; \
-?!LIBTOOL??!BASE? for dir in $$dirs; do test . = $$dir || { \
-?!LIBTOOL??!BASE? echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
-?!LIBTOOL??!BASE? $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir" || exit
$$?; \
-?!LIBTOOL??!BASE? }; done; \
-?!LIBTOOL? while read dir files; do \
-?!LIBTOOL? if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-?!LIBTOOL? test -z "$$files" || { \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = "" } { \
+ if ($$2 == $$4) tgt = $$3; else tgt = $$3 "/" $$4; \
+ files[tgt] = files[tgt] " " $$1; dirs[$$3] = 1 } \
+ END { d=""; for (dir in dirs) d = d " " dir; print d; \
+ for (dir in files) print dir, files[dir] }' | { \
+ read dirs; \
+?!BASE? for dir in $$dirs; do test . = $$dir || { \
+?!BASE? echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
+?!BASE? $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; \
+?!BASE? }; done; \
+ while read dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
?!LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(%DIR%PROGRAMS_INSTALL)
$$files '$(DESTDIR)$(%NDIR%dir)$$dir'"; \
?!LIBTOOL? $(INSTALL_PROGRAM_ENV) $(%DIR%PROGRAMS_INSTALL) $$files
"$(DESTDIR)$(%NDIR%dir)$$dir" || exit $$?; \
-?!LIBTOOL? }; \
-?!LIBTOOL? done; }
+## Note that we explicitly set the libtool mode. This avoids any
+## lossage if the install program doesn't have a name that libtool
+## expects.
+?LIBTOOL? echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS)
$(LIBTOOLFLAGS) --mode=install $(%DIR%PROGRAMS_INSTALL) $$files
'$(DESTDIR)$(%NDIR%dir)$$dir'"; \
+?LIBTOOL? $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS)
$(LIBTOOLFLAGS) --mode=install $(%DIR%PROGRAMS_INSTALL) $$files
"$(DESTDIR)$(%NDIR%dir)$$dir" || exit $$?; \
+ }; \
+ done; }
endif %?INSTALL%
hooks/post-receive
--
GNU Automake
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Automake-commit] [SCM] GNU Automake branch, master, updated. Release-1-10-179-g7726a26,
Ralf Wildenhues <=