Ensure that the perl build doesn't read any installed sitecustomize script.
[p5sagit/p5-mst-13.2.git] / Makefile.SH
index 7cb0004..58c4449 100644 (file)
@@ -190,10 +190,14 @@ for f in $dynamic_ext; do
 
     : Parallel makes reveal that we have some interdependencies
     case $f in
+       Encode) extra_dep="$extra_dep
+$this_target: lib/auto/Cwd/Cwd.$dlext" ;;
        Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep
 $this_target: lib/auto/List/Util/Util.$dlext" ;;
        Unicode/Normalize) extra_dep="$extra_dep
 $this_target: uni.data" ;;
+       Text/ParseWords) extra_dep="$extra_dep
+$this_target: lib/auto/Scalar/Util.$dlext" ;;
     esac
 done
 
@@ -201,6 +205,14 @@ static_list=' '
 for f in $static_ext; do
        base=`echo "$f" | sed 's/.*\///'`
        static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)"
+    : Parallel makes reveal that we have some interdependencies
+    this_target="lib/auto/$f/$base\$(LIB_EXT)"
+    case $f in
+       Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep
+$this_target: lib/auto/List/Util/Util\$(LIB_EXT)" ;;
+       Unicode/Normalize) extra_dep="$extra_dep
+$this_target: uni.data" ;;
+    esac
 done
 
 nonxs_list=' '
@@ -405,7 +417,7 @@ private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_vers
 # Files to be built with variable substitution before miniperl
 # is available.
 sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \
-       makedir.SH myconfig.SH writemain.SH pod/Makefile.SH
+       myconfig.SH writemain.SH pod/Makefile.SH
 
 shextract = Makefile cflags config.h makeaperl makedepend \
        makedir myconfig writemain pod/Makefile
@@ -454,7 +466,10 @@ mini_obj =  $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
 obj = $(ndt_obj) $(DTRACE_O)
 
-generated_pods = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod
+perltoc_pod_prereqs = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod pod/perlmodlib.pod
+generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
+
+Icwd = -Iext/Cwd
 
 lintflags = \
     -b \
@@ -535,7 +550,7 @@ lib/Config_git.pl git_version.h: miniperl$(EXE_EXT) make_patchnum.pl
 # make sure that we recompile perl.c if the git version changes
 perl$(OBJ_EXT): git_version.h
 
-translators:   miniperl$(EXE_EXT) $(CONFIGPM) FORCE
+translators:   miniperl$(EXE_EXT) $(CONFIGPM) $(dynamic_ext) FORCE
        @echo " "; echo "       Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
 
 utilities:     miniperl$(EXE_EXT) $(CONFIGPM) $(plextract) lib/lib.pm FORCE
@@ -571,10 +586,10 @@ perlmini.c: perl.c
 perlmini\$(OBJ_EXT): perlmini.c
        \$(CCCMD) \$(PLDLFLAGS) $DPERL_IS_MINIPERL perlmini.c
 
-globals\$(OBJ_EXT): uudmap.h
+globals\$(OBJ_EXT): uudmap.h bitcount.h
 
-uudmap.h: generate_uudmap\$(HOST_EXE_EXT)
-       \$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) >uudmap.h
+uudmap.h bitcount.h: generate_uudmap\$(HOST_EXE_EXT)
+       \$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) uudmap.h bitcount.h
 
 generate_uudmap\$(HOST_EXE_EXT): generate_uudmap\$(OBJ_EXT)
        \$(CC) -o generate_uudmap\$(EXE_EXT) \$(LDFLAGS) generate_uudmap\$(OBJ_EXT) \$(libs)
@@ -924,8 +939,8 @@ makeppport: miniperl\$(EXE_EXT) \$(CONFIGPM)
 *)
 $spitshell >>$Makefile <<'!NO!SUBS!'
 .PHONY: makeppport
-makeppport: miniperl$(EXE_EXT) $(CONFIGPM)
-       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib mkppport
+makeppport: miniperl$(EXE_EXT) $(CONFIGPM) $(nonxs_ext)
+       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib $(Icwd) mkppport
 
 !NO!SUBS!
 ;;
@@ -933,16 +948,8 @@ esac
 
 $spitshell >>$Makefile <<'!NO!SUBS!'
 
-# We have to call our ./makedir because Ultrix 4.3 make can't handle the line
-#      test -d lib/auto || mkdir lib/auto
-# We need to autosplit in two steps because VOS can't handle so many args
-#
 .PHONY: preplibrary
-preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
-       @sh ./makedir lib/auto
-       @echo " AutoSplitting perl library"
-       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib -MAutoSplit -MFile::Find -e 'find ({no_chdir=>1, wanted => sub {autosplit_lib_modules($$_) if /\.pm$$/}}, "lib")'
-       $(MAKE) lib/re.pm
+preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm lib/re.pm $(PREPLIBRARY_LIBPERL)
 
 $(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary lib/Config_git.pl
        $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib configpm
@@ -954,25 +961,34 @@ lib/re.pm: ext/re/re.pm
        @-rm -f $@
        cp ext/re/re.pm lib/re.pm
 
-$(plextract):  miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p
+$(plextract):  miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p $(dynamic_ext)
        @-rm -f $@
-       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -I`pwd`/lib $@.PL
+       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -I"`pwd`/lib" $@.PL
 
-x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL
+x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL
        cd x2p; $(LDLIBPTH) $(MAKE) s2p
 
 lib/lib.pm:    miniperl$(EXE_EXT) $(CONFIGPM)
        @-rm -f $@
-       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib lib/lib_pm.PL
+       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib $(Icwd) lib/lib_pm.PL
 
 unidatafiles $(unidatafiles): uni.data
 
-uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables
+uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
        cd lib/unicore && $(LDLIBPTH) $(RUN) ../../miniperl$(EXE_EXT) -I../../lib mktables -w
        touch uni.data
 
+# perl$(EXE_EXT) and ext because buildtoc uses Text::Wrap uses re
+# But also this ensures that all extensions are built before we try to scan
+# them, which picks up Devel::PPPort's documentation.
+pod/perltoc.pod: $(perltoc_pod_prereqs) perl$(EXE_EXT) $(ext) pod/buildtoc
+       $(LDLIBPTH) $(RUN) ./perl$(EXE_EXT) -f -Ilib pod/buildtoc --build-toc -q
+
 pod/perlapi.pod pod/perlintern.pod: miniperl$(EXE_EXT) autodoc.pl embed.fnc
-       $(RUN) ./miniperl$(EXE_EXT) -Ilib autodoc.pl
+       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib autodoc.pl
+
+pod/perlmodlib.pod: miniperl$(EXE_EXT) pod/perlmodlib.PL MANIFEST
+       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib $(Icwd) pod/perlmodlib.PL -q
 
 pod/perldelta.pod: pod/perl5110delta.pod
        $(LNS) perl5110delta.pod pod/perldelta.pod
@@ -1073,7 +1089,6 @@ SYMH = perlvars.h intrpvar.h
 CHMOD_W = chmod +w
 
 # The following files are generated automatically
-#      autodoc.pl:     pod/perlapi.pod pod/perlintern.pod
 #      embed.pl:       proto.h embed.h embedvar.h global.sym
 #                      perlapi.h perlapi.c 
 # [* embed.pl needs pp.sym generated by opcode.pl! *]
@@ -1090,11 +1105,10 @@ CHMOD_W = chmod +w
 
 AUTOGEN_FILES = keywords.h opcode.h opnames.h pp_proto.h pp.sym proto.h \
                embed.h embedvar.h global.sym \
-               pod/perlintern.pod pod/perlapi.pod \
                perlapi.h perlapi.c regnodes.h \
                warnings.h lib/warnings.pm
 
-.PHONY: regen_headers regen_pods regen_all
+.PHONY: regen_headers regen_all
 
 regen: FORCE
        -perl regen.pl
@@ -1102,16 +1116,13 @@ regen:  FORCE
 regen_headers: FORCE
        -perl regen.pl -v
 
-regen_pods:    FORCE
-       -cd pod; $(LDLIBPTH) $(MAKE) regen_pods
-
-regen_all: regen regen_pods
+regen_all: regen
 
 .PHONY:        manisort manicheck
 
 manisort:      FORCE
-       LC_ALL=C sort -fdc MANIFEST || (echo "WARNING: re-sorting MANIFEST"; \
-               LC_ALL=C sort -fdo MANIFEST MANIFEST)
+       @perl Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \
+               perl Porting/manisort -q -o MANIFEST; sh -c true)
 
 manicheck:     FORCE
        perl Porting/manicheck
@@ -1126,7 +1137,7 @@ manicheck:        FORCE
 #
 # DynaLoader may be needed for extensions that use Makefile.PL.
 
-$(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE
+$(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE $(nonxs_ext)
        $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
 
 d_dummy $(dynamic_ext):        miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE
@@ -1151,12 +1162,11 @@ printconfig:
 
 .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
        realclean _realcleaner clobber _clobber \
-       distclean veryclean _verycleaner \
-       cleanup_unpacked_files unpack_files
+       distclean veryclean _verycleaner
 
-clean:         cleanup_unpacked_files _tidy _mopup 
+clean:         _tidy _mopup 
 
-realclean:     cleanup_unpacked_files _realcleaner _mopup
+realclean:     _realcleaner _mopup
        @echo "Note that '$(MAKE) realclean' does not delete config.sh or Policy.sh"
 
 _clobber:
@@ -1164,17 +1174,17 @@ _clobber:
        rm -f t/test_state
        rm -f config.sh cppstdin Policy.sh extras.lst
 
-clobber:       cleanup_unpacked_files _realcleaner _mopup _clobber
+clobber:       _realcleaner _mopup _clobber
 
 distclean:     clobber
 
 # Like distclean but also removes emacs backups and *.orig.
-veryclean:     cleanup_unpacked_files _verycleaner _mopup _clobber
+veryclean:     _verycleaner _mopup _clobber
        -@rm -f Obsolete Wanted
 
 # Do not 'make _mopup' directly.
 _mopup:
-       rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c uudmap.h generate_uudmap$(EXE_EXT)
+       rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c uudmap.h generate_uudmap$(EXE_EXT) bitcount.h
        -rmdir .depending
        -@test -f extra.pods && rm -f `cat extra.pods`
        -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
@@ -1300,7 +1310,7 @@ makedepend: makedepend.SH config.sh
 
 TESTFILE=TEST
 
-_test_prep: unpack_files
+_test_prep:
        cd t && (rm -f $(PERL)$(EXE_EXT); $(LNS) ../$(PERL)$(EXE_EXT) $(PERL)$(EXE_EXT))
 
 # Architecture-neutral stuff:
@@ -1316,12 +1326,6 @@ _test_tty:
 _test_notty:
        cd t && $(PERL_DEBUG) PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) $(PERL) $(TESTFILE) $(TEST_ARGS) $(TEST_FILES)
 
-unpack_files:
-       $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib uupacktool.pl -u -m
-
-cleanup_unpacked_files:
-       -@test ! -f ./miniperl$(EXE_EXT) || $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib uupacktool.pl -c
-
 # The second branch is for testing without a tty or controlling terminal,
 # see t/op/stat.t
 _test:
@@ -1362,7 +1366,7 @@ test.torture torturetest: test_prep
 
 minitest.utf16: minitest.prep
        - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
-               && $(LDLIBPTH) $(RUN) ./perl TEST -minitest -utf16 base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t mro/*.t </dev/tty
+               && $(LDLIBPTH) $(RUN) ./perl TEST -minitest -utf16 base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
 
 test.utf16 check.utf16: test_prep
        PERL=./perl $(MAKE) TEST_ARGS=-utf16 _test
@@ -1423,7 +1427,7 @@ minitest.prep:
 # is crashing.
 minitest: miniperl$(EXE_EXT) lib/re.pm minitest.prep
        - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
-               && $(LDLIBPTH) $(RUN) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t mro/*.t </dev/tty
+               && $(LDLIBPTH) $(RUN) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t op/*.t uni/*.t </dev/tty
 
 # Test via harness
 
@@ -1434,7 +1438,7 @@ test_harness_notty: test_prep
        PERL=./perl HARNESS_NOTTY=1 $(MAKE) TESTFILE=harness _test
 
 test-reonly: test_prep
-       PERL=./perl TEST_ARGS='-re \\bpat\\b \\breg \\bre\b \\bsubst \\brxcode' $(MAKE) TESTFILE=harness _test
+       PERL=./perl TEST_ARGS='-re \\bre\\/' $(MAKE) TESTFILE=harness _test
 
 # Handy way to run perlbug -ok without having to install and run the
 # installed perlbug. We don't re-run the tests here - we trust the user.