This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Makefile.SH: de-parallelise mktables
[perl5.git] / Makefile.SH
index 3e66a5d..1601cb7 100644 (file)
@@ -20,6 +20,10 @@ esac
 # #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
@@ -295,7 +299,8 @@ CCCMD    = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@`
 
 CCCMDSRC = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<`
 
-private = preplibrary lib/Config.pm lib/ExtUtils/Miniperl.pm
+CONFIGPM = lib/Config.pm lib/Config_heavy.pl
+private = preplibrary $(CONFIGPM) lib/ExtUtils/Miniperl.pm
 
 # Files to be built with variable substitution before miniperl
 # is available.
@@ -337,7 +342,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)
@@ -368,10 +373,10 @@ compile: all
        cd x2p; $(MAKE) compile;
        cd pod; $(MAKE) compile;
 
-translators:   miniperl$(EXE_EXT) lib/Config.pm FORCE
+translators:   miniperl$(EXE_EXT) $(CONFIGPM) FORCE
        @echo " "; echo "       Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all
 
-utilities:     miniperl$(EXE_EXT) lib/Config.pm $(plextract) lib/lib.pm FORCE
+utilities:     miniperl$(EXE_EXT) $(CONFIGPM) $(plextract) lib/lib.pm FORCE
        @echo " "; echo "       Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all
 
 
@@ -390,11 +395,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!'
@@ -723,7 +729,7 @@ sperl$(OBJ_EXT): perl.c $(h)
 # We need to autosplit in two steps because VOS can't handle so many args
 #
 .PHONY: preplibrary
-preplibrary: miniperl$(EXE_EXT) lib/Config.pm lib/lib.pm $(PREPLIBRARY_LIBPERL)
+preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL)
        @sh ./makedir lib/auto
        @echo " AutoSplitting perl library"
        $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \
@@ -735,11 +741,11 @@ preplibrary: miniperl$(EXE_EXT) lib/Config.pm lib/lib.pm $(PREPLIBRARY_LIBPERL)
 # Take care to avoid modifying lib/Config.pm without reason
 # (If trying to create a new port and having problems with the configpm script,
 # try 'make minitest' and/or commenting out the tests at the end of configpm.)
-lib/Config.pm: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary
-       $(LDLIBPTH) ./miniperl -Ilib configpm configpm.tmp
-       sh mv-if-diff configpm.tmp $@
+$(CONFIGPM): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary
+       $(LDLIBPTH) ./miniperl -Ilib configpm --heavy=lib/Config_heavy.pl configpm.tmp
+       sh mv-if-diff configpm.tmp lib/Config.pm
 
-lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl lib/Config.pm
+lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM)
        $(LDLIBPTH) ./miniperl minimod.pl > minimod.tmp
        sh mv-if-diff minimod.tmp $@
        -touch lib/ExtUtils/Miniperl.pm
@@ -747,19 +753,22 @@ lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl lib/Confi
 lib/re.pm: ext/re/re.pm
        cp ext/re/re.pm ext/re/re.tmp && sh mv-if-diff ext/re/re.tmp lib/re.pm
 
-$(plextract):  miniperl$(EXE_EXT) lib/Config.pm x2p/s2p
+$(plextract):  miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p
        @-rm -f $@
-       $(LDLIBPTH) ./miniperl -Ilib $@.PL
+       $(LDLIBPTH) ./miniperl -I`pwd`/lib $@.PL
 
-x2p/s2p: miniperl$(EXE_EXT) lib/Config.pm x2p/s2p.PL
+x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL
        cd x2p; $(LDLIBPTH) $(MAKE) s2p
 
-lib/lib.pm:    miniperl$(EXE_EXT) lib/Config.pm
+lib/lib.pm:    miniperl$(EXE_EXT) $(CONFIGPM)
        @-rm -f $@
        $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL
 
-$(unidatafiles): miniperl$(EXE_EXT) lib/Config.pm lib/unicore/mktables
+unidatafiles $(unidatafiles): uni.data
+
+uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables
        cd lib/unicore && $(LDLIBPTH) ../../miniperl -I../../lib mktables -w
+       touch uni.data
 
 extra.pods: miniperl$(EXE_EXT)
        -@test -f extra.pods && rm -f `cat extra.pods`
@@ -954,11 +963,11 @@ 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
-       -rm -f perl.exp ext.libs extra.pods opmini.o
+       -rm -f perl.exp ext.libs extra.pods uni.data opmini.o
        -rm -f perl.export perl.dll perl.libexp perl.map perl.def
        -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap
        -rm -f perl.third lib*.so.perl.third perl.3log t/perl.third t/perl.3log