]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8170/configure
Coverity 21241
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8170 / configure
1 #!/bin/sh
2 #
3 # Configuration script, to be run before compilation
4 #
5 # Author: M. Kirsanov
6
7 if [ x$BASH_VERSION = x ]; then
8   echo warning: you are not using bash shell on which this script is tested
9 fi
10
11 #
12 # User-changeable part -------------------------------
13 #
14
15 #LCG platform. Can be needed if external libraries are specified
16 if [ x$MYLCGPLATFORM = x ]; then
17   export MYLCGPLATFORM=x86_64-slc5-gcc43-opt
18 fi
19
20 # Defaults
21 export COMPMODE=OPT
22 export SHAREDLIBS=no
23 export ENABLEGZIP=no
24 export INSTALLDIR=.
25 export DATADIR=
26
27 for arg in $* ; do
28   if [ "x$arg" = "x--enable-debug" ] ; then
29     COMPMODE=DBG
30   elif [ "x$arg" = "x--enable-shared" ] ; then
31     SHAREDLIBS=yes
32   elif [ "x$arg" = "x--enable-64bits" ] ; then
33     ENABLE64=-m64
34   elif [ "x$arg" = "x--enable-gzip" ] ; then
35     ENABLEGZIP=yes
36   elif [ "x$arg" = "x--help" ] ; then
37     echo "Usage: ./configure [options] , where options are:"
38     echo "--help                : prints this help"
39     echo "--enable-debug        : turns on debugging flags and turns off optimization"
40     echo "--enable-shared       : turns on shared library creation (default no)"
41     echo "--enable-64bits       : turns on 64 bits compilation flags"
42     echo "--lcgplatform=name    : LCG platform name, default is x86_64-slc5-gcc43-opt"
43     echo "--installdir=name     : install directory, default is . "
44     echo "--prefix=name         : install directory (equivalent to --installdir)"
45     echo "--datadir=name        : data directory (for xmldoc), default is install directory"
46     echo "--with-hepmc=path     : path to HepMC library to build interface (default is not build)"
47     echo "--with-hepmcversion=v : HepMC version (simplified alternative when using CERN AFS LCG external, e.g. =2.04.00)"
48     echo "--enable-gzip         : turns on support for reading in gzipped files (default no)"
49     echo "                        (experimental feature, see README for more details)"
50     echo "--with-boost=path     : path to boost installation (default /usr) (required for gzip support)"
51     echo "--with-zlib=path      : path to zlib (default /usr/lib) (required for gzip support)"
52     echo
53     echo "Use the following environment variables to force the configuration process or add flags:"
54     echo "USRCXXFLAGS - to add flags. Use this variable to add -fPIC to the compilation flags for the static libraries"
55     echo "USRLDFLAGSSHARED - to add flags to the shared library build command"
56     echo "USRSHAREDSUFFIX - to force shared libraries suffix to be like this (default on MacOSX is dylib)"
57     echo
58     exit
59   elif [ x`echo x${arg} | grep "="` != x ] ; then
60     option=`echo ${arg} | awk -F = '{print $1}'`
61     value=`echo ${arg} | awk -F = '{print $2}'`
62     if [ "x${option}" = "x--lcgplatform" ] ; then
63       MYLCGPLATFORM=${value}
64     elif [ "x${option}" = "x--installdir" ] ; then
65       INSTALLDIR=${value}
66     elif [ "x${option}" = "x--prefix" ] ; then
67       INSTALLDIR=${value}
68     elif [ "x${option}" = "x--datadir" ] ; then
69       DATADIR=${value}
70     elif [ "x${option}" = "x--with-hepmcversion" ] ; then
71       HEPMCVERSION=${value}
72     elif [ "x${option}" = "x--with-hepmc" ] ; then
73       HEPMCLOCATION=${value}
74     elif [ "x${option}" = "x--with-boost" ] ; then
75       BOOSTLOCATION=${value}
76     elif [ "x${option}" = "x--with-zlib" ] ; then
77       ZLIBLOCATION=${value}
78     else
79       echo "${arg}: wrong option. Ignored." >&2
80     fi
81   fi
82 done
83
84 echo compilation mode is $COMPMODE
85 echo sharedlibs = $SHAREDLIBS
86
87 if [ "x${DATADIR}" = "x" ] ; then
88   DATADIR=${INSTALLDIR}
89 fi
90
91 # Environment variables for building HepMC interface library. Note that
92 # the HepMC interface library is used by the examples main41, main42, ..  .
93 # Attention: if you have already run these examples and you change HepMC
94 # version you should reset your LD_LIBRARY_PATH
95 # The default values here correspond to CERN AFS lcg external
96 #
97 if [ "x${HEPMCVERSION}" != "x" ] ; then
98   if [ "x${HEPMCLOCATION}" = "x" ] ; then
99     export HEPMCLOCATION=/afs/cern.ch/sw/lcg/external/HepMC/${HEPMCVERSION}/${MYLCGPLATFORM}
100   fi
101 fi
102 #   If you want to assign these variables by hand:
103 #
104 #export HEPMCVERSION=2.04.00
105 #export HEPMCLOCATION=/afs/cern.ch/sw/lcg/external/HepMC/${HEPMCVERSION}/${MYLCGPLATFORM}
106
107
108 if [ "x${HEPMCVERSION}" = "x" ] ; then
109   if [ "x${HEPMCLOCATION}" != "x" ] ; then
110 #                                            try to find out which HepMC version
111     test1=`echo $HEPMCLOCATION | grep \/1.`
112     test2=`echo $HEPMCLOCATION | grep \/2.`
113     echo $test1
114     echo $test2
115     if [ "x${test1}" != "x" ] ; then
116       echo "Warning: HepMC 1 cannot be used anymore; Please use HepMC 2"
117       echo "         The interface will not be built"
118       export HEPMCLOCATION=
119     fi
120     if [ "x${test2}" != "x" ] ; then
121       export HEPMCVERSION=2.`echo $HEPMCLOCATION | awk -F \/2. '{print $2}' | awk -F \/ '{print $1}'`
122     fi
123   fi
124 fi
125 if [ "x${HEPMCVERSION}" != "x" ] ; then
126   export HEPMCMAINVERSION=`echo ${HEPMCVERSION} | awk -F . '{print$1}'`
127   if [ ${HEPMCMAINVERSION} = 1 ] ; then
128     echo "Warning: HepMC 1 cannot be used anymore; Please use HepMC 2"
129     echo "         The interface will not be built"
130     export HEPMCLOCATION=
131   fi
132 fi
133 if [ "x${HEPMCLOCATION}" != "x" ] ; then
134   if [ "x${HEPMCVERSION}" = "x" ] ; then
135     echo "Warning: hepmc specified, but cannot find out which HepMC version"
136     echo "Warning: if you specify HepMC 1 the compilation of interface will fail"
137   fi
138 fi
139
140
141 #
142 # User-changeable part, experts  -----------------------------
143 #
144
145 # Switch off -Wshadow when gzip support is enabled
146 WSHADOW="-Wshadow"
147 if [ "x${ENABLEGZIP}" = "xyes" ]; then
148   WSHADOW=""
149 fi
150
151 # export FFLAGS_OPT="-O2 -Wuninitialized"
152 # -Wuninitialized outputs many irrelevant warnings and therefore obscurs 
153 export FFLAGS_OPT="-O2"
154 export FFLAGS_DBG=-g
155 export CFLAGS_OPT="-O2"
156 export CFLAGS_DBG=-g
157 export CXXFLAGS_OPT="-O2 -ansi -pedantic -W -Wall ${WSHADOW} ${ENABLE64}"
158 export CXXFLAGS_DBG="-g -ansi -pedantic -W -Wall ${WSHADOW} ${ENABLE64}"
159 #
160 # Find platform.
161 #
162 export ARCH0="`uname`"
163 export ARCH=${ARCH0}
164 export theGcc=`gcc -dumpversion | awk -F . '{print $1}'`
165 if [ ${theGcc} = 4 ]; then
166   export ARCH=${ARCH}-gcc4
167 fi
168 echo Platform is $ARCH
169
170 #default platform settings:
171 export FC=g77
172 export CC=gcc
173 export FFLAGS="${FFLAGS_OPT}"
174 export CFLAGS="${CFLAGS_OPT}"
175 export CXXFLAGS="${CXXFLAGS_OPT}"
176 export FLIBS="-lfrtbegin -lg2c"
177 if [ ${COMPMODE} = OPT ]; then
178   export FFLAGS="${FFLAGS_OPT}"
179   export CFLAGS="${CFLAGS_OPT}"
180   export CXXFLAGS="${CXXFLAGS_OPT}"
181 fi
182 if [ ${COMPMODE} = DBG ]; then
183   export FFLAGS="${FFLAGS_DBG}"
184   export CFLAGS="${CFLAGS_DBG}"
185   export CXXFLAGS="${CXXFLAGS_DBG}"
186 fi
187 LDFLAGSSHARED="${CXXFLAGS} -fPIC -shared"
188 LDFLAGLIBNAME="-Wl,-soname"
189 SHAREDSUFFIX=so
190 if [ $ARCH = Linux ]; then
191   export FC=g77
192   export FFLAGS="${FFLAGS_OPT} -Wno-globals"
193   export CFLAGS="${CFLAGS_OPT}"
194   export CXXFLAGS="${CXXFLAGS_OPT}"
195   export FLIBS="-lfrtbegin -lg2c"
196   if [ ${COMPMODE} = OPT ]; then
197     export FFLAGS="${FFLAGS_OPT}"
198     export CFLAGS="${CFLAGS_OPT}"
199     export CXXFLAGS="${CXXFLAGS_OPT}"
200   fi
201   if [ ${COMPMODE} = DBG ]; then
202     export FFLAGS="${FFLAGS_DBG} -Wno-globals"
203     export CFLAGS="${CFLAGS_DBG}"
204     export CXXFLAGS="${CXXFLAGS_DBG}"
205   fi
206   LDFLAGSSHARED="${CXXFLAGS} -fPIC -shared"
207   LDFLAGLIBNAME="-Wl,-soname"
208   SHAREDSUFFIX=so
209 fi
210 # Linux platform with gcc4: new Fortran90 compiler.
211 if [ $ARCH = Linux-gcc4 ]; then
212   export FC=gfortran
213   export FFLAGS="${FFLAGS_OPT}"
214   export CFLAGS="${CFLAGS_OPT}"
215   export CXXFLAGS="${CXXFLAGS_OPT}"
216   export FLIBS="-lgfortran -lgfortranbegin"
217   if [ ${COMPMODE} = OPT ]; then
218     export FFLAGS="${FFLAGS_OPT}"
219     export CFLAGS="${CFLAGS_OPT}"
220     export CXXFLAGS="${CXXFLAGS_OPT}"
221   fi
222   if [ ${COMPMODE} = DBG ]; then
223     export FFLAGS="${FFLAGS_DBG}"
224     export CFLAGS="${CFLAGS_DBG}"
225     export CXXFLAGS="${CXXFLAGS_DBG}"
226   fi
227   LDFLAGSSHARED="${CXXFLAGS} -fPIC -shared"
228   LDFLAGLIBNAME="-Wl,-soname"
229   SHAREDSUFFIX=so
230 fi
231 # Mac-OSX with gcc4
232 if [ $ARCH = Darwin-gcc4 ]; then
233   export FC=gfortran
234   export FFLAGS="${FFLAGS_OPT}"
235   export CFLAGS="${CFLAGS_OPT}"
236   export CXXFLAGS="${CXXFLAGS_OPT}"
237   export FLIBS="-lgfortran"
238   if [ ${COMPMODE} = OPT ]; then
239     export FFLAGS="${FFLAGS_OPT}"
240     export CFLAGS="${CFLAGS_OPT}"
241     export CXXFLAGS="${CXXFLAGS_OPT}"
242   fi
243   if [ ${COMPMODE} = DBG ]; then
244     export FFLAGS="${FFLAGS_DBG}"
245     export CFLAGS="${CFLAGS_DBG}"
246     export CXXFLAGS="${CXXFLAGS_DBG}"
247   fi
248   LDFLAGSSHARED="${CXXFLAGS} -dynamiclib -single_module -flat_namespace -undefined suppress"
249   LDFLAGLIBNAME="-Wl,-dylib_install_name"
250   SHAREDSUFFIX=dylib
251 fi
252 # Mac-OSX with gcc3; is not tested
253 if [ $ARCH = Darwin ]; then
254   export FC=g77
255   export FFLAGS="${FFLAGS_OPT}"
256   export CFLAGS="${CFLAGS_OPT}"
257   export CXXFLAGS="${CXXFLAGS_OPT}"
258   export FLIBS="-lfrtbegin -lg2c"
259   if [ ${COMPMODE} = OPT ]; then
260     export FFLAGS="${FFLAGS_OPT}"
261     export CFLAGS="${CFLAGS_OPT}"
262     export CXXFLAGS="${CXXFLAGS_OPT}"
263   fi
264   if [ ${COMPMODE} = DBG ]; then
265     export FFLAGS="${FFLAGS_DBG}"
266     export CFLAGS="${CFLAGS_DBG}"
267     export CXXFLAGS="${CXXFLAGS_DBG}"
268   fi
269   LDFLAGSSHARED="${CXXFLAGS} -dynamiclib -single_module -flat_namespace -undefined suppress"
270   LDFLAGLIBNAME="-Wl,-dylib_install_name"
271   SHAREDSUFFIX=dylib
272 fi
273
274
275 CXXFLAGS="${CXXFLAGS} $USRCXXFLAGS"
276 LDFLAGSSHARED="${LDFLAGSSHARED} $USRLDFLAGSSHARED"
277 if [ "x${USRSHAREDSUFFIX}" != "x" ] ; then
278   SHAREDSUFFIX="${USRSHAREDSUFFIX}"
279 fi
280
281
282 #Platform & opt/dbg - independent flags and variables:
283
284
285 #
286 # End of the user-changeable part ---------------------------
287 #
288 # Checks
289 #
290 if [ $?HEPMCLOCATION ]; then
291   if [ x${HEPMCLOCATION} != x ]; then
292     if [ ! -d ${HEPMCLOCATION}/include ]; then
293       echo "Warning: bad HEPMCLOCATION: directory ${HEPMCLOCATION}/include does not exist"
294       echo "         The interface will not be built"
295       export HEPMCLOCATION=
296     fi
297     if [ ! -d ${HEPMCLOCATION}/lib ]; then
298       echo "Warning: bad HEPMCLOCATION: directory ${HEPMCLOCATION}/lib does not exist"
299       echo "         The interface will not be built"
300       export HEPMCLOCATION=
301     fi
302   fi
303 fi
304
305 # gzip support - do after SHAREDSUFFIX is set
306 if [ "x${ENABLEGZIP}" = "xyes" ]; then
307
308   # Default locations if none given
309   if [ "x${BOOSTLOCATION}" = "x" ]; then
310     BOOSTLOCATION=/usr
311   fi
312   if [ "x${ZLIBLOCATION}" = "x" ]; then
313     ZLIBLOCATION=/usr/lib
314   fi
315
316   # Check for Boost and zlib
317   if [ "x${ENABLEGZIP}" = "xyes" ] ; then
318     if [ ! -d "${BOOSTLOCATION}/include/boost/iostreams" ]; then
319       echo "Error: cannot find required Boost include files; gzip support disabled"
320       ENABLEGZIP=no
321     fi
322
323     # Some systems have Boost only under lib64?
324     for i in lib lib64; do 
325       if [ -f "${BOOSTLOCATION}/$i/libboost_iostreams.${SHAREDSUFFIX}" ]; then
326         BOOSTLIBLOCATION=${BOOSTLOCATION}/$i
327         break
328       fi
329     done
330
331     if [ "x${ENABLEGZIP}" = "xyes" -a x"${BOOSTLIBLOCATION}" = x ]; then
332       echo "Error: cannot find required Boost library files; gzip support disabled"
333       ENABLEGZIP=no
334     fi
335
336     if [ "x${ENABLEGZIP}" = "xyes" -a ! -f "${ZLIBLOCATION}/libz.${SHAREDSUFFIX}" ]; then
337       echo "Error: cannot find zlib; gzip support disabled"
338       ENABLEGZIP=no
339     fi
340   fi
341
342   # Add flags
343   if [ "x${ENABLEGZIP}" = "xyes" ] ; then
344     echo gzip support is enabled
345     CXXFLAGS="${CXXFLAGS} -DGZIPSUPPORT -I${BOOSTLOCATION}/include"
346   fi
347 fi
348
349 rm -f config.mk
350
351 echo SHELL = /bin/sh > config.mk
352 echo ARCH = ${ARCH} >> config.mk
353 echo MYLCGPLATFORM = ${MYLCGPLATFORM} >> config.mk
354 echo SHAREDLIBS = ${SHAREDLIBS} >> config.mk
355 echo FC = ${FC} >> config.mk
356 echo CC = ${CC} >> config.mk
357 echo FFLAGS = ${FFLAGS} >> config.mk
358 echo CFLAGS = ${CFLAGS} >> config.mk
359 echo CXXFLAGS = ${CXXFLAGS} >> config.mk
360 echo FLIBS = ${FLIBS} >> config.mk
361 echo LDFLAGSSHARED = ${LDFLAGSSHARED} >> config.mk
362 echo LDFLAGLIBNAME = ${LDFLAGLIBNAME} >> config.mk
363 echo SHAREDSUFFIX = ${SHAREDSUFFIX} >> config.mk
364 echo INSTALLDIR = ${INSTALLDIR} >> config.mk
365 echo DATADIR = ${DATADIR} >> config.mk
366 #
367 if [ x${HEPMCLOCATION} != x ]; then
368   if [ x${HEPMCVERSION} != x ]; then
369     echo HEPMCVERSION = ${HEPMCVERSION} >> config.mk
370   fi
371   echo HEPMCLOCATION = ${HEPMCLOCATION} >> config.mk
372 fi
373 #
374 #
375 #
376 rm -f examples/config.sh
377 rm -f examples/config.csh
378 if [ x${HEPMCLOCATION} != x ]; then
379   if [ $ARCH0 != Darwin ]; then
380     echo "#!/bin/csh" > examples/config.csh
381     echo 'if( ! $?LD_LIBRARY_PATH ) then' >> examples/config.csh
382     echo "  setenv LD_LIBRARY_PATH ${HEPMCLOCATION}/lib" >> examples/config.csh
383     echo "else" >> examples/config.csh
384     echo "  setenv LD_LIBRARY_PATH" '${LD_LIBRARY_PATH}'":${HEPMCLOCATION}/lib" >> examples/config.csh
385     echo "endif" >> examples/config.csh
386     echo "#!/bin/sh" > examples/config.sh
387     echo 'if [ ! $?LD_LIBRARY_PATH ]; then' >> examples/config.sh
388     echo "  export LD_LIBRARY_PATH=${HEPMCLOCATION}/lib" >> examples/config.sh
389     echo fi >> examples/config.sh
390     echo 'if [ $?LD_LIBRARY_PATH ]; then' >> examples/config.sh
391     echo "  export LD_LIBRARY_PATH="'${LD_LIBRARY_PATH}'":${HEPMCLOCATION}/lib" >> examples/config.sh
392     echo fi >> examples/config.sh
393   else
394     echo "#!/bin/csh" > examples/config.csh
395     echo 'if( ! $?DYLD_LIBRARY_PATH ) then' >> examples/config.csh
396     echo "  setenv DYLD_LIBRARY_PATH ${HEPMCLOCATION}/lib" >> examples/config.csh
397     echo "else" >> examples/config.csh
398     echo "  setenv DYLD_LIBRARY_PATH" '${DYLD_LIBRARY_PATH}'":${HEPMCLOCATION}/lib" >> examples/config.csh
399     echo "endif" >> examples/config.csh
400     echo "#!/bin/sh" > examples/config.sh
401     echo 'if [ ! $?DYLD_LIBRARY_PATH ]; then' >> examples/config.sh
402     echo "  export DYLD_LIBRARY_PATH=${HEPMCLOCATION}/lib" >> examples/config.sh
403     echo fi >> examples/config.sh
404     echo 'if [ $?DYLD_LIBRARY_PATH ]; then' >> examples/config.sh
405     echo "  export DYLD_LIBRARY_PATH="'${DYLD_LIBRARY_PATH}'":${HEPMCLOCATION}/lib" >> examples/config.sh
406     echo fi >> examples/config.sh
407   fi
408 fi
409
410 # gzip support - write locations into config.mk
411 if [ "x${ENABLEGZIP}" = "xyes" ] ; then
412   echo "ENABLEGZIP = yes" >> config.mk
413   echo "BOOSTLOCATION = ${BOOSTLOCATION}" >> config.mk
414   echo "BOOSTLIBLOCATION = ${BOOSTLIBLOCATION}" >> config.mk
415   echo "ZLIBLOCATION = ${ZLIBLOCATION}" >> config.mk
416 fi