: 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
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=' '
# 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
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 \
# 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
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)
*)
$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!
;;
$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
@-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
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! *]
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
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
#
# 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
.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:
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
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:
_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:
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
# 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
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.