X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.SH;h=c746aed94a220c5698da4f350f956dd3fe796eb3;hb=b06e0d456d71354ff1405da4e9d765c7d6aa38c3;hp=5a2a63fc70f62347b466cba8bc053709813a242e;hpb=b306dcb39875d351d64f81a4a6469b778b8f7c42;p=p5sagit%2Fp5-mst-13.2.git diff --git a/Makefile.SH b/Makefile.SH index 5a2a63f..c746aed 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -47,6 +47,7 @@ case "$d_dosuid" in esac linklibperl='$(LIBPERL)' +linklibperl_nonshr='' shrpldflags='$(LDDLFLAGS)' ldlibpth='' DPERL_EXTERNAL_GLOB='-DPERL_EXTERNAL_GLOB' @@ -93,15 +94,32 @@ true) shrpldflags="$shrpldflags -Wl,--image-base,0x57000000" ;; aix*) - shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp" - case "$osvers" in - 3*) shrpldflags="$shrpldflags -e _nostart" + case "$cc" in + gcc*) + shrpldflags="-shared -Wl,-H512 -Wl,-T512 -Wl,-bhalt:4 -Wl,-bM:SRE -Wl,-bE:perl.exp" + case "$osvers" in + 3*) shrpldflags="$shrpldflags -e _nostart" + ;; + *) shrpldflags="$shrpldflags -Wl,-bnoentry" + ;; + esac + shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" + linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" + linklibperl_nonshr='-lperl_nonshr' ;; - *) shrpldflags="$shrpldflags -bnoentry" + *) + shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp" + case "$osvers" in + 3*) shrpldflags="$shrpldflags -e _nostart" + ;; + *) shrpldflags="$shrpldflags -b noentry" + ;; + esac + shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" + linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" + linklibperl_nonshr='-lperl_nonshr' ;; esac - shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" - linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" ;; hpux*) linklibperl="-L `pwd | sed 's/\/UU$//'` -Wl,+s -Wl,+b$archlibexp/CORE -lperl" @@ -251,6 +269,7 @@ DLSUFFIX = .$dlext PLDLFLAGS = $pldlflags LIBPERL = $libperl LLIBPERL= $linklibperl +LLIBPERL_NONSHR= $linklibperl_nonshr SHRPENV = $shrpenv # Static targets are ordinarily built without CCCDLFLAGS. However, @@ -494,13 +513,13 @@ splintflags = \ splintfiles = $(c1) -.c$(OBJ_EXT): +.c$(OBJ_EXT): cflags $(CCCMD) $(PLDLFLAGS) $*.c -.c.i: +.c.i: cflags $(CCCMDSRC) -E $*.c > $*.i -.c.s: +.c.s: cflags $(CCCMDSRC) -S $*.c all: $(FIRSTMAKEFILE) miniperl$(EXE_EXT) extra.pods $(private) $(unidatafiles) $(public) $(dynamic_ext) $(nonxs_ext) extras.make @@ -516,7 +535,14 @@ sperl$(OBJ_EXT): perl.c $(h) sperl.i: perl.c $(h) $(CCCMDSRC) -DIAMSUID -E perl.c > sperl.i -.PHONY: all translators utilities +.PHONY: all translators utilities make_patchnum + +make_patchnum: + sh $(shellflags) make_patchnum.sh + +.patchnum: make_patchnum + +perl$(OBJ_EXT): .patchnum translators: miniperl$(EXE_EXT) $(CONFIGPM) FORCE @echo " "; echo " Making x2p stuff"; cd x2p; $(LDLIBPTH) $(MAKE) all @@ -885,10 +911,24 @@ microperl: # checks as well as the special code to validate that the script in question # has been invoked correctly. +!NO!SUBS! + +case "${osname}" in +aix*) +$spitshell >>Makefile <<'!NO!SUBS!' +suidperl$(EXE_EXT): $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) + $(SHRPENV) $(LDLIBPTH) $(CC) -o suidperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(static_ext) $(LLIBPERL_NONSHR) $(LLIBPERL) `cat ext.libs` $(libs) + +!NO!SUBS! +;; +*) +$spitshell >>Makefile <<'!NO!SUBS!' suidperl$(EXE_EXT): $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(static_ext) ext.libs $(PERLEXPORT) $(SHRPENV) $(LDLIBPTH) $(CC) -o suidperl $(CLDFLAGS) $(CCDLFLAGS) perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) !NO!SUBS! +;; +esac fi @@ -1178,6 +1218,8 @@ _tidy: -cd pod; $(LDLIBPTH) $(MAKE) clean -cd utils; $(LDLIBPTH) $(MAKE) clean -cd x2p; $(LDLIBPTH) $(MAKE) clean + -rm .patchnum + -rm .sha1 -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \ $(LDLIBPTH) sh ext/util/make_ext clean $$x MAKE=$(MAKE) ; \ done