The R Project SVN R

Rev

Rev 5472 | Rev 6143 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5472 Rev 6098
Line 4... Line 4...
4
# Usage:
4
# Usage:
5
#	R INSTALL [options] [-l lib] pkg_1 ... pkg_n
5
#	R INSTALL [options] [-l lib] pkg_1 ... pkg_n
6
 
6
 
7
# @configure_input@
7
# @configure_input@
8
 
8
 
9
VERSION="0.1-6"
9
VERSION="0.2-1"
10
USAGE_MSG="Usage:  R INSTALL [options] [-l lib] pkg_1 ... pkg_n"
10
USAGE_MSG="Usage:  R INSTALL [options] [-l lib] pkg_1 ... pkg_n"
11
 
11
 
12
CLEAN=false
12
CLEAN=false
13
DEBUG=false
13
DEBUG=false
14
ERROR=false
14
ERROR=false
Line 37... Line 37...
37
PKGS=
37
PKGS=
38
lib=${R_HOME}/library
38
lib=${R_HOME}/library
39
 
39
 
40
MAKE=${MAKE-@MAKE@}
40
MAKE=${MAKE-@MAKE@}
41
 
41
 
-
 
42
TMPDIR="/tmp/R.INSTALL.$$"
-
 
43
 
42
umask 022
44
umask 022
43
 
45
 
44
while test -n "${1}"; do
46
while test -n "${1}"; do
45
  case ${1} in
47
  case ${1} in
46
    -h|--help|-\?)
48
    -h|--help|-\?)
Line 67... Line 69...
67
    --use-zip)
69
    --use-zip)
68
      USE_ZIP=true ;;
70
      USE_ZIP=true ;;
69
    -l|--library)
71
    -l|--library)
70
      lib=${2}; shift ;;
72
      lib=${2}; shift ;;
71
    *)
73
    *)
-
 
74
<<<<<<< INSTALL.in
72
      if test -d "${1}"; then
75
      if test -d "${1}"; then
73
	PKGS="${PKGS} \"`cd "${1}"; pwd`\""
76
	PKGS="${PKGS} \"`cd "${1}"; pwd`\""
74
      else
-
 
75
	echo "WARNING: package \`"${1}"' does not exist"
-
 
76
      fi
-
 
77
      ;;
-
 
78
  esac
-
 
79
  shift
77
=======
80
done
-
 
81
 
-
 
82
if test -z "${PKGS}"; then
78
      if test -f "${1}"; then
83
  echo "${USAGE_MSG}"
-
 
84
  exit 1
-
 
85
fi
-
 
86
 
-
 
87
if test -d ${lib} -a -w ${lib} || mkdir ${lib} 2> /dev/null; then
-
 
88
  lib=`cd ${lib}; pwd`
79
        mkdir -p ${TMPDIR}
89
else
-
 
90
  echo "ERROR:  cannot write to or create directory \`${lib}'"
-
 
91
  exit 2
-
 
92
fi
-
 
93
 
-
 
94
if ${BUILD_TEXT}; then
-
 
95
  BUILD_HELP_OPTS="${BUILD_HELP_OPTS} --nroff"
-
 
96
fi
-
 
97
if ${BUILD_HTML}; then
-
 
98
  BUILD_HELP_OPTS="${BUILD_HELP_OPTS} --html"
-
 
99
fi
-
 
100
if ${BUILD_LATEX}; then
-
 
101
  BUILD_HELP_OPTS="${BUILD_HELP_OPTS} --latex"
-
 
102
fi
-
 
103
if ${BUILD_EXAMPLE}; then
-
 
104
  BUILD_HELP_OPTS="${BUILD_HELP_OPTS} --example"
-
 
105
fi
-
 
106
if test -z "${BUILD_HELP_OPTS}"; then
-
 
107
  BUILD_HELP=false
-
 
108
elif ${DEBUG}; then
-
 
109
  BUILD_HELP_OPTS="--debug ${BUILD_HELP_OPTS}"
-
 
110
fi
-
 
111
 
-
 
112
do_install () {
-
 
113
  cd "${1}"
-
 
114
  pkg=`basename "${1}"`
80
	PKGNAME=`basename "${1}"`
115
 
-
 
116
  mkdir -p ${lib}/${pkg} || exit 3
-
 
117
  echo "Installing package \`${pkg}' ..."
81
	PKGNAME=`echo "${PKGNAME}" | sed 's/_.*//'`
118
 
-
 
119
  if test -x ./configure ; then
-
 
120
    ./configure
-
 
121
  fi
-
 
122
 
-
 
123
  if test -d src; then
-
 
124
    echo " libs"
-
 
125
    if ${DEBUG}; then set -x; fi
82
	gzip -dc "${1}" | (cd ${TMPDIR} && tar -xf -)
126
    mkdir -p ${lib}/${pkg}/libs
-
 
127
    if test -f src/Makefile; then
83
	if test -d "${TMPDIR}/${PKGNAME}"; then
128
      (cd src;
-
 
129
	${MAKE} -f ${R_HOME}/etc/Makeconf -f Makefile \
-
 
130
	  && cp *.@SHLIBEXT@ ${lib}/${pkg}/libs \
84
	  PKGS="${PKGS} \"`cd "${TMPDIR}/${PKGNAME}"; pwd`\""
131
	  || ERROR=true; \
-
 
132
	if ${CLEAN}; then ${MAKE} clean; fi)
-
 
133
    else
85
	else
134
      (cd src;
-
 
135
	sh ${R_HOME}/bin/SHLIB ${SHLIB_OPTS} \
-
 
136
	   -o ${lib}/${pkg}/libs/${pkg}.@SHLIBEXT@ *.[cf] \
-
 
137
	  || ERROR=true; \
-
 
138
	if ${CLEAN}; then rm -f *.o; fi)
-
 
139
    fi
-
 
140
    if ${ERROR}; then
-
 
141
      echo "ERROR: Compilation failed for package \`${pkg}'"
86
	  echo "ERROR: cannot extract package from ${1}"
142
      exit 4
87
	  exit 1
143
    fi
-
 
144
    if ${DEBUG}; then set +x; fi
-
 
145
  fi
-
 
146
 
-
 
147
  if test -d R; then dir=R; elif test -d funs; then dir=funs; fi
-
 
148
  if test "${dir}"; then
-
 
149
    echo " ${dir}"
-
 
150
    mkdir -p ${lib}/${pkg}/R
-
 
151
    cat `ls ${dir}/*.[RSqrs]` > ${lib}/${pkg}/R/${pkg}
-
 
152
  fi
-
 
153
  dir=
-
 
154
 
-
 
155
  if test -d data; then
-
 
156
    echo " data"
-
 
157
    mkdir -p ${lib}/${pkg}/data
-
 
158
    cp data/* ${lib}/${pkg}/data
-
 
159
    chmod 644 ${lib}/${pkg}/data/*
-
 
160
  fi
-
 
161
 
-
 
162
  if test -d exec; then
-
 
163
    echo " exec"
-
 
164
    mkdir -p ${lib}/${pkg}/exec
-
 
165
    cp exec/* ${lib}/${pkg}/exec
-
 
166
    chmod 755 ${lib}/${pkg}/exec/*
-
 
167
  fi
-
 
168
 
-
 
169
  if test -d inst; then
-
 
170
    echo " inst"
-
 
171
    cp -r inst/* ${lib}/${pkg}
-
 
172
  fi
-
 
173
 
-
 
174
  if test -f INDEX; then
-
 
175
    cp INDEX ${lib}/${pkg}
-
 
176
  fi
-
 
177
  if test -f TITLE; then
-
 
178
    cp TITLE ${lib}/${pkg}
-
 
179
  fi
-
 
180
  if test -f DESCRIPTION; then
-
 
181
    cp DESCRIPTION ${lib}/${pkg}
-
 
182
  fi
-
 
183
  (cd ${lib}; cat */TITLE > LibIndex 2> /dev/null)
-
 
184
 
-
 
185
  if test -d man; then
-
 
186
    echo " help"
-
 
187
    if ${BUILD_HELP}; then
-
 
188
      if ${NO_PERL5}; then
-
 
189
	echo "${NO_PERL5_MSG}"
-
 
190
      else
-
 
191
	if ${DEBUG}; then
-
 
192
	  echo "  ${R_HOME}/bin/build-help ${BUILD_HELP_OPTS} ../${pkg} ${lib}"
-
 
193
	fi
-
 
194
	${R_HOME}/bin/build-help ${BUILD_HELP_OPTS} ../${pkg} ${lib}
-
 
195
	${R_HOME}/bin/Rd2contents ../${pkg} > ${lib}/${pkg}/CONTENTS
-
 
196
	if test ${lib} = ${R_HOME}/library; then 
-
 
197
	  ${R_HOME}/bin/build-help --htmllists
-
 
198
	  cat ${R_HOME}/library/*/CONTENTS \
-
 
199
	    > ${R_HOME}/doc/html/search/index.txt
-
 
200
	fi	
-
 
201
      fi
88
	fi    
202
      if test -n "${USE_ZIP}" -a -n "${R_UNZIPCMD}" -a -n "${R_ZIPCMD}"; then
-
 
203
	cd ${lib}/${pkg}
-
 
204
	if test -d R-ex; then
-
 
205
	  (cd R-ex; ${R_ZIPCMD} -m Rhelp *.R)
-
 
206
	fi
-
 
207
	## NOT YET:
-
 
208
	## if test -d latex; then
89
      elif test -d "${1}"; then
209
	##   (cd latex; ${R_ZIPCMD} -m Rhelp *.tex)
-
 
210
	## fi
-
 
211
	if test -d help; then
-
 
212
	  (cd help; ${R_ZIPCMD} -m Rhelp * -x 00Titles AnIndex);
-
 
213
	fi
-
 
214
      fi
-
 
215
    fi
-
 
216
  else
-
 
217
    echo "  No man pages found in package \`${pkg}'"
-
 
218
  fi
-
 
219
 
-
 
220
  if ${CLEAN}; then
-
 
221
    if test -x ./cleanup ; then
90
	PKGS="${PKGS} \"`cd "${1}"; pwd`\""
222
      ./cleanup
-
 
223
    fi
-
 
224
  fi
-
 
225
 
-
 
226
  chmod -R a+r ${lib}/${pkg}
-
 
227
 
-
 
228
  echo " DONE (${pkg})"
-
 
229
  echo
-
 
230
}
91
}
231
 
92
 
232
eval "for pkg in ${PKGS}; do do_install \"\${pkg}\"; done"
93
eval "for pkg in ${PKGS}; do do_install \"\${pkg}\"; done"
233
 
94
 
-
 
95
if test -d "${TMPDIR}"; then
-
 
96
  cd /
-
 
97
  rm -rf "${TMPDIR}"
-
 
98
fi
-
 
99
 
234
echo "DONE (INSTALL)"
100
echo "DONE (INSTALL)"
235
 
101
 
236
### Local Variables: ***
102
### Local Variables: ***
237
### mode: sh ***
103
### mode: sh ***
238
### sh-indent: 2 ***
104
### sh-indent: 2 ***