Use vendorprefixlib.
Jarkko Hietaniemi [Sun, 25 Jul 1999 14:12:34 +0000 (14:12 +0000)]
p4raw-id: //depot/cfgperl@3737

Configure
Porting/Glossary
Porting/config.sh
Porting/config_H
config_h.SH
perl.c

index 654312f..f970e49 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sun Jul 25 14:54:07 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Sun Jul 25 17:05:01 EET DST 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -831,6 +831,13 @@ incpath=''
 mips=''
 mips_type=''
 usrinc=''
+d_vendorlib=''
+installvendorlib=''
+vendorlib=''
+vendorlibexp=''
+usevendorprefix=''
+vendorprefix=''
+vendorprefixexp=''
 defvoidused=''
 voidflags=''
 CONFIG=''
@@ -2375,7 +2382,7 @@ EOM
 
 You may give one or more space-separated answers, or "none" if appropriate.
 A well-behaved OS will have no hints, so answering "none" or just "Policy"
-is a good thing.  DO NOT give a wrong version.
+is a good thing.  DO NOT give a wrong version or a wrong OS.
 
 EOM
 
@@ -4583,6 +4590,83 @@ case "$freetype" in
 esac
 echo "Your system uses $freetype free(), it would seem." >&4
 $rm -f malloc.[co]
+$cat <<EOM
+
+The installation process will also create a directory for
+vendor-supplied add-ons.  Vendors who supply perl with their system
+may find it convenient to place all vendor-supplied files in this
+directory rather than in the main distribution directory.  This will
+ease upgrades between binary-compatible maintenance versions of perl.
+
+Of course you may also use these directories in whatever way you see
+fit.  For example, you might use them to access modules shared over a
+company-wide network.
+
+The default answer should be fine for most people.
+This causes further questions about vendor add-ons to be skipped
+and no vendor-specific directories will be configured for perl.
+
+EOM
+rp='Do you want to configure vendor-specific add-on directories?'
+case "$usevendorprefix" in
+define|true|[yY]*) dflt=y ;;
+*) dflt=n ;;
+esac
+. ./myread
+case "$ans" in
+[yY]*) fn=d~+
+       rp='Installation prefix to use for vendor-supplied add-ons?'
+       case "$vendorprefix" in
+       '') dflt='' ;;
+       *)  dflt=$vendorprefix ;;
+       esac
+       . ./getfile
+       oldvendorprefix=''
+       case "$vendorprefix" in
+       '') ;;
+       *)      case "$ans" in
+               "$prefix") ;;
+               *) oldvendorprefix="$prefix";;
+               esac
+               ;;
+       esac
+       usevendorprefix="$define"
+       vendorprefix="$ans"
+       vendorprefixexp="$ansexp"
+       ;;
+*)     usevendorprefix="$undef"
+       vendorprefix=''
+       vendorprefixexp=''
+       ;;
+esac
+
+case "$vendorprefix" in
+'')    d_vendorlib="$undef"
+       vendorlib=''
+       vendorlibexp=''
+       ;;
+*)     d_vendorlib="$define"
+       : determine where vendor-supplied modules go.
+       : Usual default is /usr/local/lib/perl5/vendor_perl
+       prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+       case "$installstyle" in
+       *lib/perl5*) dflt=$vendorprefix/lib/$package/vendor_$prog ;;
+       *)           dflt=$vendorprefix/lib/vendor_$prog ;;
+       esac
+       fn=d~+
+       rp='Pathname for the vendor-supplied library files?'
+       . ./getfile
+       vendorlib="$ans"
+       vendorlibexp="$ansexp"
+       : Change installation prefix, if necessary.
+       if $test X"$prefix" != X"$installprefix"; then
+               installvendorlib=`echo $vendorlibexp | $sed 's#^$prefix#$installprefix#'`
+       else
+               installvendorlib="$vendorlibexp"
+       fi
+       ;;
+esac
+
 : Cruising for prototypes
 echo " "
 echo "Checking out function prototypes..." >&4
@@ -6243,7 +6327,7 @@ siteprefixexp="$ansexp"
 : XXX No longer works with Prefixit stuff.
 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
 case "$installstyle" in
-*lib/perl5*) dflt=$siteprefix/lib/site_$prog/ ;;
+*lib/perl5*) dflt=$siteprefix/lib/site_$prog ;;
 *)      dflt=$siteprefix/lib/site_$prog ;;
 esac
 $cat <<EOM
@@ -12694,7 +12778,7 @@ find_extensions='
     done'
 tdir=`pwd`
 cd $rsrc/ext
-set
+set X
 shift
 eval $find_extensions
 set X $nonxs_extensions
@@ -13304,6 +13388,7 @@ d_tzname='$d_tzname'
 d_umask='$d_umask'
 d_uname='$d_uname'
 d_union_semun='$d_union_semun'
+d_vendorlib='$d_vendorlib'
 d_vfork='$d_vfork'
 d_void_closedir='$d_void_closedir'
 d_voidsig='$d_voidsig'
@@ -13440,6 +13525,7 @@ installsitearch='$installsitearch'
 installsitelib='$installsitelib'
 installstyle='$installstyle'
 installusrbinperl='$installusrbinperl'
+installvendorlib='$installvendorlib'
 intsize='$intsize'
 known_extensions='$known_extensions'
 ksh='$ksh'
@@ -13622,9 +13708,14 @@ usesfio='$usesfio'
 useshrplib='$useshrplib'
 usesocks='$usesocks'
 usethreads='$usethreads'
+usevendorprefix='$usevendorprefix'
 usevfork='$usevfork'
 usrinc='$usrinc'
 uuname='$uuname'
+vendorlib='$vendorlib'
+vendorlibexp='$vendorlibexp'
+vendorprefix='$vendorprefix'
+vendorprefixexp='$vendorprefixexp'
 version='$version'
 vi='$vi'
 voidflags='$voidflags'
index 2ae9369..4f1cbf4 100644 (file)
@@ -1526,6 +1526,9 @@ d_union_semun (d_union_semun.U):
        This variable conditionally defines HAS_UNION_SEMUN if the
        union semun is defined by including <sys/sem.h>.
 
+d_vendorlib (vendorlib.U):
+       This variable conditionally defines PERL_VENDORLIB.
+
 d_vfork (d_vfork.U):
        This variable conditionally defines the HAS_VFORK symbol, which
        indicates the vfork() routine is available.
@@ -2170,6 +2173,11 @@ installusrbinperl (instubperl.U):
        /usr/bin/perl in addition to
        $installbin/perl
 
+installvendorlib (vendorlib.U):
+       This variable is really the same as vendorlibexp but may differ on
+       those systems using AFS. For extra portability, only this variable
+       should be used in makefiles.
+
 intsize (intsize.U):
        This variable contains the value of the INTSIZE symbol, which
        indicates to the C program how many bytes there are in an int.
@@ -3086,6 +3094,26 @@ uuname (Loc.U):
        This variable is defined but not used by Configure.
        The value is a plain '' and is not useful.
 
+vendorlib (vendorlib.U):
+       This variable contains the eventual value of the VENDORLIB symbol,
+       which is the name of the private library for this package.  It may
+       have a ~ on the front. It is up to the makefile to eventually create
+       this directory while performing installation (with ~ substitution).
+       Vendors who distribute perl binaries may place their own
+       extensions and modules in this directory.
+
+vendorlibexp (vendorlib.U):
+       This variable is the ~name expanded version of vendorlib, so that you
+       may use it directly in Makefiles or shell scripts.
+
+vendorprefix (vendorprefix.U):
+       This variable holds the full absolute path of the directory below
+       which the vendor will install add-on packages.
+
+vendorprefixexp (vendorprefix.U):
+       This variable holds the full absolute path of the directory below
+       which the vendor will install add-on packages.  Derived from vendorprefix.
+
 version (patchlevel.U):
        The full version number of this package.  This combines
        baserev, patchlevel, and subversion to get the full
index 70998a1..40e1301 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Sun Jul 25 14:08:44 EET DST 1999
+# Configuration time: Sun Jul 25 17:08:22 EET DST 1999
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -55,7 +55,7 @@ ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__LANGUAGE_C__=1 _LONGLONG=1 LANGUAGE_C=1 SYSTYPE_BSD=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Sun Jul 25 14:08:44 EET DST 1999'
+cf_time='Sun Jul 25 17:08:22 EET DST 1999'
 chgrp=''
 chmod=''
 chown=''
@@ -358,6 +358,7 @@ d_tzname='define'
 d_umask='define'
 d_uname='define'
 d_union_semun='undef'
+d_vendorlib='undef'
 d_vfork='undef'
 d_void_closedir='undef'
 d_voidsig='define'
@@ -494,6 +495,7 @@ installsitearch='/opt/perl/lib/site_perl/5.00557/alpha-dec_osf-thread'
 installsitelib='/opt/perl/lib/site_perl'
 installstyle='lib'
 installusrbinperl='define'
+installvendorlib=''
 intsize='4'
 known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Thread attrs re'
 ksh=''
@@ -676,9 +678,14 @@ usesfio='false'
 useshrplib='true'
 usesocks='undef'
 usethreads='define'
+usevendorprefix='undef'
 usevfork='false'
 usrinc='/usr/include'
 uuname=''
+vendorlib=''
+vendorlibexp=''
+vendorprefix=''
+vendorprefixexp=''
 version='5.00557'
 vi=''
 voidflags='15'
index 4ee9f78..43de61d 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Sun Jul 25 14:08:44 EET DST 1999
+ * Configuration time: Sun Jul 25 17:08:22 EET DST 1999
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
 #define SITELIB "/opt/perl/lib/site_perl"              /**/
 #define SITELIB_EXP "/opt/perl/lib/site_perl"          /**/
 
+/* PERL_VENDORLIB_EXP:
+ *     This symbol contains the ~name expanded version of VENDORLIB, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+/*#define PERL_VENDORLIB_EXP ""                / **/
+
 /* OSNAME:
  *     This symbol contains the name of the operating system, as determined
  *     by Configure.  You shouldn't rely on it too much; the specific
index 6108e71..405f896 100644 (file)
@@ -1502,6 +1502,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define SITELIB "$sitelib"             /**/
 #define SITELIB_EXP "$sitelibexp"              /**/
 
+/* PERL_VENDORLIB_EXP:
+ *     This symbol contains the ~name expanded version of VENDORLIB, to be used
+ *     in programs that are not prepared to deal with ~ expansion at run-time.
+ */
+#$d_vendorlib PERL_VENDORLIB_EXP "$vendorlibexp"               /**/
+
 /* OSNAME:
  *     This symbol contains the name of the operating system, as determined
  *     by Configure.  You shouldn't rely on it too much; the specific
diff --git a/perl.c b/perl.c
index 23aec97..b90bc7b 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -2768,6 +2768,12 @@ S_init_perllib(pTHX)
 #else
     incpush(SITELIB_EXP, FALSE);
 #endif
+#if defined(PERL_VENDORLIB_EXP)
+#if defined(WIN32) 
+    incpush(PERLVENDORLIB_EXP, TRUE);
+#else
+    incpush(PERL_VENDORLIB_EXP, FALSE);
+#endif
 #endif
     if (!PL_tainting)
        incpush(".", FALSE);