source: other-projects/cascade-make/trunk/lib/cascade-lib.bash@ 26789

Last change on this file since 26789 was 26789, checked in by davidb, 11 years ago

Additional test for tar.xz files added

File size: 6.5 KB
RevLine 
[23111]1if test -z $GSDLOS ; then
2 GSDLOS=`uname -s | tr '[A-Z]' '[a-z]'`
3 # check for running bash under Cygwin
4 if test "`echo $GSDLOS | sed 's/cygwin//'`" != "$GSDLOS" ;
5 then
6 GSDLOS=windows
7 fi
8 # check for running bash under MinGW/MSys
9 if test "`echo $GSDLOS | sed 's/mingw//'`" != "$GSDLOS" ;
10 then
11 GSDLOS=windows
12 fi
[26627]13 if test ! -z $crossOS ; then
14 # Override derived value with value explicitly provided in crossOS
15 GSDLOS=$crossOS
16 fi
17
[23111]18 echo "GSDLOS was not set. Setting it to '$GSDLOS'"
19 export GSDLOS
20fi
[22122]21
[22245]22if test $# -gt "0" ; then
23 if test -z ${1##GEXT*} ; then
24
25 ext=$1 ; shift
26 reldir=$1 ; shift
[23095]27
[22245]28 eval exthome=`echo \\$$ext`
29 if test -z "$exthome" ; then
[26627]30 if test -f $reldir/setup.bash ; then
31 echo "Environment variable $ext for Greenstone extension not set"
32 echo "Sourcing $reldir/setup.bash"
33 source $reldir/setup.bash
34
35 eval exthome=`echo \\$$ext`
36 else
37 echo "Did not detect $reldir/setup.bash, Skipping"
38 fi
[22245]39 fi
40 fi
41fi
42
[22122]43run_untar()
44{
45 local package=$1
46 local version=$2
47 local ext=$3
48
49 tar_args="";
50
51 if [ $ext = ".tar.gz" ] ; then
52 tar_args="xvzf"
53 elif [ $ext = ".tgz" ] ; then
54 tar_args="xvzf"
55 elif [ $ext = ".tar.bz2" ] ; then
56 tar_args="xvjf"
57 elif [ $ext = ".tar.bz" ] ; then
58 tar_args="xvjf"
[26789]59 elif [ $ext = ".tar.xz" ] ; then
60 tar_args="xvJf"
[22122]61 elif [ $ext = ".tar" ] ; then
62 tar_args="xvf"
63 else
64 echo "Warning: Unrecognized extension: $ext"
65 echo "Assuming tarred, gzipped file"
66 tar_args="xvjf"
67 fi
68
69
70 echo tar $tar_args $package$version$ext
71 tar $tar_args $package$version$ext
72
73 if [ $? != 0 ] ; then
74 echo " Error encountered running *untar* stage of $progname"
75 exit 1
76 fi
77}
78
79opt_run_tarclean()
80{
81 local type=$1
82 local package=$2
83 local version=$3
84
85 if [ $type = "1" ] ; then
86
87 local dir=$package$version
88 if [ -d $dir ] ; then
89 echo /bin/rm -rf $dir
90 /bin/rm -rf $dir
91
92 if [ $? != 0 ] ; then
93 echo " Error encountered running *tarclean* stage of $progname"
94 exit 1
95 fi
96 else
97 echo "Unable to find directory $dir"
98 fi
99 fi
100}
101
[23077]102toplevel_make_dist()
103{
[23104]104 local distos=$1 ; shift
[23095]105 local dirname=`basename $exthome`
[23077]106
[23104]107 local checklist="$*"
[23077]108 local distlist=""
109
110 for d in $checklist ; do
111 if [ -e $d ] ; then
112 distlist="$distlist $dirname/$d"
113 fi
114 done
115
116 pushd ..
117
[23104]118 tar cvzf $dirname-$distos.tar.gz $distlist
119 mv $dirname-$distos.tar.gz $dirname/.
[23077]120
121 popd
122}
123
[23104]124default_toplevel_make_dist()
125{
126 local distos=$1 ; shift
127 local dirname=`basename $exthome`
128
129 local checklist="setup.bash setup.bat perllib $GSDLOS lib $*"
130 toplevel_make_dist $distos $checklist
131}
132
[22122]133opt_run_untar()
134{
135 local force_untar=$1
136 local auto_untar=$2
137 local package=$3
138 local version=$4
139
140 local ext="";
141
142 if [ ! -z "$5" ] ; then
143 ext=$5
144 else
145 ext=".tar.gz"
146 fi
147
148 if [ $force_untar = "1" ] ; then
149 run_untar $package $version $ext
150 elif [ $auto_config = "1" ] ; then
151 if [ -d $package$version ] ; then
152 echo "Found untarred version of $package$version$ext => no need to untar"
153 else
154 run_untar $package $version $ext
155 fi
156 fi
157}
158
159
160opt_run_configure()
161{
[22130]162 local force_config=$1; shift
163 local auto_config=$1; shift
164 local package=$1; shift
165 local version=$1; shift
166 local prefix=$1; shift
[22122]167
168 if [ $force_config = "1" ] ; then
169 echo "[pushd $package$version]"
170 ( cd $package$version ; \
[26627]171 echo $CROSSCONFIGURE_VARS ./configure --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ ;
172 eval $CROSSCONFIGURE_VARS ./configure --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ )
[22122]173 if [ $? != 0 ] ; then
174 echo " Error encountered running *configure* stage of $progname"
175 exit 1
176 fi
177 echo "[popd]"
178 else
179 if [ $auto_config = "1" ] ; then
180 echo "Found top-level for ${progname%.*} => no need to run ./configure"
181 fi
182 fi
183}
184
185
[24689]186opt_run_perl_configure()
187{
188 local force_config=$1; shift
189 local auto_config=$1; shift
190 local package=$1; shift
191 local version=$1; shift
192 local prefix=$1; shift
193
194 if [ $force_config = "1" ] ; then
195 echo "[pushd $package$version]"
196 ( cd $package$version ; \
197 echo perl Makefile.PL PREFIX="$prefix" $CROSSCOMPILE $@ ;
198 perl Makefile.PL PREFIX="$prefix" $CROSSCOMPILE $@)
199 if [ $? != 0 ] ; then
200 echo " Error encountered running *configure* stage of $progname"
201 exit 1
202 fi
203 echo "[popd]"
204 else
205 if [ $auto_config = "1" ] ; then
206 echo "Found top-level for ${progname%.*} => no need to run perl configure"
207 fi
208 fi
209}
210
211
[22122]212opt_run_make()
213{
214 local type=$1
215 local package=$2
216 local version=$3
217 local opt_target=""
218
219 if [ ! -z "$4" ] ; then
220 opt_target=$4
221 fi
222
223 if [ $type = "1" ] ; then
224 ( cd $package$version ; \
225 make $opt_target)
226
227 if [ $? != 0 ] ; then
228 echo " Error encountered running *make $target* stage of $progname"
229 exit 1
230 fi
231 fi
232}
233
234
[26720]235opt_run_cmake()
236{
237 local type=$1
238 local package=$2
239 local version=$3
240 local subdir=$4
241 local opt_target=""
242
243 if [ ! -z "$5" ] ; then
244 opt_target=$5
245 fi
246
247 if [ $type = "1" ] ; then
248 ( cd $package$version/$subdir ; \
249 make $opt_target)
250
251 if [ $? != 0 ] ; then
252 echo " Error encountered running *make $target* stage of $progname"
253 exit 1
254 fi
255 fi
256}
257
258
[23077]259run_installclean()
260{
[23095]261 local fulldir="$exthome/$GSDLOS"
262 echo ""
[23077]263 read -p "Delete $fulldir [y/n]?" ans
264 if [ $ans = "y" ] ; then
265 /bin/rm -rf "$fulldir"
266 fi
267
268 exit 0
269}
270
271
272print_usage()
273{
274 echo "$0 [untar|configure|comiple|install|clean|distclean|tarclean|makedist]+"
275 echo " or"
276 echo "$0 [installclean|help]"
277 exit 0
278}
279
[22122]280force_untar=0
281auto_untar=0
282
283force_config=0
284auto_config=0
285
286compile=0
287install=0
288clean=0
289distclean=0
290tarclean=0
[23077]291makedist=0
[22122]292
293if [ $# -gt 0 ] ; then
294 for cmd in $* ; do
295 echo $cmd
[23077]296 if [ $cmd = "untar" ] ; then force_untar=1
297 elif [ $cmd = "configure" ] ; then force_config=1
298 elif [ $cmd = "compile" ] ; then compile=1
299 elif [ $cmd = "install" ] ; then install=1
300 elif [ $cmd = "clean" ] ; then clean=1
301 elif [ $cmd = "distclean" ] ; then distclean=1
302 elif [ $cmd = "tarclean" ] ; then tarclean=1
303 elif [ $cmd = "makedist" ] ; then makedist=1
304
305 elif [ $cmd = "installclean" ] ; then run_installclean
306 elif [ $cmd = "help" ] ; then print_usage
[22122]307 fi
308 done
309else
310 # defaults
311 auto_untar=1
312 auto_config=1
313 compile=1
314 install=1
315 clean=0
316 distclean=0
317 tarclean=0
[23077]318 makedist=0
[22122]319fi
320
321if [ $auto_config = "1" ] ; then
322 if [ ! -e $package$version/Makefile ] && [ ! -e $package$version/config.h ] ; then
323 force_config=1
324 fi
[26627]325fi
Note: See TracBrowser for help on using the repository browser.