python: byte-compile nobase_*_PYTHON files only once
authorBenoit Sigoure <tsunanet@gmail.com>
Tue, 17 Sep 2013 16:57:53 +0000 (09:57 -0700)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 28 Oct 2013 22:10:16 +0000 (22:10 +0000)
* lib/am/python.am: Here. Byte-compiling was occurring inside of
a loop, causing an O(n^2) number of byte-compilations instead of
O(n).

Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
lib/am/python.am

index 36f0b2d..06545b1 100644 (file)
@@ -66,7 +66,7 @@ else !%?BASE%
          echo " $(MKDIR_P) '$(DESTDIR)$(%NDIR%dir)'"; \
          $(MKDIR_P) "$(DESTDIR)$(%NDIR%dir)" || exit 1; \
        fi; \
-       $(am__nobase_list) | while read dir files; do \
+       $(am__nobase_list) | while read dir files; do \
          xfiles=; for p in $$files; do \
 ## A file can be in the source directory or the build directory.
            if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
@@ -79,13 +79,13 @@ else !%?BASE%
 ## Don't perform translation, since script name is important.
            echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(%NDIR%dir)/$$dir'"; \
            $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(%NDIR%dir)/$$dir" || exit $$?; }; \
+       done; \
 ## Byte-compile must be done at install time, since file times are
 ## encoded in the actual files.
-         if test -n "$$dlist"; then \
-           $(am__py_compile) --destdir "$(DESTDIR)" \
-                             --basedir "$(%NDIR%dir)" $$dlist; \
-         else :; fi \
-       done
+       if test -n "$$dlist"; then \
+         $(am__py_compile) --destdir "$(DESTDIR)" \
+                           --basedir "$(%NDIR%dir)" $$dlist; \
+       else :; fi; }
 endif !%?BASE%
 endif %?INSTALL%