X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=d570775efa4331fc5ccdacc1c9d34fe24a120c8b;hb=ea581a515b67cceacd5ceea839a0bff72973e0b1;hp=28f8436622dec47a5154ab71701388498af55d05;hpb=5ac1e9b286b068746476878a8a6206b06828a175;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index 28f8436..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" ;; @@ -460,6 +461,15 @@ all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $ @echo " "; @echo " Everything is up to date. Type '$(MAKE) test' to run test suite." +sperl$(OBJ_EXT): perl.c $(h) + $(RMS) sperl.c + $(LNS) perl.c sperl.c + $(CCCMD) -DIAMSUID sperl.c + $(RMS) sperl.c + +sperl.i: perl.c $(h) + $(CCCMDSRC) -DIAMSUID -E perl.c > sperl.i + .PHONY: all translators utilities translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE @@ -507,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. @@ -592,9 +592,22 @@ 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!' -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 @@ -872,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 @@ -1030,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 @@ -1092,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 @@ -1117,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 $(DTRACE_H) + -rm -f config.arch config.over $(DTRACE_H) # Do not 'make _tidy' directly. _tidy: @@ -1165,7 +1176,6 @@ _cleaner2: -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