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

554 lines
14 KiB
Bash
Executable File

#! /bin/sh -
#$Id: configure,v 1.7 2007/11/25 19:37:44 kmura Exp $
# ======================================================================
# A configure script for Geant4Py
# ======================================================================
export LANG=C
IFS='
'
PATH=/bin:/usr/bin
export PATH
# ======================================================================
# 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 installaion dir [PREFIX/lib]
--incdir=DIR Header installaion dir [PREFIX/include]
Fine tuning of the library path:
--with-g4-incdir=DIR Geant4 header dir [\$G4INCLUDE]
--with-g4-libdir=DIR Geant4 library dir [\$G4LIB/\$G4SYSTEM]
--with-g4-version=NUM Geant4 version (700/701/710/711)
Not required after ver.8.0
--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],
(location of pyconfig.h)
--with-python-libdir=DIR Python library dir [/usr/lib]
--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-gdml-incdir=DIR GDML header dir
--with-gdml-libdir=DIR GDML library dir
--with-xercesc-incdir=DIR Xerces-C header dir [/usr/include]
--with-xercesc-libdir=DIR Xerces-C library dir [/usr/lib]
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]
g4gdml GDML support (G4 module) [disable]
gdml GDML support (external, experimental) [disable]
also specifying inc/lib directories
Supported Architectures:
linux for Linux gcc 3.x and 4.x
linuxx8664gcc for AMD Opteron and Intel EM64T Linux gcc 3.x and 4.x
macosx for MacOSX with gcc (Tiger and XCode 2.3)
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}
g4_version=${G4VERSION_NUMBER:-auto}
clhep_incdir=${CLHEP_INCLUDE_DIR:-/zzz}
clhep_libdir=${CLHEP_LIB_DIR:-/zzz}
clhep_lib=${CLHEP_LIB:-CLHEP}
python_incdir=/usr/include/python
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_g4gdml=0
enable_gdml=0
gdml_incdir=/zzz
gdml_libdir=/zzz
xercesc_incdir=/usr/include
# checking system
case $1 in
linux|linuxx8664gcc|macosx)
system=$1
echo -n "Checking for system type ... "
if [ ! -e "config/sys/$system.gmk" ]; then
echo "no"
echo -n "### Invalid system type. "
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-g4-version=*) g4_version=$optarg ;;
--with-clhep-incdir=*) clhep_incdir=$optarg ;;
--with-clhep-libdir=*) clhep_libdir=$optarg ;;
--with-clhep-lib=*) clhep_lib=$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-gdml-incdir=*) gdml_incdir=$optarg ;;
--with-gdml-libdir=*) gdml_libdir=$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 ;;
--enable-g4gdml ) enable_g4gdml=1 ;;
--disable-g4gdml ) enable_g4gdml=0 ;;
--enable-gdml ) enable_gdml=1 ;;
--disable-gdml ) enable_gdml=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
echo -n "Checking for prefix ... "
echo $prefix
echo -n "Checking for lib dir ... "
libdir=${libdir:-$prefix/lib}
echo $libdir
echo -n "Checking for include dir ... "
incdir=${incdir:-$prefix/include}
echo $libdir
echo -n "Checking for G4 include dir ... "
if [ ! -d "$g4_incdir" ]; then
echo "no"
echo -n "### $g4_incdir (g4-incdir) does not exist. "
echo "Try --with-g4-incdir option."
exit -1
fi
echo "$g4_incdir"
echo -n "Checking for G4 lib dir ... "
if [ ! -d "$g4_libdir" ]; then
echo "no"
echo -n "### $g4_libdir (g4-libdir) does not exist. "
echo "Try --with-g4-libdir option."
exit -1
fi
echo "$g4_libdir"
echo -n "Checking for G4 version ... "
case $g4_version in
auto|700|701|710|711)
echo "$g4_version"
;;
*)
echo "no"
echo "### $g4_version (g4-version) is invalid (700/701/710/711)."
exit -1
;;
esac
if [ "$g4_version" = "auto" ]; then
if [ ! -f "$g4_incdir"/G4Version.hh ]; then
echo "### G4Version.hh does not exist. Try --with-g4-version option."
exit -1
fi
fi
# ---
echo -n "Checking for CLHEP include dir ... "
if [ ! -d "$clhep_incdir" ]; then
echo "no"
echo -n "### $clhep_incdir (clhep-incdir) does not exist. "
echo "Try --with-clhep-incdir option."
exit -1
fi
echo "$clhep_incdir"
echo -n "Checking for CLHEP lib dir ... "
if [ ! -d "$clhep_libdir" ]; then
echo "no"
echo -n "### $clhep_libdir (clhep-libdir) does not exist. "
echo "Try --with-clhep-libdir option."
exit -1
fi
echo "$clhep_libdir"
echo -n "Checking for CLHEP lib name ... "
if [ ! -f "$clhep_libdir"/lib${clhep_lib}.${shlib} ]; then
echo "no"
echo -n "### lib${clhep_lib}.${shlib} (clhep-lib) does not exist. "
echo "Try --with-clhep-lib option."
exit -1
fi
echo "lib${clhep_lib}.${shlib}"
# ---
echo -n "Checking for Python include dir (pyconfig.h) ... "
if [ ! -f "$python_incdir"/pyconfig.h ]; then
echo "no"
echo -n "### $python_incdir (python-incdir) is invalid. "
echo "Try --with-python-incdir option."
exit -1
fi
echo "$python_incdir"
echo -n "Checking for Python lib dir ... "
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 -n "### $python_libdir (python-libdir) does not exist. "
echo "Try --with-python-libdir option."
exit -1
fi
echo "$python_libdir"
# ---
echo -n "Checking for Boost include dir (boost/python.hpp) ... "
if [ ! -f "$boost_incdir"/boost/python.hpp ]; then
echo "no"
echo -n "### $boost_incdir (boost-incdir) is invalid. "
echo "Try --with-boost-incdir option."
exit -1
fi
echo "$boost_incdir"
echo -n "Checking for Boost lib dir ... "
if [ ! $boost_libdir ]; then
if [ $arch == 64 ]; then
boost_libdir=/usr/lib64
else
boost_libdir=/usr/lib
fi
fi
if [ ! -d "$boost_libdir" ]; then
echo "no"
echo -n "### $boost_libdir (boost-libdir) does not exist. "
echo "Try --with-boost-libdir option."
exit -1
fi
echo "$boost_libdir"
echo -n "Checking for Boost Python lib name ... "
if [ ! -f "$boost_libdir"/lib${boost_python_lib}.${shlib} ]; then
echo "no"
echo -n "### lib${boost_python_lib}.${shlib} (boost-python-lib) does not exist. "
echo "Try --with-boost-libdir option."
exit -1
fi
echo "lib${boost_python_lib}.${shlib}"
# ---
echo -n "Checking for OpenGL support ..."
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 -n "Checking for physics list support ..."
if [ -f "$g4_incdir"/QGSP.hh ]; then
enable_physicslist=1
fi
if [ $enable_physicslist == 0 ]; then
echo "no"
else
echo "yes"
fi
# ---
echo -n "Checking for G4GDML support ..."
if [ $enable_g4gdml == 0 ]; then
echo "no"
else
if [ -f "$g4_incdir"/G4GDMLParser.hh ]; then
echo "yes"
else
echo "no"
echo "### G4 GDML component is not found."
exit -1
fi
fi
# ---
echo -n "Checking for GDML support ..."
if [ $enable_gdml == 0 ]; then
echo "no"
else
echo "yes"
fi
if [ $enable_gdml == 1 ]; then
echo -n "Checking for GDML include dir ..."
if [ -d "$gdml_incdir"/G4Binding ]; then
echo "yes"
else
echo "no"
echo "### $gdml_incdir/G4Binding does not exist. "
echo "Try --with-gdml-incdir option."
exit -1
fi
echo -n "Checking for GDML lib dir ..."
if [ -f "$gdml_libdir"/libG4Processor.so ]; then
echo "yes"
else
echo "no"
echo "### $gdml_libdir/libG4Processor.so does not exist. "
echo "Try --with-gdml-libdir option."
exit -1
fi
fi
# ---
if [ $enable_g4gdml == 1 -o $enable_gdml == 1 ]; then
echo -n "Checking for Xerces-C include dir ..."
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 -n "Checking for Xerces-C lib dir ..."
if [ ! $xercesc_libdir ]; then
if [ $arch == 64 ]; then
xercesc_libdir=/usr/lib64
else
xercesc_libdir=/usr/lib
fi
fi
if [ -f "$xercesc_libdir"/libxerces-c.so ]; then
echo "yes"
else
echo "no"
echo "### $xercesc_libdir/libxerces-c.so does not exist. "
echo "Try --with-xercesc-libdir option."
exit -1
fi
fi
# ---
echo -n "Writing config.gmk ... "
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_INCDIR := $incdir
Q_G4_INCDIR := $g4_incdir
Q_G4_LIBDIR := $g4_libdir
EOF
if [ $g4_version != auto ]; then
cat >> $make_config <<EOF
Q_G4_VERSION := $g4_version
EOF
fi
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_G4GDML := $enable_g4gdml
Q_ENABLE_GDML := $enable_gdml
EOF
if [ $enable_gdml == 1 ]; then
cat >> $make_config <<EOF
Q_GDML_INCDIR := $gdml_incdir
Q_GDML_LIBDIR := $gdml_libdir
EOF
fi
if [ $enable_g4gdml == 1 -o $enable_gdml == 1 ]; then
cat >> $make_config <<EOF
Q_XERCESC_INCDIR := $xercesc_incdir
Q_XERCESC_LIBDIR := $xercesc_libdir
EOF
fi
echo "done"
echo -n "Writing config.status ... "
echo $arguments > config.status
echo "done"
# ---
echo ""
echo -n "Enabled support for"
if [ $enable_openglx = 1 ]; then
echo -n " openglx"
fi
if [ $enable_openglxm = 1 ]; then
echo -n " openglxm"
fi
if [ $enable_raytracerx = 1 ]; then
echo -n " raytracerx"
fi
if [ $enable_physicslist = 1 ]; then
echo -n " physicslist"
fi
if [ $enable_g4gdml = 1 ]; then
echo -n " g4gdml"
fi
if [ $enable_gdml = 1 ]; then
echo -n " gdml"
fi
echo "."
# ---
echo ""
echo "To build Geant4Py type:"
echo ""
echo " make"
echo " make install"
echo ""
exit 0