source: trunk/packages/vizservers/vtkvis/cf/install-sh @ 4060

Last change on this file since 4060 was 4060, checked in by ldelgass, 10 years ago

Add separate configure scripts for nanovis and vtkvis, remove them from the
vizservers configure (which now only configures nanoscale and pymolproxy).

  • Property svn:executable set to *
File size: 6.3 KB
Line 
1#!/bin/sh
2#
3# install - install a program, script, or datafile
4#
5# This originates from X11R5 (mit/util/scripts/install.sh), which was
6# later released in X11R6 (xc/config/util/install.sh) with the
7# following copyright and license.
8#
9# Copyright (C) 1994 X Consortium
10#
11# Permission is hereby granted, free of charge, to any person obtaining a copy
12# of this software and associated documentation files (the "Software"), to
13# deal in the Software without restriction, including without limitation the
14# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
15# sell copies of the Software, and to permit persons to whom the Software is
16# furnished to do so, subject to the following conditions:
17#
18# The above copyright notice and this permission notice shall be included in
19# all copies or substantial portions of the Software.
20#
21# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
24# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
25# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
26# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27#
28# Except as contained in this notice, the name of the X Consortium shall not
29# be used in advertising or otherwise to promote the sale, use or other deal-
30# ings in this Software without prior written authorization from the X Consor-
31# tium.
32#
33#
34# FSF changes to this file are in the public domain.
35#
36# Calling this script install-sh is preferred over install.sh, to prevent
37# `make' implicit rules from creating a file called install from it
38# when there is no Makefile.
39#
40# This script is compatible with the BSD install script, but was written
41# from scratch.  It can only install one file at a time, a restriction
42# shared with many OS's install programs.
43
44
45# set DOITPROG to echo to test this script
46
47# Don't use :- since 4.3BSD and earlier shells don't like it.
48doit="${DOITPROG-}"
49
50
51# put in absolute paths if you don't have them in your path; or use env. vars.
52
53mvprog="${MVPROG-mv}"
54cpprog="${CPPROG-cp}"
55chmodprog="${CHMODPROG-chmod}"
56chownprog="${CHOWNPROG-chown}"
57chgrpprog="${CHGRPPROG-chgrp}"
58stripprog="${STRIPPROG-strip}"
59rmprog="${RMPROG-rm}"
60mkdirprog="${MKDIRPROG-mkdir}"
61
62transformbasename=""
63transform_arg=""
64instcmd="$mvprog"
65chmodcmd="$chmodprog 0755"
66chowncmd=""
67chgrpcmd=""
68stripcmd=""
69rmcmd="$rmprog -f"
70mvcmd="$mvprog"
71src=""
72dst=""
73dir_arg=""
74
75while [ x"$1" != x ]; do
76    case $1 in
77        -c) instcmd="$cpprog"
78            shift
79            continue;;
80
81        -d) dir_arg=true
82            shift
83            continue;;
84
85        -m) chmodcmd="$chmodprog $2"
86            shift
87            shift
88            continue;;
89
90        -o) chowncmd="$chownprog $2"
91            shift
92            shift
93            continue;;
94
95        -g) chgrpcmd="$chgrpprog $2"
96            shift
97            shift
98            continue;;
99
100        -s) stripcmd="$stripprog"
101            shift
102            continue;;
103
104        -t=*) transformarg=`echo $1 | sed 's/-t=//'`
105            shift
106            continue;;
107
108        -b=*) transformbasename=`echo $1 | sed 's/-b=//'`
109            shift
110            continue;;
111
112        *)  if [ x"$src" = x ]
113            then
114                src=$1
115            else
116                # this colon is to work around a 386BSD /bin/sh bug
117                :
118                dst=$1
119            fi
120            shift
121            continue;;
122    esac
123done
124
125if [ x"$src" = x ]
126then
127        echo "install:  no input file specified"
128        exit 1
129else
130        true
131fi
132
133if [ x"$dir_arg" != x ]; then
134        dst=$src
135        src=""
136       
137        if [ -d $dst ]; then
138                instcmd=:
139                chmodcmd=""
140        else
141                instcmd=mkdir
142        fi
143else
144
145# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
146# might cause directories to be created, which would be especially bad
147# if $src (and thus $dsttmp) contains '*'.
148
149        if [ -f $src -o -d $src ]
150        then
151                true
152        else
153                echo "install:  $src does not exist"
154                exit 1
155        fi
156       
157        if [ x"$dst" = x ]
158        then
159                echo "install:  no destination specified"
160                exit 1
161        else
162                true
163        fi
164
165# If destination is a directory, append the input filename; if your system
166# does not like double slashes in filenames, you may need to add some logic
167
168        if [ -d $dst ]
169        then
170                dst="$dst"/`basename $src`
171        else
172                true
173        fi
174fi
175
176## this sed command emulates the dirname command
177dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
178
179# Make sure that the destination directory exists.
180#  this part is taken from Noah Friedman's mkinstalldirs script
181
182# Skip lots of stat calls in the usual case.
183if [ ! -d "$dstdir" ]; then
184defaultIFS='   
185'
186IFS="${IFS-${defaultIFS}}"
187
188oIFS="${IFS}"
189# Some sh's can't handle IFS=/ for some reason.
190IFS='%'
191set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
192IFS="${oIFS}"
193
194pathcomp=''
195
196while [ $# -ne 0 ] ; do
197        pathcomp="${pathcomp}${1}"
198        shift
199
200        if [ ! -d "${pathcomp}" ] ;
201        then
202                $mkdirprog "${pathcomp}"
203        else
204                true
205        fi
206
207        pathcomp="${pathcomp}/"
208done
209fi
210
211if [ x"$dir_arg" != x ]
212then
213        $doit $instcmd $dst &&
214
215        if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
216        if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
217        if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
218        if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
219else
220
221# If we're going to rename the final executable, determine the name now.
222
223        if [ x"$transformarg" = x ]
224        then
225                dstfile=`basename $dst`
226        else
227                dstfile=`basename $dst $transformbasename |
228                        sed $transformarg`$transformbasename
229        fi
230
231# don't allow the sed command to completely eliminate the filename
232
233        if [ x"$dstfile" = x ]
234        then
235                dstfile=`basename $dst`
236        else
237                true
238        fi
239
240# Make a temp file name in the proper directory.
241
242        dsttmp=$dstdir/#inst.$$#
243
244# Move or copy the file name to the temp name
245
246        $doit $instcmd $src $dsttmp &&
247
248        trap "rm -f ${dsttmp}" 0 &&
249
250# and set any options; do chmod last to preserve setuid bits
251
252# If any of these fail, we abort the whole thing.  If we want to
253# ignore errors from any of these, just make sure not to ignore
254# errors from the above "$doit $instcmd $src $dsttmp" command.
255
256        if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
257        if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
258        if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
259        if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
260
261# Now rename the file to the real destination.
262
263        $doit $rmcmd -f $dstdir/$dstfile &&
264        $doit $mvcmd $dsttmp $dstdir/$dstfile
265
266fi &&
267
268
269exit 0
Note: See TracBrowser for help on using the repository browser.