X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=2df7ac8c6d202497da0fff345deeafd7baca4e9b;hb=23131aa47a1f039c7b6f6bb5dd48b8406773ecac;hp=acf2ac6d68d883919e668326638ebec5fee57199;hpb=869a466cf7062796cfbd8ca60b14dd0054b144eb;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index acf2ac6..2df7ac8 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -209,7 +209,7 @@ FIRSTMAKEFILE = $firstmakefile # Any special object files needed by this architecture, e.g. os2/os2.obj ARCHOBJS = $archobjs -.SUFFIXES: .c \$(OBJ_EXT) +.SUFFIXES: .c \$(OBJ_EXT) .i .s # grrr SHELL = $sh @@ -227,7 +227,9 @@ TRNL = '$trnl' ## In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' -CCCMD = `sh $(shellflags) cflags $(LIBPERL) $@` +CCCMD = `sh $(shellflags) cflags $(LIBPERL) $@` + +CCCMDSRC = `sh $(shellflags) cflags $(LIBPERL) $<` private = preplibrary lib/ExtUtils/Miniperl.pm lib/Config.pm @@ -288,6 +290,12 @@ lintflags = -hbvxac .c$(OBJ_EXT): $(CCCMD) $(PLDLFLAGS) $*.c +.c.i: + $(CCCMDSRC) -E $*.c > $*.i + +.c.s: + $(CCCMDSRC) -S $*.c + .PHONY: all compile translators utilities all: $(FIRSTMAKEFILE) miniperl extra.pods $(private) $(public) $(dynamic_ext) $(nonxs_ext) @@ -496,7 +504,7 @@ miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) -@rm -f miniperl.xok - $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILING) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) + $(SHRPENV) $(LDLIBPTH) $(CC) -o perl$(PERL_SUFFIX) $(PERL_PROFILE_LDFLAGS) $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) # Purify/Quantify Perls. @@ -560,9 +568,26 @@ perl.gprof.config: config.sh perl.gprof: /usr/bin/gprof perl.gprof.config @-rm -f perl - $(MAKE) PERL_SUFFIX=.gprof PERL_PROFILING=-pg perl + $(MAKE) PERL_SUFFIX=.gprof PERL_PROFILE_LDFLAGS=-pg perl @echo "Now you may run perl.gprof and then run gprof perl.gprof." +# Gcov Perl + +perl.config.gcov: + @echo "To build perl.gcov you must use gcc 3.0 or newer, checking..." + @echo "Checking gccversion in config.sh..." + @grep "^gccversion=" config.sh + @grep "^gccversion='[3-9]\." config.sh >/dev/null || exit 1 + @echo "To build perl.gcov you must Configure -Dccflags=-fprofile-arcs -ftest-coverage, checking..." + @echo "Checking ccflags='-fprofile-arcs -ftest-coverage' in config.sh..." + @grep "^ccflags=" config.sh + @grep "^ccflags='.*-fprofile-arcs -ftest-coverage.*'" config.sh >/dev/null || exit 1 + +perl.gcov: perl.config.gcov + @-rm -f perl + $(MAKE) PERL_SUFFIX=.gcov PERL_PROFILE_LDFLAGS='' perl + @echo "Now you may run perl.gcov and then run gcov some.c." + # Microperl. This is just a convenience thing if one happens to # build also the full Perl and therefore the real big Makefile: # usually one should manually explicitly issue the below command. @@ -803,9 +828,13 @@ $(DYNALOADER): miniperl preplibrary FORCE @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) d_dummy $(dynamic_ext): miniperl preplibrary $(DYNALOADER) FORCE + @-rm -f lib/re.pm + @cat ext/re/re.pm > lib/re.pm @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) s_dummy $(static_ext): miniperl preplibrary $(DYNALOADER) FORCE + @-rm -f lib/re.pm + @cat ext/re/re.pm > lib/re.pm @$(LDLIBPTH) sh ext/util/make_ext static $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) n_dummy $(nonxs_ext): miniperl preplibrary $(DYNALOADER) FORCE @@ -995,7 +1024,7 @@ minitest: miniperl lib/re.pm @echo "You may see some irrelevant test failures if you have been unable" @echo "to build lib/Config.pm." - cd t && (rm -f perl$(EXE_EXT); $(LNS) ../miniperl$(EXE_EXT) perl$(EXE_EXT)) \ - && $(LDLIBPTH) ./perl TEST base/*.t comp/*.t cmd/*.t run/*.t io/*.t op/*.t pragma/*.t