comparison install-octave.in @ 3160:4696773a14b1

[project @ 1998-03-02 06:18:12 by jwe]
author jwe
date Mon, 02 Mar 1998 06:23:19 +0000
parents
children 7c96e85c76db
comparison
equal deleted inserted replaced
3159:3ed3f7f1d549 3160:4696773a14b1
1 #!/bin/sh
2 #
3 # install-octave -- install script for binary distributions.
4 #
5 # John W. Eaton
6 # jwe@bevo.che.wisc.edu
7 # University of Wisconsin-Madison
8 # Department of Chemical Engineering
9
10 # get version
11 version=`cat VERSION 2> /dev/null`
12
13 if test -z "$version"
14 then
15 echo "install-octave: no version number!"
16 exit 1
17 fi
18
19 # get host type
20 canonical_host_type=`cat ARCH 2> /dev/null`
21
22 if test -z "$canonical_host_type"
23 then
24 echo "install-octave: host archetecture not found!"
25 exit 1
26 fi
27
28 have_find=true
29 case "$canonical_host_type" in
30 *-*-cygwin32)
31 have_find=false
32 ;;
33 esac
34
35 distdir=`pwd`
36
37 # Check whether to use -n or \c to keep echo from printing a newline
38 # character. Stolen from autoconf, which borrowed the idea from dist 3.0.
39
40 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
41 # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
42 if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
43 echo_n=
44 echo_c='
45 '
46 else
47 echo_n=-n
48 echo_c=
49 fi
50 else
51 echo_n=
52 echo_c='\c'
53 fi
54
55 EXE=@EXE@
56
57 # ==================== Where To Install Things ====================
58
59 # The default location for installation. Everything is placed in
60 # subdirectories of this directory. The default values for many of
61 # the variables below are expressed in terms of this one, so you may
62 # not need to change them. This defaults to /usr/local.
63 prefix=@prefix@
64
65 alt_dir=false
66 if test $# -eq 1
67 then
68 alt_dir=true
69 prefix=$1
70 else
71 if test $# -gt 1
72 then
73 echo "usage: install-octave [prefix-directory]"
74 exit 1
75 fi
76 fi
77
78 # Like `prefix', but used for architecture-specific files.
79 exec_prefix="$prefix"
80
81 # Where to install Octave and other binaries that people will want to
82 # run directly.
83 bindir="$exec_prefix/bin"
84
85 # Where to install architecture-independent data files. ${fcnfiledir}
86 # and ${localfcnfiledir} are subdirectories of this.
87 datadir="$prefix/share"
88
89 libdir="$exec_prefix/lib"
90
91 # Where to install and expect libraries like libcruft.a and liboctave.a.
92 octlibdir="$libdir/octave-$version"
93
94 # Where to install and expect executable programs to be run by Octave
95 # rather than directly by users.
96 libexecdir="$exec_prefix/libexec"
97
98 includedir="$prefix/include"
99
100 # Where to install Octave's include files. The default is
101 # ${prefix}/include/octave-$version
102 octincludedir=$includedir/octave-$version
103
104 # Where to install Octave's man pages, and what extension they should
105 # have. The default is ${prefix}/man/man1
106 mandir="$prefix/man/man1"
107 manext="1"
108
109 # Where to install and expect the info files describing Octave..
110 infodir="$prefix/info"
111
112 # The fill path to the default info file.
113 infofile="$infodir/octave.info"
114
115 # ==================== Octave-specific directories ====================
116
117 # These variables hold the values Octave will actually use. They are
118 # based on the values of the standard Make variables above.
119
120 # Where to install the function file distributed with
121 # Octave. This includes the Octave version, so that the
122 # function files for different versions of Octave will install
123 # themselves in separate directories.
124 fcnfiledir="$datadir/octave/$version/m"
125
126 # Directories Octave should search for function files specific
127 # to this site (i.e. customizations), before consulting
128 # ${fcnfiledir}. This should be a colon-separated list of
129 # directories.
130 localfcnfiledir="$datadir/octave/site/m"
131 localfcnfilepath="$localfcnfiledir//"
132
133 # Where to put executables to be run by Octave rather than
134 # the user. This path usually includes the Octave version
135 # and configuration name, so that multiple configurations
136 # for multiple versions of Octave may be installed at once.
137 archlibdir="$libexecdir/octave/$version/exec/$canonical_host_type"
138
139 # Where to put executables to be run by Octave rather than by the
140 # user that are specific to this site.
141 localarchlibdir="$libexecdir/octave/site/exec/$canonical_host_type"
142
143 # Where to put object files that will by dynamically loaded.
144 # This path usually includes the Octave version and configuration
145 # name, so that multiple configurations for multiple versions of
146 # Octave may be installed at once.
147 octfiledir="$libexecdir/octave/$version/oct/$canonical_host_type"
148
149 # Directories Octave should search for object files that will be
150 # dynamically loaded and that are specific to this site
151 # (i.e. customizations), before consulting ${octfiledir}. This should
152 # be a colon-separated list of directories.
153 localoctfiledir="$libexecdir/octave/site/oct/$canonical_host_type"
154 localoctfilepath="$localoctfiledir//"
155
156 # Where Octave will search to find its function files. Before
157 # changing this, check to see if your purpose wouldn't
158 # better be served by changing localfcnfilepath. This
159 # should be a colon-separated list of directories.
160 fcnfilepath=".:$localoctfilepath:$localfcnfilepath:$octfiledir//:$fcnfiledir//"
161
162 # Where Octave will search to find image files.es.
163 imagedir="$datadir/octave/$version/imagelib"
164 imagepath=".:$imagedir//"
165
166 cat << EOF
167 Installing octave in the following subdirectories of
168 $prefix:
169
170 bindir: `echo $bindir | sed "s,^$prefix/,,"`
171 datadir: `echo $datadir | sed "s,^$prefix/,,"`
172 libdir: `echo $libdir | sed "s,^$prefix/,,"`
173 octlibdir: `echo $octlibdir | sed "s,^$prefix/,,"`
174 includedir: `echo $includedir | sed "s,^$prefix/,,"`
175 octincludedir: `echo $octincludedir | sed "s,^$prefix/,,"`
176 mandir: `echo $mandir | sed "s,^$prefix/,,"`
177 infodir: `echo $infodir | sed "s,^$prefix/,,"`
178 fcnfiledir: `echo $fcnfiledir | sed "s,^$prefix/,,"`
179 localfcnfiledir: `echo $localfcnfiledir | sed "s,^$prefix/,,"`
180 archlibdir: `echo $archlibdir | sed "s,^$prefix/,,"`
181 localarchlibdir: `echo $localarchlibdir | sed "s,^$prefix/,,"`
182 octfiledir: `echo $octfiledir | sed "s,^$prefix/,,"`
183 localoctfiledir: `echo $localoctfiledir | sed "s,^$prefix/,,"`
184 imagedir: `echo $imagedir | sed "s,^$prefix/,,"`
185
186 EOF
187
188 echo $echo_n "Is this correct [y/N]? " $echo_c
189
190 read ans
191
192 case "$ans" in
193 y | Y | yes | YES)
194 ;;
195 *)
196 exit 1
197 ;;
198 esac
199
200 DIRS_TO_MAKE="$bindir $datadir $libdir $octlibdir $libexecdir \
201 $includedir $octincludedir $mandir $infodir $fcnfiledir \
202 $localfcnfiledir $archlibdir $localarchlibdir \
203 $octfiledir $localoctfiledir $imagedir"
204
205 ./mkinstalldirs $DIRS_TO_MAKE
206
207 if test "$prefix" = /usr/local
208 then
209 echo "installing src/octave as $bindir/octave"
210 cp src/octave $bindir/octave
211 chmod 755 $bindir/octave
212 else
213 echo "installing octave-sh as $bindir/octave"
214 sed "s|@OCTAVE_HOME@|$prefix|; s|@LD_LIBRARY_PATH@|$octlibdir|" octave-sh \
215 > $bindir/octave
216 chmod 755 $bindir/octave
217
218 echo "installing src/octave as $bindir/octave.bin"
219 cp src/octave $bindir/octave.bin
220 chmod 755 $bindir/octave.bin
221 fi
222
223 echo "installing octave-bug as $bindir/octave-bug"
224 cp octave-bug $bindir/octave-bug
225 chmod 755 $bindir/octave-bug
226
227 echo "installing info as $archlibdir/info"
228 cp info/info $archlibdir/info
229 chmod 755 $archlibdir/info
230
231 if test -f LIBRARIES; then
232 echo "installing shared libraries in $octlibdir"
233 for f in `cat LIBRARIES`
234 do
235 file=`basename $f`
236 cp $f $octlibdir/$file
237 chmod 644 $octlibdir/$file
238 done
239 fi
240
241 if $have_find; then
242 oct_files=`find . -name '*.oct' -print`
243 if test -n "$oct_files"; then
244 echo "installing .oct files in $octfiledir"
245 cd src
246 for f in $oct_files
247 do
248 file=`basename $f`
249 cp $f $octfiledir/$file
250 chmod 755 $octfiledir/$file
251 done
252 if test -f links-to-make; then
253 cat links-to-make | while read src dest
254 do
255 if test -n "$src" && test -n "$dest"; then
256 cd $octfiledir
257 ln $src $dest
258 fi
259 done
260 fi
261 cd $distdir
262 fi
263 fi
264
265 echo "installing .m files in $fcnfiledir"
266 cd scripts
267 tar cf - . | ( cd $fcnfiledir ; tar xf - )
268 if $have_find; then
269 find $fcnfiledir -type f -print | xargs chmod 0644
270 find $fcnfiledir -name '*.img' -print | xargs rm -f
271 fi
272 cd $distdir
273
274 echo "installing image files in $imagedir"
275 cd scripts/image
276 cp *.img $imagedir
277 chmod 644 $imagedir/*.img
278 cd $distdir
279
280 echo "creating ls-R file in $datadir/octave"
281 ls -LR $datadir/octave > $datadir/octave/ls-R
282
283 echo "creating ls-R file in $libexecdir/octave"
284 ls -LR $libexecdir/octave > $libexecdir/octave/ls-R
285
286 echo "installing info files in $infodir"
287 for f in doc/interpreter/octave.info*
288 do
289 file=`basename $f`
290 cp $f $infodir/$file
291 chmod 644 $infodir/$file
292 done
293
294 echo "installing man page in $mandir"
295 cp doc/interpreter/octave.1 $mandir/octave.$manext
296 chmod 644 $mandir/octave.$manext
297
298 case "$canonical_host_type" in
299 *-*-cygwin32)
300 if $alt_dir; then
301 echo "*** You have specified an installation directory different"
302 echo "*** from the default. For Octave to run properly, you must"
303 echo "*** set the environment variable OCTAVE_HOME to"
304 echo "***"
305 echo "*** $prefix"
306 echo "***"
307 echo "*** before starting Octave."
308 fi
309 ;;
310 esac
311
312 exit 0