# #22227 $baserev
# #22302 $yacc $byacc
+# H.Merijn Brand [30 Oct 2004]
+# Mentioned for the same reason for future reference
+# #23434 $d_strlcat $d_strlcpy
+
: This forces SH files to create target in same directory as SH file.
: This is so that make depend always knows where to find SH derivatives.
case "$0" in
addedbyconf = UU $(shextract) $(plextract) lib/lib.pm 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
+
+# Directories of Unicode data files generated by mktables
+unidatadirs = lib/unicore/To lib/unicore/lib
+
h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h
h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h opcode.h
h3 = pad.h patchlevel.h perl.h perlapi.h perly.h pp.h proto.h regcomp.h
c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c
c4 = globals.c perlio.c perlapi.c numeric.c locale.c pp_pack.c pp_sort.c
-c = $(c1) $(c2) $(c3) $(c4) miniperlmain.c perlmain.c
+c = $(c1) $(c2) $(c3) $(c4) miniperlmain.c perlmain.c opmini.c
obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT)
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
.c.s:
$(CCCMDSRC) -S $*.c
-all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
+all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
@echo " ";
@echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
# if we have a symlink forest to another disk (it complains about too many
# levels of symbolic links, even if we have only two)
-opmini\$(OBJ_EXT): op.c config.h
- \$(RMS) opmini.c
- \$(CPS) op.c opmini.c
+opmini.c: op.c
+ \$(CPS) op.c opmini.tmp
+ sh mv-if-diff opmini.tmp opmini.c
+
+opmini\$(OBJ_EXT): opmini.c
\$(CCCMD) \$(PLDLFLAGS) $DPERL_EXTERNAL_GLOB opmini.c
- \$(RMS) opmini.c
!GROK!THIS!
$spitshell >>Makefile <<'!NO!SUBS!'
@-rm -f $@
$(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
+$(unidatafiles): miniperl$(EXE_EXT) lib/Config.pm lib/unicore/mktables
+ cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w
+
extra.pods: miniperl$(EXE_EXT)
-@test -f extra.pods && rm -f `cat extra.pods`
-@rm -f extra.pods
-@rm -f pod/perlvms.pod
-@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods
-@rm -f pod/perldelta.pod
- -@test -f pod/perl591delta.pod && cd pod && $(LNS) perl591delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods
-
+ -@test -f pod/perl592delta.pod && cd pod && $(LNS) perl592delta.pod perldelta.pod && cd .. && echo "pod/perldelta.pod" >> extra.pods # See buildtoc
extras.make: perl$(EXE_EXT)
-@test -s extras.lst && PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(LDLIBPTH) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst`
# Do not 'make _mopup' directly.
_mopup:
- rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c
+ rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c
-rmdir .depending
-@test -f extra.pods && rm -f `cat extra.pods`
-@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
rm -rf $(addedbyconf)
rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old
rm -f $(private) lib/Config.pod
+ rm -rf $(unidatafiles) $(unidatadirs)
rm -rf lib/auto
rm -f lib/.exists lib/*/.exists lib/*/*/.exists
rm -f h2ph.man pstruct
.PHONY: test check test_prep test_prep_nodll test_prep_pre _test_prep \
test_tty test-tty _test_tty test_notty test-notty _test_notty \
utest ucheck test.utf8 check.utf8 test.torture torturetest \
+ test.utf16 check.utf16 utest.utf16 ucheck.utf16 \
test.third check.third utest.third ucheck.third test_notty.third \
test.deparse test_notty.deparse test_harness test_harness_notty \
test.bytecompile minitest coretest test.taintwarn
test_prep_pre: preplibrary utilities $(nonxs_ext)
-test_prep: test_prep_pre miniperl$(EXE_EXT) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
+test_prep: test_prep_pre miniperl$(EXE_EXT) $(unidatafiles) perl$(EXE_EXT) $(dynamic_ext) $(TEST_PERL_DLL)
PERL=./perl $(MAKE) _test_prep
_test_tty:
test.torture torturetest: test_prep
PERL=./perl TEST_ARGS=-torture $(MAKE) _test
+# Targets for UTF16 testing:
+
+minitest.utf16: minitest.prep
+ - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \
+ && $(LDLIBPTH) ./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
+
+utest.utf16 ucheck.utf16: test_prep
+ PERL=./perl $(MAKE) TEST_ARGS="-utf8 -utf16" _test
+
# Targets for valgrind testing:
test_prep.valgrind: test_prep perl.valgrind
test.taintwarn: test_prep
PERL=./perl TEST_ARGS=-taintwarn $(MAKE) _test
-# Can't depend on lib/Config.pm because that might be where miniperl
-# is crashing.
-minitest: miniperl$(EXE_EXT) lib/re.pm
+minitest.prep:
-@test -f lib/lib.pm && test -f lib/Config.pm || \
- $(MAKE) lib/Config.pm lib/lib.pm
+ $(MAKE) lib/Config.pm lib/lib.pm $(unidatafiles)
@echo " "
@echo "You may see some irrelevant test failures if you have been unable"
- @echo "to build lib/Config.pm or lib/lib.pm."
+ @echo "to build lib/Config.pm, lib/lib.pm or the Unicode data files."
@echo " "
+
+# Can't depend on lib/Config.pm because that might be where miniperl
+# 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) ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
+ && $(LDLIBPTH) ./perl TEST -minitest base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t uni/*.t </dev/tty
# Test via harness