X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=2c123c6750eeebef5dc671339389d13a96dcd5e2;hb=126bf8bf58586ea492cb7f67d52adfd017de5fcc;hp=9a9a1b6deb62d302def7ff03701eb73a07aa04b4;hpb=f32e73e7abdd536fadbd65b34259addeeeb9cc3f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index 9a9a1b6..2c123c6 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -36,6 +36,7 @@ true) esac pldlflags="$cccdlflags" + static_target='static_pic' case "${osname}${osvers}" in next4*) ld=libtool @@ -97,6 +98,7 @@ true) esac ;; *) pldlflags='' + static_target='static' ;; esac @@ -188,6 +190,13 @@ LIBPERL = $libperl LLIBPERL= $linklibperl SHRPENV = $shrpenv +# Static targets are ordinarily built without CCCDLFLAGS. However, +# if building a shared libperl.so that might later be linked into +# another application, then it might be appropriate to also build static +# extensions (usually just DynaLoader) with relocatable code (e.g. -fPIC +# for GNU cc). This is handled by ext/util/make_ext. +STATIC = $static_target + # The following is used to include the current directory in # the dynamic loader path you are building a shared libperl. LDLIBPTH = $ldlibpth @@ -261,9 +270,9 @@ esac ## In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' -CCCMD = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $(LIBPERL) $@` +CCCMD = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $@` -CCCMDSRC = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $(LIBPERL) $<` +CCCMDSRC = `sh $(shellflags) cflags "optimize='$(OPTIMIZE)'" $<` private = preplibrary lib/Config.pm lib/ExtUtils/Miniperl.pm @@ -309,16 +318,6 @@ obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) -# Once perl has been Configure'd and built ok you build different -# perl variants (Debugging, Embedded, Multiplicity etc) by saying: -# make clean; make LIBPERL=libperl.a -# where is some combination of 'd' and(or) 'e' or 'm'. -# See cflags to understand how this works. -# -# This mechanism is getting clunky and might not even work any more. -# EMBEDDING is on by default, and MULTIPLICITY doesn't work. -# - lintflags = -hbvxac .c$(OBJ_EXT): @@ -679,10 +678,13 @@ lib/ExtUtils/Miniperl.pm: miniperlmain.c miniperl$(EXE_EXT) minimod.pl lib/Confi lib/re.pm: ext/re/re.pm cp ext/re/re.pm ext/re/re.tmp && sh mv-if-diff ext/re/re.tmp lib/re.pm -$(plextract): miniperl$(EXE_EXT) lib/Config.pm +$(plextract): miniperl$(EXE_EXT) lib/Config.pm x2p/s2p @-rm -f $@ $(LDLIBPTH) ./miniperl -Ilib $@.PL +x2p/s2p: miniperl$(EXE_EXT) lib/Config.pm x2p/s2p.PL + cd x2p; $(LDLIBPTH) $(MAKE) s2p + lib/lib.pm: miniperl$(EXE_EXT) lib/Config.pm @-rm -f $@ $(LDLIBPTH) ./miniperl -Ilib lib/lib_pm.PL @@ -708,7 +710,7 @@ extras.install: perl$(EXE_EXT) -@test -s extras.lst && $(LDLIBPTH) PATH=`pwd`:${PATH} PERL5LIB=`pwd`/lib ./perl -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` .PHONY: install install-strip install-all install-verbose install-silent \ - no-install install.perl install.man installman install.html installhtml + no-install install.perl install.man install.html install-strip: $(MAKE) STRIPFLAGS=-s install @@ -850,13 +852,13 @@ regen_all: $(PERLYVMS) regen_headers regen_pods # DynaLoader may be needed for extensions that use Makefile.PL. $(DYNALOADER): miniperl$(EXE_EXT) preplibrary FORCE - @$(LDLIBPTH) sh 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$(EXE_EXT) preplibrary $(DYNALOADER) FORCE @$(LDLIBPTH) sh ext/util/make_ext dynamic $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) s_dummy $(static_ext): miniperl$(EXE_EXT) preplibrary $(DYNALOADER) FORCE - @$(LDLIBPTH) sh 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$(EXE_EXT) preplibrary $(DYNALOADER) FORCE @$(LDLIBPTH) sh ext/util/make_ext nonxs $@ MAKE=$(MAKE) LIBPERL_A=$(LIBPERL) @@ -933,7 +935,7 @@ _cleaner2: rm -rf lib/Encode -rmdir lib/IO/Socket lib/IO/t lib/IO -rmdir lib/Filter/Util lib/List lib/MIME lib/PerlIO lib/Scalar lib/Sys - -rmdir lib/Thread lib/XS + -rmdir lib/Thread lib/XS lib/threads/shared lib/threads _realcleaner: @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=realclean