This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add ext/re/re.pm to the @INC set for miniperl by lib/buildcustomize.pl
authorNicholas Clark <nick@ccl4.org>
Mon, 14 Feb 2011 20:36:36 +0000 (20:36 +0000)
committerNicholas Clark <nick@ccl4.org>
Tue, 15 Feb 2011 14:10:05 +0000 (14:10 +0000)
This avoids a build-time race condition where lib/re.pm might be read midway
through the *second* copy of it (when ext/re/Makefile is being run). It also
simplifies many [Mm]akefile* rules, which previously had a special case to
copy it early.

Cross/Makefile-cross-SH
Makefile.SH
vms/descrip_mms.template
win32/Makefile
win32/makefile.mk
write_buildcustomize.pl

index d1d2cbf..65d496a 100644 (file)
@@ -717,7 +717,7 @@ fi
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
 .PHONY: preplibrary
-preplibrary: miniperl $(CONFIGPM) lib/lib.pm lib/re.pm $(PREPLIBRARY_LIBPERL)
+preplibrary: miniperl $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
 
 .PHONY: makeppport
 makeppport: miniperl$(EXE_EXT) $(CONFIGPM)
@@ -734,10 +734,6 @@ lib/re.pm: ext/re/re.pm
        @-rm -f $@
        cp ext/re/re.pm lib/re.pm
 
-lib/lib.pm:    miniperl $(CONFIGPM)
-       @-rm -f $@
-       $(LDLIBPTH) ./miniperl -Ilib -MCross lib/lib_pm.PL
-
 lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
        $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
 
@@ -1193,7 +1189,7 @@ minitest.prep:
 
 # Can't depend on lib/Config.pm because that might be where miniperl
 # is crashing.
-minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
+minitest: miniperl$(EXE_EXT) minitest.prep
        - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
                && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
 
index 6577cc3..2aca5cd 100755 (executable)
@@ -985,7 +985,7 @@ esac
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
 .PHONY: preplibrary
-preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL)
+preplibrary: $(MINIPERL_EXE) $(CONFIGPM) $(PREPLIBRARY_LIBPERL)
 
 $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
 
@@ -995,10 +995,6 @@ $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git
 lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
        $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm
 
-lib/re.pm: ext/re/re.pm
-       @-rm -f $@
-       cp ext/re/re.pm lib/re.pm
-
 lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
        $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
 
@@ -1273,7 +1269,7 @@ _cleaner2:
        rm -f lib/.exists lib/*/.exists lib/*/*/.exists
        rm -f h2ph.man pstruct
        rm -rf .config
-       rm -f preload lib/re.pm
+       rm -f preload
        rm -rf lib/Encode lib/Compress lib/Hash lib/re
        rm -rf lib/TAP lib/Module/Pluggable lib/App
        rm -rf lib/mro
@@ -1468,7 +1464,7 @@ minitest.prep:
 
 # Can't depend on lib/Config.pm because that might be where miniperl
 # is crashing.
-minitest: $(MINIPERL_EXE) lib/re.pm minitest.prep
+minitest: $(MINIPERL_EXE) minitest.prep
        - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
                && $(RUN_PERL) TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
 
index 846afa4..3763783 100644 (file)
@@ -361,7 +361,7 @@ CRTLOPTS =,$(CRTL)/Options
 unidatadirs = lib/unicore/To lib/unicore/lib
 
 # Modules which must be installed before we can build extensions
-LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]re.pm [.lib]buildcustomize.pl
+LIBPREREQ = $(ARCHDIR)Config.pm $(ARCHDIR)Config_heavy.pl [.lib.VMS]Filespec.pm $(ARCHDIR)vmspipe.com [.lib]buildcustomize.pl
 
 utils1 = [.lib.pods]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com 
 utils2 = [.utils]h2xs.com [.utils]libnetcfg.com [.lib]perlbug.com [.utils]dprofpp.com  [.utils]json_pp.com
@@ -457,9 +457,6 @@ $(PERLDELTA_CURRENT) : [.pod]perldelta.pod
 archcorefiles : $(ac) $(ARCHAUTO)time.stamp
        @ $(NOOP)
 
-[.lib]re.pm  : [.ext.re]re.pm
-       Copy/NoConfirm/Log $(MMS$SOURCE) [.lib]
-
 [.lib]buildcustomize.pl : write_buildcustomize.pl $(MINIPERL_EXE)
        $(MINIPERL) write_buildcustomize.pl > [.lib]buildcustomize.pl
 
@@ -1522,7 +1519,7 @@ test_harness : all [.t.lib]vmsfspec.t
        - @[.vms]test.com "$(E)" "$(__DEBUG__)"
        @ $(MINIPERL) -e "print ""Ran tests"";" > [.t]rantests.
 
-minitest : $(MINITEST_EXE) [.lib]re.pm [.lib.VMS]Filespec.pm unidatafiles.ts
+minitest : $(MINITEST_EXE) [.lib.VMS]Filespec.pm unidatafiles.ts
        @ PERL_TEST_DRIVER == "minitest"
        - @[.vms]test.com "$(E)" "$(__DEBUG__)"
 
index 4897a4a..e66924f 100644 (file)
@@ -853,7 +853,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
        if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
        $(XCOPY) ..\*.h $(COREDIR)\*.*
        $(XCOPY) *.h $(COREDIR)\*.*
-       $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
        $(RCOPY) include $(COREDIR)\*.*
        -$(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)"
        if errorlevel 1 $(MAKE) /$(MAKEFLAGS) $(CONFIGPM)
index fcc30ac..789ecc4 100644 (file)
@@ -1155,7 +1155,6 @@ $(CONFIGPM) : $(MINIPERL) ..\config.sh config_h.PL ..\minimod.pl
        if exist lib\* $(RCOPY) lib\*.* ..\lib\$(NULL)
        $(XCOPY) ..\*.h $(COREDIR)\*.*
        $(XCOPY) *.h $(COREDIR)\*.*
-       $(XCOPY) ..\ext\re\re.pm $(LIBDIR)\*.*
        $(RCOPY) include $(COREDIR)\*.*
        $(MINIPERL) -I..\lib $(ICWD) config_h.PL "INST_VER=$(INST_VER)" \
            || $(MAKE) $(MAKEMACROS) $(CONFIGPM) $(MAKEFILE)
index 7d75896..0508e27 100644 (file)
@@ -24,6 +24,7 @@ my @toolchain = qw(cpan/AutoLoader/lib
                   cpan/ExtUtils-MakeMaker/lib
                   dist/ExtUtils-Manifest/lib
                   cpan/File-Path/lib
+                  ext/re
                   );
 
 # Used only in ExtUtils::Liblist::Kid::_win32_ext()