Files
geant4/environments/g4py/configure
T
2016-06-09 15:58:43 +02:00

552 lines
14 KiB
Bash
Executable File

#! /bin/sh -
#$Id: configure,v 1.15 2008/12/03 07:48:55 kmura Exp $
# ======================================================================
# A configure script for Geant4Py
# ======================================================================
export LANG=C
IFS='
'
PATH=/bin:/usr/bin
export PATH
# ======================================================================
# testing the echo features
# ======================================================================
if `(echo "testing\c"; echo 1,2,3) | grep c > /dev/null` ; then
if `(echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn > /dev/null`; then
ac_n= ac_c='
' ac_t=' '
else
ac_n=-n ac_c= ac_t=
fi
else
ac_n= ac_c='\c' ac_t=
fi
# ======================================================================
# help message
# ======================================================================
show_help() {
cat <<EOF
\`configure' configures Geant4Py to adapt to many kinds of systems.
Usage: ./configure SYSTEM [OPTION]... [VAR=VALUE]...
SYSTEM: System type (see Supported Arhitectures)
Options:
-h, --help Display this help and exit
Installation directories:
--prefix=PREFIX Installation prefix [./]
--libdir=DIR Python modules dir [PREFIX/lib]
Fine tuning of the library path:
--with-g4-incdir=DIR Geant4 header dir [\$G4INCLUDE]
--with-g4-libdir=DIR Geant4 library dir [\$G4LIB/\$G4SYSTEM]
--with-clhep-incdir=DIR CLHEP header dir [\$CLHEP_INCLUDE_DIR]
--with-clhep-libdir=DIR CLHEP library dir [\$CLHEP_LIB_DIR]
--with-clhep-lib=LIB library name of libCLHEP.so [CLHEP|\$CLHEP_LIB]
--with-python-incdir=DIR Python header dir [/usr/include/python(2.#)],
(location of pyconfig.h)
--with-python-libdir=DIR Python library dir [/usr/lib(64)]
--with-boost-incdir=DIR BOOST-C++ header dir [/usr/include],
(location of boost/)
--with-boost-libdir=DIR BOOST-C++ library dir [/usr/lib]
--with-boost-python-lib=LIB library name of libboost_python.so [boost_python]
--with-package-dir=DIR Geant4 Package dir
--with-extra-dir=DIR Install path for extra packages [/usr/local]
--with-xercesc-incdir=DIR Xerces-C header dir [/usr/include]
--with-xercesc-libdir=DIR Xerces-C library dir [/usr/lib(64)]
Enable/disable options: prefix with either --enable- or --disable-
openglx OpenGLX support [auto]
openglxm OpenGLXm support [disable, \$G4VIS_USE_OPENGLXM]
raytracerx RayTracerX support [disable, \$G4VIS_USE_RAYTRACERX]
Supported Architectures:
linux for Linux gcc 3.x and 4.x (32bit)
linux64 for Linux gcc 3.x and 4.x (64bit, alias to linuxx8664gcc)
linuxx8664gcc for AMD Opteron and Intel EM64T Linux gcc 3.x and 4.x
macosx for MacOSX with gcc (Tiger/Leopard and Xcode)
EOF
}
# ======================================================================
# main
# ======================================================================
# input
arguments="$@"
# default values
prefix=`pwd`
current_dir=`pwd`
g4_incdir=${G4INCLUDE:-/zzz}
g4_libdir=${G4LIB:+$G4LIB/$G4SYSTEM}
g4_libdir=${g4_libdir:-/zzz}
clhep_incdir=${CLHEP_INCLUDE_DIR:-/zzz}
clhep_libdir=${CLHEP_LIB_DIR:-/zzz}
clhep_lib=${CLHEP_LIB:-CLHEP}
python_incdir=/zzz
boost_incdir=/usr/include
boost_python_lib=boost_python
enable_openglx=1
enable_openglxm=${G4VIS_USE_OPENGLXM:+1}
enable_openglxm=${enable_openglxm:-0}
enable_raytracerx=${G4VIS_USE_RAYTRACERX:+1}
enable_raytracerx=${enable_raytracerx:-0}
enable_physicslist=0
enable_gdml=0
xercesc_incdir=/usr/include
extra_dir=/usr/local
# checking system
case $1 in
linux|linux64|linuxx8664gcc|macosx)
system=$1
if [ $system = linux64 ]; then
system=linuxx8664gcc
fi
echo $ac_n "Checking for system type ... $ac_c"
if [ ! -e "config/sys/$system.gmk" ]; then
echo "no"
echo $ac_n "### Invalid system type. $ac_c"
echo "Please taka a look in config/sys/."
exit -1
fi
echo "$system"
;;
--help|-h)
show_help
exit 0
;;
*)
echo "Error: System type is not specified or more than one system type. "
echo ""
echo "Usage: ./configure SYSTEM [OPTION]... [VAR=VALUE]..."
echo ""
exit -1
;;
esac
shift
# parsing options
while test $# -gt 0
do
case $1 in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
case $1 in
--help|-h) show_help; exit 0 ;;
# ---------------------------------------------------------------
--prefix=*) prefix=$optarg ;;
--libdir=*) libdir=$optarg ;;
--with-package-dir=*) g4_incdir=$optarg/include/Geant4
g4_libdir=$optarg/lib
clhep_incdir=$optarg/include
clhep_libdir=$optarg/lib ;;
--with-g4-incdir=*) g4_incdir=$optarg ;;
--with-g4-libdir=*) g4_libdir=$optarg ;;
--with-clhep-incdir=*) clhep_incdir=$optarg ;;
--with-clhep-libdir=*) clhep_libdir=$optarg ;;
--with-clhep-lib=*) clhep_lib=$optarg ;;
--with-extra-dir=*) extra_dir=$optarg ;;
--with-python-incdir=*) python_incdir=$optarg ;;
--with-python-libdir=*) python_libdir=$optarg ;;
--with-boost-incdir=*) boost_incdir=$optarg ;;
--with-boost-libdir=*) boost_libdir=$optarg ;;
--with-boost-python-lib=*) boost_python_lib=$optarg ;;
--with-xercesc-incdir=*) xercesc_incdir=$optarg ;;
--with-xercesc-libdir=*) xercesc_libdir=$optarg ;;
# ---------------------------------------------------------------
--enable-openglx ) enable_openglx=1 ;;
--disable-openglx ) enable_openglx=0 ;;
--enable-openglxm ) enable_openglxm=1 ;;
--disable-openglxm ) enable_openglxm=0 ;;
--enable-raytracerx ) enable_raytracerx=1 ;;
--disable-raytracerx ) enable_raytracerx=0 ;;
# ---------------------------------------------------------------
-*)
echo "Unrecognized option: $1"
exit -1
;;
*)
echo "Invalid argument: $1"
exit -1
;;
esac
shift
done
# check variables
arch=32
if [ $system = linuxx8664gcc ]; then
arch=64
fi
shlib=so
if [ $system = macosx ]; then
shlib=dylib
fi
extra_incdir=$extra_dir/include
if [ $arch = 64 ];then
extra_libdir=$extra_dir/lib64
else
extra_libdir=$extra_dir/lib
fi
echo $ac_n "Checking for prefix ... $ac_c"
echo $prefix
echo $ac_n "Checking for lib dir ... $ac_c"
libdir=${libdir:-$prefix/lib}
echo $libdir
echo $ac_n "Checking for G4 include dir ... $ac_c"
if [ ! -d "$g4_incdir" ]; then
echo "no"
echo $ac_n "### $g4_incdir (g4-incdir) does not exist. $ac_c"
echo "Try --with-g4-incdir option."
exit -1
fi
echo "$g4_incdir"
echo $ac_n "Checking for G4 lib dir ... $ac_c"
if [ ! -d "$g4_libdir" ]; then
echo "no"
echo $ac_n "### $g4_libdir (g4-libdir) does not exist. $ac_c"
echo "Try --with-g4-libdir option."
exit -1
fi
echo "$g4_libdir"
# ---
echo $ac_n "Checking for CLHEP include dir ... $ac_c"
if [ ! -d "$clhep_incdir" ]; then
echo "no"
echo $ac_n "### $clhep_incdir (clhep-incdir) does not exist. $ac_c"
echo "Try --with-clhep-incdir option."
exit -1
fi
echo "$clhep_incdir"
echo $ac_n "Checking for CLHEP lib dir ... $ac_c"
if [ ! -d "$clhep_libdir" ]; then
echo "no"
echo $ac_n "### $clhep_libdir (clhep-libdir) does not exist. $ac_c"
echo "Try --with-clhep-libdir option."
exit -1
fi
echo "$clhep_libdir"
echo $ac_n "Checking for CLHEP lib name ... $ac_c"
if [ ! -f "$clhep_libdir"/lib${clhep_lib}.${shlib} ]; then
echo "no"
echo $ac_n "### lib${clhep_lib}.${shlib} (clhep-lib) does not exist. $ac_c"
echo "Try --with-clhep-lib option."
exit -1
fi
echo "lib${clhep_lib}.${shlib}"
# ---
echo $ac_n "Checking for Python include dir (pyconfig.h) ... $ac_c"
# check version
set python python2.5 python2.4 python2.3 python2.2
for aincdir in $*
do
if [ -d /usr/include/$aincdir ]; then
python_incdir=/usr/include/$aincdir
break
fi
done
if [ ! -f "$python_incdir"/pyconfig.h ]; then
echo "no"
echo $ac_n "### $python_incdir (python-incdir) is invalid. $ac_c"
echo "Try --with-python-incdir option."
exit -1
fi
echo "$python_incdir"
echo $ac_n "Checking for Python lib dir ... $ac_c"
if [ ! $python_libdir ]; then
if [ $arch = 64 ]; then
python_libdir=/usr/lib64
else
python_libdir=/usr/lib
fi
fi
if [ ! -d "$python_libdir" ]; then
echo "no"
echo $ac_n "### $python_libdir (python-libdir) does not exist. $ac_c"
echo "Try --with-python-libdir option."
exit -1
fi
echo "$python_libdir"
# ---
echo $ac_n "Checking for Boost include dir (boost/python.hpp) ... $ac_c"
set $boost_incdir $extra_incdir
for adir in $*
do
if [ -f "$adir"/boost/python.hpp ]; then
boost_incdir=$adir
break
fi
done
if [ ! -f "$boost_incdir"/boost/python.hpp ]; then
echo "no"
echo $ac_n "### $boost_incdir (boost-incdir) is invalid. $ac_c"
echo "Try --with-boost-incdir option."
exit -1
fi
echo "$boost_incdir"
echo $ac_n "Checking for Boost version ... $ac_c"
cat > conftest.cc <<EOF
#include <boost/version.hpp>
int main() {
if (BOOST_VERSION >= 103200)
return 0;
else
return 1;
}
EOF
g++ -o conftest conftest.cc > /dev/null 2>&1
./conftest
q_boost_version=$?
rm conftest.cc conftest
if [ $q_boost_version = 0 ]; then
echo "ok"
else
echo "boost version >= 1.32.00 is required."
exit -1
fi
echo $ac_n "Checking for Boost lib dir ... $ac_c"
if [ ! $boost_libdir ]; then
if [ $arch = 64 ]; then
boost_libdir=/usr/lib64
else
boost_libdir=/usr/lib
fi
fi
set $boost_libdir $extra_libdir
for adir in $*
do
if [ -f "$adir"/lib${boost_python_lib}.${shlib} ]; then
boost_libdir=$adir
break
fi
done
if [ ! -d "$boost_libdir" ]; then
echo "no"
echo $ac_n "### $boost_libdir (boost-libdir) does not exist. $ac_c"
echo "Try --with-boost-libdir option."
exit -1
fi
echo "$boost_libdir"
echo $ac_n "Checking for Boost Python lib name ... $ac_c"
if [ ! -f "$boost_libdir"/lib${boost_python_lib}.${shlib} ]; then
echo "no"
echo $ac_n "### lib${boost_python_lib}.${shlib} (boost-python-lib) does not exist. $ac_c"
echo "Try --with-boost-python-lib option."
exit -1
fi
echo "lib${boost_python_lib}.${shlib}"
# ---
echo $ac_n "Checking for OpenGL support ...$ac_c"
if [ -f "$g4_libdir"/libG4OpenGL.${shlib} ]; then
if [ $enable_openglx = 0 ]; then
echo "disabled"
else
echo "yes"
fi
else
echo "no"
enable_openglx=0
fi
# ---
echo $ac_n "Checking for physics list support ...$ac_c"
if [ -f "$g4_incdir"/QGSP.hh ]; then
enable_physicslist=1
fi
if [ $enable_physicslist = 0 ]; then
echo "no"
else
echo "yes"
fi
# ---
echo $ac_n "Checking for GDML support ...$ac_c"
if [ -f "$g4_incdir"/G4GDMLParser.hh ]; then
echo "yes"
enable_gdml=1
else
echo "no"
enable_gdml=0
fi
# ---
if [ $enable_gdml = 1 ]; then
echo $ac_n "Checking for Xerces-C include dir ...$ac_c"
set $xercesc_incdir $extra_incdir
for adir in $*
do
if [ -d "$adir/xercesc" ]; then
xercesc_incdir=$adir
break
fi
done
if [ -d "$xercesc_incdir/xercesc" ]; then
echo "yes"
else
echo "no"
echo "### $xercesc_incdir/xercesc does not exist. "
echo "Try --with-xercesc-incdir option."
exit -1
fi
echo $ac_n "Checking for Xerces-C lib dir ...$ac_c"
if [ ! $xercesc_libdir ]; then
if [ $arch = 64 ]; then
xercesc_libdir=/usr/lib64
else
xercesc_libdir=/usr/lib
fi
fi
set $xerces_libdir $extra_libdir
for adir in $*
do
if [ -f "$adir"/libxerces-c.${shlib} ]; then
xercesc_libdir=$adir
break
fi
done
if [ -f "$xercesc_libdir"/libxerces-c.${shlib} ]; then
echo "yes"
else
echo "no"
echo "### $xercesc_libdir/libxerces-c.${shlib} does not exist. "
echo "Try --with-xercesc-libdir option."
exit -1
fi
fi
# ---
echo $ac_n "Writing config.gmk ... $ac_c"
make_config=config/config.gmk
cat > $make_config <<EOF
# config.gmk
#
# Automatically generated by configure script
#
# Makefile definitions included by the top Makefile
G4PY_INSTALL := $current_dir
Q_SYSTEM := $system
Q_PREFIX := $prefix
Q_LIBDIR := $libdir
Q_G4_INCDIR := $g4_incdir
Q_G4_LIBDIR := $g4_libdir
EOF
cat >> $make_config <<EOF
Q_CLHEP_INCDIR := $clhep_incdir
Q_CLHEP_LIBDIR := $clhep_libdir
Q_CLHEP_LIB := $clhep_lib
Q_PYTHON_INCDIR := $python_incdir
Q_PYTHON_LIBDIR := $python_libdir
Q_BOOST_INCDIR := $boost_incdir
Q_BOOST_LIBDIR := $boost_libdir
Q_BOOST_PYTHON_LIB := $boost_python_lib
Q_ENABLE_OPENGLX := $enable_openglx
Q_ENABLE_OPENGLXM := $enable_openglxm
Q_ENABLE_RAYTRACERX := $enable_raytracerx
Q_ENABLE_PHYSICSLIST := $enable_physicslist
Q_ENABLE_GDML := $enable_gdml
EOF
if [ $enable_gdml = 1 ]; then
cat >> $make_config <<EOF
Q_XERCESC_INCDIR := $xercesc_incdir
Q_XERCESC_LIBDIR := $xercesc_libdir
EOF
fi
echo "done"
echo $ac_n "Writing config.status ... $ac_c"
echo $arguments > config.status
echo "done"
# ---
echo ""
echo $ac_n "Enabled support for$ac_c"
if [ $enable_openglx = 1 ]; then
echo $ac_n " openglx$ac_c"
fi
if [ $enable_openglxm = 1 ]; then
echo $ac_n " openglxm$ac_c"
fi
if [ $enable_raytracerx = 1 ]; then
echo $ac_n " raytracerx$ac_c"
fi
if [ $enable_physicslist = 1 ]; then
echo $ac_n " physicslist$ac_c"
fi
if [ $enable_gdml = 1 ]; then
echo $ac_n " gdml$ac_c"
fi
echo "."
# ---
echo ""
echo "To build Geant4Py type:"
echo ""
echo " make"
echo " make install"
echo ""
exit 0