X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=d570775efa4331fc5ccdacc1c9d34fe24a120c8b;hb=ea581a515b67cceacd5ceea839a0bff72973e0b1;hp=8721d608c6b667ad4b013d11386c5ee5a22f1574;hpb=4979e2888f6553e6e237ea088f8b66b30ea28592;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index 8721d60..d570775 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -68,7 +68,8 @@ true) -install_name \$(shrpdir)/\$@" ;; cygwin*) - linklibperl="-lperl" + shrpldflags="$shrpldflags -Wl,--out-implib=libperl.dll.a -Wl,--image-base,0x52000000" + linklibperl="-L. -lperl" ;; sunos*) linklibperl="-lperl" @@ -164,7 +165,7 @@ for f in $dynamic_ext; do : Parallel makes reveal that we have some interdependencies case $f in - Math/BigInt/FastCalc) extra_dep="$extra_dep + Math/BigInt/FastCalc|Devel/NYTProf) extra_dep="$extra_dep $this_target: lib/auto/List/Util/Util.$dlext" ;; Unicode/Normalize) extra_dep="$extra_dep $this_target: uni.data" ;; @@ -183,6 +184,16 @@ for f in $nonxs_ext; do nonxs_list="$nonxs_list ext/$f/pm_to_blib" done +dtrace_h='' +dtrace_o='' +case "$usedtrace" in +define|true) + dtrace_h='perldtrace.h' + $dtrace -G -s perldtrace.d -o perldtrace.tmp >/dev/null 2>&1 \ + && rm -f perldtrace.tmp && dtrace_o='perldtrace$(OBJ_EXT)' + ;; +esac + echo "Extracting Makefile (with variable substitutions)" $spitshell >Makefile < sperl.i + .PHONY: all translators utilities translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE @@ -492,19 +517,9 @@ miniperlmain$(OBJ_EXT): miniperlmain.c patchlevel.h perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE) sh writemain $(DYNALOADER) $(static_ext) > perlmain.c -!NO!SUBS! -case "$osname" in -cygwin) - ;; # Let cygwin/Makefile.SHs do its work. -*) - $spitshell >>Makefile <<'!NO!SUBS!' perlmain$(OBJ_EXT): perlmain.c $(CCCMD) $(PLDLFLAGS) $*.c -!NO!SUBS! - ;; -esac -$spitshell >>Makefile <<'!NO!SUBS!' # The file ext.libs is a list of libraries that must be linked in # for static extensions, e.g. -lm -lgdbm, etc. The individual # static extension Makefile's add to it. @@ -577,15 +592,48 @@ perl5.def: $(MINIPERLEXP) makedef.pl config.sh $(SYM) $(SYMH) miniperl.map !NO!SUBS! ;; +cygwin) + $spitshell >>Makefile <<'!NO!SUBS!' +cygwin.c: cygwin/cygwin.c + $(LNS) cygwin/cygwin.c + +LIBPERL_NONSHR = libperl$(LIB_EXT) + +$(LIBPERL_NONSHR): $(obj) + $(RMS) $(LIBPERL_NONSHR) + $(AR) rcu $(LIBPERL_NONSHR) $(obj) + +!NO!SUBS! + ;; esac -if test -r $Makefile_s ; then +if test -s $Makefile_s ; then . $Makefile_s $spitshell >>Makefile <>Makefile <<'!NO!SUBS!' +$(DTRACE_H): perldtrace.d + $(DTRACE) -h -s perldtrace.d -o $(DTRACE_H) + +mydtrace.h: $(DTRACE_H) + +!NO!SUBS! + ;; + esac + case "$dtrace_o" in + ?*) + $spitshell >>Makefile <<'!NO!SUBS!' +$(DTRACE_O): perldtrace.d + $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) + +!NO!SUBS! + ;; + esac $spitshell >>Makefile <<'!NO!SUBS!' $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT) !NO!SUBS! @@ -823,12 +871,6 @@ esac $spitshell >>Makefile <<'!NO!SUBS!' -sperl$(OBJ_EXT): perl.c $(h) - $(RMS) sperl.c - $(LNS) perl.c sperl.c - $(CCCMD) -DIAMSUID sperl.c - $(RMS) sperl.c - # We have to call our ./makedir because Ultrix 4.3 make can't handle the line # test -d lib/auto || mkdir lib/auto # We need to autosplit in two steps because VOS can't handle so many args @@ -837,10 +879,10 @@ sperl$(OBJ_EXT): perl.c $(h) preplibrary: miniperl$(EXE_EXT) $(CONFIGPM) lib/lib.pm $(PREPLIBRARY_LIBPERL) @sh ./makedir lib/auto @echo " AutoSplitting perl library" - $(LDLIBPTH) $(RUN) ./miniperl -Ilib -e 'use AutoSplit; \ - autosplit_lib_modules(@ARGV)' lib/*.pm - $(LDLIBPTH) $(RUN) ./miniperl -Ilib -e 'use AutoSplit; \ - autosplit_lib_modules(@ARGV)' lib/*/*.pm + $(LDLIBPTH) $(RUN) ./miniperl -Ilib -MAutoSplit -MFile::Find -e ' \ + find ({no_chdir=>1, wanted => \ + sub {autosplit_lib_modules($$_) if /\.pm$$/}}, \ + "lib")' $(MAKE) lib/re.pm lib/Config.pod: config.sh miniperl$(EXE_EXT) configpm Porting/Glossary @@ -995,9 +1037,12 @@ AUTOGEN_FILES = keywords.h opcode.h opnames.h pp_proto.h pp.sym proto.h \ .PHONY: regen_headers regen_pods regen_all -regen regen_headers: FORCE +regen: FORCE -perl regen.pl +regen_headers: FORCE + -perl regen.pl -v + regen_pods: FORCE -cd pod; $(LDLIBPTH) $(MAKE) regen_pods @@ -1057,6 +1102,7 @@ realclean: cleanup_unpacked_files _realcleaner _mopup _clobber: -@rm -f Cross/run-* Cross/to-* Cross/from-* + rm -f t/test_state rm -f config.sh cppstdin Policy.sh extras.lst clobber: cleanup_unpacked_files _realcleaner _mopup _clobber @@ -1082,7 +1128,7 @@ _mopup: -rm -f cygwin.c libperl*.def libperl*.dll cygperl*.dll *.exe.stackdump -rm -f perl$(EXE_EXT) suidperl$(EXE_EXT) miniperl$(EXE_EXT) $(LIBPERL) libperl.* microperl -rm -f opcode.h-old opnames.h-old pp.sym-old pp_proto.h-old - -rm -f config.over + -rm -f config.arch config.over $(DTRACE_H) # Do not 'make _tidy' directly. _tidy: @@ -1123,13 +1169,13 @@ _cleaner2: rm -f lib/ExtUtils/ParseXS/t/XSTest.c rm -f lib/ExtUtils/ParseXS/t/XSTest$(OBJ_EXT) rm -f lib/ExtUtils/ParseXS/t/XSTest$(DLSUFFIX) - -rmdir lib/B lib/Data + rm -fr lib/B + -rmdir lib/Data -rmdir lib/Filter/Util lib/IO/Socket -rmdir lib/List lib/MIME lib/Scalar lib/Sys -rmdir lib/threads lib/XS -rmdir lib/CPANPLUS/Dist/Build/t/dummy-* -rmdir lib/CPANPLUS/t/dummy-cpanplus lib/CPANPLUS/t/dummy-localmirror - -rm -f cygcrypt-0.dll cygwin1.dll -rm -f lib/ExtUtils/CBuilder/t/libcompilet.dll.a -rm -f lib/ExtUtils/ParseXS/t/libXSTest.dll.a