This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fold_grind.t: No longer any TODOs
[perl5.git] / Policy_sh.SH
CommitLineData
a02608de 1case $PERL_CONFIG_SH in
85364e4e
MB
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
c9166e37 10# running Configure.
85364e4e
MB
11#
12# The idea here is to distill in one place the common site-wide
13# "policy" answers (such as installation directories) that are
dc45a647 14# to be "sticky". If you keep the file Policy.sh around in
85364e4e
MB
15# the same directory as you are building Perl, then Configure will
16# (by default) load up the Policy.sh file just before the
c9166e37
AD
17# platform-specific hints file and rewrite it at the end.
18#
19# The sequence of events is as follows:
20# A: If you are NOT re-using an old config.sh:
21# 1. At start-up, Configure loads up the defaults from the
22# os-specific hints/osname_osvers.sh file and any previous
23# Policy.sh file.
24# 2. At the end, Configure runs Policy_sh.SH, which creates
25# Policy.sh, overwriting a previous Policy.sh if necessary.
26#
27# B: If you are re-using an old config.sh:
28# 1. At start-up, Configure loads up the defaults from config.sh,
29# ignoring any previous Policy.sh file.
30# 2. At the end, Configure runs Policy_sh.SH, which creates
31# Policy.sh, overwriting a previous Policy.sh if necessary.
32#
33# Thus the Policy.sh file gets overwritten each time
34# Configure is run. Any variables you add to Policy.sh will be lost
35# unless you copy Policy.sh somewhere else before running Configure.
dc45a647 36#
dc45a647
MB
37# Allow Configure command-line overrides; usually these won't be
38# needed, but something like -Dprefix=/test/location can be quite
39# useful for testing out new versions.
85364e4e 40
dc45a647 41#Site-specific values:
85364e4e 42
dc45a647
MB
43case "\$perladmin" in
44'') perladmin='$perladmin' ;;
45esac
46
5f578af9 47# Installation prefixes. Allow a Configure -D override. You
dc45a647
MB
48# may wish to reinstall perl under a different prefix, perhaps
49# in order to test a different configuration.
9e80d8f4
JH
50# For an explanation of the installation directories, see the
51# INSTALL file section on "Installation Directories".
dc45a647
MB
52case "\$prefix" in
53'') prefix='$prefix' ;;
54esac
c9166e37
AD
55
56# By default, the next three are the same as \$prefix.
57# If the user changes \$prefix, and previously \$siteprefix was the
58# same as \$prefix, then change \$siteprefix as well.
59# Use similar logic for \$vendorprefix and \$installprefix.
60
5f578af9 61case "\$siteprefix" in
c9166e37
AD
62'') if test "$siteprefix" = "$prefix"; then
63 siteprefix="\$prefix"
64 else
65 siteprefix='$siteprefix'
66 fi
67 ;;
5f578af9
AD
68esac
69case "\$vendorprefix" in
c9166e37
AD
70'') if test "$vendorprefix" = "$prefix"; then
71 vendorprefix="\$prefix"
72 else
73 vendorprefix='$vendorprefix'
74 fi
75 ;;
5f578af9
AD
76esac
77
78# Where installperl puts things.
79case "\$installprefix" in
c9166e37
AD
80'') if test "$installprefix" = "$prefix"; then
81 installprefix="\$prefix"
82 else
83 installprefix='$installprefix'
84 fi
85 ;;
5f578af9 86esac
85364e4e
MB
87
88# Installation directives. Note that each one comes in three flavors.
89# For example, we have privlib, privlibexp, and installprivlib.
90# privlib is for private (to perl) library files.
c4f23d77 91# privlibexp is the same, except any '~' the user gave to Configure
85364e4e 92# is expanded to the user's home directory. This is figured
dc45a647 93# out automatically by Configure, so you don't have to include it here.
85364e4e
MB
94# installprivlib is for systems (such as those running AFS) that
95# need to distinguish between the place where things
5f578af9
AD
96# get installed and where they finally will reside. As of 5.005_6x,
97# this too is handled automatically by Configure based on
98# $installprefix, so it isn't included here either.
99#
9e80d8f4
JH
100# Note also that there are three broad hierarchies of installation
101# directories, as discussed in the INSTALL file under
102# "Installation Directories":
103#
104# =item Directories for the perl distribution
105#
106# =item Directories for site-specific add-on files
107#
108# =item Directories for vendor-supplied add-on files
109#
5f578af9 110# See Porting/Glossary for the definitions of these names, and see the
9e80d8f4 111# INSTALL file for further explanation and some examples.
dc45a647
MB
112#
113# In each case, if your previous value was the default, leave it commented
114# out. That way, if you override prefix, all of these will be
115# automatically adjusted.
693762b4 116#
3a6175e1 117# WARNING: Be especially careful about architecture-dependent and
dc45a647
MB
118# version-dependent names, particularly if you reuse this file for
119# different versions of perl.
693762b4
AD
120
121!GROK!THIS!
122
6e1038e0
MB
123# Set the following variables. Mention them here so metaconfig
124# includes the appropriate code in Configure
125# $bin $scriptdir $privlib $archlib
126# $man1dir $man3dir $html1dir $html3dir
127# $sitebin $sitescript $sitelib $sitearch
8d2cbf27 128# $siteman1dir $siteman3dir $sitehtml1dir $sitehtml3dir
6e1038e0 129# $vendorbin $vendorscript $vendorlib $vendorarch
8d2cbf27 130# $vendorman1dir $vendorman3dir $vendorhtml1dir $vendorhtml3dir
6e1038e0 131
5f578af9 132for var in \
c1bd2363
MB
133 bin scriptdir privlib archlib man1dir man3dir man1ext man3ext \
134 html1dir html3dir \
49c10eea 135 sitebin sitescript sitelib sitearch \
8d2cbf27 136 siteman1dir siteman3dir sitehtml1dir sitehtml3dir \
5f578af9 137 vendorbin vendorscript vendorlib vendorarch \
8d2cbf27 138 vendorman1dir vendorman3dir vendorhtml1dir vendorhtml3dir
5f578af9 139do
dc45a647
MB
140
141 case "$var" in
5f578af9
AD
142
143 # Directories for the core perl components
dc45a647
MB
144 bin) dflt=$prefix/bin ;;
145 # The scriptdir test is more complex, but this is probably usually ok.
c4f23d77
AD
146 scriptdir)
147 if $test -d $prefix/script; then
148 dflt=$prefix/script
149 else
150 dflt=$bin
151 fi
152 ;;
dc45a647
MB
153 privlib)
154 case "$prefix" in
3a6175e1
AD
155 *perl*) dflt=$prefix/lib/$version ;;
156 *) dflt=$prefix/lib/$package/$version ;;
bfb7748a
AD
157 esac
158 ;;
5f578af9
AD
159 archlib) dflt="$privlib/$archname" ;;
160
161 man1dir) dflt="$prefix/man/man1" ;;
162 man3dir) dflt="$prefix/man/man3" ;;
163 # Can we assume all sed's have greedy matching?
164 man1ext) dflt=`echo $man1dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
165 man3ext) dflt=`echo $man3dir | sed -e 's!.*man!!' -e 's!^\.!!'` ;;
166
167 # We don't know what to do with these yet.
168 html1dir) dflt='' ;;
c1bd2363 169 html3dir) dflt='' ;;
5f578af9 170
9e80d8f4 171 # Directories for site-specific add-on files
5f578af9 172 sitebin) dflt=$siteprefix/bin ;;
49c10eea 173 sitescript)
5f578af9
AD
174 if $test -d $siteprefix/script; then
175 dflt=$siteprefix/script
176 else
177 dflt=$sitebin
178 fi
bfb7748a
AD
179 ;;
180 sitelib)
5f578af9 181 case "$siteprefix" in
ba04bae9
JH
182 *perl*) dflt=$prefix/lib/site_perl/$version ;;
183 *) dflt=$prefix/lib/$package/site_perl/$version ;;
dc45a647
MB
184 esac
185 ;;
ba04bae9 186 sitearch) dflt="$sitelib/$archname" ;;
dc45a647 187
c1bd2363
MB
188 siteman1dir) dflt="$siteprefix/man/man1" ;;
189 siteman3dir) dflt="$siteprefix/man/man3" ;;
5f578af9 190 # We don't know what to do with these yet.
c1bd2363
MB
191 sitehtml1dir) dflt='' ;;
192 sitehtml3dir) dflt='' ;;
5f578af9 193
9e80d8f4
JH
194 # Directories for vendor-supplied add-on files
195 # These are all usually empty.
5f578af9
AD
196 vendor*)
197 if test X"$vendorprefix" = X""; then
198 dflt=''
199 else
200 case "$var" in
201 vendorbin) dflt=$vendorprefix/bin ;;
49c10eea 202 vendorscript)
5f578af9
AD
203 if $test -d $vendorprefix/script; then
204 dflt=$vendorprefix/script
205 else
206 dflt=$vendorbin
207 fi
208 ;;
209 vendorlib)
210 case "$vendorprefix" in
ba04bae9
JH
211 *perl*) dflt=$prefix/lib/vendor_perl/$version ;;
212 *) dflt=$prefix/lib/$package/vendor_perl/$version ;;
5f578af9
AD
213 esac
214 ;;
ba04bae9 215 vendorarch) dflt="$vendorlib/$archname" ;;
dc45a647 216
c1bd2363
MB
217 vendorman1dir) dflt="$vendorprefix/man/man1" ;;
218 vendorman3dir) dflt="$vendorprefix/man/man3" ;;
5f578af9 219 # We don't know what to do with these yet.
c1bd2363
MB
220 vendorhtml1dir) dflt='' ;;
221 vendorhtml3dir) dflt='' ;;
5f578af9
AD
222
223 esac # End of vendorprefix != ''
224 fi
225 ;;
dc45a647
MB
226 esac
227
228 eval val="\$$var"
229 if test X"$val" = X"$dflt"; then
230 echo "# $var='$dflt'"
231 else
232 echo "# Preserving custom $var"
dc45a647
MB
233 echo "$var='$val'"
234 fi
235
236done >> Policy.sh
693762b4
AD
237
238$spitshell <<!GROK!THIS! >>Policy.sh
239
dc45a647 240# Lastly, you may add additional items here. For example, to set the
693762b4
AD
241# pager to your local favorite value, uncomment the following line in
242# the original Policy_sh.SH file and re-run sh Policy_sh.SH.
dc45a647
MB
243#
244# pager='$pager'
693762b4
AD
245#
246# A full Glossary of all the config.sh variables is in the file
247# Porting/Glossary.
85364e4e
MB
248
249!GROK!THIS!
3a6175e1
AD
250
251#Credits:
252# The original design for this Policy.sh file came from Wayne Davison,
253# maintainer of trn.
254# This version for Perl5.004_61 originally written by
9e80d8f4 255# Andy Dougherty <doughera@lafayette.edu>.
3a6175e1 256# This file may be distributed under the same terms as Perl itself.