?MAKE:libperl useshrplib shrpenv ldlibpthname: \
Myread Oldconfig archlibexp awk cat libc \
_a osname osvers so patchlevel subversion usedl ld \
- lib_ext ccdlflags installarchlib
+ ccdlflags installarchlib userelocatableinc
?MAKE: -pick wipe $@ %<
?S:libperl:
?S: The perl executable is obtained by linking perlmain.c with
?S:.
?S:shrpenv:
?S: If the user builds a shared libperl.so, then we need to tell the
-?S: 'perl' executable where it will be able to find the installed libperl.so.
+?S: 'perl' executable where it will be able to find the installed libperl.so.
?S: One way to do this on some systems is to set the environment variable
?S: LD_RUN_PATH to the directory that will be the final location of the
?S: shared libperl.so. The makefile can use this with something like
?LINT:change ccdlflags
?LINT:extern maintloc maintname
?Y:top
+: Do we want a shared libperl?
also=''
case "$usedl" in
$undef)
;;
*) case "$useshrplib" in
'') case "$osname" in
- svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|cygwin*)
+ svr4*|nonstopux|dgux|dynixptx|esix|powerux|beos|haiku|cygwin*)
dflt=y
also='Building a shared libperl is required for dynamic loading to work on your system.'
;;
case "$useshrplib" in
true)
+ case "$userelocatableinc" in
+ true|define)
+ echo "Cannot build with both -Duserelocatableinc and -Duseshrplib" >&4
+ echo "See INSTALL for an explanation why that won't work." >&4
+ exit 4
+ ;;
+ esac
case "$libperl" in
'')
# Figure out a good name for libperl.so. Since it gets stored in
# a version-specific architecture-dependent library, the version
# number isn't really that important, except for making cc/ld happy.
#
- # A name such as libperl.so.3.1
+ # A name such as libperl.so.10.1
majmin="libperl.$so.$patchlevel.$subversion"
- # A name such as libperl.so.301
+ # A name such as libperl.so.100
majonly=`echo $patchlevel $subversion |
$awk '{printf "%d%02d", $1, $2}'`
majonly=libperl.$so.$majonly
linux*|gnu*) # ld won't link with a bare -lperl otherwise.
dflt=libperl.$so
;;
- cygwin*) # ld links against an importlib
- dflt=libperl$lib_ext
+ cygwin*) # ld links now against the dll directly
+ majmin="cygperl5_${patchlevel}_${subversion}.${so}"
+ majonly=`echo $patchlevel $subversion |
+ $awk '{printf "%03d%03d", $1, $2}'`
+ majonly=cygperl5.$majonly.$so
+ dflt=$majmin
;;
*) # Try to guess based on whether libc has major.minor.
case "$libc" in
xxx=''
tmp_shrpenv=''
if "$useshrplib"; then
- case "$osname" in
+ case "$osname" in
aix)
# We'll set it in Makefile.SH...
;;
solaris)
xxx="-R $shrpdir"
;;
- freebsd|netbsd|openbsd|interix|dragonfly)
+ freebsd|mirbsd|netbsd|openbsd|interix|dragonfly)
xxx="-Wl,-R$shrpdir"
;;
bsdos|linux|irix*|dec_osf|gnu*)
beos)
# beos doesn't like the default, either.
;;
+ haiku)
+ # Haiku doesn't like the default, either.
+ ;;
hpux*)
# hpux doesn't like the default, either.
tmp_shrpenv="env LDOPTS=\"+s +b${shrpdir}\""
;;
+ cygwin)
+ # cygwin needs only ldlibpth
+ ;;
*)
tmp_shrpenv="env LD_RUN_PATH=$shrpdir"
;;
esac
case "$xxx" in
'') ;;
- *)
+ *)
# Only add $xxx if it isn't already in ccdlflags.
case " $ccdlflags " in
*" $xxx "*) ;;
cat <<EOM >&4
Adding $xxx to the flags
-passed to $ld so that the perl executable will find the
+passed to $ld so that the perl executable will find the
installed shared $libperl.
EOM