0
|
1 #/bin/bash
|
|
2 #
|
|
3 # This program is free software; you can redistribute it and/or modify
|
|
4 # it under the terms of the GNU General Public License as published by
|
|
5 # the Free Software Foundation; either version 3 of the License, or
|
|
6 # (at your option) any later version.
|
|
7 #
|
|
8 # Copyright (C) 2009-2013 Max Planck Society, Sloan-Kettering Institute
|
|
9 #
|
|
10
|
|
11 set -e
|
|
12 echo "To get more information please run: configure -h"
|
|
13 if [ $# != "0" ];
|
|
14 then
|
|
15 if [ "$1" == "-h" -o $# != "1" ];
|
|
16 then
|
|
17 echo Usage: $0 -h \(this help\)
|
|
18 echo Usage: $0 -i \(interactive configuration\)
|
|
19 echo Usage: $0 [-a] \(automatic configuration\)
|
|
20 exit -1
|
|
21 fi
|
|
22 fi
|
|
23
|
|
24 . ./bin/rdiff_config.sh
|
|
25
|
|
26 echo ======================================
|
|
27 echo rDiff configure \(version $RDIFF_VERSION\)
|
|
28 echo ======================================
|
|
29 echo
|
|
30
|
|
31 if [ "$1" == "-i" ];
|
|
32 then
|
|
33 echo rDiff base directory \(currently set to \"$RDIFF_PATH\", suggest to set to \"`pwd`\", used if left empty\)
|
|
34 read RDIFF_PATH
|
|
35 else
|
|
36 echo "Running automatic configuration"
|
|
37 RDIFF_PATH=""
|
|
38 fi
|
|
39 if [ "$RDIFF_PATH" == "" ];
|
|
40 then
|
|
41 RDIFF_PATH=`pwd`
|
|
42 fi
|
|
43 echo '=>' Setting rDiff base directory to \"$RDIFF_PATH\"
|
|
44 echo
|
|
45
|
|
46 if [ "$1" == "-i" ];
|
|
47 then
|
|
48 echo SAMTools directory \(currently set to \"$RDIFF_SAMTOOLS_BIN_DIR\", system version used if left empty\)
|
|
49 read RDIFF_SAMTOOLS_BIN_DIR
|
|
50 else
|
|
51 echo Checking for samtools
|
|
52 RDIFF_SAMTOOLS_BIN_DIR=""
|
|
53 fi
|
|
54 if [ "$RDIFF_SAMTOOLS_BIN_DIR" == "" ];
|
|
55 then
|
|
56 if [ "$(which samtools)" != "" ] ;
|
|
57 then
|
|
58 RDIFF_SAMTOOLS_BIN_DIR=$(which samtools)
|
|
59 if [ -f $(dirname $(which samtools))/../include/bam/sam.h ]
|
|
60 then
|
|
61 RDIFF_SAMTOOLS_INCLUDE_DIR=$(dirname $(which samtools))/../include/bam/
|
|
62 echo "Include found: $RDIFF_SAMTOOLS_INCLUDE_DIR"
|
|
63 elif [ -f $(dirname $(which samtools))/sam.h ]
|
|
64 then
|
|
65 RDIFF_SAMTOOLS_INCLUDE_DIR=$(dirname $(which samtools))/
|
|
66 echo "Include found: $RDIFF_SAMTOOLS_INCLUDE_DIR"
|
|
67 else
|
|
68 echo "ERROR: Include sam.h include not found"
|
|
69 exit -1 ;
|
|
70 fi
|
|
71 if [ -f $(dirname $(which samtools))/../lib/libbam.a ]
|
|
72 then
|
|
73 RDIFF_SAMTOOLS_LIB_DIR=$(dirname $(which samtools))/../lib/
|
|
74 echo "Library found: $RDIFF_SAMTOOLS_LIB_DIR"
|
|
75 elif [ -f $(dirname $(which samtools))/libbam.a ]
|
|
76 then
|
|
77 RDIFF_SAMTOOLS_LIB_DIR=$(dirname $(which samtools))/
|
|
78 echo "Library found: $RDIFF_SAMTOOLS_LIB_DIR"
|
|
79 else
|
|
80 echo "ERROR: Library libbam.a not found"
|
|
81 exit -1 ;
|
|
82 fi
|
|
83 else
|
|
84 echo SAMTools libraries not found
|
|
85 echo please run interactive mode: ./configure -i
|
|
86 exit -1 ;
|
|
87 fi
|
|
88 else
|
|
89 if [ ! -f $RDIFF_SAMTOOLS_BIN_DIR ];
|
|
90 then
|
|
91 echo "ERROR: Binary $RDIFF_SAMTOOLS_BIN_DIR not found"
|
|
92 echo please run interactive mode: ./configure -i
|
|
93 exit -1 ;
|
|
94 fi
|
|
95
|
|
96 echo SAMTools Include directory \(currently set to \"$RDIFF_SAMTOOLS_INCLUDE_DIR\"\)
|
|
97 read RDIFF_SAMTOOLS_INCLUDE_DIR
|
|
98 if [ ! -f $RDIFF_SAMTOOLS_INCLUDE_DIR/sam.h ]
|
|
99 then
|
|
100 echo "ERROR: Include $RDIFF_SAMTOOLS_INCLUDE_DIR/sam.h include not found"
|
|
101 echo please run interactive mode: ./configure -i
|
|
102 exit -1 ;
|
|
103 fi
|
|
104
|
|
105 echo SAMTools library directory \(currently set to \"$RDIFF_SAMTOOLS_LIB_DIR\"\)
|
|
106 read RDIFF_SAMTOOLS_LIB_DIR
|
|
107 if [ ! -f $RDIFF_SAMTOOLS_LIB_DIR/libbam.a ]
|
|
108 then
|
|
109 echo "ERROR: Library $RDIFF_SAMTOOLS_LIB_DIR/libbam.a include not found"
|
|
110 echo please run interactive mode: ./configure -i
|
|
111 exit -1 ;
|
|
112 fi
|
|
113 fi
|
|
114 echo '=>' Setting samtools directory to \"$RDIFF_SAMTOOLS_BIN_DIR\"
|
|
115 echo
|
|
116
|
|
117 if [ "$1" == "-i" ];
|
|
118 then
|
|
119 echo Path to the python binary \(currently set to \"$RDIFF_PYTHON_PATH\", system version used, if left empty\)
|
|
120 read RDIFF_PYTHON_PATH
|
|
121 else
|
|
122 echo Checking for python and Scipy
|
|
123 RDIFF_PYTHON_PATH=""
|
|
124 fi
|
|
125 if [ "$RDIFF_PYTHON_PATH" == "" ];
|
|
126 then
|
|
127 python_found=
|
|
128 scipy_found=
|
|
129 for i in python python2.7 python2.6 python2.5 python2.4;
|
|
130 do
|
|
131 RDIFF_PYTHON_PATH=`which $i`
|
|
132 python_found=$i
|
|
133 if [ "$RDIFF_PYTHON_PATH" != "" ];
|
|
134 then
|
|
135 scipy=`echo import scipy | $RDIFF_PYTHON_PATH 2>&1 | grep -e ImportError|wc -l`
|
|
136 if [ $scipy == "0" ];
|
|
137 then
|
|
138 scipy_found=$RDIFF_PYTHON_PATH
|
|
139 break
|
|
140 fi
|
|
141 fi
|
|
142 done
|
|
143 if [ "$python_found" == "" ];
|
|
144 then
|
|
145 echo "ERROR: Python not found"
|
|
146 echo please run interactive mode: ./configure -i
|
|
147 exit -1
|
|
148 fi
|
|
149 if [ "$scipy_found" == "" ];
|
|
150 then
|
|
151 echo "ERROR: Scipy not found (for $python_found)"
|
|
152 echo please run interactive mode: ./configure -i
|
|
153 exit -1
|
|
154 fi
|
|
155 fi
|
|
156 echo '=>' Setting Python path to \"$RDIFF_PYTHON_PATH\"
|
|
157 echo
|
|
158
|
|
159 RDIFF_INTERPRETER="octave"
|
|
160 if [ "$RDIFF_INTERPRETER" == 'octave' ];
|
|
161 then
|
|
162 if [ "$1" == "-i" ];
|
|
163 then
|
|
164 echo Please enter the full path to octave \(currently set to \"$RDIFF_OCTAVE_BIN_PATH\", system version used, if left empty\)
|
|
165 read RDIFF_OCTAVE_BIN_PATH
|
|
166 else
|
|
167 RDIFF_OCTAVE_BIN_PATH=""
|
|
168 echo checking for octave
|
|
169 fi
|
|
170 if [ "$RDIFF_OCTAVE_BIN_PATH" == "" ];
|
|
171 then
|
|
172 RDIFF_OCTAVE_BIN_PATH=`which octave`
|
|
173 if [ "$RDIFF_OCTAVE_BIN_PATH" == "" ];
|
|
174 then
|
|
175 echo octave not found
|
|
176 echo please run interactive mode: ./configure -i
|
|
177 exit -1
|
|
178 fi
|
|
179 fi
|
|
180 echo '=>' Setting octave\'s path to \"$RDIFF_OCTAVE_BIN_PATH\"
|
|
181 if [ "$1" == "-i" ];
|
|
182 then
|
|
183 echo Please enter the full path to mkoctfile \(currently set to \"$RDIFF_OCTAVE_MKOCT\", system version used, if left empty\)
|
|
184 read RDIFF_OCTAVE_MKOCT
|
|
185 else
|
|
186 RDIFF_OCTAVE_MKOCT=""
|
|
187 fi
|
|
188 if [ "$RDIFF_OCTAVE_MKOCT" == "" ];
|
|
189 then
|
|
190 RDIFF_OCTAVE_MKOCT=`which mkoctfile`
|
|
191 if [ "$RDIFF_OCTAVE_MKOCT" == "" ];
|
|
192 then
|
|
193 RDIFF_OCTAVE_MKOCT=$(dirname $RDIFF_OCTAVE_BIN_PATH)/mkoctfile
|
|
194 if [ ! -f RDIFF_OCTAVE_MKOCT ];
|
|
195 then
|
|
196 echo mkoctfile not found
|
|
197 echo please run interactive mode: ./configure -i
|
|
198 exit -1
|
|
199 fi
|
|
200 fi
|
|
201 fi
|
|
202 echo '=>' Setting octave\'s path to \"$RDIFF_OCTAVE_MKOCT\"
|
|
203 echo
|
|
204 fi
|
|
205
|
|
206 if [ "$RDIFF_INTERPRETER" == 'matlab' ];
|
|
207 then
|
|
208 echo Please enter the full path to matlab \(currently set to \"$MATLAB_BIN_PATH\", system version used, if left empty\)
|
|
209 read MATLAB_BIN_PATH
|
|
210 if [ "$MATLAB_BIN_PATH" == "" ];
|
|
211 then
|
|
212 MATLAB_BIN_PATH=`which matlab`
|
|
213 if [ "$MATLAB_BIN_PATH" == "" ];
|
|
214 then
|
|
215 echo matlab not found
|
|
216 echo please run interactive mode: ./configure -i
|
|
217 exit -1
|
|
218 fi
|
|
219 fi
|
|
220 if [ ! -f $MATLAB_BIN_PATH ];
|
|
221 then
|
|
222 echo matlab not found
|
|
223 echo please run interactive mode: ./configure -i
|
|
224 exit -1
|
|
225 fi
|
|
226 echo '=>' Setting matlab\'s path to \"$MATLAB_BIN_PATH\"
|
|
227 echo
|
|
228
|
|
229 echo Please enter the full path to mex binary \(currently set to \"$MATLAB_MEX_PATH\", system version used if left empty\)
|
|
230 read MATLAB_MEX_PATH
|
|
231 if [ "$MATLAB_MEX_PATH" == "" ];
|
|
232 then
|
|
233 MATLAB_MEX_PATH=`which mex`
|
|
234 if [ "$MATLAB_MEX_PATH" == "" ];
|
|
235 then
|
|
236 echo mex not found
|
|
237 echo please run interactive mode: ./configure -i
|
|
238 exit -1
|
|
239 fi
|
|
240 fi
|
|
241 if [ ! -f "$MATLAB_MEX_PATH" ];
|
|
242 then
|
|
243 echo mex not found
|
|
244 echo please run interactive mode: ./configure -i
|
|
245 exit -1
|
|
246 fi
|
|
247 echo '=>' Setting mex\' path to \"$MATLAB_MEX_PATH\"
|
|
248 echo
|
|
249
|
|
250 echo Please enter the full path to the matlab include directory \(currently set to \"$MATLAB_INCLUDE_DIR\", system version used, if left empty\)
|
|
251 read MATLAB_INCLUDE_DIR
|
|
252 if [ "$MATLAB_INCLUDE_DIR" == "" ];
|
|
253 then
|
|
254 MATLAB_INCLUDE_DIR=$(dirname $MATLAB_BIN_PATH)/../extern/include
|
|
255 fi
|
|
256 if [ ! -d "$MATLAB_INCLUDE_DIR" ];
|
|
257 then
|
|
258 echo matlab include dir not found
|
|
259 echo please run interactive mode: ./configure -i
|
|
260 exit -1
|
|
261 fi
|
|
262 echo '=>' Setting matlab\'s include directory to \"$MATLAB_INCLUDE_DIR\"
|
|
263 echo
|
|
264
|
|
265 RDIFF_OCTAVE_BIN_PATH=
|
|
266 fi
|
|
267
|
|
268 cp -p bin/rdiff_config.sh bin/rdiff_config.sh.bak
|
|
269
|
|
270 grep -v -e RDIFF_OCTAVE_BIN_PATH -e RDIFF_OCTAVE_MKOCT -e MATLAB_BIN_PATH -e MATLAB_MEX_PATH -e MATLAB_INCLUDE_DIR \
|
|
271 -e RDIFF_PATH -e RDIFF_SRC_PATH -e RDIFF_BIN_PATH \
|
|
272 -e RDIFF_INTERPRETER bin/rdiff_config.sh.bak \
|
|
273 -e RDIFF_SAMTOOLS_BIN_DIR -e RDIFF_SAMTOOLS_LIB_DIR -e RDIFF_SAMTOOLS_INCLUDE_DIR -e RDIFF_PYTHON_PATH -e SCIPY_PATH -e $RDIFF_VERSION > bin/rdiff_config.sh
|
|
274
|
|
275 echo Generating config file ...
|
|
276
|
|
277 # appending the relevant lines to rdiff_config.sh
|
|
278 echo export RDIFF_VERSION=$RDIFF_VERSION >> bin/rdiff_config.sh
|
|
279 echo export RDIFF_PATH=$RDIFF_PATH >> bin/rdiff_config.sh
|
|
280 echo export RDIFF_SRC_PATH=${RDIFF_PATH}/src >> bin/rdiff_config.sh
|
|
281 echo export RDIFF_BIN_PATH=${RDIFF_PATH}/bin >> bin/rdiff_config.sh
|
|
282 echo export RDIFF_INTERPRETER=$RDIFF_INTERPRETER >> bin/rdiff_config.sh
|
|
283 echo export RDIFF_MATLAB_BIN_PATH=$MATLAB_BIN_PATH >> bin/rdiff_config.sh
|
|
284 echo export RDIFF_MATLAB_MEX_PATH=$MATLAB_MEX_PATH >> bin/rdiff_config.sh
|
|
285 echo export RDIFF_MATLAB_INCLUDE_DIR=$MATLAB_INCLUDE_DIR >> bin/rdiff_config.sh
|
|
286 echo export RDIFF_OCTAVE_BIN_PATH=$RDIFF_OCTAVE_BIN_PATH >> bin/rdiff_config.sh
|
|
287 echo export RDIFF_OCTAVE_MKOCT=$RDIFF_OCTAVE_MKOCT >> bin/rdiff_config.sh
|
|
288 echo export RDIFF_SAMTOOLS_BIN_DIR=$RDIFF_SAMTOOLS_BIN_DIR >> bin/rdiff_config.sh
|
|
289 echo export RDIFF_SAMTOOLS_LIB_DIR=$RDIFF_SAMTOOLS_LIB_DIR >> bin/rdiff_config.sh
|
|
290 echo export RDIFF_SAMTOOLS_INCLUDE_DIR=$RDIFF_SAMTOOLS_INCLUDE_DIR >> bin/rdiff_config.sh
|
|
291 echo export RDIFF_PYTHON_PATH=$RDIFF_PYTHON_PATH >> bin/rdiff_config.sh
|
|
292
|
|
293 echo Done.
|
|
294 echo
|
|
295
|
|
296 echo Please use \'make\' to compile the mex files before using rDiff.
|
|
297 echo To test rDiff use \'make example\' or \'make threeexamples\'.
|
|
298 echo
|