ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/vendor/perl/dist/Makefile.SH
(Generate patch)

Comparing vendor/perl/dist/Makefile.SH (file contents):
Revision 9587 by laffer1, Wed Aug 27 11:27:40 2014 UTC vs.
Revision 9588 by laffer1, Sun Oct 1 18:15:06 2017 UTC

# Line 5 | Line 5
5   quote() {
6          case "$1" in
7          '') echo "''" ;;
8 <        *)  echo "$1" | sed 's/\([^a-zA-Z0-9.:_\-\/]\)/\\\1/g' ;;
8 >        *)  echo "$1" | sed 's/\([^a-zA-Z0-9.:_/-]\)/\\\1/g' ;;
9          esac
10   }
11  
# Line 20 | Line 20 | case $PERL_CONFIG_SH in
20          ;;
21   esac
22  
23 < case $CROSS_NAME in
24 < '')
25 <        Makefile=Makefile
23 > case "$osname" in
24 > amigaos)
25 >        devtty=CONSOLE:
26          ;;
27   *)
28 <        # if cross-compilation, the Makefile named accordingly
29 <        Makefile=Makefile-cross-$CROSS_NAME
30 <        . Cross/config-${CROSS_NAME}.sh
28 >        devtty=/dev/tty
29          ;;
30   esac
31  
32 + Makefile=Makefile
33 +
34   : This forces SH files to create target in same directory as SH file.
35   : This is so that make depend always knows where to find SH derivatives.
36   case "$0" in
# Line 77 | Line 77 | true)
77          sunos*)
78                  linklibperl="-lperl"
79                  ;;
80 <        netbsd*|freebsd[234]*|openbsd*|dragonfly*)
80 >        netbsd*|freebsd[234]*|openbsd*|dragonfly*|bitrig*)
81                  linklibperl="-L. -lperl"
82                  ;;
83          interix*)
# Line 189 | Line 189 | dynamic_list=' '
189   dynamic_ext_re="lib/auto/re/re.$dlext"
190   extra_dep='
191   ext/Pod-Functions/pm_to_blib: cpan/Pod-Simple/pm_to_blib cpan/Pod-Escapes/pm_to_blib pod/perlfunc.pod
192 + cpan/IO-Compress/pm_to_blib: dist/lib/pm_to_blib
193   '
194   for f in $dynamic_ext; do
195      : the dependency named here will never exist
196        base=`echo "$f" | sed 's/.*\///'`
197 <    this_target="lib/auto/$f/$base.$dlext"  
197 >    this_target="lib/auto/$f/$base.$dlext"
198      dynamic_list="$dynamic_list $this_target"
199  
200      : Parallel makes reveal that we have some interdependencies
# Line 230 | Line 231 | for f in $nonxs_ext; do
231   done
232  
233   dtrace_h=''
234 < dtrace_o=''
235 < minidtrace_o=''
234 >
235 > # three object files generated by 'dtrace -G' when dtrace is enabled
236 > dtrace_perllib_o=''
237 > dtrace_mini_o=''
238 > dtrace_main_o=''
239 >
240   case "$usedtrace" in
241   define|true)
242 <        dtrace_h='perldtrace.h'
243 <        $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \
244 <                && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' \
245 <                && minidtrace_o='miniperldtrace$(OBJ_EXT)'
242 >        dtrace_h='perldtrace.h'
243 >        case "$dtraceobject" in
244 >        define)
245 >                dtrace_perllib_o='dtrace_perllib$(OBJ_EXT)'
246 >                dtrace_mini_o='dtrace_mini$(OBJ_EXT)'
247 >                dtrace_main_o='dtrace_main$(OBJ_EXT)'
248 >                ;;
249 >        esac
250          ;;
251   esac
252  
# Line 257 | Line 266 | CLDFLAGS = $ldflags
266  
267   mallocsrc = $mallocsrc
268   mallocobj = $mallocobj
260 madlysrc = $madlysrc
261 madlyobj = $madlyobj
269   LNS = $lns
270   # NOTE: some systems don't grok "cp -f". XXX Configure test needed?
271   CPS = $cp
# Line 302 | Line 309 | STATIC_LDFLAGS = $static_ldflags
309   LDLIBPTH = $ldlibpth
310  
311   # Sometimes running an executable is an adventure.
312 < RUN = $run
312 > RUN =
313  
314 + # When cross-compiling we want to use a (mini)perl built for the host, not the target
315 + HOST_PERL = $hostperl
316 + HOST_GENERATE = $hostgenerate
317 + SYSTEM_PERL = $perl
318 +
319   # These variables may need to be manually set for non-Unix systems.
320   AR = $full_ar
321   HOST_EXE_EXT = $_exe
# Line 315 | Line 327 | PATH_SEP = $p_
327   # Macros to invoke a copy of miniperl during the build.  Targets which
328   # are built using these macros should depend on \$(MINIPERL_EXE)
329   MINIPERL_EXE = miniperl\$(EXE_EXT)
330 < MINIPERL = \$(LDLIBPTH) \$(RUN) ./miniperl\$(EXE_EXT) -Ilib
330 > MINIPERL = \$(LDLIBPTH) ./miniperl\$(EXE_EXT) -Ilib
331  
332 + # Macros to invoke sort the MANIFEST during build
333 + MANIFEST_SRT = MANIFEST.srt
334 +
335 + !GROK!THIS!
336 +
337 + case "$usecrosscompile$perl" in
338 + define?*)
339 +        $spitshell >>$Makefile <<!GROK!THIS!
340   # Macros to invoke a copy of our fully operational perl during the build.
341   PERL_EXE = perl\$(EXE_EXT)
342 < RUN_PERL = \$(LDLIBPTH) \$(RUN) ./perl\$(EXE_EXT)
342 > RUN_PERL = \$(LDLIBPTH) \$(RUN) $perl\$(EXE_EXT)
343 > !GROK!THIS!
344 >        ;;
345 > *)
346 >        $spitshell >>$Makefile <<!GROK!THIS!
347 > # Macros to invoke a copy of our fully operational perl during the build.
348 > PERL_EXE = perl\$(EXE_EXT)
349 > RUN_PERL = \$(LDLIBPTH) \$(RUN) ./perl\$(EXE_EXT) -Ilib -I.
350 > !GROK!THIS!
351 >        ;;
352 > esac
353  
354 + $spitshell >>$Makefile <<!GROK!THIS!
355   # Macros to run our tests
356   RUN_TESTS = \$(LDLIBPTH) ./runtests
357  
# Line 333 | Line 364 | DYNALOADER = DynaLoader\$(OBJ_EXT)
364  
365   libs = $perllibs $cryptlib
366  
367 < public = \$(PERL_EXE) utilities translators
367 > public = \$(PERL_EXE) utilities
368  
369   shellflags = $shellflags
370  
371 + # The /dev/tty or the moral equivalent.
372 + devtty = $devtty
373 +
374   # This is set to  MAKE=$make if your $make command doesn't
375   # do it for you.
376   $make_set_make
# Line 357 | Line 391 | VG_TEST  ?= ./perl -e 1 2>/dev/null
391          ;;
392   esac
393  
394 + case "$dtracexnolibs" in
395 + define) xnolibs=-xnolibs ;;
396 + *) xnolibs= ;;
397 + esac
398 +
399   $spitshell >>$Makefile <<!GROK!THIS!
400 < DTRACE = $dtrace
400 > DTRACE = $dtrace $xnolibs
401   DTRACE_H = $dtrace_h
363 DTRACE_O = $dtrace_o
364 MINIDTRACE_O = $minidtrace_o
402  
403 + DTRACE_PERLLIB_O = $dtrace_perllib_o # "dtrace -G" output for perllib_objs
404 + DTRACE_MINI_O    = $dtrace_mini_o    # "dtrace -G" output for common and mini
405 + DTRACE_MAIN_O    = $dtrace_main_o    # "dtrace -G" output for perlmain.o
406 +
407   FIRSTMAKEFILE = $firstmakefile
408  
409   # Any special object files needed by this architecture, e.g. os2/os2.obj
# Line 404 | Line 445 | EOF
445          ;;
446   esac
447  
407 case $CROSS_NAME in
408 '')
448   ## In the following dollars and backticks do not need the extra backslash.
449   $spitshell >>$Makefile <<'!NO!SUBS!'
450  
451 < CCCMD    = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@`
451 > CCCMD    = sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@
452  
453 < CCCMDSRC = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<`
453 > CCCMDSRC = sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<
454  
455   CONFIGPM_FROM_CONFIG_SH = lib/Config.pm lib/Config_heavy.pl
456   CONFIGPM = $(CONFIGPM_FROM_CONFIG_SH) lib/Config_git.pl
# Line 420 | Line 459 | CONFIGPOD = lib/Config.pod
459  
460   CONFIGH = config.h
461   !NO!SUBS!
423        ;;
424 *)
425        # if cross-compilation
426 $spitshell >>$Makefile <<!GROK!THIS!
427 CROSS_NAME = $CROSS_NAME
428 CROSS_LIB = xlib/$CROSS_NAME
462  
463 < CCCMD    = \`sh \$(shellflags) cflags-cross-$CROSS_NAME "optimize='\$(OPTIMIZE)'" \$@\` -I\$(CROSS_LIB)
464 < CCCMDSRC = \`sh \$(shellflags) cflags-cross-$CROSS_NAME "optimize='\$(OPTIMIZE)'" \$<\` -I\$(CROSS_LIB)
465 < CONFIGPM = xlib/\$(CROSS_NAME)/Config.pm
433 < CONFIGPOD = xlib/\$(CROSS_NAME)/Config.pod
434 < CONFIGH = xconfig.h
463 > SH_to_target() {
464 >    echo $@ | sed -e s/\\\.SH//g -e s/_/./g
465 > }
466  
467 < xconfig.h: config_h.SH Cross/config-\$(CROSS_NAME).sh
468 <        CONFIG_SH=Cross/config-\$(CROSS_NAME).sh CONFIG_H=xconfig.h \$(SHELL) config_h.SH
438 <        #TODO \$(LDLIBPTH) ./miniperl$(EXE_EXT) -Ilib -MCross=\$(CROSS_NAME) config_h.PL "INST_VER=\$(INST_VER)" "CORE_DIR=\$(CROSS_LIB)" "CONFIG_H=xconfig.h"
439 <        cp xconfig.h \$(CROSS_LIB)/
440 <        cp xconfig.h \$(CROSS_LIB)/config.h
467 > SH='Makefile.SH cflags.SH config_h.SH makedepend.SH myconfig.SH runtests.SH pod/Makefile.SH'
468 > shextract=`SH_to_target $SH`
469  
442 !GROK!THIS!
443        ;;
444 esac
445
470   ## In the following dollars and backticks do not need the extra backslash.
471 < $spitshell >>$Makefile <<'!NO!SUBS!'
471 > $spitshell >>$Makefile <<!GROK!THIS!
472  
473 < private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h lib/buildcustomize.pl
473 > private = preplibrary \$(CONFIGPM) \$(CONFIGPOD) git_version.h lib/buildcustomize.pl
474  
475   # Files to be built with variable substitution before miniperl
476   # is available.
477 < sh = Makefile.SH cflags.SH config_h.SH makedepend.SH myconfig.SH pod/Makefile.SH
477 > sh = $SH
478  
479 < shextract = Makefile cflags config.h makedepend makedir myconfig pod/Makefile
479 > shextract = $shextract
480 > !GROK!THIS!
481  
482 < addedbyconf = UU $(shextract) pstruct
482 > ## In the following dollars and backticks do not need the extra backslash.
483 > $spitshell >>$Makefile <<'!NO!SUBS!'
484  
485 + addedbyconf = UU $(shextract)
486 +
487   # Unicode data files generated by mktables
488   unidatafiles = lib/unicore/Decomposition.pl lib/unicore/TestProp.pl \
489          lib/unicore/CombiningClass.pl lib/unicore/Name.pl \
# Line 473 | Line 501 | h5 = utf8.h warnings.h mydtrace.h op_reg_common.h l1_c
501   h6 = charclass_invlists.h
502   h = $(h1) $(h2) $(h3) $(h4) $(h5) $(h6)
503  
504 < c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c
504 > c1 = av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro_core.c perl.c
505   c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c
506   c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c
507 < c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c
508 < c5 = $(madlysrc) $(mallocsrc)
507 > c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c caretx.c dquote.c time64.c
508 > c5 = $(mallocsrc)
509  
510   c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c opmini.c perlmini.c
511  
512 < obj0 = op$(OBJ_EXT) perl$(OBJ_EXT)
485 < obj0mini = perlmini$(OBJ_EXT) opmini$(OBJ_EXT) miniperlmain$(OBJ_EXT)
486 < obj1 = $(madlyobj) $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro$(OBJ_EXT) keywords$(OBJ_EXT)
512 > obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) pad$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(OBJ_EXT) reentr$(OBJ_EXT) mro_core$(OBJ_EXT) keywords$(OBJ_EXT)
513   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)
514 < obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
514 > obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT) caretx$(OBJ_EXT) dquote$(OBJ_EXT) time64$(OBJ_EXT)
515  
516 < minindt_obj = $(obj0mini) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
517 < mini_obj = $(minindt_obj) $(MINIDTRACE_O)
518 < ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
493 < obj = $(ndt_obj) $(DTRACE_O)
516 > # split the objects into 3 exclusive sets: those used by both miniperl and
517 > # perl, and those used by just one or the other. Doesn't include the
518 > # actual perl(mini)main.o, nor any dtrace objects.
519  
520 < perltoc_pod_prereqs = extra.pods pod/perl5182delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
520 > common_objs    = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
521 > mini_only_objs = opmini$(OBJ_EXT) perlmini$(OBJ_EXT)
522 > main_only_objs = op$(OBJ_EXT)     perl$(OBJ_EXT)
523 >
524 > miniperl_objs_nodt = $(mini_only_objs) $(common_objs) miniperlmain$(OBJ_EXT)
525 > perllib_objs_nodt  = $(main_only_objs) $(common_objs)
526 >
527 > !NO!SUBS!
528 >
529 > # dtrace with -G modifies the source object files, which can cause
530 > # dependency issues, and can cause the dtrace -G to fail on FreeBSD
531 > # so separate the objects generated by $(CC) from those used to link
532 > # the executable when dtrace -G is involved.
533 > #
534 > # $(FOO:op%os=np%ns) isn't generally portable but is portable to
535 > # the makes on darwin, Solaris, FreeBSD and Linux, which is where we
536 > # use dtrace
537 >
538 > case "$usedtrace:$dtraceobject" in
539 > define:define)
540 >    $spitshell >>$Makefile <<'!NO!SUBS!'
541 >
542 > miniperl_dtrace_objs = $(miniperl_objs_nodt:%=mpdtrace/%)
543 > perllib_dtrace_objs = $(perllib_objs_nodt:%=libpdtrace/%)
544 > perlmain_dtrace_objs = maindtrace/perlmain$(OBJ_EXT)
545 >
546 > miniperl_objs = $(miniperl_dtrace_objs) $(DTRACE_MINI_O)
547 > perllib_objs  = $(perllib_dtrace_objs) $(DTRACE_PERLLIB_O)
548 > perlmain_objs = $(perlmain_dtrace_objs) $(DTRACE_MAIN_O)
549 >
550 > miniperl_dep = $(DTRACE_MINI_O)
551 > perllib_dep = $(DTRACE_PERLLIB_O)
552 > perlmain_dep = $(DTRACE_MAIN_O)
553 >
554 > !NO!SUBS!
555 >    ;;
556 > *)
557 >    $spitshell >>$Makefile <<'!NO!SUBS!'
558 >
559 > miniperl_objs = $(miniperl_objs_nodt) $(DTRACE_MINI_O)
560 > perllib_objs  = $(perllib_objs_nodt) $(DTRACE_PERLLIB_O)
561 > perlmain_objs = perlmain$(OBJ_EXT) $(DTRACE_MAIN_O)
562 >
563 > miniperl_dep = $(miniperl_objs)
564 > perllib_dep = $(perllib_objs)
565 > perlmain_dep = $(perlmain_objs)
566 >
567 > !NO!SUBS!
568 >    ;;
569 > esac
570 >
571 > $spitshell >>$Makefile <<'!NO!SUBS!'
572 >
573 > perltoc_pod_prereqs = extra.pods pod/perl5260delta.pod pod/perlapi.pod pod/perlintern.pod pod/perlmodlib.pod pod/perluniprops.pod
574   generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs)
575   generated_headers = uudmap.h bitcount.h mg_data.h
576  
499 Icwd = -Idist/Cwd -Idist/Cwd/lib -Idist/Carp/lib
500
577   lintflags = \
578      -b \
579      -n \
# Line 530 | Line 606 | lintflags = \
606      -erroff=E_STATIC_UNUSED \
607      -erroff=E_TRUE_LOGICAL_EXPR
608  
533 splintflags = \
534    -I/usr/lib/gcc/i486-linux-gnu/4.0.2/include/ \
535    -D__builtin_va_list=va_list \
536    -Dsigjmp_buf=jmp_buf \
537    -warnposix \
538    \
539    +boolint \
540    +charintliteral \
541    -fixedformalarray \
542    -mustfreefresh \
543    -nestedextern \
544    -predboolint \
545    -predboolothers \
546    -preproc \
547    -boolops \
548    -shadow \
549    -nullstate \
550    +longintegral \
551    +matchanyintegral \
552    -type \
553    \
554    +line-len 999 \
555    +weak
556
557 splintfiles = $(c1)
558
609   .c$(OBJ_EXT):
610 <        $(CCCMD) $(PLDLFLAGS) $*.c
610 >        @echo `$(CCCMD)` $(PLDLFLAGS) $*.c
611 >        @`$(CCCMD)` $(PLDLFLAGS) $*.c
612  
613 < .c.i:
614 <        $(CCCMDSRC) -E $*.c > $*.i
613 > .c.i:   perl.h config.h
614 >        @echo `$(CCCMDSRC)` -E $*.c \> $*.i
615 >        @`$(CCCMDSRC)` -E $*.c > $*.i
616  
617 < .c.s:
618 <        $(CCCMDSRC) -S $*.c
617 > .c.s:   perl.h config.h
618 >        @echo `$(CCCMDSRC)` -S $*.c
619 >        @`$(CCCMDSRC)` -S $*.c
620  
621 < all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make
621 > all: $(FIRSTMAKEFILE) $(MINIPERL_EXE) $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make $(MANIFEST_SRT)
622          @echo " ";
623          @echo " Everything is up to date. Type '$(MAKE) test' to run test suite."
624  
625 < .PHONY: all translators utilities
625 > $(MANIFEST_SRT):        MANIFEST $(PERL_EXE)
626 >        @$(RUN_PERL) Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \
627 >            $(RUN_PERL) Porting/manisort -q -o MANIFEST; sh -c true)
628 >        @touch $(MANIFEST_SRT)
629  
630 + .PHONY: all utilities
631 +
632   # Both git_version.h and lib/Config_git.pl are built
633   # by make_patchnum.pl.
634   git_version.h: lib/Config_git.pl
# Line 583 | Line 641 | perl$(OBJ_EXT): git_version.h
641  
642   !NO!SUBS!
643  
644 < # Making utilities and translators require Cwd.  If we have dynamic
644 > # Making utilities requires Cwd.  If we have dynamic
645   # loading, we only need miniperl and Cwd.$dlext.  If we have static
646   # loading, we need to build perl first.
647   case "$usedl$static_cwd" in
648   defineundef)
649      util_deps='$(MINIPERL_EXE) $(CONFIGPM) lib/auto/Cwd/Cwd$(DLSUFFIX) FORCE'
592     x2p_deps='$(MINIPERL_EXE) $(CONFIGPM) $(dynamic_ext) FORCE'
650      ;;
651   definedefine)
652      util_deps='$(PERL_EXE) $(CONFIGPM) FORCE'
596     x2p_deps='$(PERL_EXE) $(CONFIGPM) $(dynamic_ext) FORCE'
653      ;;
654   *)  util_deps='$(PERL_EXE) $(CONFIGPM) FORCE'
599     x2p_deps='$(PERL_EXE) $(CONFIGPM) FORCE'
655      ;;
656   esac
657  
658   $spitshell >>$Makefile <<!GROK!THIS!
659 < translators:    $x2p_deps
660 <        @echo " "; echo "       Making x2p stuff"; cd x2p; \$(LDLIBPTH) \$(MAKE) all
659 > utils/Makefile: \$(MINIPERL_EXE) \$(CONFIGPM) utils/Makefile.PL
660 >        \$(MINIPERL) utils/Makefile.PL
661  
662 < x2p/s2p: $x2p_deps
608 <        cd x2p; \$(LDLIBPTH) \$(MAKE) s2p
609 <
610 < x2p/find2perl: $x2p_deps
611 <        cd x2p; \$(LDLIBPTH) \$(MAKE) find2perl
612 <
613 < utilities:      $util_deps
662 > utilities:      utils/Makefile $util_deps
663          @echo " "; echo "       Making utilities"; cd utils; \$(LDLIBPTH) \$(MAKE) all
664  
665   !GROK!THIS!
# Line 651 | Line 700 | ${file}mini.c: $file.c
700      $spitshell >>$Makefile <<!GROK!THIS!
701  
702   ${file}mini\$(OBJ_EXT): ${file}mini.c
703 <        \$(CCCMD) \$(PLDLFLAGS) $DPERL_IS_MINIPERL $DPERL_EXTERNAL_GLOB ${file}mini.c
703 >        echo @\`\$(CCCMD)\` \$(PLDLFLAGS) $DPERL_IS_MINIPERL $DPERL_EXTERNAL_GLOB ${file}mini.c
704 >        @\`\$(CCCMD)\` \$(PLDLFLAGS) $DPERL_IS_MINIPERL $DPERL_EXTERNAL_GLOB ${file}mini.c
705   !GROK!THIS!
706   done
707  
# Line 661 | Line 711 | globals$(OBJ_EXT): $(generated_headers)
711  
712   uudmap.h mg_data.h: bitcount.h
713  
664 bitcount.h: generate_uudmap$(HOST_EXE_EXT)
665        $(RUN) ./generate_uudmap$(HOST_EXE_EXT) $(generated_headers)
666
714   generate_uudmap$(OBJ_EXT): mg_raw.h
715  
716 + !NO!SUBS!
717 +
718 + # If hostgerenate isn't defined, then we have to build
719 + # generate_uudmap and run it. This can potentially mean running
720 + # it on the target system if we're cross-compiling.
721 + # If it is defined, then we just run it locally.
722 + case "$hostgenerate" in
723 + ''|'undef')
724 + $spitshell >>$Makefile <<!GROK!THIS!
725 + bitcount.h: generate_uudmap\$(HOST_EXE_EXT)
726 +        $run ./generate_uudmap\$(HOST_EXE_EXT) \$(generated_headers)
727 +        -@for f in \$(generated_headers); do \\
728 +            $from \$\$f; \\
729 +        done
730 +
731 + !GROK!THIS!
732 +
733 + $spitshell >>$Makefile <<'!NO!SUBS!'
734   generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT)
735          $(CC) -o generate_uudmap$(EXE_EXT) $(LDFLAGS) generate_uudmap$(OBJ_EXT) $(libs)
736  
737 < miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h
738 <        $(CCCMD) $(PLDLFLAGS) $*.c
737 > !NO!SUBS!
738 > ;;
739 > *)
740 > $spitshell >>$Makefile <<'!NO!SUBS!'
741 > bitcount.h: generate_uudmap$(HOST_EXE_EXT)
742 >        ./generate_uudmap$(HOST_EXE_EXT) $(generated_headers)
743  
744 < perlmain.c: $(MINIPERL_EXE) lib/ExtUtils/Miniperl.pm
745 <        $(MINIPERL) -Ilib -MExtUtils::Miniperl -e 'writemain(@ARGV)' DynaLoader $(static_ext) > perlmain.c
744 > generate_uudmap$(HOST_EXE_EXT): generate_uudmap$(OBJ_EXT)
745 >        -@rm generate_uudmap$(HOST_EXE_EXT)
746 >        $(LNS) $(HOST_GENERATE) generate_uudmap$(HOST_EXE_EXT)
747  
748 < perlmain$(OBJ_EXT): perlmain.c
749 <        $(CCCMD) $(PLDLFLAGS) $*.c
748 > !NO!SUBS!
749 > ;;
750 > esac
751  
752 + case "$osname" in
753 + amigaos*)
754 + $spitshell >>$Makefile <<'!NO!SUBS!'
755 + perlmain.c: $(MINIPERL_EXE) ext/ExtUtils-Miniperl/pm_to_blib
756 +        $(MINIPERL) -MExtUtils::Miniperl -e 'writemain(\\"perlmain.c", @ARGV)' DynaLoader $(static_ext)
757 +
758   # The file ext.libs is a list of libraries that must be linked in
759   # for static extensions, e.g. -lm -lgdbm, etc.  The individual
760   # static extension Makefile's add to it.
# Line 685 | Line 762 | ext.libs: $(static_ext)
762          -@test -f ext.libs || touch ext.libs
763  
764   !NO!SUBS!
765 + ;;
766 + *)
767 + $spitshell >>$Makefile <<'!NO!SUBS!'
768 + perlmain.c: $(MINIPERL_EXE) ext/ExtUtils-Miniperl/pm_to_blib
769 +        $(MINIPERL) -MExtUtils::Miniperl -e 'writemain(\"perlmain.c", @ARGV)' DynaLoader $(static_ext)
770  
771 + # The file ext.libs is a list of libraries that must be linked in
772 + # for static extensions, e.g. -lm -lgdbm, etc.  The individual
773 + # static extension Makefile's add to it.
774 + ext.libs: $(static_ext)
775 +        -@test -f ext.libs || touch ext.libs
776 +
777 + !NO!SUBS!
778 + ;;
779 + esac
780 +
781   # How to build libperl.  This is still rather convoluted.
782   # Load up custom Makefile.SH fragment for shared loading and executables:
783   case "$osname" in
# Line 711 | Line 803 | CCDLFLAGS              = `echo $ccdlflags|sed -e 's@-bE:.*/perl\.e
803   LIBPERL_NONSHR          = libperl_nonshr$(LIB_EXT)
804   MINIPERL_NONSHR         = miniperl_nonshr$(EXE_EXT)
805  
806 < $(LIBPERL_NONSHR): $(obj)
806 > $(LIBPERL_NONSHR): $(perllib_objs)
807          $(RMS) $(LIBPERL_NONSHR)
808 <        $(AR) rcu $(LIBPERL_NONSHR) $(obj)
808 >        $(AR) rc $(LIBPERL_NONSHR) $(perllib_objs)
809  
810   $(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT)  perlmini$(OBJ_EXT)
811          $(CC) $(LDFLAGS) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) \
# Line 757 | Line 849 | cygwin.c: cygwin/cygwin.c
849  
850   LIBPERL_NONSHR          = libperl$(LIB_EXT)
851  
852 < $(LIBPERL_NONSHR): $(obj)
852 > $(LIBPERL_NONSHR): $(perllib_objs)
853          $(RMS) $(LIBPERL_NONSHR)
854 <        $(AR) rcu $(LIBPERL_NONSHR) $(obj)
854 >        $(AR) rc $(LIBPERL_NONSHR) $(perllib_objs)
855  
856   !NO!SUBS!
857          ;;
# Line 786 | Line 878 | mydtrace.h: $(DTRACE_H)
878   !NO!SUBS!
879                  ;;
880          esac
881 <        case "$dtrace_o" in
882 <        ?*)
881 >        case "$dtraceobject" in
882 >        define)
883                  $spitshell >>$Makefile <<'!NO!SUBS!'
884 < $(DTRACE_O): perldtrace.d $(ndt_obj)
885 <        $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj)
884 > $(DTRACE_MINI_O): perldtrace.d $(miniperl_objs_nodt)
885 >        -rm -rf mpdtrace
886 >        mkdir mpdtrace
887 >        cp $(miniperl_objs_nodt) mpdtrace/
888 >        $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MINI_O) $(miniperl_dtrace_objs)
889  
890 < $(MINIDTRACE_O): perldtrace.d $(minindt_obj) perlmini$(OBJ_EXT)
891 <        $(DTRACE) -G -s perldtrace.d -o $(MINIDTRACE_O) $(minindt_obj) perlmini$(OBJ_EXT)
890 > $(DTRACE_PERLLIB_O): perldtrace.d $(perllib_objs_nodt)
891 >        -rm -rf libpdtrace
892 >        mkdir libpdtrace
893 >        cp $(perllib_objs_nodt) libpdtrace/
894 >        $(DTRACE) -G -s perldtrace.d -o $(DTRACE_PERLLIB_O) $(perllib_dtrace_objs)
895  
896 + $(DTRACE_MAIN_O): perldtrace.d perlmain$(OBJ_EXT)
897 +        -rm -rf maindtrace
898 +        mkdir maindtrace
899 +        cp perlmain$(OBJ_EXT) maindtrace/
900 +        $(DTRACE) -G -s perldtrace.d -o $(DTRACE_MAIN_O) $(perlmain_dtrace_objs) ||           \
901 +          ( $(ECHO) "No probes in perlmain$(OBJ_EXT), generating a dummy $(DTRACE_MAIN_O)" && \
902 +            $(ECHO) >dtrace_main.c &&                                                         \
903 +            `$(CCCMD)` $(PLDLFLAGS) dtrace_main.c &&                                          \
904 +             rm -f dtrace_main.c )
905 +
906   !NO!SUBS!
907                  ;;
908      esac
909          $spitshell >>$Makefile <<'!NO!SUBS!'
910 < $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT)
910 > $(LIBPERL): $& $(perllib_dep) $(DYNALOADER) $(LIBPERLEXPORT)
911   !NO!SUBS!
912          case "$useshrplib" in
913          true)
914                  $spitshell >>$Makefile <<'!NO!SUBS!'
915          rm -f $@
916 <        $(LD) -o $@ $(SHRPLDFLAGS) $(obj) $(DYNALOADER) $(libs)
916 >        $(LD) -o $@ $(SHRPLDFLAGS) $(perllib_objs) $(DYNALOADER) $(libs)
917   !NO!SUBS!
918                  case "$osname" in
919                  aix)
# Line 820 | Line 928 | $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT)
928          *)
929                  $spitshell >>$Makefile <<'!NO!SUBS!'
930          rm -f $(LIBPERL)
931 <        $(AR) rcu $(LIBPERL) $(obj) $(DYNALOADER)
931 >        $(AR) rc $(LIBPERL) $(perllib_objs) $(DYNALOADER)
932          @$(ranlib) $(LIBPERL)
933   !NO!SUBS!
934                  ;;
# Line 837 | Line 945 | $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT)
945   # build problems but that's not obvious to the novice.
946   # The Module used here must not depend on Config or any extensions.
947  
948 + # The seemingly cranky ordering of having $(MINIPERL_EXE) depend on
949 + # lib/buildcustomize.pl despite the reality that lib/buildcustomize.pl needs
950 + # miniperl to exist first permits us to
951 + # a) have one rule generate both miniperl and lib/buildcustomize.pl
952 + #    (so that lib/buildcustomize.pl is always available. This simplifies things)
953 + # b) have the rest of the Makefile depend on the more obvious $(MINIPERL_EXE)
954 +
955 + $(MINIPERL_EXE): lib/buildcustomize.pl
956 +
957   !NO!SUBS!
958  
959          case "${osname}${osvers}" in
960 +        amigaos*)
961 +                $spitshell >>$Makefile <<'!NO!SUBS!'
962 + lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl
963 +        -@rm -f miniperl.xok
964 +        $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
965 +            $(miniperl_objs) $(libs)
966 + #       $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run make minitest; exit 1'
967 +        $(MINIPERL) -f write_buildcustomize.pl
968 + !NO!SUBS!
969 +                ;;
970          aix*)
971                  $spitshell >>$Makefile <<'!NO!SUBS!'
972 < $(MINIPERL_EXE): $& $(mini_obj)
973 <        $(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) $(mini_obj) $(libs)
974 <        $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
972 > lib/buildcustomize.pl: $& $(miniperl_objs)
973 >        $(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) $(miniperl_objs) $(libs)
974 >        $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run make minitest; exit 1'
975 >        $(MINIPERL) -f write_buildcustomize.pl
976   !NO!SUBS!
977                  ;;
978          next4*)
979                  $spitshell >>$Makefile <<'!NO!SUBS!'
980 < $(MINIPERL_EXE): $& $(mini_obj)
981 <        $(CC) -o $(MINIPERL_EXE) $(mini_obj) $(libs)
982 <        $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
980 > lib/buildcustomize.pl: $& $(miniperl_objs) write    ldcustomize.pl
981 >        $(CC) -o $(MINIPERL_EXE) $(miniperl_objs    libs)
982 >        $(LDLIBPTH) ./miniperl$(HOST    _EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run make minitest; exit 1'
983 >        $(MINIPERL) -f write_buildcustomize.pl    
984   !NO!SUBS!
985                  ;;
986          darwin*)
# Line 868 | Line 997 | NAMESPACEFLAGS = -force_flat_namespace
997                      ;;
998                  esac
999                  $spitshell >>$Makefile <<'!NO!SUBS!'
1000 < $(MINIPERL_EXE): $& $(mini_obj)
1000 > lib/buildcustomize.pl: $& $(miniperl_objs) write_buildcustomize.pl
1001          -@rm -f miniperl.xok
1002          $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \
1003 <            $(mini_obj) $(libs)
1004 <        $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
1003 >            $(miniperl_objs) $(libs)
1004 >        $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run make minitest; exit 1'
1005 >        $(MINIPERL) -f write_buildcustomize.pl
1006   !NO!SUBS!
1007                  ;;
1008          *)
1009 <                $spitshell >>$Makefile <<'!NO!SUBS!'
1010 < $(MINIPERL_EXE): $& $(mini_obj)
1009 >                if test "X$hostperl" != X; then
1010 >                        $spitshell >>$Makefile <<!GROK!THIS!
1011 > lib/buildcustomize.pl: \$& \$(miniperl_dep) write_buildcustomize.pl
1012          -@rm -f miniperl.xok
1013 <        $(LDLIBPTH) $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
1014 <            $(mini_obj) $(libs)
1015 <        $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
1013 >        -@rm \$(MINIPERL_EXE)
1014 >        \$(LNS) \$(HOST_PERL) \$(MINIPERL_EXE)
1015 >        \$(LDLIBPTH) ./miniperl\$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run make minitest; exit 1'
1016 >        \$(MINIPERL) -f write_buildcustomize.pl 'osname' "$osname"
1017 > !GROK!THIS!
1018 >                else
1019 >                        $spitshell >>$Makefile <<'!NO!SUBS!'
1020 > lib/buildcustomize.pl: $& $(miniperl_dep) write_buildcustomize.pl
1021 >        -@rm -f miniperl.xok
1022 >        $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \
1023 >            $(miniperl_objs) $(libs)
1024 >        $(LDLIBPTH) ./miniperl$(HOST_EXE_EXT) -w -Ilib -Idist/Exporter/lib -MExporter -e '<?>' || sh -c 'echo >&2 Failed to build miniperl.  Please run make minitest; exit 1'
1025 >        $(MINIPERL) -f write_buildcustomize.pl
1026   !NO!SUBS!
1027 +                fi
1028                  ;;
1029          esac
1030  
1031          $spitshell >>$Makefile <<'!NO!SUBS!'
1032  
1033 < $(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT)
1033 > $(PERL_EXE): $& $(perlmain_dep) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) write_buildcustomize.pl
1034          -@rm -f miniperl.xok
1035 <        $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
1035 > !NO!SUBS!
1036  
1037 < # Purify/Quantify Perls.
1038 <
1039 < pure$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT)
1040 <        $(SHRPENV) $(LDLIBPTH) purify $(CC) -o pureperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
1041 <
900 < purecov$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT)
901 <        $(SHRPENV) $(LDLIBPTH) purecov $(CC) -o purecovperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
902 <
903 < quant$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT)
904 <        $(SHRPENV) $(LDLIBPTH) quantify $(CC) -o quantperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
905 <
1037 >        case $osname in
1038 >        # In AmigaOS the Perl executable needs to be linked with -ldl,
1039 >        # but none of the other executables should be.
1040 >        amigaos) $spitshell >>$Makefile <<'!NO!SUBS!'
1041 >        $(SHRPENV) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(LLIBPERL) $(static_ext) `cat ext.libs` $(libs) -ldl
1042   !NO!SUBS!
1043 +        ;;
1044 +        os390) $spitshell >>$Makefile <<'!NO!SUBS!'
1045 +        $(SHRPENV) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(LLIBPERL) $(static_ext) `cat ext.libs` $(libs)
1046 + !NO!SUBS!
1047 +        ;;
1048 +        *) $spitshell >>$Makefile <<'!NO!SUBS!'
1049 +        $(SHRPENV) $(CC) -o perl $(CLDFLAGS) $(CCDLFLAGS) $(perlmain_objs) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
1050 + !NO!SUBS!
1051 +        ;;
1052 +        esac
1053  
908 case "${osname}${osvers}" in
909 linux*|darwin*)
1054          $spitshell >>$Makefile <<'!NO!SUBS!'
911 # Valgrind perl (currently Linux, Darwin only)
1055  
913 perl.valgrind.config: config.sh
914        @echo "To build perl.valgrind you must Configure -Doptimize=-g -Uusemymalloc, checking..."
915        @$(MAKE) perl.config.dashg
916        @echo "Checking usemymalloc='n' in config.sh..."
917        @grep "^usemymalloc="    config.sh
918        @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1
919        @echo "And of course you have to have valgrind..."
920        $(VALGRIND) $(VG_TEST) || exit 1
921 !NO!SUBS!
922        ;;
923 esac    
924
925 $spitshell >>$Makefile <<'!NO!SUBS!'
926
927 # Third Degree Perl (Tru64 only)
928
929 perl.config.dashg:
930        @echo "Checking optimize='-g' in config.sh..."
931        @grep "^optimize=" config.sh
932        @egrep "^optimize='(.*-g.*)'" config.sh >/dev/null || exit 1
933
934 perl.third.config: config.sh
935        @echo "To build perl.third you must Configure -Doptimize=-g -Uusemymalloc, checking..."
936        @$(MAKE) perl.config.dashg
937        @echo "Checking usemymalloc='n' in config.sh..."
938        @grep "^usemymalloc="    config.sh
939        @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1
940
941 perl.third: /usr/bin/atom perl.third.config perl
942        atom -tool third -L. -all -gp -toolargs="-invalid -uninit heap+stack+copy -min 0" perl
943        @echo "Now you may run perl.third and then study perl.3log."
944
945 # Pixie Perls (Tru64 and IRIX only)
946
947 perl.pixie.config: config.sh
948        @echo "To build perl.pixie you must Configure -Doptimize=-g, checking..."
949        @$(MAKE) perl.config.dashg
950
951 perl.pixie.atom: /usr/bin/atom perl
952        atom -tool pixie -L. -all -toolargs="-quiet" perl
953
954 perl.pixie.irix: perl
955        pixie perl
956
957 perl.pixie: /usr/bin/pixie perl.pixie.config perl
958        if test -x /usr/bin/atom; then \
959          $(MAKE) perl.pixie.atom; \
960        else \
961          $(MAKE) perl.pixie.irix; \
962        fi
963        @echo "Now you may run perl.pixie and then run pixie."
964
965 # Gprof Perl
966
967 perl.config.dashpg:
968        @echo "Checking optimize='-pg' in config.sh..."
969        @grep "^optimize="      config.sh
970        @grep "^optimize='.*-pg.*'" config.sh >/dev/null || exit 1
971
972 perl.gprof.config: config.sh
973        @echo "To build perl.gprof you must Configure -Doptimize=-pg, checking..."
974        @$(MAKE) perl.config.dashpg
975
976 perl.gprof: /usr/bin/gprof perl.gprof.config
977        @-rm -f perl
978        $(MAKE) PERL_SUFFIX=.gprof PERL_PROFILE_LDFLAGS=-pg perl
979        @echo "Now you may run perl.gprof and then run gprof perl.gprof."
980
981 # Gcov Perl
982
983 perl.config.gcov:
984        @echo "To build perl.gcov you must use gcc 3.0 or newer, checking..."
985        @echo "Checking gccversion in config.sh..."
986        @grep "^gccversion="      config.sh
987        @grep "^gccversion='[3-9]\." config.sh >/dev/null || exit 1
988        @echo "To build perl.gcov you must Configure -Dccflags=-fprofile-arcs -ftest-coverage, checking..."
989        @echo "Checking ccflags='-fprofile-arcs -ftest-coverage' in config.sh..."
990        @grep "^ccflags="      config.sh
991        @grep "^ccflags='.*-fprofile-arcs -ftest-coverage.*'" config.sh >/dev/null || exit 1
992
993 perl.gcov: perl.config.gcov
994        @-rm -f perl
995        $(MAKE) PERL_SUFFIX=.gcov PERL_PROFILE_LDFLAGS='' perl
996        @echo "Now you may run perl.gcov and then run gcov some.c."
997
1056   # Microperl.  This is just a convenience thing if one happens to
1057   # build also the full Perl and therefore the real big Makefile:
1058   # usually one should manually explicitly issue the below command.
# Line 1024 | Line 1082 | makeppport: \$(MINIPERL_EXE) \$(CONFIGPM)
1082   $spitshell >>$Makefile <<'!NO!SUBS!'
1083   .PHONY: makeppport
1084   makeppport: $(MINIPERL_EXE) $(CONFIGPM) $(nonxs_ext)
1085 <        $(MINIPERL) $(Icwd) mkppport
1085 >        $(MINIPERL) mkppport
1086  
1087   !NO!SUBS!
1088   ;;
# Line 1040 | Line 1098 | $(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
1098   $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
1099          $(MINIPERL) configpm
1100  
1043 lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
1044        $(MINIPERL) minimod.pl > lib/ExtUtils/Miniperl.pm
1045
1046 lib/buildcustomize.pl: $(MINIPERL_EXE) write_buildcustomize.pl
1047        $(MINIPERL) write_buildcustomize.pl >lib/buildcustomize.pl
1048
1101   unidatafiles $(unidatafiles) pod/perluniprops.pod: uni.data
1102  
1103   uni.data: $(MINIPERL_EXE) $(CONFIGPM) lib/unicore/mktables $(nonxs_ext)
1104 <        $(MINIPERL) $(Icwd) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p
1104 >        $(MINIPERL) lib/unicore/mktables -C lib/unicore -P pod -maketest -makelist -p
1105   #       Commented out so always runs, mktables looks at far more files than we
1106   #       can in this makefile to decide if needs to run or not
1107   #       touch uni.data
1108  
1109 < # $(PERL_EXE) and ext because buildtoc uses Text::Wrap uses re
1109 > # $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5
1110   # But also this ensures that all extensions are built before we try to scan
1111   # them, which picks up Devel::PPPort's documentation.
1112   pod/perltoc.pod: $(perltoc_pod_prereqs)  $(PERL_EXE) $(ext) pod/buildtoc
1113 <        $(RUN_PERL) -f -Ilib pod/buildtoc -q
1113 >        $(RUN_PERL) -f pod/buildtoc -q
1114  
1115   pod/perlapi.pod: pod/perlintern.pod
1116  
# Line 1066 | Line 1118 | pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.f
1118          $(MINIPERL) autodoc.pl
1119  
1120   pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
1121 <        $(MINIPERL) $(Icwd) pod/perlmodlib.PL -q
1121 >        $(MINIPERL) pod/perlmodlib.PL -q
1122  
1123 < pod/perl5182delta.pod: pod/perldelta.pod
1124 <        $(RMS) pod/perl5182delta.pod
1125 <        $(LNS) perldelta.pod pod/perl5182delta.pod
1123 > pod/perl5260delta.pod: pod/perldelta.pod
1124 >        $(RMS) pod/perl5260delta.pod
1125 >        $(LNS) perldelta.pod pod/perl5260delta.pod
1126  
1127   extra.pods: $(MINIPERL_EXE)
1128          -@test ! -f extra.pods || rm -f `cat extra.pods`
# Line 1082 | Line 1134 | extra.pods: $(MINIPERL_EXE)
1134          done
1135  
1136   extras.make: $(PERL_EXE)
1137 <        -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst`
1137 >        -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst`
1138  
1139   extras.test: $(PERL_EXE)
1140 <        -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&test(@ARGV)' `cat extras.lst`
1140 >        -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -MCPAN -e '@ARGV&&test(@ARGV)' `cat extras.lst`
1141  
1142   extras.install: $(PERL_EXE)
1143 <        -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst`
1143 >        -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst`
1144  
1145   .PHONY: install install-strip install-all install-verbose install-silent \
1146          no-install install.perl install.man install.html
1147  
1148 < install_strip install-strip:
1149 <        $(MAKE) STRIPFLAGS=-s install DESTDIR="$(DESTDIR)"
1148 > # Set this to an empty string to avoid an attempt of rebuild before install
1149 > INSTALL_DEPENDENCE = all
1150  
1151 < install install_all install-all:
1100 <        $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) DESTDIR="$(DESTDIR)"
1151 > no_install no-install: install-notify
1152  
1153 < install_verbose install-verbose:
1154 <        $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-V DESTDIR="$(DESTDIR)"
1153 > install: install-all
1154 > !NO!SUBS!
1155  
1105 install_silent install-silent:
1106        $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-S DESTDIR="$(DESTDIR)"
1156  
1157 < no_install no-install:
1158 <        $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-n DESTDIR="$(DESTDIR)"
1157 > for name in all notify silent strip verbose; do
1158 >    flags="--$name";
1159 >    flags=`echo $flags | sed -e 's/--all//'`
1160 >    if test "X$hostperl" != X; then
1161 >        $spitshell >>$Makefile <<EOT
1162  
1163 < # Set this to an empty string to avoid an attempt of rebuild before install
1164 < INSTALL_DEPENDENCE = all
1163 > install_$name install-$name: \$(INSTALL_DEPENDENCE) installperl all installman
1164 >        \$(HOST_PERL) installperl --destdir=\$(DESTDIR) $flags \$(INSTALLFLAGS) \$(STRIPFLAGS)
1165 >        \$(HOST_PERL) installman --destdir=\$(DESTDIR) $flags
1166 > EOT
1167 >    else
1168 >        $spitshell >>$Makefile <<EOT
1169  
1170 + install_$name install-$name: \$(INSTALL_DEPENDENCE) installperl all installman
1171 +        \$(RUN_PERL) installperl --destdir=\$(DESTDIR) $flags \$(INSTALLFLAGS) \$(STRIPFLAGS)
1172 +        \$(RUN_PERL) installman --destdir=\$(DESTDIR) $flags
1173 + EOT
1174 +    fi
1175 +
1176 +    test $name = notify || echo '       -@test ! -s extras.lst || PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib -MCPAN -e '\''@ARGV&&install(@ARGV)'\'' `cat extras.lst`' >>$Makefile
1177 + done
1178 +
1179 + if test "X$hostperl" != X; then
1180 +        $spitshell >>$Makefile <<'!NO!SUBS!'
1181   install.perl:   $(INSTALL_DEPENDENCE) installperl
1182 <        $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
1182 >        $(HOST_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
1183          -@test ! -s extras.lst || $(MAKE) extras.install
1184  
1185   install.man:    all installman
1186 +        $(HOST_PERL) installman --destdir=$(DESTDIR) $(INSTALLFLAGS)
1187 +
1188 + # XXX Experimental. Hardwired values, but useful for testing.
1189 + # Eventually Configure could ask for some of these values.
1190 + install.html: all installhtml
1191 +        -@test -f README.vms && cd vms && $(LNS) ../README.vms README_vms.pod && cd ..
1192 +        $(HOST_PERL) installhtml   \
1193 +      --podroot=. --podpath=. --recurse  \
1194 +      --htmldir=$(privlib)/html   \
1195 +      --htmlroot=$(privlib)/html  \
1196 +      --splithead=pod/perlipc     \
1197 +      --splititem=pod/perlfunc    \
1198 +      --ignore=Porting/Maintainers.pm,Porting/pumpkin.pod,Porting/repository.pod \
1199 +      --verbose
1200 + !NO!SUBS!
1201 + else
1202 +        $spitshell >>$Makefile <<'!NO!SUBS!'
1203 + install.perl:   $(INSTALL_DEPENDENCE) installperl
1204 +        $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS)
1205 +        -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst`
1206 +
1207 + install.man:    all installman
1208          $(RUN_PERL) installman --destdir=$(DESTDIR) $(INSTALLFLAGS)
1209  
1210   # XXX Experimental. Hardwired values, but useful for testing.
# Line 1130 | Line 1219 | install.html: all installhtml
1219        --splititem=pod/perlfunc    \
1220        --ignore=Porting/Maintainers.pm,Porting/pumpkin.pod,Porting/repository.pod \
1221        --verbose
1222 + !NO!SUBS!
1223 + fi
1224  
1225 + $spitshell >>$Makefile <<'!NO!SUBS!'
1226  
1227   # I now supply perly.c with the kits, so the following section is
1228   # used only if you force bison to run by saying
# Line 1191 | Line 1283 | regen_headers regen-headers:   FORCE
1283   regen_meta regen-meta:  META.yml META.json
1284  
1285   META.yml:   FORCE
1286 <        PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib Porting/makemeta -y
1286 >        PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) Porting/makemeta -y
1287  
1288   META.json:   FORCE
1289 <        PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib Porting/makemeta -j
1289 >        PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) Porting/makemeta -j
1290  
1291  
1292   regen_all regen-all: regen regen_meta
# Line 1219 | Line 1311 | manicheck:     FORCE
1311   # DynaLoader may be needed for extensions that use Makefile.PL.
1312  
1313   $(DYNALOADER):  $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE $(nonxs_ext)
1314 <        $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
1314 >        $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
1315  
1316   d_dummy $(dynamic_ext): $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE $(PERLEXPORT) $(LIBPERL)
1317 <        $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
1317 >        $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
1318  
1319   s_dummy $(static_ext):  $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary makeppport $(DYNALOADER) FORCE
1320 <        $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
1320 >        $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS)
1321  
1322   n_dummy $(nonxs_ext):   $(MINIPERL_EXE) lib/buildcustomize.pl preplibrary FORCE
1323 <        $(MINIPERL) make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL)
1323 >        $(MINIPERL) make_ext.pl $@ $(MAKE_EXT_ARGS) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL)
1324   !NO!SUBS!
1325  
1326   $spitshell >>$Makefile <<EOF
# Line 1239 | Line 1331 | $spitshell >>$Makefile <<'!NO!SUBS!'
1331  
1332   .PHONY: printconfig
1333   printconfig:
1334 <        @eval `$(RUN_PERL) -Ilib -V:$(CONFIGVAR)`; echo $$$(CONFIGVAR)
1334 >        @eval `$(RUN_PERL) -V:$(CONFIGVAR)`; echo $$$(CONFIGVAR)
1335  
1336   .PHONY: clean _tidy _mopup _cleaner1 _cleaner2 \
1337          realclean _realcleaner clobber _clobber \
1338          distclean veryclean _verycleaner
1339  
1340 < clean:          _tidy _mopup
1340 > clean:          realclean
1341  
1342   realclean:      _realcleaner _mopup
1343          @echo "Note that '$(MAKE) realclean' does not delete config.sh or Policy.sh"
1344  
1345   _clobber:
1346 <        -@rm -f Cross/run-* Cross/to-* Cross/from-*
1346 >        -@rm -f Cross/run-* Cross/to-* Cross/from-* Cross/mkdir
1347 >        -rm -rf host
1348          rm -f t/test_state
1349          rm -f config.sh cppstdin Policy.sh extras.lst
1350 +        rm -f $(MANIFEST_SRT)
1351  
1352   clobber:        _realcleaner _mopup _clobber
1353  
# Line 1271 | Line 1365 | _mopup:
1365          -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod
1366          -rm -f perl.exp ext.libs $(generated_pods) uni.data opmini.o perlmini.o pod/roffitall
1367          -rm -f perl.export perl.dll perl.libexp perl.map perl.def
1368 <        -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap
1275 <        -rm -f perl.third lib*.so.perl.third perl.3log t/perl.third t/perl.3log
1276 <        -rm -f perl.pixie lib*.so.perl.pixie lib*.so.Addrs
1277 <        -rm -f perl.Addrs perl.Counts t/perl.Addrs t/perl.Counts *perl.xok
1368 >        -rm -f *perl.xok
1369          -rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump
1370          -rm -f $(PERL_EXE) $(MINIPERL_EXE) $(LIBPERL) libperl.* microperl
1371 <        -rm -f config.arch config.over $(DTRACE_H) runtests
1371 >        -rm -f config.arch config.over $(DTRACE_H)
1372  
1282 # Do not 'make _tidy' directly.
1283 _tidy:
1284        -cd pod; $(LDLIBPTH) $(MAKE) clean
1285        -cd utils; $(LDLIBPTH) $(MAKE) clean
1286        -cd x2p; $(LDLIBPTH) $(MAKE) clean
1287        -rm -f lib/Config_git.pl git_version.h
1288        -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
1289        $(MINIPERL) make_ext.pl --target=clean $$x MAKE=$(MAKE) ; \
1290        done
1291
1373   _cleaner1:
1374          -cd os2; rm -f Makefile
1375          -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN)
1376          -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN)
1296        -cd x2p; $(LDLIBPTH) $(MAKE) $(CLEAN)
1377          -@if test -f $(MINIPERL_EXE) ; then \
1378          for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \
1379 <        $(MINIPERL) make_ext.pl --target=$(CLEAN) $$x MAKE=$(MAKE) ; \
1379 >        $(MINIPERL) make_ext.pl --target=$(CLEAN) $$x MAKE="$(MAKE)" ; \
1380          done ; \
1381          else \
1382          sh $(CLEAN).sh ; \
1383          fi
1384          rm -f realclean.sh veryclean.sh
1385 <        -for file in `find cpan dist ext -name ppport.h` ; do rm -f $$file; done
1385 >        -rm -f `grep -v ^# mkppport.lst | grep . | sed -e 's/$$/\/ppport.h/'`
1386  
1387   # Dear POSIX, thanks for making the default to xargs to be
1388   # run once if nothhing is passed in. It is such a great help.
# Line 1313 | Line 1393 | _cleaner2:
1393          rm -f core *perl.core t/core t/*perl.core core.* t/core.*
1394          rm -f t/$(PERL_EXE) t/rantests
1395          rm -rf t/tmp*
1316        rm -f so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
1396          rm -rf $(addedbyconf)
1397 <        rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old
1397 >        rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old makefile.old utils/Makefile
1398          rm -f $(private)
1399          rm -rf $(unidatafiles) $(unidatadirs)
1400          rm -rf lib/auto
1401          rm -f lib/.exists lib/*/.exists lib/*/*/.exists
1402 <        rm -f h2ph.man pstruct
1402 >        rm -f h2ph.man
1403          rm -rf .config
1404          rm -f preload
1326        rm -rf lib/Encode lib/Compress lib/Hash lib/re
1327        rm -rf lib/TAP lib/Module/Pluggable lib/App
1328        rm -rf lib/mro
1329        rm -rf lib/IO/Compress lib/IO/Uncompress
1330        rm -f lib/ExtUtils/ParseXS/t/XSTest.c
1331        rm -f lib/ExtUtils/ParseXS/t/XSTest$(OBJ_EXT)
1332        rm -f lib/ExtUtils/ParseXS/t/XSTest$(DLSUFFIX)
1333        rm -fr lib/B
1334        rm -fr lib/CPAN lib/CPANPLUS
1335        rm -fr lib/ExtUtils/CBuilder
1405          rm -f pod2htmd.tmp
1406          rm -rf pod/perlfunc pod/perlipc
1338        -rmdir cpan/CPANPLUS-Dist-Build/t/dummy-cpanplus cpan/CPANPLUS/t/dummy-cpanplus cpan/CPANPLUS/t/dummy-localmirror
1407          -rmdir ext/B/lib
1408 <        -rmdir lib/Archive/Tar lib/Archive lib/Attribute
1409 <        -rmdir lib/CGI lib/Carp
1410 <        -rmdir lib/Data lib/Devel lib/Digest
1411 <        -rmdir lib/ExtUtils/Command lib/ExtUtils/Constant lib/ExtUtils/Liblist lib/ExtUtils/MakeMaker
1412 <        -rmdir lib/File/Spec lib/Filter/Util lib/Filter
1413 <        -rmdir lib/I18N/LangTags lib/IO/Socket lib/IO lib/IPC
1414 <        -rmdir lib/List/Util lib/List
1415 <        -rmdir lib/Locale/Maketext lib/Locale
1416 <        -rmdir lib/Log/Message lib/Log
1417 <        -rmdir lib/Math/Big* lib/Math
1418 <        -rmdir lib/Memoize lib/MIME
1419 <        -rmdir lib/Module/Build/Platform lib/Module/Build lib/Module/Load lib/Module
1420 <        -rmdir lib/Net/FTP lib/Object
1421 <        -rmdir lib/Parse/CPAN lib/Parse
1422 <        -rmdir lib/PerlIO/via lib/PerlIO
1423 <        -rmdir lib/Package lib/Params
1424 <        -rmdir lib/Pod/Perldoc lib/Pod/Simple lib/Pod/Text
1425 <        -rmdir lib/Sys lib/Scalar/Util lib/Scalar
1426 <        -rmdir lib/Term/UI lib/Thread lib/Tie/Hash
1427 <        -rmdir lib/Test/Builder/Tester lib/Test/Builder lib/Test
1428 <        -rmdir lib/Unicode/Collate
1429 <        -rmdir lib/XS/APItest lib/XS
1430 <        -rmdir lib/inc/latest lib/inc
1431 <        -rmdir lib/autodie/exception lib/autodie lib/encoding lib/threads
1432 <        -rm -f lib/ExtUtils/CBuilder/t/libcompilet.dll.a
1433 <        -rm -f lib/ExtUtils/ParseXS/t/libXSTest.dll.a
1408 >        rm -f so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR)
1409 >        -rmdir lib/version lib/threads lib/inc/ExtUtils lib/inc lib/encoding
1410 >        -rmdir lib/autodie/exception lib/autodie/Scope lib/autodie lib/XS
1411 >        -rmdir lib/Win32API lib/VMS lib/Unicode/Collate/Locale
1412 >        -rmdir lib/Unicode/Collate/CJK lib/Unicode/Collate lib/Tie/Hash
1413 >        -rmdir lib/Thread lib/Text lib/Test2/Util lib/Test2/Tools
1414 >        -rmdir lib/Test2/IPC/Driver lib/Test2/IPC lib/Test2/Hub/Interceptor
1415 >        -rmdir lib/Test2/Hub lib/Test2/Formatter lib/Test2/Event/TAP
1416 >        -rmdir lib/Test2/Event lib/Test2/API lib/Test2 lib/Test/use
1417 >        -rmdir lib/Test/Tester lib/Test/Builder/Tester lib/Test/Builder/IO
1418 >        -rmdir lib/Test/Builder lib/Test lib/Term lib/TAP/Parser/YAMLish
1419 >        -rmdir lib/TAP/Parser/SourceHandler lib/TAP/Parser/Scheduler
1420 >        -rmdir lib/TAP/Parser/Result lib/TAP/Parser/Iterator lib/TAP/Parser
1421 >        -rmdir lib/TAP/Harness lib/TAP/Formatter/File
1422 >        -rmdir lib/TAP/Formatter/Console lib/TAP/Formatter lib/TAP
1423 >        -rmdir lib/Sys/Syslog lib/Sys lib/Sub lib/Search lib/Scalar
1424 >        -rmdir lib/Pod/Text lib/Pod/Simple lib/Pod/Perldoc lib/PerlIO/via
1425 >        -rmdir lib/PerlIO lib/Perl lib/Parse/CPAN lib/Parse lib/Params
1426 >        -rmdir lib/Net/FTP lib/Module/Load lib/Module/CoreList lib/Module
1427 >        -rmdir lib/Memoize lib/Math/BigInt lib/Math/BigFloat lib/Math lib/MIME
1428 >        -rmdir lib/Locale/Maketext lib/Locale/Codes lib/Locale lib/List/Util
1429 >        -rmdir lib/List lib/JSON/PP lib/JSON lib/IPC lib/IO/Uncompress/Adapter
1430 >        -rmdir lib/IO/Uncompress lib/IO/Socket lib/IO/Compress/Zlib
1431 >        -rmdir lib/IO/Compress/Zip lib/IO/Compress/Gzip lib/IO/Compress/Base
1432 >        -rmdir lib/IO/Compress/Adapter lib/IO/Compress lib/IO
1433 >        -rmdir lib/I18N/LangTags lib/I18N lib/Hash/Util lib/Hash lib/HTTP
1434 >        -rmdir lib/Filter/Util lib/Filter lib/File/Spec lib/ExtUtils/Typemaps
1435 >        -rmdir lib/ExtUtils/ParseXS lib/ExtUtils/MakeMaker/version
1436 >        -rmdir lib/ExtUtils/MakeMaker lib/ExtUtils/Liblist
1437 >        -rmdir lib/ExtUtils/Constant lib/ExtUtils/Command
1438 >        -rmdir lib/ExtUtils/CBuilder/Platform/Windows
1439 >        -rmdir lib/ExtUtils/CBuilder/Platform lib/ExtUtils/CBuilder
1440 >        -rmdir lib/Exporter lib/Encode/Unicode lib/Encode/MIME/Header
1441 >        -rmdir lib/Encode/MIME lib/Encode/KR lib/Encode/JP lib/Encode/CN
1442 >        -rmdir lib/Encode lib/Digest lib/Devel lib/Data lib/Config/Perl
1443 >        -rmdir lib/Compress/Raw lib/Compress lib/Carp lib/CPAN/Plugin
1444 >        -rmdir lib/CPAN/Meta/History lib/CPAN/Meta lib/CPAN/LWP
1445 >        -rmdir lib/CPAN/Kwalify lib/CPAN/HTTP lib/CPAN/FTP lib/CPAN/Exception
1446 >        -rmdir lib/CPAN/API lib/CPAN lib/Attribute lib/Archive/Tar lib/Archive
1447 >        -rmdir lib/App/Prove/State/Result lib/App/Prove/State lib/App/Prove
1448 >        -rmdir lib/App lib/Amiga
1449  
1450   _realcleaner:
1451          @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=distclean
# Line 1378 | Line 1461 | lint: $(c)
1461          rm -f *.ln
1462          lint $(lintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(c)
1463  
1464 < .PHONY: splint
1382 < splint: $(c)
1383 <        splint $(splintflags) -DPERL_CORE -D_REENTRANT -DDEBUGGING -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $(splintfiles)
1464 > cscopeflags = -Rb  # Recursive, build-only.
1465  
1466 + .PHONY: cscope
1467 + # To query the cscope.out "cscope -dLnsymbol" where n = 0 means uses,
1468 + # 1 = definitions, 2 = callees, 3 = callers, for example
1469 + # "cscope -dL1Perl_mg_set" or run cscope interactively (no arguments).
1470 + cscope.out cscope: $(c) $(h)
1471 +        cscope $(cscopeflags)
1472 +
1473   # Need to unset during recursion to go out of loop.
1474   # The README below ensures that the dependency list is never empty and
1475   # that when MAKEDEPEND is empty $(FIRSTMAKEFILE) doesn't need rebuilding.
# Line 1390 | Line 1478 | MAKEDEPEND = Makefile makedepend
1478  
1479   $(FIRSTMAKEFILE):       README $(MAKEDEPEND)
1480          $(MAKE) depend MAKEDEPEND=
1481 + !NO!SUBS!
1482  
1483 < config.h: config_h.SH config.sh
1484 <        $(SHELL) config_h.SH
1483 > for f in $SH; do
1484 >    file=`SH_to_target $f`
1485 >    $spitshell >>$Makefile <<!GROK!THIS!
1486  
1487 < .PHONY: depend
1488 < depend: makedepend
1489 <        sh ./makedepend MAKE=$(MAKE)
1490 <        cd x2p; $(MAKE) depend
1487 > $file: $f config.sh
1488 >        \$(SHELL) $f
1489 > !GROK!THIS!
1490 > done
1491  
1492 < # Cannot postpone this until $firstmakefile is ready ;-)
1403 < makedepend: makedepend.SH config.sh
1404 <        sh ./makedepend.SH
1492 > $spitshell >>$Makefile <<'!NO!SUBS!'
1493  
1494 < runtests: runtests.SH config.sh
1495 <        sh ./runtests.SH
1494 > .PHONY: depend
1495 > depend: makedepend $(DTRACE_H) $(generated_headers)
1496 >        sh ./makedepend MAKE="$(MAKE)" cflags
1497  
1498   .PHONY: test check test_prep test_prep_nodll test_prep_pre \
1499          test_prep_reonly test_tty test-tty test_notty test-notty \
1500 <        utest ucheck test.utf8 check.utf8 test.torture torturetest \
1412 <        test.utf16 check.utf16 utest.utf16 ucheck.utf16 \
1413 <        test.third check.third utest.third ucheck.third test_notty.third \
1414 <        test.deparse test_notty.deparse test_harness test_harness_notty \
1415 <        minitest coretest test.taintwarn test-reonly _test
1500 >        test_harness test_harness_notty minitest test-reonly _test
1501  
1502 + # The _test target is there just for Test::Smoke, which does a make test_prep
1503 + # always before invoking this target, thus preventing checking again
1504   _test:
1505 <        echo >&2 The _test target is deprecated. Please upgrade your smoker
1419 <        PERL=./perl $(RUN_TESTS) choose
1505 >        $(RUN_TESTS) choose
1506  
1507   # Cannot delegate rebuilding of t/perl to make
1508   # to allow interlaced test and minitest
# Line 1424 | Line 1510 | _test:
1510   # Architecture-neutral stuff:
1511  
1512   test_prep_pre: preplibrary utilities $(nonxs_ext)
1513 + !NO!SUBS!
1514  
1515 + case "$targethost" in
1516 + '') $spitshell >>$Makefile <<'!NO!SUBS!'
1517   test_prep test-prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) \
1518 <        $(dynamic_ext) $(TEST_PERL_DLL) runtests x2p/s2p x2p/find2perl \
1430 <        $(generated_pods)
1518 >        $(dynamic_ext) $(TEST_PERL_DLL) runtests $(generated_pods)
1519          cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
1520  
1521 + !NO!SUBS!
1522 + ;;
1523 + *) $spitshell >>$Makefile <<!GROK!THIS!
1524 + test_prep test-prep: test_prep_pre \$(MINIPERL_EXE) \$(unidatafiles) \$(PERL_EXE) \
1525 +        \$(dynamic_ext) \$(TEST_PERL_DLL) runtests \
1526 +        \$(generated_pods)
1527 +        $to libperl.*
1528 +        $to t/*
1529 +        $to lib/*
1530 +        $to TestInit.pm
1531 +        $to win32/FindExt.pm
1532 +        $to regen/*
1533 +        $to pod/*
1534 +        $to MANIFEST
1535 +        $to Porting/*
1536 +        $to cpan/*/t
1537 +        $to dist/*/t
1538 +        $to ext/*/t
1539 +        $to cpan/Archive-Tar/*
1540 +        $to cpan/Module-Metadata/*
1541 +        $to cpan/Term-Cap/test.pl
1542 +        $to cpan/Pod-Usage/*
1543 +        $to cpan/Pod-Parser/*
1544 +        $to cpan/IO-Compress/*
1545 +        $to cpan/HTTP-Tiny/lib/*
1546 +        $to cpan/Filter-Util-Call/filter-util.pl
1547 +        $to cpan/Digest-MD5/*
1548 +        $to cpan/Digest-SHA/*
1549 +        $to cpan/Test-Simple/*
1550 +        $to cpan/Pod-Parser/lib/*
1551 +        $to cpan/Test-Harness/*
1552 +        $to cpan/Scalar-List-Utils/*
1553 +        $to ext/IPC-Open3/*
1554 +        $to ext/Tie-Memoize/*
1555 +        $to ext/POSIX/*
1556 +        $to dist/IO/*
1557 + # --- These three are needed by ExtUtils::MM_Unix to verify PERL_CORE
1558 +        $to config_h.SH
1559 +        $to perl.h
1560 +        $to cflags
1561 +        $to *.h
1562 + # --- For t/porting/customized.t
1563 +        $to vutil.c
1564 +        $to vxs.inc
1565 + # --- For t/TEST
1566 +        $to config.sh
1567 + # --- For lib/diagnostics.t with -Duseshrplib
1568 +        $to \$(PERL_EXE)
1569 +        cd t && (rm -f \$(PERL_EXE); \$(LNS) ../\$(PERL_EXE) \$(PERL_EXE)) && cd ..
1570 +        $to t/\$(PERL_EXE)
1571 +
1572 + !GROK!THIS!
1573 + ;;
1574 + esac
1575 +
1576 + $spitshell >>$Makefile <<'!NO!SUBS!'
1577   test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL)
1578 <        $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
1578 >        $(MINIPERL) make_ext.pl $(dynamic_ext_re) MAKE="$(MAKE)" LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic
1579          cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
1580 + !NO!SUBS!
1581  
1582 + case "$targethost" in
1583 + '') $spitshell >>$Makefile <<'!NO!SUBS!'
1584 +
1585   test check: test_prep
1586          $(RUN_TESTS) choose
1587  
1588 + !NO!SUBS!
1589 + ;;
1590 + *) $spitshell >>$Makefile <<!GROK!THIS!
1591 +
1592 + test check: test_prep
1593 +        $run -cwd $targetdir/t -env "$targetenv LD_LIBRARY_PATH=$targetdir:$targetdir/lib:$targetdir/lib/auto:\$\$LD_LIBRARY_PATH" ./TEST
1594 +
1595 + !GROK!THIS!
1596 + ;;
1597 + esac
1598 +
1599 + $spitshell >>$Makefile <<'!NO!SUBS!'
1600   test_tty test-tty: test_prep
1601          $(RUN_TESTS) tty
1602  
1603   test_notty test-notty: test_prep
1604          $(RUN_TESTS) no-tty
1605  
1446 utest ucheck test.utf8 check.utf8: test_prep
1447        TEST_ARGS=-utf8 $(RUN_TESTS) choose
1448
1449 coretest: test_prep
1450        TEST_ARGS=-core $(RUN_TESTS) choose
1451
1452 # Torture testing
1453
1454 test.torture torturetest:       test_prep
1455        TEST_ARGS=-torture $(RUN_TESTS) choose
1456
1457 # Targets for UTF16 testing:
1458
1459 minitest.utf16: minitest.prep
1460        - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
1461                && $(RUN_PERL) TEST -utf16 base/*.t comp/*.t cmd/*.t run/*.t io/*.t opbasic/*.t op/*.t uni/*.t </dev/tty
1462
1463 test.utf16 check.utf16: test_prep
1464        TEST_ARGS=-utf16 $(RUN_TESTS) choose
1465
1466 utest.utf16 ucheck.utf16: test_prep
1467        TEST_ARGS="-utf8 -utf16" $(RUN_TESTS) choose
1468
1606   !NO!SUBS!
1607  
1608   case "${osname}${osvers}" in
# Line 1473 | Line 1610 | linux*|darwin*)
1610          $spitshell >>$Makefile <<'!NO!SUBS!'
1611   # Targets for valgrind testing:
1612  
1613 < test_prep.valgrind: test_prep perl.valgrind
1614 <
1615 < test.valgrind check.valgrind:   test_prep perl.valgrind.config
1616 <        PERL_VALGRIND=1 VALGRIND='$(VALGRIND)' $(RUN_TESTS) choose
1617 <
1618 < utest.valgrind ucheck.valgrind: test_prep.valgrind perl.valgrind.config
1619 <        PERL_VALGRIND=1 TEST_ARGS=-utf8 $(RUN_TESTS) choose
1483 <
1484 < test_notty.valgrind: test_prep.valgrind perl.valgrind.config
1485 <        PERL_VALGRIND=1 $(RUN_TESTS) no-tty
1613 > test.valgrind check.valgrind:   test_prep
1614 >        @echo "Checking usemymalloc='n' in config.sh..."
1615 >        @grep "^usemymalloc="    config.sh
1616 >        @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1
1617 >        @echo "And of course you have to have valgrind..."
1618 >        $(VALGRIND) $(VG_TEST) || exit 1
1619 >        PERL_VALGRIND=1 VALGRIND='$(VALGRIND)' TESTFILE=harness $(RUN_TESTS) choose
1620   !NO!SUBS!
1621          ;;
1622   esac
1623  
1624   $spitshell >>$Makefile <<'!NO!SUBS!'
1625  
1626 < # Targets for Third Degree testing.
1627 <
1628 < test_prep.third: test_prep perl.third
1495 <        cd t && (rm -f ./perl.third$(EXE_EXT); $(LNS) ../perl.third$(EXE_EXT) perl.third(EXE_EXT))
1496 <
1497 < test.third check.third: test_prep.third perl.third
1498 <        PERL=./perl.third PERL_3LOG=1 $(RUN_TESTS) choose
1499 <
1500 < utest.third ucheck.third: test_prep.third perl.third
1501 <        PERL=./perl.third PERL_3LOG=1 TEST_ARGS=-utf8 $(RUN_TESTS) choose
1502 <
1503 < test_notty.third: test_prep.third perl.third
1504 <        PERL=./perl.third PERL_3LOG=1 $(RUN_TESTS) choose
1505 <
1506 < # Targets for Deparse testing.
1507 <
1508 < test.deparse:   test_prep
1509 <        TEST_ARGS=-deparse $(RUN_TESTS) choose
1510 <
1511 < test_notty.deparse:     test_prep
1512 <        TEST_ARGS=-deparse $(RUN_TESTS) no-tty
1513 <
1514 < # Targets to run the test suite with -t
1515 <
1516 < test.taintwarn: test_prep
1517 <        TEST_ARGS=-taintwarn $(RUN_TESTS) choose
1518 <
1519 < minitest.prep:
1626 > # minitest can't depend on lib/Config.pm because that might be where miniperl
1627 > # is crashing.
1628 > minitest_prep:
1629          -@test -f lib/Config.pm || $(MAKE) lib/Config.pm $(unidatafiles)
1630          @echo " "
1631          @echo "You may see some irrelevant test failures if you have been unable"
1632          @echo "to build lib/Config.pm, or the Unicode data files."
1633          @echo " "
1634 +        - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE))
1635  
1636 < # Can't depend on lib/Config.pm because that might be where miniperl
1527 < # is crashing.
1528 < minitest: $(MINIPERL_EXE) minitest.prep
1529 <        - cd t && (rm -f $(PERL_EXE); $(LNS) ../$(MINIPERL_EXE) $(PERL_EXE)) \
1530 <                && $(RUN_PERL) TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t </dev/tty
1636 > MINITEST_TESTS = base/*.t comp/*.t cmd/*.t run/*.t io/*.t re/*.t opbasic/*.t op/*.t uni/*.t perf/*.t
1637  
1638 + minitest: $(MINIPERL_EXE) minitest_prep
1639 +        - cd t && $(RUN_PERL) TEST $(MINITEST_TESTS) <$(devtty)
1640 +
1641 + minitest-notty minitest_notty: $(MINIPERL_EXE) minitest_prep
1642 +        - cd t && PERL_SKIP_TTY_TEST=1 $(RUN_PERL) TEST $(MINITEST_TESTS)
1643 +
1644   # Test via harness
1645  
1646   test_harness test-harness: test_prep
# Line 1554 | Line 1666 | test_porting test-porting: test_prep
1666   .PHONY: ok okfile oknack okfilenack nok nokfile noknack nokfilenack
1667  
1668   ok:     utilities
1669 <        $(RUN_PERL) -Ilib utils/perlbug -ok -s '(UNINSTALLED)'
1669 >        $(RUN_PERL) utils/perlbug -ok -s '(UNINSTALLED)'
1670  
1671   okfile: utilities
1672 <        $(RUN_PERL) -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok
1672 >        $(RUN_PERL) utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok
1673  
1674   oknack: utilities
1675 <        $(RUN_PERL) -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -A
1675 >        $(RUN_PERL) utils/perlbug -ok -s '(UNINSTALLED)' -A
1676  
1677   okfilenack:     utilities
1678 <        $(RUN_PERL) -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok -A
1678 >        $(RUN_PERL) utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok -A
1679  
1680   nok:    utilities
1681 <        $(RUN_PERL) -Ilib utils/perlbug -nok -s '(UNINSTALLED)'
1681 >        $(RUN_PERL) utils/perlbug -nok -s '(UNINSTALLED)'
1682  
1683   nokfile:        utilities
1684 <        $(RUN_PERL) -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok
1684 >        $(RUN_PERL) utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok
1685  
1686   noknack:        utilities
1687 <        $(RUN_PERL) -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -A
1687 >        $(RUN_PERL) utils/perlbug -nok -s '(UNINSTALLED)' -A
1688  
1689   nokfilenack:    utilities
1690 <        $(RUN_PERL) -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A
1690 >        $(RUN_PERL) utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A
1691  
1692 < .PHONY: clist hlist shlist
1692 > .PHONY: clist hlist
1693  
1694   clist:  $(c)
1695          echo $(c) | tr ' ' $(TRNL) >.clist
# Line 1585 | Line 1697 | clist: $(c)
1697   hlist:  $(h)
1698          echo $(h) | tr ' ' $(TRNL) >.hlist
1699  
1588 shlist: $(sh)
1589        echo $(sh) | tr ' ' $(TRNL) >.shlist
1590
1591 Makefile: Makefile.SH ./config.sh
1592        $(SHELL) Makefile.SH
1593
1700   .PHONY: distcheck
1701   distcheck: FORCE
1702          perl '-MExtUtils::Manifest=&fullcheck' -e 'fullcheck()'
1703  
1704   .PHONY: ctags
1705  
1706 + TAGS: $(c1) $(c2) $(c3) $(c4) $(c5) $(h)
1707 +        etags $(c1) $(c2) $(c3) $(c4) $(c5) $(h)
1708 +
1709   ctags:
1710          ctags -f Tags -N --totals --languages=c --langmap=c:+.h --exclude=opmini.c --exclude=perlmini.c *.c *.h
1711  
# Line 1605 | Line 1714 | ctags:
1714   !NO!SUBS!
1715  
1716   $eunicefix Makefile
1608 case `pwd` in
1609 *SH)
1610    $rm -f ../Makefile
1611    $ln Makefile ../Makefile
1612    ;;
1613 esac
1717   $rm -f $firstmakefile
1718  
1719   # Now do any special processing required before building.
# Line 1621 | Line 1724 | define)
1724      echo "This is an EBCDIC system, checking if any parser files need regenerating." >&2
1725   case "$osname" in
1726   os390|posix-bc)
1624    if cd x2p
1625    then
1626        rm -f y.tab.c y.tab.h
1627        case "$osname" in
1628        posix-bc)
1629           # we are using two different yaccs in BS2000 Posix!
1630           byacc a2p.y >/dev/null 2>&1
1631           ;;
1632        *) # e.g. os390
1633           yacc  a2p.y >/dev/null 2>&1
1634           ;;
1635        esac
1636        if cmp -s y.tab.c a2p.c
1637        then
1638            rm -f y.tab.c
1639        else
1640            echo "a2p.y -> a2p.c" >&2
1641            mv -f y.tab.c a2p.c
1642            chmod u+w a2p.c
1643            sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \
1644                -e 's|^static void __YY_YACC_MAIN.*BS2000.*|/*static main deleted*/|' \
1645                -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp && mv a2p.tmp a2p.c
1646            xxx="$xxx a2p.c"
1647        fi
1648        # In case somebody yacc -d:ed the a2p.y.
1649        if test -f y.tab.h
1650        then
1651            if cmp -s y.tab.h a2p.h
1652            then
1653                rm -f y.tab.h
1654            else
1655                echo "a2p.h -> a2p.h" >&2
1656                mv -f y.tab.h a2p.h
1657                xxx="$xxx a2p.h"
1658            fi
1659        fi
1660        cd ..
1661    fi
1727      ;;
1728   *)
1729      echo "'$osname' is an EBCDIC system I don't know that well." >&4

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines