Use File::Find rather than shell globbing to get the list of *.pm files
Nicholas Clark [Sun, 27 Apr 2008 10:13:49 +0000 (10:13 +0000)]
to pass to AutoSplit::autosplit_lib_modules(). This way we only need to
invoke miniperl once, and we don't miss anything that is 3 or more
levels deep.

p4raw-id: //depot/perl@33757

Makefile.SH

index 947f922..04bdabd 100644 (file)
@@ -875,10 +875,10 @@ $spitshell >>Makefile <<'!NO!SUBS!'
 preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
        @sh ./makedir lib/auto
        @echo " AutoSplitting perl library"
-       $(LDLIBPTH) $(RUN) ./miniperl -Ilib -e 'use AutoSplit; \
-               autosplit_lib_modules(@ARGV)' lib/*.pm
-       $(LDLIBPTH) $(RUN) ./miniperl -Ilib -e 'use AutoSplit; \
-               autosplit_lib_modules(@ARGV)' lib/*/*.pm
+       $(LDLIBPTH) $(RUN) ./miniperl -Ilib -MAutoSplit -MFile::Find -e ' \
+               find ({no_chdir=>1, wanted => \
+                      sub {autosplit_lib_modules($$_) if /\.pm$$/}}, \
+                     "lib")'
        $(MAKE) lib/re.pm
 
 lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary