PERL_EXE = perl\$(EXE_EXT)
RUN_PERL = \$(LDLIBPTH) \$(RUN) ./perl\$(EXE_EXT)
+# Macros to run our tests
+RUN_TESTS = \$(LDLIBPTH) ./runtests
dynamic_ext = $dynamic_list
dynamic_ext_re = $dynamic_ext_re
addedbyconf = UU $(shextract) $(plextract) pstruct
# Unicode data files generated by mktables
-unidatafiles = lib/unicore/Canonical.pl lib/unicore/Exact.pl \
- lib/unicore/Properties lib/unicore/Decomposition.pl \
- lib/unicore/CombiningClass.pl lib/unicore/Name.pl lib/unicore/PVA.pl
+unidatafiles = lib/unicore/Decomposition.pl lib/unicore/TestProp.pl \
+ lib/unicore/CombiningClass.pl lib/unicore/Name.pl \
+ lib/unicore/Heavy.pl lib/unicore/mktables.lst
# Directories of Unicode data files generated by mktables
unidatadirs = lib/unicore/To lib/unicore/lib
ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
obj = $(ndt_obj) $(DTRACE_O)
-perltoc_pod_prereqs = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod pod/perlmodlib.pod
+perltoc_pod_prereqs = extra.pods pod/perlapi.pod pod/perldelta.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
Icwd = -Icpan/Cwd -Icpan/Cwd/lib
.PHONY: all translators utilities
-lib/Config_git.pl git_version.h: $(MINIPERL_EXE) make_patchnum.pl
+# Both git_version.h and lib/Config_git.pl are built
+# by make_patchnum.pl.
+git_version.h: lib/Config_git.pl
+
+lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
$(MINIPERL) make_patchnum.pl
# make sure that we recompile perl.c if the git version changes
globals\$(OBJ_EXT): uudmap.h bitcount.h
-uudmap.h bitcount.h: generate_uudmap\$(HOST_EXE_EXT)
+uudmap.h: bitcount.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)
.PHONY: preplibrary
preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL)
-$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
+$(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
+
+$(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
$(MINIPERL) configpm
lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
x2p/s2p: $(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) x2p/s2p.PL
cd x2p; $(LDLIBPTH) $(MAKE) s2p
-unidatafiles $(unidatafiles): uni.data
+unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
- $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -w
- touch uni.data
+ $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p
+# Commented out so always runs, mktables looks at far more files than we
+# can in this makefile to decide if needs to run or not
+# touch uni.data
# $(PERL_EXE) and ext because buildtoc uses Text::Wrap uses re
# But also this ensures that all extensions are built before we try to scan
pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc
$(RUN_PERL) -f -Ilib pod/buildtoc --build-toc -q
-pod/perlapi.pod pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
+pod/perlapi.pod: pod/perlintern.pod
+
+pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
$(MINIPERL) autodoc.pl
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
$(MINIPERL) $(Icwd) pod/perlmodlib.PL -q
-pod/perldelta.pod: pod/perl5112delta.pod
- $(LNS) perl5112delta.pod pod/perldelta.pod
+pod/perldelta.pod: pod/perl5115delta.pod
+ $(LNS) perl5115delta.pod pod/perldelta.pod
extra.pods: $(MINIPERL_EXE)
-@test ! -f extra.pods || rm -f `cat extra.pods`
--splithead=pod/perlipc \
--splititem=pod/perlfunc \
--libpods=perlfunc:perlguts:perlvar:perlrun:perlop \
- --ignore=Porting/Maintainers.pm,Porting/patching.pod,Porting/pumpkin.pod,Porting/repository.pod \
+ --ignore=Porting/Maintainers.pm,Porting/pumpkin.pod,Porting/repository.pod \
--verbose
$(DYNALOADER): $(MINIPERL_EXE) preplibrary FORCE $(nonxs_ext)
$(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
-d_dummy $(dynamic_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE
+d_dummy $(dynamic_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT)
$(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
s_dummy $(static_ext): $(MINIPERL_EXE) preplibrary makeppport $(DYNALOADER) FORCE
rm -f lib/ExtUtils/ParseXS/t/XSTest$(OBJ_EXT)
rm -f lib/ExtUtils/ParseXS/t/XSTest$(DLSUFFIX)
rm -fr lib/B
- -rmdir lib/Data
- -rmdir lib/Filter/Util lib/IO/Socket
- -rmdir lib/List lib/MIME lib/Scalar lib/Sys
- -rmdir lib/threads lib/XS
- -rmdir lib/CPANPLUS/Dist/Build/t/dummy-*
- -rmdir lib/CPANPLUS/t/dummy-cpanplus lib/CPANPLUS/t/dummy-localmirror
+ rm -fr lib/CPAN lib/CPANPLUS
+ rm -fr lib/ExtUtils/CBuilder
+ -rmdir cpan/CPANPLUS-Dist-Build/t/dummy-cpanplus cpan/CPANPLUS/t/dummy-cpanplus cpan/CPANPLUS/t/dummy-localmirror
+ -rmdir ext/B/lib
+ -rmdir lib/Archive/Tar lib/Archive lib/Attribute
+ -rmdir lib/CGI
+ -rmdir lib/Data lib/Devel lib/Digest
+ -rmdir lib/ExtUtils/Command lib/ExtUtils/Constant lib/ExtUtils/Liblist lib/ExtUtils/MakeMaker
+ -rmdir lib/File/Spec lib/Filter/Util lib/Filter
+ -rmdir lib/I18N/LangTags lib/IO/Socket lib/IO lib/IPC
+ -rmdir lib/List/Util lib/List
+ -rmdir lib/Locale/Maketext lib/Locale
+ -rmdir lib/Log/Message lib/Log
+ -rmdir lib/Math/Big* lib/Math
+ -rmdir lib/Memoize lib/MIME
+ -rmdir lib/Module/Build/Platform lib/Module/Build lib/Module/Load lib/Module
+ -rmdir lib/Net/FTP lib/Object
+ -rmdir lib/Parse/CPAN lib/Parse
+ -rmdir lib/PerlIO/via lib/PerlIO
+ -rmdir lib/Package lib/Params
+ -rmdir lib/Pod/Perldoc lib/Pod/Simple lib/Pod/Text
+ -rmdir lib/Sys lib/Scalar/Util lib/Scalar
+ -rmdir lib/Term/UI lib/Thread
+ -rmdir lib/Test/Builder/Tester lib/Test/Builder lib/Test
+ -rmdir lib/Unicode/Collate
+ -rmdir lib/XS/APItest lib/XS
+ -rmdir lib/inc/latest lib/inc
+ -rmdir lib/autodie/exception lib/autodie lib/encoding lib/threads
-rm -f lib/ExtUtils/CBuilder/t/libcompilet.dll.a
-rm -f lib/ExtUtils/ParseXS/t/libXSTest.dll.a
makedepend: makedepend.SH config.sh
sh ./makedepend.SH
+runtests: runtests.SH config.sh
+ sh ./runtests.SH
+
.PHONY: test check test_prep test_prep_nodll test_prep_pre \
test_prep_reonly test_tty test-tty test_notty test-notty \
utest ucheck test.utf8 check.utf8 test.torture torturetest \
_test:
echo >&2 The _test target is deprecated. Please upgrade your smoker
- PERL=./perl ./runtests choose
+ PERL=./perl $(RUN_TESTS) choose
# Cannot delegate rebuilding of t/perl to make
# to allow interlaced test and minitest
test_prep_pre: preplibrary utilities $(nonxs_ext)
-test_prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) $(dynamic_ext) $(TEST_PERL_DLL)
+test_prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) $(dynamic_ext) $(TEST_PERL_DLL) runtests
cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL)
cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
test check: test_prep
- ./runtests choose
+ $(RUN_TESTS) choose
test_tty: test_prep
- ./runtests tty
+ $(RUN_TESTS) tty
test_notty: test_prep
- ./runtests no-tty
+ $(RUN_TESTS) no-tty
utest ucheck test.utf8 check.utf8: test_prep
- TEST_ARGS=-utf8 ./runtests choose
+ TEST_ARGS=-utf8 $(RUN_TESTS) choose
coretest: test_prep
- TEST_ARGS=-core ./runtests choose
+ TEST_ARGS=-core $(RUN_TESTS) choose
test-prep: test_prep
# Torture testing
test.torture torturetest: test_prep
- TEST_ARGS=-torture ./runtests choose
+ TEST_ARGS=-torture $(RUN_TESTS) choose
# Targets for UTF16 testing:
&& $(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
- TEST_ARGS=-utf16 ./runtests choose
+ TEST_ARGS=-utf16 $(RUN_TESTS) choose
utest.utf16 ucheck.utf16: test_prep
- TEST_ARGS="-utf8 -utf16" ./runtests choose
+ TEST_ARGS="-utf8 -utf16" $(RUN_TESTS) choose
# Targets for valgrind testing:
test_prep.valgrind: test_prep perl.valgrind
test.valgrind check.valgrind: test_prep perl.valgrind.config
- PERL_VALGRIND=1 VALGRIND='$(VALGRIND)' ./runtests choose
+ PERL_VALGRIND=1 VALGRIND='$(VALGRIND)' $(RUN_TESTS) choose
utest.valgrind ucheck.valgrind: test_prep.valgrind perl.valgrind.config
- PERL_VALGRIND=1 TEST_ARGS=-utf8 ./runtests choose
+ PERL_VALGRIND=1 TEST_ARGS=-utf8 $(RUN_TESTS) choose
test_notty.valgrind: test_prep.valgrind perl.valgrind.config
- PERL_VALGRIND=1 ./runtests no-tty
+ PERL_VALGRIND=1 $(RUN_TESTS) no-tty
# Targets for Third Degree testing.
cd t && (rm -f ./perl.third$(EXE_EXT); $(LNS) ../perl.third$(EXE_EXT) perl.third(EXE_EXT))
test.third check.third: test_prep.third perl.third
- PERL=./perl.third PERL_3LOG=1 ./runtests choose
+ PERL=./perl.third PERL_3LOG=1 $(RUN_TESTS) choose
utest.third ucheck.third: test_prep.third perl.third
- PERL=./perl.third PERL_3LOG=1 TEST_ARGS=-utf8 ./runtests choose
+ PERL=./perl.third PERL_3LOG=1 TEST_ARGS=-utf8 $(RUN_TESTS) choose
test_notty.third: test_prep.third perl.third
- PERL=./perl.third PERL_3LOG=1 ./runtests choose
+ PERL=./perl.third PERL_3LOG=1 $(RUN_TESTS) choose
# Targets for Deparse testing.
test.deparse: test_prep
- TEST_ARGS=-deparse ./runtests choose
+ TEST_ARGS=-deparse $(RUN_TESTS) choose
test_notty.deparse: test_prep
- TEST_ARGS=-deparse ./runtests no-tty
+ TEST_ARGS=-deparse $(RUN_TESTS) no-tty
# Targets to run the test suite with -t
test.taintwarn: test_prep
- TEST_ARGS=-taintwarn ./runtests choose
+ TEST_ARGS=-taintwarn $(RUN_TESTS) choose
minitest.prep:
- -@test test -f lib/Config.pm || $(MAKE) lib/Config.pm $(unidatafiles)
+ -@test -f lib/Config.pm || $(MAKE) lib/Config.pm $(unidatafiles)
@echo " "
@echo "You may see some irrelevant test failures if you have been unable"
@echo "to build lib/Config.pm, or the Unicode data files."
# Test via harness
test_harness: test_prep
- TESTFILE=harness ./runtests choose
+ TESTFILE=harness $(RUN_TESTS) choose
test_harness_notty: test_prep
- HARNESS_NOTTY=1 TESTFILE=harness ./runtests choose
+ HARNESS_NOTTY=1 TESTFILE=harness $(RUN_TESTS) choose
test-reonly: test_prep_reonly
- TEST_ARGS='-re \bre\/' TESTFILE=harness ./runtests choose
+ TEST_ARGS='-re \bre\/' TESTFILE=harness $(RUN_TESTS) choose
# Porting tests (well-formedness of pod, manifest, etc)