X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=d0b5465b8a5764037305f440e07031ee2dba7045;hb=ce08f86c8b1d404b3d9fec75a102b8cd65f8766a;hp=9b160edf297058f55dfb68802b135f14428f7a37;hpb=9fba8746fe404a1cb38d0356aa0483a293ba1d19;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index 9b160ed..d0b5465 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -70,7 +70,7 @@ true) *) shrpldflags="$shrpldflags -b noentry" ;; esac - shrpldflags="$shrpldflags $ldflags $libs $cryptlib" + shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" ;; hpux*) @@ -137,6 +137,7 @@ CLDFLAGS = $ldflags mallocsrc = $mallocsrc mallocobj = $mallocobj LNS = $lns +CPS = $cp -f RMS = rm -f ranlib = $ranlib @@ -174,7 +175,7 @@ nonxs_ext = $nonxs_list ext = \$(dynamic_ext) \$(static_ext) \$(nonxs_ext) DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT) -libs = $libs $cryptlib +libs = $perllibs $cryptlib public = perl $suidperl utilities translators @@ -204,11 +205,12 @@ SHELL = $sh # how to tr(anslate) newlines TRNL = '$trnl' +!GROK!THIS! # not used by Makefile but by installperl; -# mentioned here so that metaconfig picks it up -INSTALL_USR_BIN_PERL = $installusrbinperl +# mentioned here so that metaconfig picks these up +# $installusrbinperl +# $versiononly -!GROK!THIS! ## In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' @@ -299,9 +301,13 @@ utilities: miniperl lib/Config.pm $(plextract) lib/lib.pm FORCE FORCE: @sh -c true -opmini$(OBJ_EXT): op.c +# We do a copy of the op.c instead of a symlink because gcc gets huffy +# 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 - $(LNS) op.c opmini.c + $(CPS) op.c opmini.c $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB opmini.c $(RMS) opmini.c @@ -323,14 +329,6 @@ ext.libs: $(static_ext) !NO!SUBS! -# if test -f .patch ; then $spitshell >>Makefile <<'!NO!SUBS!' -# patchlevel.h: .patch -# perl fix_pl || (make -f Makefile.micro && ./microperl fix_pl) -# $(SHELL) Makefile.SH -# fi -# -# !NO!SUBS! - # How to build libperl. This is still rather convoluted. # Load up custom Makefile.SH fragment for shared loading and executables: case "$osname" in @@ -342,7 +340,7 @@ esac case "$osname" in aix) $spitshell >>Makefile <perly.tmp && mv perly.tmp perly.c @@ -617,6 +615,11 @@ perly.c: perly.y perly.h: perly.y -@sh -c true +PERLYVMS = vms/perly_c.vms vms/perly_h.vms + +$(PERLYVMS): perly.c perly.h vms/vms_yfix.pl + perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms + # No compat3.sym here since and including the 5.004_50. # No interp.sym since 5.005_03. SYM = global.sym globvar.sym perlio.sym pp.sym @@ -641,6 +644,31 @@ CHMOD_W = chmod +w # To force them to be regenerated, type # make regen_headers +keywords.h: keywords.pl + -perl keywords.pl + +OPCODE_PL_OUTPUT = opcode.h opnames.h pp_proto.h pp.sym + +$(OPCODE_PL_OUTPUT): opcode.pl + -perl opcode.pl + +# Really the prerequisites for the next rule should only be "embed.pl pp.sym" +# Writing it this way gives make a big hint to always run opcode.pl before +# embed.pl. The alternative - running embed.pl then opcode.pl causes embed.pl +# to be re-run next make invocation, and then all object files get recompiled. + +proto.h embed.h embedvar.h global.sym objXSUB.h perlapi.h perlapi.c pod/perlintern.pod pod/perlapi.pod: embed.pl $(OPCODE_PL_OUTPUT) + -perl embed.pl + +ext/ByteLoader/byterun.h ext/ByteLoader/byterun.c ext/B/B/Asmdata.pm: bytecode.pl + -perl bytecode.pl + +regnodes.h: regcomp.pl + -perl regcomp.pl + +warnings.h lib/warnings.pm: warnings.pl + -perl warnings.pl + 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 \ @@ -660,6 +688,8 @@ regen_headers: FORCE regen_pods: FORCE -cd pod; $(LDLIBPTH) make regen_pods +regen_all: $(PERLYVMS) regen_headers regen_pods + # Extensions: # Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will # automatically get built. There should ordinarily be no need to change @@ -733,11 +763,11 @@ _cleaner2: rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old rm -f $(private) rm -rf lib/auto - rm -f lib/.exists lib/*/.exists + rm -f lib/.exists lib/*/.exists lib/*/*/.exists rm -f h2ph.man pstruct rm -rf .config rm -f testcompile compilelog - -rmdir lib/B lib/Data lib/IO/Socket lib/IO lib/Sys lib/Thread + -rmdir lib/B lib/Data lib/Encode lib/IO/Socket lib/IO lib/Filter/Util lib/Sys lib/Thread _realcleaner: @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=realclean @@ -822,12 +852,24 @@ ok: utilities okfile: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok +oknack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -A + +okfilenack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok -A + nok: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' nokfile: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok +noknack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -A + +nokfilenack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A + clist: $(c) echo $(c) | tr ' ' $(TRNL) >.clist