X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=17ffa7183b9db7eeb677f35534b6c27ff27294b4;hb=85831461cd8850ede28b33bf03b6fe7a7904e0dc;hp=2e82a8e2f6d44af33e61693bd3b1e0893800a852;hpb=744ac0eac539aead596d9fa09cc15a20b09a5884;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index 2e82a8e..17ffa71 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -59,7 +59,7 @@ true) esac pldlflags="$cccdlflags" - static_target='static_pic' + static_ldflags='' case "${osname}${osvers}" in next4*) ld=libtool @@ -175,7 +175,7 @@ EOT ;; *) pldlflags='' - static_target='static' + static_ldflags='CCCDLFLAGS=' ;; esac @@ -201,12 +201,20 @@ static_list=' ' for f in $static_ext; do base=`echo "$f" | sed 's/.*\///'` static_list="$static_list lib/auto/$f/$base\$(LIB_EXT)" + : Parallel makes reveal that we have some interdependencies + this_target="lib/auto/$f/$base\$(LIB_EXT)" + case $f in + Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep +$this_target: lib/auto/List/Util/Util\$(LIB_EXT)" ;; + Unicode/Normalize) extra_dep="$extra_dep +$this_target: uni.data" ;; + esac done nonxs_list=' ' for f in $nonxs_ext; do - base=`echo "$f" | sed 's/.*\///'` - nonxs_list="$nonxs_list ext/$f/pm_to_blib" + p=`echo "$f" | tr / -` + nonxs_list="$nonxs_list ext/$p/pm_to_blib" done dtrace_h='' @@ -272,8 +280,8 @@ SHRPENV = $shrpenv # if building a shared libperl.so that might later be linked into # another application, then it might be appropriate to also build static # extensions (usually just DynaLoader) with relocatable code (e.g. -fPIC -# for GNU cc). This is handled by make_ext.pl. -STATIC = $static_target +# for GNU cc). +STATIC_LDFLAGS = $static_ldflags # The following is used to include the current directory in # the dynamic loader path you are building a shared libperl. @@ -400,7 +408,7 @@ esac ## In the following dollars and backticks do not need the extra backslash. $spitshell >>$Makefile <<'!NO!SUBS!' -private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm +private = preplibrary $(CONFIGPM) $(CONFIGPOD) lib/ExtUtils/Miniperl.pm git_version.h # Files to be built with variable substitution before miniperl # is available. @@ -439,7 +447,7 @@ h = $(h1) $(h2) $(h3) $(h4) $(h5) 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 c2 = perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c -c3 = taint.c toke.c util.c deb.c run.c universal.c xsutils.c pad.c globals.c +c3 = taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c c4 = perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c c5 = $(madlysrc) $(mallocsrc) @@ -448,12 +456,15 @@ c = $(c1) $(c2) $(c3) $(c4) $(c5) miniperlmain.c perlmain.c opmini.c perlmini.c obj0 = op$(OBJ_EXT) perl$(OBJ_EXT) 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) 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) -obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) xsutils$(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) +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) mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) 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 +generated_pods = pod/perltoc.pod $(perltoc_pod_prereqs) + lintflags = \ -b \ -n \ @@ -521,7 +532,7 @@ splintfiles = $(c1) .c.s: $(CCCMDSRC) -S $*.c -all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) miniperl extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make +all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) miniperl $(generated_pods) $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make @echo " "; @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." @@ -569,10 +580,10 @@ perlmini.c: perl.c perlmini\$(OBJ_EXT): perlmini.c \$(CCCMD) \$(PLDLFLAGS) $DPERL_IS_MINIPERL perlmini.c -globals\$(OBJ_EXT): uudmap.h +globals\$(OBJ_EXT): uudmap.h bitcount.h -uudmap.h: generate_uudmap\$(HOST_EXE_EXT) - \$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) >uudmap.h +uudmap.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) \$(CC) -o generate_uudmap\$(EXE_EXT) \$(LDFLAGS) generate_uudmap\$(OBJ_EXT) \$(libs) @@ -914,7 +925,7 @@ $spitshell >>$Makefile <1, wanted => sub {autosplit_lib_modules($$_) if /\.pm$$/}}, "lib")' $(MAKE) lib/re.pm -$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary +$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh miniperl$(EXE_EXT) configpm Porting/Glossary lib/Config_git.pl $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib configpm lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl $(CONFIGPM) @@ -954,7 +965,7 @@ lib/re.pm: ext/re/re.pm $(plextract): miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p @-rm -f $@ - $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -I`pwd`/lib $@.PL + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -I"`pwd`/lib" $@.PL x2p/s2p: miniperl$(EXE_EXT) $(CONFIGPM) x2p/s2p.PL cd x2p; $(LDLIBPTH) $(MAKE) s2p @@ -969,18 +980,29 @@ uni.data: miniperl$(EXE_EXT) $(CONFIGPM) lib/unicore/mktables cd lib/unicore && $(LDLIBPTH) $(RUN) ../../miniperl$(EXE_EXT) -I../../lib mktables -w touch uni.data +# perl$(EXE_EXT) and ext because buildtoc uses Text::Wrap uses re +# But also this ensures that all extensions are built before we try to scan +# them, which picks up Devel::PPPort's documentation. +pod/perltoc.pod: $(perltoc_pod_prereqs) perl$(EXE_EXT) $(ext) pod/buildtoc + $(LDLIBPTH) $(RUN) ./perl$(EXE_EXT) -Ilib pod/buildtoc --build-toc -q + +pod/perlapi.pod pod/perlintern.pod: miniperl$(EXE_EXT) autodoc.pl embed.fnc + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib autodoc.pl + +pod/perlmodlib.pod: miniperl$(EXE_EXT) pod/perlmodlib.PL MANIFEST + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib pod/perlmodlib.PL -q + +pod/perldelta.pod: pod/perl5110delta.pod + $(LNS) perl5110delta.pod pod/perldelta.pod + extra.pods: miniperl$(EXE_EXT) -@test ! -f extra.pods || rm -f `cat extra.pods` -@rm -f extra.pods -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ nx=`echo $$x | sed -e "s/README\.//"`; \ - cd pod ; $(LNS) ../$$x "perl"$$nx".pod" ; cd .. ; \ + $(LNS) ../$$x "pod/perl"$$nx".pod" ; \ echo "pod/perl"$$nx".pod" >> extra.pods ; \ done - -@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/perl5110delta.pod && cd pod && $(LNS) perl5110delta.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) $(RUN) ./perl -Ilib -MCPAN -e '@ARGV&&make(@ARGV)' `cat extras.lst` @@ -1069,7 +1091,6 @@ SYMH = perlvars.h intrpvar.h CHMOD_W = chmod +w # The following files are generated automatically -# autodoc.pl: pod/perlapi.pod pod/perlintern.pod # embed.pl: proto.h embed.h embedvar.h global.sym # perlapi.h perlapi.c # [* embed.pl needs pp.sym generated by opcode.pl! *] @@ -1086,11 +1107,10 @@ CHMOD_W = chmod +w AUTOGEN_FILES = keywords.h opcode.h opnames.h pp_proto.h pp.sym proto.h \ embed.h embedvar.h global.sym \ - pod/perlintern.pod pod/perlapi.pod \ perlapi.h perlapi.c regnodes.h \ warnings.h lib/warnings.pm -.PHONY: regen_headers regen_pods regen_all +.PHONY: regen_headers regen_all regen: FORCE -perl regen.pl @@ -1098,16 +1118,13 @@ regen: FORCE regen_headers: FORCE -perl regen.pl -v -regen_pods: FORCE - -cd pod; $(LDLIBPTH) $(MAKE) regen_pods - -regen_all: regen regen_pods +regen_all: regen .PHONY: manisort manicheck manisort: FORCE - LC_ALL=C sort -fdc MANIFEST || (echo "WARNING: re-sorting MANIFEST"; \ - LC_ALL=C sort -fdo MANIFEST MANIFEST) + @perl Porting/manisort -q || (echo "WARNING: re-sorting MANIFEST"; \ + perl Porting/manisort -q -o MANIFEST; sh -c true) manicheck: FORCE perl Porting/manicheck @@ -1123,16 +1140,16 @@ manicheck: FORCE # DynaLoader may be needed for extensions that use Makefile.PL. $(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE - $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --target=$(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) d_dummy $(dynamic_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE - $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --target=dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=dynamic s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary makeppport $(DYNALOADER) FORCE - $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --target=$(STATIC) $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) LINKTYPE=static $(STATIC_LDFLAGS) n_dummy $(nonxs_ext): miniperl$(EXE_EXT) preplibrary FORCE - $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl --target=nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + $(LDLIBPTH) $(RUN) ./miniperl$(EXE_EXT) -Ilib make_ext.pl $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) !NO!SUBS! $spitshell >>$Makefile <