esac
linklibperl='$(LIBPERL)'
+linklibperl_nonshr=''
shrpldflags='$(LDDLFLAGS)'
ldlibpth=''
DPERL_EXTERNAL_GLOB='-DPERL_EXTERNAL_GLOB'
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"
PLDLFLAGS = $pldlflags
LIBPERL = $libperl
LLIBPERL= $linklibperl
+LLIBPERL_NONSHR= $linklibperl_nonshr
SHRPENV = $shrpenv
# Static targets are ordinarily built without CCCDLFLAGS. However,
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
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
# 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
-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