summaryrefslogtreecommitdiff
path: root/Policy_sh.SH
blob: acac3ed8aff9b5a58723b8f08bd7c8846533cb01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
case $CONFIG in
'') . ./config.sh ;;
esac
echo "Extracting Policy.sh (with variable substitutions)"
$spitshell <<!GROK!THIS! >Policy.sh
$startsh
#
#  This file was produced by running the Policy_sh.SH script, which
#  gets its values from config.sh, which is generally produced by
#  running Configure.  The Policy.sh file gets overwritten each time
#  Configure is run.  Any variables you add to Policy.sh will be lost
#  unless you copy Policy.sh somewhere else before running Configure.
#
#  The idea here is to distill in one place the common site-wide
#  "policy" answers (such as installation directories) that are
#  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
#   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:

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.
# 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.
# 
# 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.
#
# 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 |
	$awk '{ printf "%.3f\n", $1 + $2/1000.0 }'`
else
    version=`LC_ALL=C; export LC_ALL; \
	echo $baserev $patchlevel $subversion | \
	$awk '{ printf "%.5f\n", $1 + $2/1000.0 + $3/100000.0 }'`
fi

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
#  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'
#
#  A full Glossary of all the config.sh variables is in the file
#  Porting/Glossary.

!GROK!THIS!