From: Andy Dougherty Date: Thu, 2 May 2002 12:01:50 +0000 (-0400) Subject: Re: Perl 5.8-to-be NetBSD testing? X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=94c41b70f2003bd6af9f4f7031a5fec4d37fe1df;p=p5sagit%2Fp5-mst-13.2.git Re: Perl 5.8-to-be NetBSD testing? Message-ID: p4raw-id: //depot/perl@16356 --- diff --git a/Makefile.SH b/Makefile.SH index d30bbb4..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 @@ -843,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) diff --git a/ext/util/make_ext b/ext/util/make_ext index 317dd5c..8bcd7d8 100644 --- a/ext/util/make_ext +++ b/ext/util/make_ext @@ -85,16 +85,19 @@ echo " Making $mname ($target)" cd ext/$pname -# check link type and do any preliminaries +# check link type and do any preliminaries. Valid link types are +# 'dynamic', 'static', and 'static_pic' (the last one respects +# CCCDLFLAGS such as -fPIC -- see static_target in the main Makefile.SH) case "$target" in - # convert 'static' or 'dynamic' into 'all LINKTYPE=XXX' +dynamic) makeargs="LINKTYPE=dynamic"; + target=all + ;; static) makeargs="LINKTYPE=static CCCDLFLAGS=" target=all ;; -dynamic) makeargs="LINKTYPE=dynamic"; +static_pic) makeargs="LINKTYPE=static" target=all ;; - nonxs) makeargs=""; target=all ;;