#
# The idea here is to distill in one place the common site-wide
# "policy" answers (such as installation directories) that are
-# to be "sticky". That is, if you keep the file Policy.sh around in
+# to be "sticky". If you keep the file Policy.sh around in
# the same directory as you are building Perl, then Configure will
# (by default) load up the Policy.sh file just before the
# platform-specific hints file.
-#
+#
#Credits:
# The original design for this Policy.sh file came from Wayne Davison,
# maintainer of trn.
-# This version for Perl5.004_61 originally written by
+# This version for Perl5.004_61 originally written by
# Andy Dougherty <doughera@lafcol.lafayette.edu>.
# This file may be distributed under the same terms as Perl itself.
+# Allow Configure command-line overrides; usually these won't be
+# needed, but something like -Dprefix=/test/location can be quite
+# useful for testing out new versions.
-# Site-specific values
+#Site-specific values:
-perladmin='$perladmin'
+case "\$perladmin" in
+'') perladmin='$perladmin' ;;
+esac
+
+# Installation prefix. Allow a Configure -D override. You
+# may wish to reinstall perl under a different prefix, perhaps
+# in order to test a different configuration.
+case "\$prefix" in
+'') prefix='$prefix' ;;
+esac
# Installation directives. Note that each one comes in three flavors.
# For example, we have privlib, privlibexp, and installprivlib.
# privlib is for private (to perl) library files.
# privlibexp is the same, expcept any '~' the user gave to Configure
# is expanded to the user's home directory. This is figured
-# out automatically by Configure, so you don't have to include it here.
+# out automatically by Configure, so you don't have to include it here.
# installprivlib is for systems (such as those running AFS) that
# need to distinguish between the place where things
# get installed and where they finally will reside.
-
-# Installation Prefix.
-prefix='$prefix'
-
-bin='$bin'
-installbin='$installbin'
-
-scriptdir='$scriptdir'
-installscript='$installscript'
-
-privlib='$privlib'
-installprivlib='$installprivlib'
-
-sitelib='$sitelib'
-installsitelib='$installsitelib'
-
-# man1 and man3 manpage directories and extensions.
-man1dir='$man1dir'
-man1ext='$man1ext'
-installman1dir='$installman1dir'
-man3dir='$man3dir'
-man3ext='$man3ext'
-installman3dir='$installman3dir'
-
-# NOTE: Be careful about architecture-dependent names. If you have
-# accepted the default, the following definitions will be commented out.
-# That way you can carry this file to another architecture and this file
-# won't mistakenly set architecture-dependent names to the wrong value.
+#
+# In each case, if your previous value was the default, leave it commented
+# out. That way, if you override prefix, all of these will be
+# automatically adjusted.
#
-# If you have not accepted the default, then be sure to check the
-# following lines before copying this file to another system.
+# NOTE: Be especially careful about architecture-dependent and
+# version-dependent names, particularly if you reuse this file for
+# different versions of perl.
!GROK!THIS!
if test 0 -eq "$subversion"; then
version=`LC_ALL=C; export LC_ALL; \
- echo $baserev $patchlevel |
+ echo $baserev $patchlevel |
$awk '{ printf "%.3f\n", $1 + $2/1000.0 }'`
else
version=`LC_ALL=C; export LC_ALL; \
$awk '{ printf "%.5f\n", $1 + $2/1000.0 + $3/100000.0 }'`
fi
-dflt="$privlib/$archname/$version"
-if test X"$archlib" = X"$dflt"; then
- echo "# archlib='$archlib'"
- echo "# installarchlib='$installarchlib'"
-else
- echo '# NOTE: Preserving your custom archlib.'
- echo "archlib='$archlib'"
- echo "installarchlib='$installarchlib'"
-fi >> Policy.sh
-echo >> Policy.sh
-
-# Now consider sitearch.
-dflt="$sitelib/$archname"
-if test X"$sitearch" = X"$dflt"; then
- echo "# sitearch='$sitearch'"
- echo "# installsitearch='$installsitearch'"
-else
- echo '# NOTE: Preserving your custom sitearch.'
- echo "sitearch='$sitearch'"
- echo "installsitearch='$installsitearch'"
-fi >> Policy.sh
+for var in bin scriptdir privlib archlib \
+ man1dir man3dir sitelib sitearch \
+ installbin installscript installprivlib installarchlib \
+ installman1dir installman3dir installsitelib installsitearch \
+ man1ext man3ext; do
+
+ case "$var" in
+ bin) dflt=$prefix/bin ;;
+ # The scriptdir test is more complex, but this is probably usually ok.
+ scriptdir) dflt=$prefix/script ;;
+ privlib)
+ case "$prefix" in
+ *perl*) dflt=$prefix/lib ;;
+ *) dflt=$prefix/lib/$package ;;
+ esac
+ ;;
+ archlib) dflt="$privlib/$archname/$version" ;;
+ sitelib) dflt="$privlib/site_perl" ;;
+ sitearch) dflt="$sitelib/$archname" ;;
+ man1dir) dflt="$prefix/man/man1" ;;
+ man3dir)
+ case "$prefix" in
+ *perl*) dflt=`echo $man1dir |
+ sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'` ;;
+ *) dflt=$privlib/man3 ;;
+ esac
+ ;;
+
+ # Can we assume all sed's have greedy matching?
+ man1ext) dflt=`echo $man1dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
+ man3ext) dflt=`echo $man3dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
+
+ # It might be possible to fool these next tests. Please let
+ # me know if they don't work right for you.
+ installbin) dflt=`echo $binexp | sed 's#^/afs/#/afs/.#'`;;
+ installscript) dflt=`echo $scriptdirexp | sed 's#^/afs/#/afs/.#'`;;
+ installprivlib) dflt=`echo $privlibexp | sed 's#^/afs/#/afs/.#'`;;
+ installarchlib) dflt=`echo $archlibexp | sed 's#^/afs/#/afs/.#'`;;
+ installsitelib) dflt=`echo $sitelibexp | sed 's#^/afs/#/afs/.#'`;;
+ installsitearch) dflt=`echo $sitearchexp | sed 's#^/afs/#/afs/.#'`;;
+ installman1dir) dflt=`echo $man1direxp | sed 's#^/afs/#/afs/.#'`;;
+ installman3dir) dflt=`echo $man3direxp | sed 's#^/afs/#/afs/.#'`;;
+ esac
+
+ eval val="\$$var"
+ if test X"$val" = X"$dflt"; then
+ echo "# $var='$dflt'"
+ else
+ echo "# Preserving custom $var"
+ eval val=$var
+ echo "$var='$val'"
+ fi
+
+done >> Policy.sh
$spitshell <<!GROK!THIS! >>Policy.sh
-# Lastly, you may add additional items here. For example, to set the
+# Lastly, you may add additional items here. For example, to set the
# pager to your local favorite value, uncomment the following line in
# the original Policy_sh.SH file and re-run sh Policy_sh.SH.
-# pager='$pager'
+#
+# pager='$pager'
#
# A full Glossary of all the config.sh variables is in the file
# Porting/Glossary.