This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Implement use attrs qw(locked package);
[perl5.git] / Policy_sh.SH
CommitLineData
85364e4e
MB
1case $CONFIG in
2'') . ./config.sh ;;
3esac
4echo "Extracting Policy.sh (with variable substitutions)"
5$spitshell <<!GROK!THIS! >Policy.sh
6$startsh
7#
8# This file was produced by running the Policy_sh.SH script, which
9# gets its values from config.sh, which is generally produced by
693762b4
AD
10# running Configure. The Policy.sh file gets overwritten each time
11# Configure is run. Any variables you add to Policy.sh will be lost
12# unless you copy Policy.sh somewhere else before running Configure.
85364e4e
MB
13#
14# The idea here is to distill in one place the common site-wide
15# "policy" answers (such as installation directories) that are
dc45a647 16# to be "sticky". If you keep the file Policy.sh around in
85364e4e
MB
17# the same directory as you are building Perl, then Configure will
18# (by default) load up the Policy.sh file just before the
19# platform-specific hints file.
dc45a647 20#
85364e4e
MB
21
22#Credits:
23# The original design for this Policy.sh file came from Wayne Davison,
24# maintainer of trn.
dc45a647 25# This version for Perl5.004_61 originally written by
85364e4e
MB
26# Andy Dougherty <doughera@lafcol.lafayette.edu>.
27# This file may be distributed under the same terms as Perl itself.
28
dc45a647
MB
29# Allow Configure command-line overrides; usually these won't be
30# needed, but something like -Dprefix=/test/location can be quite
31# useful for testing out new versions.
85364e4e 32
dc45a647 33#Site-specific values:
85364e4e 34
dc45a647
MB
35case "\$perladmin" in
36'') perladmin='$perladmin' ;;
37esac
38
39# Installation prefix. Allow a Configure -D override. You
40# may wish to reinstall perl under a different prefix, perhaps
41# in order to test a different configuration.
42case "\$prefix" in
43'') prefix='$prefix' ;;
44esac
85364e4e
MB
45
46# Installation directives. Note that each one comes in three flavors.
47# For example, we have privlib, privlibexp, and installprivlib.
48# privlib is for private (to perl) library files.
49# privlibexp is the same, expcept any '~' the user gave to Configure
50# is expanded to the user's home directory. This is figured
dc45a647 51# out automatically by Configure, so you don't have to include it here.
85364e4e
MB
52# installprivlib is for systems (such as those running AFS) that
53# need to distinguish between the place where things
54# get installed and where they finally will reside.
dc45a647
MB
55#
56# In each case, if your previous value was the default, leave it commented
57# out. That way, if you override prefix, all of these will be
58# automatically adjusted.
693762b4 59#
dc45a647
MB
60# NOTE: Be especially careful about architecture-dependent and
61# version-dependent names, particularly if you reuse this file for
62# different versions of perl.
693762b4
AD
63
64!GROK!THIS!
65
66if test 0 -eq "$subversion"; then
67 version=`LC_ALL=C; export LC_ALL; \
dc45a647 68 echo $baserev $patchlevel |
693762b4
AD
69 $awk '{ printf "%.3f\n", $1 + $2/1000.0 }'`
70else
71 version=`LC_ALL=C; export LC_ALL; \
72 echo $baserev $patchlevel $subversion | \
73 $awk '{ printf "%.5f\n", $1 + $2/1000.0 + $3/100000.0 }'`
74fi
75
dc45a647
MB
76for var in bin scriptdir privlib archlib \
77 man1dir man3dir sitelib sitearch \
78 installbin installscript installprivlib installarchlib \
79 installman1dir installman3dir installsitelib installsitearch \
80 man1ext man3ext; do
81
82 case "$var" in
83 bin) dflt=$prefix/bin ;;
84 # The scriptdir test is more complex, but this is probably usually ok.
85 scriptdir) dflt=$prefix/script ;;
86 privlib)
87 case "$prefix" in
88 *perl*) dflt=$prefix/lib ;;
89 *) dflt=$prefix/lib/$package ;;
90 esac
91 ;;
92 archlib) dflt="$privlib/$archname/$version" ;;
93 sitelib) dflt="$privlib/site_perl" ;;
94 sitearch) dflt="$sitelib/$archname" ;;
95 man1dir) dflt="$prefix/man/man1" ;;
96 man3dir)
97 case "$prefix" in
98 *perl*) dflt=`echo $man1dir |
99 sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'` ;;
100 *) dflt=$privlib/man3 ;;
101 esac
102 ;;
103
104 # Can we assume all sed's have greedy matching?
105 man1ext) dflt=`echo $man1dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
106 man3ext) dflt=`echo $man3dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
107
108 # It might be possible to fool these next tests. Please let
109 # me know if they don't work right for you.
110 installbin) dflt=`echo $binexp | sed 's#^/afs/#/afs/.#'`;;
111 installscript) dflt=`echo $scriptdirexp | sed 's#^/afs/#/afs/.#'`;;
112 installprivlib) dflt=`echo $privlibexp | sed 's#^/afs/#/afs/.#'`;;
113 installarchlib) dflt=`echo $archlibexp | sed 's#^/afs/#/afs/.#'`;;
114 installsitelib) dflt=`echo $sitelibexp | sed 's#^/afs/#/afs/.#'`;;
115 installsitearch) dflt=`echo $sitearchexp | sed 's#^/afs/#/afs/.#'`;;
116 installman1dir) dflt=`echo $man1direxp | sed 's#^/afs/#/afs/.#'`;;
117 installman3dir) dflt=`echo $man3direxp | sed 's#^/afs/#/afs/.#'`;;
118 esac
119
120 eval val="\$$var"
121 if test X"$val" = X"$dflt"; then
122 echo "# $var='$dflt'"
123 else
124 echo "# Preserving custom $var"
125 eval val=$var
126 echo "$var='$val'"
127 fi
128
129done >> Policy.sh
693762b4
AD
130
131$spitshell <<!GROK!THIS! >>Policy.sh
132
dc45a647 133# Lastly, you may add additional items here. For example, to set the
693762b4
AD
134# pager to your local favorite value, uncomment the following line in
135# the original Policy_sh.SH file and re-run sh Policy_sh.SH.
dc45a647
MB
136#
137# pager='$pager'
693762b4
AD
138#
139# A full Glossary of all the config.sh variables is in the file
140# Porting/Glossary.
85364e4e
MB
141
142!GROK!THIS!