Upgrade to Encode 2.08.
[p5sagit/p5-mst-13.2.git] / Makefile.SH
index bc5a497..1a7022d 100644 (file)
@@ -317,6 +317,14 @@ plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \
 
 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
@@ -329,7 +337,7 @@ c2 = perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c
 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)
@@ -348,7 +356,7 @@ lintflags = -hbvxac
 .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."
 
@@ -382,11 +390,12 @@ $spitshell >>Makefile <<!GROK!THIS!
 # 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!'
@@ -750,6 +759,9 @@ lib/lib.pm: miniperl$(EXE_EXT) lib/Config.pm
        @-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
@@ -761,8 +773,7 @@ extra.pods: miniperl$(EXE_EXT)
        -@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`
 
@@ -944,7 +955,7 @@ veryclean:  _verycleaner _mopup _clobber
 
 # 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
@@ -986,6 +997,7 @@ _cleaner2:
        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
@@ -1042,6 +1054,7 @@ makedepend: makedepend.SH config.sh
 .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
@@ -1058,7 +1071,7 @@ _test_prep:
 
 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:
@@ -1103,6 +1116,18 @@ test-notty:      test_notty
 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
@@ -1149,17 +1174,19 @@ test_notty.deparse:     test_prep
 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