[perl #92258] <$fh> hangs on a glob copy
[perl.git] / Policy_sh.SH
1 case $PERL_CONFIG_SH in
2 '') . ./config.sh ;;
3 esac
4 echo "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
10 #  running Configure.  
11 #
12 #  The idea here is to distill in one place the common site-wide
13 #  "policy" answers (such as installation directories) that are
14 #  to be "sticky".  If you keep the file Policy.sh around in
15 #  the same directory as you are building Perl, then Configure will
16 #  (by default) load up the Policy.sh file just before the
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.
36 #
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.
40
41 #Site-specific values:
42
43 case "\$perladmin" in
44 '') perladmin='$perladmin' ;;
45 esac
46
47 # Installation prefixes.  Allow a Configure -D override.  You
48 # may wish to reinstall perl under a different prefix, perhaps
49 # in order to test a different configuration.
50 # For an explanation of the installation directories, see the
51 # INSTALL file section on "Installation Directories".
52 case "\$prefix" in
53 '') prefix='$prefix' ;;
54 esac
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
61 case "\$siteprefix" in
62 '') if test "$siteprefix" = "$prefix"; then
63         siteprefix="\$prefix"
64     else
65         siteprefix='$siteprefix'
66     fi
67     ;;
68 esac
69 case "\$vendorprefix" in
70 '') if test "$vendorprefix" = "$prefix"; then
71         vendorprefix="\$prefix"
72     else
73         vendorprefix='$vendorprefix'
74     fi
75     ;;
76 esac
77
78 # Where installperl puts things.
79 case "\$installprefix" in
80 '') if test "$installprefix" = "$prefix"; then
81         installprefix="\$prefix"
82     else
83         installprefix='$installprefix'
84     fi
85     ;;
86 esac
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.
91 # privlibexp is the same, except any '~' the user gave to Configure
92 #     is expanded to the user's home directory.  This is figured
93 #     out automatically by Configure, so you don't have to include it here.
94 # installprivlib is for systems (such as those running AFS) that
95 #     need to distinguish between the place where things
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 #
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 #
110 #  See Porting/Glossary for the definitions of these names, and see the
111 #  INSTALL file for further explanation and some examples.
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.
116 #
117 # WARNING:  Be especially careful about architecture-dependent and
118 # version-dependent names, particularly if you reuse this file for
119 # different versions of perl.
120
121 !GROK!THIS!
122
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 
128 #       $siteman1dir $siteman3dir $sitehtml1dir $sitehtml3dir
129 #   $vendorbin $vendorscript $vendorlib $vendorarch
130 #       $vendorman1dir $vendorman3dir $vendorhtml1dir $vendorhtml3dir
131
132 for var in \
133         bin scriptdir privlib archlib man1dir man3dir man1ext man3ext \
134         html1dir html3dir \
135         sitebin sitescript sitelib sitearch \
136                 siteman1dir siteman3dir sitehtml1dir sitehtml3dir \
137         vendorbin vendorscript vendorlib vendorarch \
138                 vendorman1dir vendorman3dir vendorhtml1dir vendorhtml3dir
139 do
140         
141     case "$var" in
142
143     # Directories for the core perl components
144     bin)        dflt=$prefix/bin ;;
145     # The scriptdir test is more complex, but this is probably usually ok.
146     scriptdir)
147         if $test -d $prefix/script; then
148             dflt=$prefix/script
149         else
150             dflt=$bin
151         fi
152         ;;
153     privlib)
154         case "$prefix" in
155         *perl*) dflt=$prefix/lib/$version ;;
156         *)      dflt=$prefix/lib/$package/$version ;;
157         esac
158         ;;
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='' ;;
169     html3dir)   dflt='' ;;
170
171     # Directories for site-specific add-on files
172     sitebin)    dflt=$siteprefix/bin ;;
173     sitescript)
174         if $test -d $siteprefix/script; then
175             dflt=$siteprefix/script
176         else
177             dflt=$sitebin
178         fi
179         ;;
180     sitelib)
181         case "$siteprefix" in
182         *perl*) dflt=$prefix/lib/site_perl/$version ;;
183         *)      dflt=$prefix/lib/$package/site_perl/$version ;;
184         esac
185         ;;
186     sitearch)   dflt="$sitelib/$archname" ;;
187
188     siteman1dir) dflt="$siteprefix/man/man1" ;;
189     siteman3dir) dflt="$siteprefix/man/man3" ;;
190     # We don't know what to do with these yet.
191     sitehtml1dir)       dflt='' ;;
192     sitehtml3dir)       dflt='' ;;
193     
194     # Directories for vendor-supplied add-on files
195     # These are all usually empty.
196     vendor*)
197         if test X"$vendorprefix" = X""; then
198             dflt=''
199         else
200             case "$var" in
201             vendorbin)  dflt=$vendorprefix/bin ;;
202             vendorscript)
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
211                 *perl*) dflt=$prefix/lib/vendor_perl/$version ;;
212                 *)      dflt=$prefix/lib/$package/vendor_perl/$version ;;
213                 esac
214                 ;;
215             vendorarch) dflt="$vendorlib/$archname" ;;
216
217             vendorman1dir)      dflt="$vendorprefix/man/man1" ;;
218             vendorman3dir)      dflt="$vendorprefix/man/man3" ;;
219             # We don't know what to do with these yet.
220             vendorhtml1dir)     dflt='' ;;
221             vendorhtml3dir)     dflt='' ;;
222
223             esac  # End of vendorprefix != ''
224         fi
225         ;;
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"
233         echo "$var='$val'"
234     fi
235
236 done >> Policy.sh
237
238 $spitshell <<!GROK!THIS! >>Policy.sh
239
240 #  Lastly, you may add additional items here.  For example, to set the
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.
243 #
244 #  pager='$pager'
245 #
246 #  A full Glossary of all the config.sh variables is in the file
247 #  Porting/Glossary.
248
249 !GROK!THIS!
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
255 #   Andy Dougherty <doughera@lafayette.edu>.
256 #   This file may be distributed under the same terms as Perl itself.