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

Last change on this file since 27619 was 27619, checked in by ak19, 11 years ago

Dr Bainbridge removed the absolute paths in symbolic links to new bz executables into relative paths

File size: 6.6 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/.
[27619]120# mv $dirname-$distos.tar.gz $dirname/imagemagick-$distos.tar.gz
[23077]121
122 popd
123}
124
[23104]125default_toplevel_make_dist()
126{
127 local distos=$1 ; shift
128 local dirname=`basename $exthome`
129
130 local checklist="setup.bash setup.bat perllib $GSDLOS lib $*"
131 toplevel_make_dist $distos $checklist
132}
133
[22122]134opt_run_untar()
135{
136 local force_untar=$1
137 local auto_untar=$2
138 local package=$3
139 local version=$4
140
141 local ext="";
142
143 if [ ! -z "$5" ] ; then
144 ext=$5
145 else
146 ext=".tar.gz"
147 fi
148
149 if [ $force_untar = "1" ] ; then
150 run_untar $package $version $ext
151 elif [ $auto_config = "1" ] ; then
152 if [ -d $package$version ] ; then
153 echo "Found untarred version of $package$version$ext => no need to untar"
154 else
155 run_untar $package $version $ext
156 fi
157 fi
158}
159
160
161opt_run_configure()
162{
[22130]163 local force_config=$1; shift
164 local auto_config=$1; shift
165 local package=$1; shift
166 local version=$1; shift
167 local prefix=$1; shift
[22122]168
169 if [ $force_config = "1" ] ; then
170 echo "[pushd $package$version]"
171 ( cd $package$version ; \
[26627]172 echo $CROSSCONFIGURE_VARS ./configure --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ ;
173 eval $CROSSCONFIGURE_VARS ./configure --prefix="$prefix" $CROSSCONFIGURE_ARGS $@ )
[22122]174 if [ $? != 0 ] ; then
175 echo " Error encountered running *configure* stage of $progname"
176 exit 1
177 fi
178 echo "[popd]"
179 else
180 if [ $auto_config = "1" ] ; then
181 echo "Found top-level for ${progname%.*} => no need to run ./configure"
182 fi
183 fi
184}
185
186
[24689]187opt_run_perl_configure()
188{
189 local force_config=$1; shift
190 local auto_config=$1; shift
191 local package=$1; shift
192 local version=$1; shift
193 local prefix=$1; shift
194
195 if [ $force_config = "1" ] ; then
196 echo "[pushd $package$version]"
197 ( cd $package$version ; \
198 echo perl Makefile.PL PREFIX="$prefix" $CROSSCOMPILE $@ ;
199 perl Makefile.PL PREFIX="$prefix" $CROSSCOMPILE $@)
200 if [ $? != 0 ] ; then
201 echo " Error encountered running *configure* stage of $progname"
202 exit 1
203 fi
204 echo "[popd]"
205 else
206 if [ $auto_config = "1" ] ; then
207 echo "Found top-level for ${progname%.*} => no need to run perl configure"
208 fi
209 fi
210}
211
212
[22122]213opt_run_make()
214{
[27273]215 local type=$1; shift
216 local package=$1; shift
217 local version=$1; shift
[22122]218 local opt_target=""
219
[27273]220 if [ ! -z "$1" ] ; then
221 opt_target=$1; shift
[22122]222 fi
223
224 if [ $type = "1" ] ; then
225 ( cd $package$version ; \
[27273]226 make $opt_target $@)
[22122]227
228 if [ $? != 0 ] ; then
229 echo " Error encountered running *make $target* stage of $progname"
230 exit 1
231 fi
232 fi
233}
234
235
[26720]236opt_run_cmake()
237{
238 local type=$1
239 local package=$2
240 local version=$3
241 local subdir=$4
242 local opt_target=""
243
244 if [ ! -z "$5" ] ; then
245 opt_target=$5
246 fi
247
248 if [ $type = "1" ] ; then
249 ( cd $package$version/$subdir ; \
250 make $opt_target)
251
252 if [ $? != 0 ] ; then
253 echo " Error encountered running *make $target* stage of $progname"
254 exit 1
255 fi
256 fi
257}
258
259
[23077]260run_installclean()
261{
[23095]262 local fulldir="$exthome/$GSDLOS"
263 echo ""
[23077]264 read -p "Delete $fulldir [y/n]?" ans
265 if [ $ans = "y" ] ; then
266 /bin/rm -rf "$fulldir"
267 fi
268
269 exit 0
270}
271
272
273print_usage()
274{
275 echo "$0 [untar|configure|comiple|install|clean|distclean|tarclean|makedist]+"
276 echo " or"
277 echo "$0 [installclean|help]"
278 exit 0
279}
280
[22122]281force_untar=0
282auto_untar=0
283
284force_config=0
285auto_config=0
286
287compile=0
288install=0
289clean=0
290distclean=0
291tarclean=0
[23077]292makedist=0
[22122]293
294if [ $# -gt 0 ] ; then
295 for cmd in $* ; do
296 echo $cmd
[23077]297 if [ $cmd = "untar" ] ; then force_untar=1
298 elif [ $cmd = "configure" ] ; then force_config=1
299 elif [ $cmd = "compile" ] ; then compile=1
300 elif [ $cmd = "install" ] ; then install=1
301 elif [ $cmd = "clean" ] ; then clean=1
302 elif [ $cmd = "distclean" ] ; then distclean=1
303 elif [ $cmd = "tarclean" ] ; then tarclean=1
304 elif [ $cmd = "makedist" ] ; then makedist=1
305
306 elif [ $cmd = "installclean" ] ; then run_installclean
307 elif [ $cmd = "help" ] ; then print_usage
[22122]308 fi
309 done
310else
311 # defaults
312 auto_untar=1
313 auto_config=1
314 compile=1
315 install=1
316 clean=0
317 distclean=0
318 tarclean=0
[23077]319 makedist=0
[22122]320fi
321
322if [ $auto_config = "1" ] ; then
323 if [ ! -e $package$version/Makefile ] && [ ! -e $package$version/config.h ] ; then
324 force_config=1
325 fi
[26627]326fi
Note: See TracBrowser for help on using the repository browser.