X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b233458bd1d5037ce4bbbb41fb513e1b68522a4d..b7b35fc2ae6a316b9f0c068d7cb230b4c8fbc9f5:/Makefile.SH diff --git a/Makefile.SH b/Makefile.SH index 8afaae4..ef1a0e2 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -194,22 +194,11 @@ SHELL = $sh # how to tr(anslate) newlines TRNL = '$trnl' -# this is where the sources are -src = $src -# this is src quoted for use in regexen -srcqre = `echo $src|sed -e 's@^\.$@\\\.@' -e 's@^\./$@\\\./@' -e 's@^\.\./@\\\.\\\./@g` +# not used by Makefile but by installperl; +# mentioned here so that metaconfig picks it up +INSTALL_USR_BIN_PERL = $installusrbinperl -# nice makes grok this !GROK!THIS! -if $test X. != X$src; then -$spitshell >>Makefile <>Makefile <>Makefile <<'!NO!SUBS!' @@ -241,18 +230,19 @@ h1 = EXTERN.h INTERN.h XSUB.h av.h config.h cop.h cv.h dosish.h h2 = embed.h form.h gv.h handy.h hv.h keywords.h mg.h op.h h3 = opcode.h patchlevel.h perl.h perly.h pp.h proto.h regcomp.h h4 = regexp.h scope.h sv.h unixish.h util.h iperlsys.h thread.h -h5 = utf8.h warning.h +h5 = utf8.h warnings.h h = $(h1) $(h2) $(h3) $(h4) $(h5) c1 = $(mallocsrc) av.c scope.c op.c doop.c doio.c dump.c hv.c mg.c c2 = perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c -c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c globals.c perlio.c +c3 = gv.c sv.c taint.c toke.c util.c deb.c run.c universal.c xsutils.c +c4 = globals.c perlio.c -c = $(c1) $(c2) $(c3) miniperlmain.c perlmain.c +c = $(c1) $(c2) $(c3) $(c4) miniperlmain.c perlmain.c obj1 = $(mallocobj) gv$(OBJ_EXT) toke$(OBJ_EXT) perly$(OBJ_EXT) op$(OBJ_EXT) regcomp$(OBJ_EXT) dump$(OBJ_EXT) util$(OBJ_EXT) mg$(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) globals$(OBJ_EXT) perlio$(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) obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) @@ -271,7 +261,7 @@ lintflags = -hbvxac .c$(OBJ_EXT): $(CCCMD) $(PLDLFLAGS) $*.c -all: $(FIRSTMAKEFILE) miniperl $(private) $(plextract) $(public) $(dynamic_ext) $(nonxs_ext) +all: $(FIRSTMAKEFILE) miniperl $(private) $(public) $(dynamic_ext) $(nonxs_ext) @echo " "; @echo " Everything is up to date. 'make test' to run test suite." @@ -284,7 +274,7 @@ compile: all translators: miniperl lib/Config.pm FORCE @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all -utilities: miniperl lib/Config.pm FORCE +utilities: miniperl lib/Config.pm $(plextract) FORCE @echo " "; echo " Making utilities"; cd utils; $(LDLIBPTH) $(MAKE) all @@ -296,12 +286,12 @@ utilities: miniperl lib/Config.pm FORCE FORCE: @sh -c true -miniperlmain$(OBJ_EXT): $(src)/miniperlmain.c +miniperlmain$(OBJ_EXT): miniperlmain.c $(CCCMD) $(PLDLFLAGS) $*.c -perlmain.c: $(src)/miniperlmain.c config.sh $(FIRSTMAKEFILE) +perlmain.c: miniperlmain.c config.sh $(FIRSTMAKEFILE) sh writemain $(DYNALOADER) $(static_ext) > writemain.tmp - sh $(src)/mv-if-diff writemain.tmp perlmain.c + sh mv-if-diff writemain.tmp perlmain.c perlmain$(OBJ_EXT): perlmain.c $(CCCMD) $(PLDLFLAGS) $*.c @@ -318,7 +308,7 @@ ext.libs: $(static_ext) # Load up custom Makefile.SH fragment for shared loading and executables: case "$osname" in cygwin*) - Makefile_s="cygwin32/Makefile.SHs" + Makefile_s="cygwin/Makefile.SHs" ;; *) Makefile_s="$osname/Makefile.SHs" @@ -347,7 +337,9 @@ $(LIBPERL_NONSHR): perl$(OBJ_EXT) $(obj) $(AR) rcu $(LIBPERL_NONSHR) perl$(OBJ_EXT) $(obj) $(MINIPERL_NONSHR): $(LIBPERL_NONSHR) miniperlmain$(OBJ_EXT) - $(CC) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS) + $(CCCMD) $(PLDLFLAGS) -DMINIPERL_BUILD -o opmini$(OBJ_EXT) op.c + $(CC) $(LDFLAGS) -o $(MINIPERL_NONSHR) miniperlmain$(OBJ_EXT) \ + opmini$(OBJ_EXT) $(LIBPERL_NONSHR) $(LIBS) MINIPERLEXP = $(MINIPERL_NONSHR) @@ -372,6 +364,16 @@ perl.exp: $(MINIPERLEXP) makedef.pl config.sh $(SYM) $(SYMH) !NO!SUBS! ;; +os2) + $spitshell >>Makefile <<'!NO!SUBS!' +MINIPERLEXP = miniperl + +perl5.def: $(MINIPERLEXP) makedef.pl config.sh $(SYM) $(SYMH) miniperl.map + ./$(MINIPERLEXP) makedef.pl PLATFORM=os2 -DPERL_DLL=$(PERL_DLL) > perl.exp.tmp + sh mv-if-diff perl.exp.tmp perl5.def + +!NO!SUBS! + ;; esac if test -r $Makefile_s ; then @@ -420,8 +422,10 @@ $(LIBPERL): $& perl$(OBJ_EXT) $(obj) $(LIBPERLEXPORT) # The Module used here must not depend on Config or any extensions. miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) - $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) $(LLIBPERL) $(libs) - $(LDLIBPTH) ./miniperl -w -Ilib -I$(src)/lib -MExporter -e 0 || $(MAKE) minitest + $(CCCMD) $(PLDLFLAGS) -DMINIPERL_BUILD -o opmini$(OBJ_EXT) op.c + $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl \ + miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs) + $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e 0 || $(MAKE) minitest perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) @@ -455,43 +459,42 @@ sperl$(OBJ_EXT): perl.c perly.h patchlevel.h $(h) $(CCCMD) -DIAMSUID sperl.c $(RMS) sperl.c -lib: - @sh ./makedir lib - # We have to call our ./makedir because Ultrix 4.3 make can't handle the line # test -d lib/auto || mkdir lib/auto # -preplibrary: miniperl lib/Config.pm $(plextract) +preplibrary: miniperl lib/Config.pm @sh ./makedir lib/auto @echo " AutoSplitting perl library" - $(LDLIBPTH) ./miniperl -Ilib -I$(src)/lib -e 'use AutoSplit; \ - autosplit_lib_modules(@ARGV)' $(src)/lib/*.pm $(src)/lib/*/*.pm + $(LDLIBPTH) ./miniperl -Ilib -e 'use AutoSplit; \ + autosplit_lib_modules(@ARGV)' lib/*.pm lib/*/*.pm # Take care to avoid modifying lib/Config.pm without reason # (If trying to create a new port and having problems with the configpm script, # try 'make minitest' and/or commenting out the tests at the end of configpm.) -lib/Config.pm: lib config.sh miniperl configpm +lib/Config.pm: config.sh miniperl configpm $(LDLIBPTH) ./miniperl configpm configpm.tmp - sh $(src)/mv-if-diff configpm.tmp $@ + sh mv-if-diff configpm.tmp $@ -lib/ExtUtils: lib - @sh ./makedir lib/ExtUtils - -lib/ExtUtils/Miniperl.pm: lib/ExtUtils miniperlmain.c miniperl minimod.pl lib/Config.pm +lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl minimod.pl lib/Config.pm $(LDLIBPTH) ./miniperl minimod.pl > minimod.tmp - sh $(src)/mv-if-diff minimod.tmp $@ + sh mv-if-diff minimod.tmp $@ -lib/re.pm: lib $(src)/ext/re/re.pm +lib/re.pm: ext/re/re.pm rm -f $@ - cat $(src)/ext/re/re.pm > $@ + cat ext/re/re.pm > $@ + +$(plextract): miniperl lib/Config.pm lib/re.pm + $(LDLIBPTH) ./miniperl -Ilib $@.PL -pod: - @sh ./makedir pod +extra.pods: perl + -@rm -f extra.pods + -@for x in `grep -l '^=[a-z]' README.*` ; do \ + nx=`echo $$x | sed -e "s/README\.//"`; \ + $(LNS) ../$$x "pod/perl"$$nx".pod" ; \ + echo "pod/perl"$$nx".pod" >> extra.pods ; \ + done -$(plextract): pod miniperl lib/Config.pm lib/re.pm - $(LDLIBPTH) ./miniperl -Ilib -I$(src)/lib $(src)/$@.PL - -install: all install.perl install.man +install: all install.perl install.man extra.pods install.perl: all installperl if [ -n "$(COMPILE)" ]; \ @@ -527,7 +530,6 @@ install.html: all installhtml # normally shouldn't remake perly.[ch]. run_byacc: FORCE - @ echo 'Expect' 113 shift/reduce and 1 reduce/reduce conflict $(BYACC) -d perly.y chmod 664 perly.c sh $(shellflags) ./perly.fixer y.tab.c perly.c @@ -538,23 +540,13 @@ run_byacc: FORCE chmod 664 vms/perly_c.vms vms/perly_h.vms perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms -perly$(OBJ_EXT): $(src)/perly.c - $(CCCMD) $(PLDLFLAGS) $(src)/perly.c - # We don't want to regenerate perly.c and perly.h, but they might # appear out-of-date after a patch is applied or a new distribution is # made. -perly.c: $(src)/perly.y +perly.c: perly.y -@sh -c true -perly.h: $(src)/perly.y - -@sh -c true - -# Both the above and below are needed for an out-of-source experience. -$(src)/perly.c: $(src)/perly.y - -@sh -c true - -$(src)/perly.h: $(src)/perly.y +perly.h: perly.y -@sh -c true # No compat3.sym here since and including the 5.004_50. @@ -563,6 +555,8 @@ SYM = global.sym globvar.sym perlio.sym pp.sym SYMH = perlvars.h intrpvar.h thrdvar.h +CHMOD_W = chmod +w + # The following files are generated automatically # keywords.h: keywords.pl # opcode.h: opcode.pl @@ -573,19 +567,21 @@ SYMH = perlvars.h intrpvar.h thrdvar.h # ext/ByteLoader/byterun.h: bytecode.pl # ext/ByteLoader/byterun.c: bytecode.pl # ext/B/Asmdata.pm: bytecode.pl +# global.sym: embed.pl # regnodes.h: regcomp.pl -# warning.h lib/warning.pm: warning.pl +# warnings.h lib/warnings.pm: warnings.pl # The correct versions should be already supplied with the perl kit, # in case you don't have perl available. # To force them to run, type # make regen_headers regen_headers: FORCE + $(CHMOD_W) proto.h warnings.h lib/warnings.pm perl keywords.pl perl opcode.pl perl embed.pl perl bytecode.pl perl regcomp.pl - perl warning.pl + perl warnings.pl # Extensions: # Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will @@ -598,16 +594,16 @@ regen_headers: FORCE # DynaLoader may be needed for extensions that use Makefile.PL. $(DYNALOADER): miniperl preplibrary FORCE - @$(LDLIBPTH) sh $(src)/ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) d_dummy $(dynamic_ext): miniperl preplibrary $(DYNALOADER) FORCE - @$(LDLIBPTH) sh $(src)/ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE - @$(LDLIBPTH) sh $(src)/ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) n_dummy $(nonxs_ext): miniperl preplibrary $(DYNALOADER) FORCE - @$(LDLIBPTH) sh $(src)/ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) + @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) clean: _tidy _mopup @@ -622,7 +618,8 @@ distclean: clobber # Do not 'make _mopup' directly. _mopup: rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c - rm -f perl.exp ext.libs + -@test -f extra.pods && rm -f `cat extra.pods` + -rm -f perl.exp ext.libs extra.pods -rm -f perl.export perl.dll perl.libexp perl.map perl.def -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap rm -f perl suidperl miniperl $(LIBPERL) @@ -646,7 +643,7 @@ _cleaner: -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \ $(LDLIBPTH) sh ext/util/make_ext realclean $$x MAKE=$(MAKE) ; \ done - rm -f *.orig */*.orig *~ */*~ core core.perl.*.? core.miniperl.*.? perl.core miniperl.core t/core t/core.perl.*.? t/perl.core t/tmp???? t/c t/perl so_locations t/nonexistent1 so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR) + rm -f *.orig */*.orig *~ */*~ core core.*perl.*.? *perl.core t/core t/core.perl.*.? t/*perl.core t/misctmp* t/tmp* t/c t/perl so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR) rm -rf $(addedbyconf) rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old rm -f $(private) @@ -684,8 +681,8 @@ depend: makedepend cd x2p; $(MAKE) depend # Cannot postpone this until $firstmakefile is ready ;-) -makedepend: $(src)/makedepend.SH config.sh - sh $(src)/makedepend.SH +makedepend: makedepend.SH config.sh + sh ./makedepend.SH # Cannot delegate rebuilding of t/perl to make to allow interlaced # test and minitest @@ -725,25 +722,25 @@ minitest: miniperl lib/re.pm # Please *don't* use this unless all tests pass. # If you want to report test failures, use "make nok" instead. ok: utilities - $(LDLIBPTH) ./perl -Ilib -I$(src)/lib utils/perlbug -ok -s '(UNINSTALLED)' + $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' okfile: utilities - $(LDLIBPTH) ./perl -Ilib -I$(src)/lib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok + $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok nok: utilities - $(LDLIBPTH) ./perl -Ilib -I$(src)/lib utils/perlbug -nok -s '(UNINSTALLED)' + $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' clist: $(c) - echo $(c) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.clist + echo $(c) | tr ' ' $(TRNL) >.clist hlist: $(h) - echo $(h) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.hlist + echo $(h) | tr ' ' $(TRNL) >.hlist shlist: $(sh) - echo $(sh) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.shlist + echo $(sh) | tr ' ' $(TRNL) >.shlist pllist: $(pl) - echo $(pl) | tr ' ' $(TRNL) | sed -e "s@^$(srcqre)/@@" >.pllist + echo $(pl) | tr ' ' $(TRNL) >.pllist Makefile: Makefile.SH ./config.sh $(SHELL) Makefile.SH