X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/0890f1a536cff0aff68038cae78e02c9d9b6a2b2..e1621fc96189270d9aa78c1f2dbc2200bd15cb59:/Makefile.SH diff --git a/Makefile.SH b/Makefile.SH index 1a61e5b..2235888 100755 --- a/Makefile.SH +++ b/Makefile.SH @@ -331,10 +331,21 @@ $make_set_make # Mention $gmake here so it gets probed for by Configure. +!GROK!THIS! + +case "${osname}" in +linux*|darwin) +$spitshell >>$Makefile </dev/null + +!GROK!THIS! + ;; +esac +$spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' -globals$(OBJ_EXT): uudmap.h bitcount.h mg_data.h +globals$(OBJ_EXT): $(generated_headers) uudmap.h mg_data.h: bitcount.h bitcount.h: generate_uudmap$(HOST_EXE_EXT) - $(RUN) ./generate_uudmap$(HOST_EXE_EXT) uudmap.h bitcount.h mg_data.h + $(RUN) ./generate_uudmap$(HOST_EXE_EXT) $(generated_headers) generate_uudmap$(OBJ_EXT): mg_raw.h @@ -748,8 +761,11 @@ else case "$dtrace_h" in ?*) $spitshell >>$Makefile <<'!NO!SUBS!' +# dtrace dicards const qualifiers from arguments, put them back $(DTRACE_H): perldtrace.d - $(DTRACE) -h -s perldtrace.d -o $(DTRACE_H) + $(DTRACE) -h -s perldtrace.d -o $(DTRACE_H).in + sed -e '/const/!s/char \*/const char */g' $(DTRACE_H).in >$(DTRACE_H) + $(RMS) $(DTRACE_H).in mydtrace.h: $(DTRACE_H) @@ -762,8 +778,8 @@ mydtrace.h: $(DTRACE_H) $(DTRACE_O): perldtrace.d $(ndt_obj) $(DTRACE) -G -s perldtrace.d -o $(DTRACE_O) $(ndt_obj) -$(MINIDTRACE_O): perldtrace.d $(minindt_obj) - $(DTRACE) -G -s perldtrace.d -o $(MINIDTRACE_O) $(minindt_obj) +$(MINIDTRACE_O): perldtrace.d $(minindt_obj) perlmini$(OBJ_EXT) + $(DTRACE) -G -s perldtrace.d -o $(MINIDTRACE_O) $(minindt_obj) perlmini$(OBJ_EXT) !NO!SUBS! ;; @@ -812,18 +828,15 @@ $(LIBPERL): $& $(obj) $(DYNALOADER) $(LIBPERLEXPORT) case "${osname}${osvers}" in aix*|beos*) $spitshell >>$Makefile <<'!NO!SUBS!' -$(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) - $(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) \ - $(mini_obj) \ - miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) +$(MINIPERL_EXE): $& $(mini_obj) + $(CC) -o $(MINIPERL_EXE) $(CLDFLAGS) $(mini_obj) $(libs) $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! ;; next4*) $spitshell >>$Makefile <<'!NO!SUBS!' -$(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) perlmini$(OBJ_EXT) opmini$(OBJ_EXT) - $(CC) -o $(MINIPERL_EXE) $(mini_obj) \ - miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) +$(MINIPERL_EXE): $& $(mini_obj) + $(CC) -o $(MINIPERL_EXE) $(mini_obj) $(libs) $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! ;; @@ -841,21 +854,19 @@ NAMESPACEFLAGS = -force_flat_namespace ;; esac $spitshell >>$Makefile <<'!NO!SUBS!' -$(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) +$(MINIPERL_EXE): $& $(mini_obj) -@rm -f miniperl.xok $(CC) $(CLDFLAGS) $(NAMESPACEFLAGS) -o $(MINIPERL_EXE) \ - $(mini_obj) \ - miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) + $(mini_obj) $(libs) $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! ;; *) $spitshell >>$Makefile <<'!NO!SUBS!' -$(MINIPERL_EXE): $& miniperlmain$(OBJ_EXT) $(mini_obj) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) +$(MINIPERL_EXE): $& $(mini_obj) -@rm -f miniperl.xok $(LDLIBPTH) $(CC) $(CLDFLAGS) -o $(MINIPERL_EXE) \ - $(mini_obj) \ - miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) perlmini$(OBJ_EXT) $(libs) + $(mini_obj) $(libs) $(LDLIBPTH) $(RUN) ./miniperl$(HOST_EXE_EXT) -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! ;; @@ -878,7 +889,12 @@ purecov$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PE quant$(PERL_EXE): $& perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) $(SHRPENV) $(LDLIBPTH) quantify $(CC) -o quantperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) -# Valgrind perl (currently Linux only) +!NO!SUBS! + +case "${osname}${osvers}" in +linux*|darwin*) + $spitshell >>$Makefile <<'!NO!SUBS!' +# Valgrind perl (currently Linux, Darwin only) perl.valgrind.config: config.sh @echo "To build perl.valgrind you must Configure -Doptimize=-g -Uusemymalloc, checking..." @@ -887,7 +903,12 @@ perl.valgrind.config: config.sh @grep "^usemymalloc=" config.sh @grep "^usemymalloc='n'" config.sh >/dev/null || exit 1 @echo "And of course you have to have valgrind..." - $(VALGRIND) ./perl -e 1 2>/dev/null || exit 1 + $(VALGRIND) $(VG_TEST) || exit 1 +!NO!SUBS! + ;; +esac + +$spitshell >>$Makefile <<'!NO!SUBS!' # Third Degree Perl (Tru64 only) @@ -1033,8 +1054,8 @@ pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST $(MINIPERL) $(Icwd) pod/perlmodlib.PL -q -pod/perl5151delta.pod: pod/perldelta.pod - $(LNS) perldelta.pod pod/perl5151delta.pod +pod/perl5155delta.pod: pod/perldelta.pod + $(LNS) perldelta.pod pod/perl5155delta.pod extra.pods: $(MINIPERL_EXE) -@test ! -f extra.pods || rm -f `cat extra.pods` @@ -1057,19 +1078,19 @@ extras.install: $(PERL_EXE) .PHONY: install install-strip install-all install-verbose install-silent \ no-install install.perl install.man install.html -install-strip: +install_strip install-strip: $(MAKE) STRIPFLAGS=-s install DESTDIR="$(DESTDIR)" -install install-all: +install install_all install-all: $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) DESTDIR="$(DESTDIR)" -install-verbose: +install_verbose install-verbose: $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-V DESTDIR="$(DESTDIR)" -install-silent: +install_silent install-silent: $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-S DESTDIR="$(DESTDIR)" -no-install: +no_install no-install: $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-n DESTDIR="$(DESTDIR)" # Set this to an empty string to avoid an attempt of rebuild before install @@ -1104,11 +1125,11 @@ install.html: all installhtml .PHONY: regen_perly -run_byacc: +run_byacc run-byacc: @echo "run_byacc is obsolete; try 'make regen_perly' instead" # this outputs perly.h, perly.act and perly.tab -regen_perly: +regen_perly regen-perly: perl regen_perly.pl # We don't want to regenerate perly.c and perly.h, but they might @@ -1120,15 +1141,14 @@ perly.c: perly.y perly.h: perly.y -@sh -c true -SYM = global.sym globvar.sym perlio.sym +SYM = globvar.sym perlio.sym SYMH = perlvars.h intrpvar.h CHMOD_W = chmod +w # The following files are generated automatically -# embed.pl: proto.h embed.h embedvar.h global.sym -# perlapi.h perlapi.c +# embed.pl: proto.h embed.h embedvar.h perlapi.h perlapi.c # opcode.pl: opcode.h opnames.h pp_proto.h # regcomp.pl: regnodes.h # warnings.pl: warnings.h lib/warnings.pm @@ -1139,26 +1159,26 @@ CHMOD_W = chmod +w # with your existing copy of perl # (make regen_headers is kept for backwards compatibility) -AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h \ - embed.h embedvar.h global.sym \ - perlapi.h perlapi.c regnodes.h \ - warnings.h lib/warnings.pm +AUTOGEN_FILES = opcode.h opnames.h pp_proto.h proto.h embed.h embedvar.h \ + perlapi.h perlapi.c regnodes.h warnings.h lib/warnings.pm .PHONY: regen_headers regen_all regen: FORCE -perl regen.pl + -perl regen/uconfig_h.pl -regen_headers: FORCE +regen_headers regen-headers: FORCE -perl regen.pl -v + -perl regen/uconfig_h.pl -v -regen_meta: META.yml +regen_meta regen-meta: META.yml META.yml: FORCE PATH="`pwd`:${PATH}" PERL5LIB="`pwd`/lib" $(RUN_PERL) -Ilib Porting/makemeta -regen_all: regen regen_meta +regen_all regen-all: regen regen_meta .PHONY: manisort manicheck @@ -1226,7 +1246,7 @@ veryclean: _verycleaner _mopup _clobber # Do not 'make _mopup' directly. _mopup: - rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c uudmap.h generate_uudmap$(EXE_EXT) bitcount.h mg_data.h + rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c opmini.c perlmini.c generate_uudmap$(EXE_EXT) $(generated_headers) -rmdir .depending -@test -f extra.pods && rm -f `cat extra.pods` -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod @@ -1297,7 +1317,7 @@ _cleaner2: -rmdir cpan/CPANPLUS-Dist-Build/t/dummy-cpanplus cpan/CPANPLUS/t/dummy-cpanplus cpan/CPANPLUS/t/dummy-localmirror -rmdir ext/B/lib -rmdir lib/Archive/Tar lib/Archive lib/Attribute - -rmdir lib/CGI + -rmdir lib/CGI lib/Carp -rmdir lib/Data lib/Devel lib/Digest -rmdir lib/ExtUtils/Command lib/ExtUtils/Constant lib/ExtUtils/Liblist lib/ExtUtils/MakeMaker -rmdir lib/File/Spec lib/Filter/Util lib/Filter @@ -1384,7 +1404,7 @@ _test: test_prep_pre: preplibrary utilities $(nonxs_ext) -test_prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) \ +test_prep test-prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) \ $(dynamic_ext) $(TEST_PERL_DLL) runtests x2p/s2p x2p/find2perl \ $(generated_pods) cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE)) @@ -1396,10 +1416,10 @@ test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL) test check: test_prep $(RUN_TESTS) choose -test_tty: test_prep +test_tty test-tty: test_prep $(RUN_TESTS) tty -test_notty: test_prep +test_notty test-notty: test_prep $(RUN_TESTS) no-tty utest ucheck test.utf8 check.utf8: test_prep @@ -1408,12 +1428,6 @@ utest ucheck test.utf8 check.utf8: test_prep coretest: test_prep TEST_ARGS=-core $(RUN_TESTS) choose -test-prep: test_prep - -test-tty: test_tty - -test-notty: test_notty - # Torture testing test.torture torturetest: test_prep @@ -1431,6 +1445,11 @@ test.utf16 check.utf16: test_prep utest.utf16 ucheck.utf16: test_prep TEST_ARGS="-utf8 -utf16" $(RUN_TESTS) choose +!NO!SUBS! + +case "${osname}${osvers}" in +linux*|darwin*) + $spitshell >>$Makefile <<'!NO!SUBS!' # Targets for valgrind testing: test_prep.valgrind: test_prep perl.valgrind @@ -1443,6 +1462,11 @@ utest.valgrind ucheck.valgrind: test_prep.valgrind perl.valgrind.config test_notty.valgrind: test_prep.valgrind perl.valgrind.config PERL_VALGRIND=1 $(RUN_TESTS) no-tty +!NO!SUBS! + ;; +esac + +$spitshell >>$Makefile <<'!NO!SUBS!' # Targets for Third Degree testing. @@ -1486,19 +1510,19 @@ minitest: $(MINIPERL_EXE) minitest.prep # Test via harness -test_harness: test_prep +test_harness test-harness: test_prep TESTFILE=harness $(RUN_TESTS) choose test_harness_notty: test_prep HARNESS_NOTTY=1 TESTFILE=harness $(RUN_TESTS) choose -test-reonly: test_prep_reonly +test_reonly test-reonly: test_prep_reonly TEST_ARGS='-re \bre\/' TESTFILE=harness $(RUN_TESTS) choose # Porting tests (well-formedness of pod, manifest, etc) -test_porting: test_prep +test_porting test-porting: test_prep cd t && $(RUN_PERL) harness porting/*.t ../lib/diagnostics.t # Handy way to run perlbug -ok without having to install and run the