This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
d591ebed5914cc8723bd6f7a37a18f28b9e753e9
[metaconfig.git] / U / installdirs / bin.U
1 ?RCS: $Id: bin.U,v 3.1 1999/07/09 18:20:13 doughera Exp doughera $
2 ?RCS:
3 ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
4 ?RCS:
5 ?RCS: You may redistribute only under the terms of the Artistic Licence,
6 ?RCS: as specified in the README file that comes with the distribution.
7 ?RCS: You may reuse parts of this distribution only within the terms of
8 ?RCS: that same Artistic Licence; a copy of which may be found at the root
9 ?RCS: of the source tree for dist 3.0.
10 ?RCS:
11 ?RCS: $Log: bin.U,v $
12 ?RCS: Revision 3.1  1999/07/09 18:20:13  doughera
13 ?RCS: Updated for installprefix
14 ?RCS:
15 ?RCS: Revision 3.0.1.4  1995/09/25  09:15:32  ram
16 ?RCS: patch59: unit is now forced to the top of Configure, if possible
17 ?RCS:
18 ?RCS: Revision 3.0.1.3  1995/01/30  14:32:40  ram
19 ?RCS: patch49: can now handle installation prefix changes (from WED)
20 ?RCS:
21 ?RCS: Revision 3.0.1.2  1994/08/29  16:05:28  ram
22 ?RCS: patch32: now uses installation prefix
23 ?RCS:
24 ?RCS: Revision 3.0.1.1  1993/09/13  15:56:51  ram
25 ?RCS: patch10: made prompting more explicit (WAD)
26 ?RCS:
27 ?RCS: Revision 3.0  1993/08/18  12:05:26  ram
28 ?RCS: Baseline for dist 3.0 netwide release.
29 ?RCS:
30 ?MAKE:bin binexp installbin userelocatableinc initialinstalllocation: \
31         Myread Prefixit Getfile Setvar Setprefixvar Oldconfig \
32         test prefix prefixexp
33 ?MAKE:  -pick add $@ %<
34 ?LINT:change prefix
35 ?LINT:change prefixexp
36 ?LINT:change prefixvar
37 ?LINT:change installprefixexp
38 ?Y:TOP
39 ?D:bin=''
40 ?S:bin:
41 ?S:     This variable holds the name of the directory in which the user wants
42 ?S:     to put publicly executable images for the package in question.  It
43 ?S:     is most often a local directory such as /usr/local/bin. Programs using
44 ?S:     this variable must be prepared to deal with ~name substitution.
45 ?S:.
46 ?D:binexp=''
47 ?S:binexp:
48 ?S:     This is the same as the bin variable, but is filename expanded at
49 ?S:     configuration time, for use in your makefiles.
50 ?S:.
51 ?D:installbin=''
52 ?S:installbin:
53 ?S:     This variable is the same as binexp unless AFS is running in which case
54 ?S:     the user is explicitely prompted for it. This variable should always
55 ?S:     be used in your makefiles for maximum portability.
56 ?S:.
57 ?D:userelocatableinc=''
58 ?S:userelocatableinc:
59 ?S:     This variable is set to true to indicate that perl should relocate
60 ?S:     @INC entries at runtime based on the path to the perl binary.
61 ?S:     Any @INC paths starting ".../" are relocated relative to the directory
62 ?S:     containing the perl binary, and a logical cleanup of the path is then
63 ?S:     made around the join point (removing "dir/../" pairs)
64 ?S:.
65 ?S:initialinstalllocation:
66 ?S:     When userelocatableinc is true, this variable holds the location
67 ?S:     that make install should copy the perl binary to, with all the
68 ?S:     run-time relocatable paths calculated from this at install time.
69 ?S:     When used, it is initialised to the original value of binexp, and
70 ?S:     then binexp is set to '.../', as the other binaries are found
71 ?S:     relative to the perl binary.
72 ?S:.
73 ?C:BIN:
74 ?C:     This symbol holds the path of the bin directory where the package will
75 ?C:     be installed. Program must be prepared to deal with ~name substitution.
76 ?C:.
77 ?C:BIN_EXP:
78 ?C:     This symbol is the filename expanded version of the BIN symbol, for
79 ?C:     programs that do not want to deal with that at run-time.
80 ?C:.
81 ?C:PERL_RELOCATABLE_INC:
82 ?C:     This symbol, if defined, indicates that we'd like to relocate entries
83 ?C:     in @INC at run time based on the location of the perl binary.
84 ?C:.
85 ?H:#define BIN "$bin"   /**/
86 ?H:#define BIN_EXP "$binexp"    /**/
87 ?H:#define PERL_RELOCATABLE_INC "$userelocatableinc"            /**/
88 ?H:.
89 ?D:bin='/usr/local/bin'
90 : determine where public executables go
91 echo " "
92 set dflt bin bin
93 eval $prefixit
94 fn=d~
95 rp='Pathname where the public executables will reside?'
96 . ./getfile
97 if $test "X$ansexp" != "X$binexp"; then
98         installbin=''
99 fi
100 prefixvar=bin
101 : XXX Bug? -- ignores Configure -Dinstallprefix setting.
102 . ./setprefixvar
103
104 case "$userelocatableinc" in
105 $define|true|[yY]*)     dflt='y' ;;
106 *)                      dflt='n' ;;
107 esac
108 cat <<EOM
109
110 Would you like to build Perl so that the installation is relocatable, so that
111 library paths in @INC are determined relative to the path of the perl binary?
112 This is not advised for system Perl installs, or if you need to run setid
113 scripts or scripts under taint mode.
114
115 If this doesn't make any sense to you, just accept the default '$dflt'.
116 EOM
117 rp='Use relocatable @INC?'
118 . ./myread
119 case "$ans" in
120 y|Y)    val="$define" ;;
121 *)      val="$undef"  ;;
122 esac
123 set userelocatableinc
124 eval $setvar
125
126 : Default prefix is now "up one level from where the binaries are"
127 case "$userelocatableinc" in
128 $define|true|[yY]*)
129     initialinstalllocation="$binexp"
130     bin=".../"
131     binexp=".../"
132     prefix=".../.."
133     prefixexp=".../.."
134     installprefixexp=".../.."
135     ;;
136 esac
137