a FULL python installation, but will inevitably fail because neither the numarray or numeric package has been installed. Now, a check is made during the raw preconfig run to see if the include files for the numarray package can be found. If they can't be found and the python installation option is set to default, then the python build variable is set to 1, reducing python to a minimal installation. In most cases, the raw out-of-the-box preconfig make make test steps will now work. Whereas before, there were compile errors occurring because the numarray include files were not able to be found. More information about the SUNDIALS installation is now printed out. CVS
1563 lines
38 KiB
Text
Executable file
1563 lines
38 KiB
Text
Executable file
dnl Process this file with autoconf to produce a configure script.
|
|
define([AC_CACHE_LOAD], )dnl
|
|
define([AC_CACHE_SAVE], )dnl
|
|
AC_INIT(Cantera,1.7.0)
|
|
AC_CONFIG_HEADER(config.h)
|
|
# AC_CONFIG_AUX_DIR(.)
|
|
# AC_CONFIG_SRCDIR(./License.txt)
|
|
AC_CONFIG_AUX_DIR(config)
|
|
|
|
if test -z $CANTERA_VERSION ; then
|
|
echo
|
|
echo ">>>>> Error <<<<<"
|
|
echo
|
|
echo "Run script 'preconfig', instead of running 'configure'"
|
|
echo "directly. The 'preconfig' script sets various variable values"
|
|
echo "needed by 'configure' and then runs 'configure.' You may want to"
|
|
echo "edit 'preconfig' first, to set various installation options."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo " "
|
|
echo "--------------------------------------------------------------"
|
|
echo " "
|
|
echo " Cantera "$CANTERA_VERSION
|
|
echo " Configuration Script "
|
|
echo " "
|
|
echo "--------------------------------------------------------------"
|
|
echo " "
|
|
|
|
AC_DEFINE(NDEBUG)
|
|
|
|
ac_sys_system=`uname -s`
|
|
ac_sys_release=`uname -r`
|
|
|
|
# moved since MacOS deosn't support -i option
|
|
#sys_hardware=`uname -i`
|
|
|
|
#
|
|
# Determine the number of hardware bits in the system
|
|
#
|
|
#
|
|
# BITHARDWARE is the default number of compilation bits in pointers
|
|
#
|
|
case $ac_sys_system in
|
|
Linux* )
|
|
sys_hardware=`uname -i`
|
|
echo 'linux ' $sys_hardware
|
|
case $sys_hardware in
|
|
x86_64 ) BITHARDWARE=64 ;;
|
|
|
|
* ) BITHARDWARE=${BITHARDWARE:="32"} ;;
|
|
esac ;;
|
|
SunOS* )
|
|
sys_hardware=`uname -i`
|
|
echo 'SunOS ' $sys_hardware
|
|
case $sys_hardware in
|
|
"SUNW,Sun-Fire" ) BITHARDWARE=64 ;;
|
|
* ) BITHARDWARE=${BITHARDWARE:="32"} ;;
|
|
esac ;;
|
|
* ) BITHARDWARE=${BITHARDWARE:="32"} ;;
|
|
esac
|
|
#
|
|
# BITCOMPILE is the desired number of compilation bits in pointers
|
|
# Note, it can be different than the number of hardware bits.
|
|
# Many times you will want to compile 32 bits on a 64 bit
|
|
# machine
|
|
if test -z $BITCOMPILE ; then
|
|
BITCOMPILE=$BITHARDWARE
|
|
fi
|
|
|
|
BITCHANGE=
|
|
if test $BITCOMPILE != $BITHARDWARE ; then
|
|
BITCHANGE='y'
|
|
fi
|
|
|
|
|
|
AC_SUBST(BITCOMPILE)
|
|
AC_SUBST(BITHARDWARE)
|
|
AC_SUBST(BITCHANGE)
|
|
|
|
|
|
SHARED_CTLIB=0
|
|
OS_IS_DARWIN=0
|
|
OS_IS_WIN=0
|
|
OS_IS_CYGWIN=0
|
|
EXTRA_LINK=${EXTRA_LINK:=""}
|
|
|
|
# default Matlab MEX file extension
|
|
mex_ext=mexglx
|
|
|
|
case $ac_sys_system in
|
|
Darwin*) OS_IS_DARWIN=1;
|
|
hardware=`uname -m`;
|
|
EXTRA_LINK="-framework Accelerate $EXTRA_LINK";
|
|
#mex_ext=mexmac;
|
|
#if test "$hardware" = "i386" ; then
|
|
# mex_ext=mexmaci
|
|
;;#fi;;
|
|
CYGWIN*) OS_IS_CYGWIN=1; mex_ext=mexw32;;
|
|
Linux* ) case $BITHARDWARE in
|
|
64 ) if test "$BITCHANGE" = "y" ; then
|
|
ldemulationarg='-melf_i386'
|
|
fi ;;
|
|
esac
|
|
esac
|
|
|
|
AC_SUBST(ldemulationarg)
|
|
|
|
|
|
CVF_LIBDIR=""
|
|
if test "x${OS_IS_CYGWIN}" = "x1"; then
|
|
if test "${USE_VISUAL_STUDIO}" = "y"; then
|
|
OS_IS_WIN=1;
|
|
OS_IS_CYGWIN=0;
|
|
CVF_LIBDIR=$FORTRAN_LIB_DIR
|
|
fi
|
|
fi
|
|
AC_SUBST(CVF_LIBDIR)
|
|
|
|
#
|
|
# Determine if clib is to be a static or dynamic library
|
|
# -> will test to see if USE_DLL is defined in the cygwmin environment
|
|
#
|
|
USE_CLIB_DLL=0
|
|
if test "x${OS_IS_WIN}" = "x1"; then
|
|
if test -n ${USE_CLIB_DLL} ; then
|
|
USE_CLIB_DLL=1
|
|
fi
|
|
fi
|
|
AC_SUBST(USE_CLIB_DLL)
|
|
|
|
prdef="/usr/local/cantera"
|
|
if test "x$OS_IS_DARWIN" = "x1"; then prdef="/Applications/Cantera"; fi
|
|
|
|
local_inst=1
|
|
if test "x${prefix}" = "xNONE"; then
|
|
prefix=${prdef}
|
|
local_inst=0
|
|
fi
|
|
exec_prefix=${prefix}
|
|
|
|
if test "x${OS_IS_WIN}" = "x1"; then
|
|
prefix=`cygpath -a -m "${prefix}" `
|
|
fi
|
|
echo "Cantera will be installed in ${prefix}"
|
|
AC_SUBST(prefix)
|
|
|
|
AC_SUBST(local_inst)
|
|
|
|
#
|
|
# Determination of Python site-package directory location
|
|
#
|
|
local_python_inst=${local_inst}
|
|
if test "x${SET_PYTHON_SITE_PACKAGE_TOPDIR}" = "xy"; then
|
|
python_prefix=${PYTHON_SITE_PACKAGE_TOPDIR}
|
|
python_win_prefix=$python_prefix
|
|
if test "x${OS_IS_WIN}" = "x1" ; then
|
|
python_prefix=`cygpath -a -m "${python_prefix}"`
|
|
python_win_prefix=`cygpath -a -w "${python_prefix}"`
|
|
elif test "x${OS_IS_CYGWIN}" = "x1" ; then
|
|
python_prefix=`cygpath -a -u "${python_prefix}"`
|
|
python_win_prefix=`cygpath -a -w "${python_prefix}"`
|
|
fi
|
|
local_python_inst=1
|
|
echo "Cantera's Python packages will be installed in ${python_prefix}"
|
|
else
|
|
python_prefix=$prefix
|
|
python_win_prefix=$python_prefix
|
|
if test "x${OS_IS_WIN}" = "x1"; then
|
|
python_win_prefix=`cygpath -a -w "${python_prefix}" `
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(local_python_inst)
|
|
AC_SUBST(python_prefix)
|
|
AC_SUBST(python_win_prefix)
|
|
|
|
ctversion=${CANTERA_VERSION}
|
|
AC_SUBST(ctversion)
|
|
AC_DEFINE_UNQUOTED(CANTERA_VERSION,"$ctversion")
|
|
|
|
homedir="${HOME}"
|
|
|
|
AC_SUBST(homedir)
|
|
|
|
# A compact installation is one in which the $prefix directory
|
|
# contains only Cantera files. It is different than a local
|
|
# installation, in that the Python package is installed with other
|
|
# Python packages and modules in site-packages, rather than with the
|
|
# rest of the Cantera files, as in a local installation. Therefore,
|
|
# with a compact installation, there is no need to set PYTHONPATH. A
|
|
# compact installation is done on all machines now by default.
|
|
# This simplifies the installation issues, because now all Cantera
|
|
# installations look the same, except perhaps for the locations
|
|
# of the python packages.
|
|
# An option called, "distributed installations", is no longer
|
|
# supported.
|
|
|
|
ct_libdir=${prefix}/lib
|
|
ct_bindir=${prefix}/bin
|
|
ct_incdir=${prefix}/include/cantera
|
|
ct_incroot=${prefix}/include
|
|
ct_datadir=${prefix}/data
|
|
ct_demodir=${prefix}/demos
|
|
ct_templdir=${prefix}/templates
|
|
ct_tutdir=${prefix}/tutorials
|
|
ct_docdir=${prefix}/doc
|
|
ct_dir=${prefix}
|
|
ct_mandir=${prefix}
|
|
|
|
AC_SUBST(ct_libdir)
|
|
AC_SUBST(ct_bindir)
|
|
AC_SUBST(ct_incdir)
|
|
AC_SUBST(ct_incroot)
|
|
AC_SUBST(ct_datadir)
|
|
AC_SUBST(ct_demodir)
|
|
AC_SUBST(ct_templdir)
|
|
AC_SUBST(ct_tutdir)
|
|
AC_SUBST(ct_docdir)
|
|
AC_SUBST(ct_dir)
|
|
AC_SUBST(ct_mandir)
|
|
|
|
COMPACT_INSTALL=1
|
|
AC_SUBST(COMPACT_INSTALL)
|
|
|
|
AC_CANONICAL_SYSTEM()
|
|
# the root of the source tree
|
|
ctroot=`(pwd)`
|
|
builddir=$target
|
|
if test "x${OS_IS_WIN}" = "x1"; then
|
|
ctroot=`cygpath -a -m "${ctroot}" | sed 's/\\\/\\//g'`
|
|
builddir="i686-pc-win32"
|
|
fi
|
|
|
|
if test -z "$username"; then username=$USER; fi
|
|
if test -z "$username"; then username=$USERNAME; fi
|
|
if test -z "$username"; then username=`whoami`; fi
|
|
|
|
AC_SUBST(username)
|
|
|
|
AC_SUBST(ctroot)
|
|
|
|
# The include directory in the 'build' subdirectory.
|
|
# This is required to build the test problems
|
|
# before Cantera has been installed.
|
|
buildinc=$ctroot/build/include
|
|
AC_SUBST(buildinc)
|
|
|
|
buildlib=$ctroot/build/lib/$builddir
|
|
AC_SUBST(buildlib)
|
|
buildbin=$ctroot/build/bin/$builddir
|
|
AC_SUBST(buildbin)
|
|
|
|
# add definitions to config.h
|
|
if test "x${OS_IS_DARWIN}" = "x1"; then
|
|
AC_DEFINE_UNQUOTED(DARWIN,$OS_IS_DARWIN)
|
|
fi
|
|
if test "x${OS_IS_CYGWIN}" = "x1"; then
|
|
AC_DEFINE_UNQUOTED(CYGWIN,$OS_IS_CYGWIN)
|
|
fi
|
|
if test "x${OS_IS_WIN}" = "x1"; then
|
|
AC_DEFINE_UNQUOTED(WINMSVC,$OS_IS_WIN)
|
|
fi
|
|
AC_DEFINE_UNQUOTED(RXNPATH_FONT,"$RPFONT")
|
|
#AC_DEFINE_UNQUOTED(CANTERA_ROOT,"$prefix/cantera")
|
|
AC_DEFINE_UNQUOTED(CANTERA_DATA,"$ct_datadir")
|
|
|
|
|
|
if test -z "$MAKE"; then MAKE='make'; fi
|
|
AC_SUBST(MAKE)
|
|
|
|
if test -z "$GRAPHVIZDIR" ; then
|
|
GRAPHVIZDIR=" "
|
|
fi
|
|
AC_SUBST(GRAPHVIZDIR)
|
|
|
|
|
|
#----------- ARCHIVE --------------------
|
|
|
|
if test "x${OS_IS_DARWIN}" = "x1"; then
|
|
ARCHIVE='libtool -static -o'
|
|
fi
|
|
|
|
AC_SUBST(ARCHIVE)
|
|
|
|
DO_RANLIB=1
|
|
if test "x${RANLIB}" = "x"; then
|
|
DO_RANLIB=0
|
|
fi
|
|
|
|
AC_SUBST(DO_RANLIB)
|
|
AC_SUBST(RANLIB)
|
|
|
|
#----------- DEPENDS --------------------
|
|
|
|
if test "x${CXX_DEPENDS}" = "x"; then
|
|
CXX_DEPENDS='g++ -MM'
|
|
fi
|
|
AC_SUBST(CXX_DEPENDS)
|
|
|
|
#----------------------------------------
|
|
|
|
#----------------------------------------
|
|
|
|
|
|
|
|
#########################################################
|
|
# User Code
|
|
#########################################################
|
|
USERDIR=""
|
|
INCL_USER_CODE=0
|
|
if test -n "$USER_SRC_DIR"; then USERDIR=$USER_SRC_DIR; INCL_USER_CODE=1; fi
|
|
AC_SUBST(USERDIR)
|
|
AC_SUBST(INCL_USER_CODE)
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
use_sundials=0
|
|
sundials_inc=
|
|
CVODE_LIBS='-lcvode'
|
|
IDA_LIBS=''
|
|
|
|
if test "x$SUNDIALS_HOME" = "x"; then
|
|
SUNDIALS_LIB_DIR=/usr/local/lib
|
|
SUNDIALS_INC_DIR=/usr/local/include
|
|
else
|
|
SUNDIALS_LIB_DIR="$SUNDIALS_HOME/lib"
|
|
SUNDIALS_INC_DIR="$SUNDIALS_HOME/include"
|
|
fi
|
|
|
|
if test "$USE_SUNDIALS" = "default"; then
|
|
#
|
|
# HKM Disabled this line as it was causing configure to fail when
|
|
# SUNDIALS_LIB_DIR had a space in it, despite use of double quotes everywhere
|
|
#ldsave="$LDFLAGS"
|
|
#LDFLAGS='-L'"$SUNDIALS_LIB_DIR"' '"$ldsave"
|
|
AC_CHECK_LIB(sundials_cvodes, CVodeCreate, [use_sundials=1], [use_sundials=0],\
|
|
[-lsundials_cvodes -lsundials_nvecserial -lm])
|
|
|
|
if test ${use_sundials} = 0 ; then
|
|
tmpFile="$SUNDIALS_LIB_DIR/libsundials_cvodes.a"
|
|
if test -f $tmpFile ; then
|
|
use_sundials=1
|
|
fi
|
|
fi
|
|
|
|
if test ${use_sundials} = 1 ; then
|
|
echo SUNDIALS: succeeded in finding a sundials installation
|
|
else
|
|
echo SUNDIALS: failed at finding a sundials installation
|
|
fi
|
|
#LDFLAGS=$ldsave
|
|
fi
|
|
|
|
if test "x$USE_SUNDIALS" = "xy"; then
|
|
use_sundials=1
|
|
fi
|
|
|
|
if test ${use_sundials} = 1; then
|
|
AC_DEFINE(HAS_SUNDIALS)
|
|
echo "using CVODES from SUNDIALS... Sensitivity analysis enabled."
|
|
|
|
CVODE_LIBS='-lsundials_cvodes -lsundials_nvecserial'
|
|
IDA_LIBS='-lsundials_ida -lsundials_nvecserial'
|
|
|
|
if test "$SUNDIALS_VERSION" = "2.2"; then
|
|
AC_DEFINE(SUNDIALS_VERSION_22)
|
|
sundials_include='-I'${SUNDIALS_HOME}'/include -I'${SUNDIALS_HOME}'/include/sundials -I'${SUNDIALS_HOME}'/include/cvodes -I'${SUNDIALS_HOME}'/include/ida'
|
|
echo "sundials include directory: " ${sundials_include}
|
|
echo "sundials library directory: " $SUNDIALS_LIB_DIR
|
|
else
|
|
AC_DEFINE(SUNDIALS_VERSION_23)
|
|
sundials_include='-I'${SUNDIALS_INC_DIR}
|
|
echo "sundials include directory: " ${sundials_include}
|
|
echo "sundials library directory: " $SUNDIALS_LIB_DIR
|
|
# python tools/src/sundials_version.py $SUNDIALS_HOME
|
|
fi
|
|
fi
|
|
|
|
if test ${use_sundials} = 0; then
|
|
echo "using CVODE... Sensitivity analysis disabled."
|
|
echo "-> To enable sensitivity analysis, install the SUNDIALS package with CVODES."
|
|
fi
|
|
|
|
AC_SUBST(use_sundials)
|
|
AC_SUBST(CVODE_LIBS)
|
|
AC_SUBST(IDA_LIBS)
|
|
AC_SUBST(sundials_include)
|
|
|
|
|
|
#########################################################
|
|
# The Cantera Kernel
|
|
#########################################################
|
|
#
|
|
# DEBUG_MODE: Specify that additional code be compiled in
|
|
# that allows more debug printing where available.
|
|
# default = "y"
|
|
#
|
|
DEBUG_MODE=${DEBUG_MODE:="y"}
|
|
CANTERA_DEBUG_MODE=1
|
|
if test "$DEBUG_MODE" = "y" -o "$DEBUG_MODE" = "Y" ; then
|
|
AC_DEFINE(DEBUG_MODE)
|
|
CANTERA_DEBUG_MODE="1"
|
|
else
|
|
CANTERA_DEBUG_MODE="0"
|
|
fi
|
|
AC_SUBST(CANTERA_DEBUG_MODE)
|
|
|
|
KERNEL=''
|
|
KERNEL_OBJ=''
|
|
BUILD_CK=
|
|
|
|
NEED_CKREADER=
|
|
NEED_LAPACK=
|
|
#NEED_RECIPES=
|
|
NEED_MATH=
|
|
NEED_TPX=
|
|
NEED_F2C=
|
|
NEED_CVODE=
|
|
NEED_ZEROD=
|
|
|
|
#if test "$ENABLE_THERMO" = "y"; then
|
|
# KERNEL=$KERNEL' 'thermo;
|
|
# KERNEL_OBJ=$KERNEL_OBJ' $(THERMO_OBJ)'
|
|
#fi
|
|
|
|
if test "$WITH_METAL" = "y"; then
|
|
AC_DEFINE(WITH_METAL)
|
|
hdrs=$hdrs' MetalPhase.h'
|
|
fi
|
|
if test "$WITH_STOICH_SUBSTANCE" = "y"; then
|
|
AC_DEFINE(WITH_STOICH_SUBSTANCE)
|
|
hdrs=$hdrs' StoichSubstance.h'
|
|
objs=$objs' StoichSubstance.o'
|
|
fi
|
|
|
|
COMPILE_PURE_FLUIDS=
|
|
if test "$WITH_PURE_FLUIDS" = "y"; then
|
|
AC_DEFINE(WITH_PURE_FLUIDS)
|
|
COMPILE_PURE_FLUIDS=1
|
|
hdrs=$hdrs' PureFluidPhase.h'
|
|
objs=$objs' PureFluidPhase.o'
|
|
fi
|
|
AC_SUBST(COMPILE_PURE_FLUIDS)
|
|
|
|
if test "$WITH_LATTICE_SOLID" = "y"; then
|
|
AC_DEFINE(WITH_LATTICE_SOLID)
|
|
hdrs=$hdrs' LatticeSolidPhase.h'
|
|
objs=$objs' LatticeSolidPhase.o'
|
|
hdrs=$hdrs' LatticePhase.h'
|
|
objs=$objs' LatticePhase.o'
|
|
fi
|
|
phase_object_files=$objs
|
|
phase_header_files=$hdrs
|
|
AC_SUBST(phase_object_files)
|
|
AC_SUBST(phase_header_files)
|
|
|
|
|
|
NEED_CATHERMO=
|
|
COMPILE_IDEAL_SOLUTIONS=0
|
|
if test "$WITH_IDEAL_SOLUTIONS" = "y"; then
|
|
AC_DEFINE(WITH_IDEAL_SOLUTIONS)
|
|
NEED_CATHERMO=1
|
|
COMPILE_IDEAL_SOLUTIONS=1
|
|
fi
|
|
AC_SUBST(COMPILE_IDEAL_SOLUTIONS)
|
|
|
|
COMPILE_ELECTROLYTES=0
|
|
if test "$WITH_ELECTROLYTES" = "y"; then
|
|
AC_DEFINE(WITH_ELECTROLYTES)
|
|
NEED_CATHERMO=1
|
|
COMPILE_ELECTROLYTES=1
|
|
fi
|
|
AC_SUBST(COMPILE_ELECTROLYTES)
|
|
AC_SUBST(NEED_CATHERMO)
|
|
|
|
|
|
if test "$WITH_PRIME" = "y"; then
|
|
AC_DEFINE(WITH_PRIME)
|
|
fi
|
|
|
|
COMPILE_KINETICS=0
|
|
if test "$WITH_KINETICS" = "y"; then
|
|
AC_DEFINE(WITH_KINETICS)
|
|
COMPILE_KINETICS=1
|
|
fi
|
|
AC_SUBST(COMPILE_KINETICS)
|
|
|
|
|
|
COMPILE_HETEROKIN=0
|
|
if test "$WITH_HETERO_KINETICS" = "y"; then
|
|
AC_DEFINE(WITH_HETEROKINETICS)
|
|
COMPILE_HETEROKIN=1
|
|
fi
|
|
AC_SUBST(COMPILE_HETEROKIN)
|
|
|
|
COMPILE_RXNPATH=0
|
|
if test "$WITH_REACTION_PATHS" = "y"; then
|
|
AC_DEFINE(WITH_REACTIONPATHS)
|
|
COMPILE_RXNPATH=1
|
|
fi
|
|
AC_SUBST(COMPILE_RXNPATH)
|
|
|
|
|
|
if test "$ENABLE_CK" = "y" ; then
|
|
BUILD_CK=1
|
|
NEED_CKREADER=1
|
|
KERNEL=$KERNEL' 'ck
|
|
fi
|
|
|
|
NEED_TRANSPORT=
|
|
if test "$ENABLE_TRANSPORT" = "y" ; then
|
|
KERNEL=$KERNEL' 'trprops
|
|
NEED_LAPACK=1
|
|
NEED_MATH=1
|
|
NEED_TRANSPORT=1
|
|
fi
|
|
|
|
NEED_EQUIL=
|
|
if test "$ENABLE_EQUIL" = "y" ; then
|
|
KERNEL=$KERNEL' 'equil
|
|
KERNEL_OBJ=$KERNEL_OBJ' $(EQUIL_OBJ)'
|
|
NEED_EQUIL=1
|
|
NEED_LAPACK=1
|
|
fi
|
|
|
|
WITH_REACTORS=0
|
|
if test "$ENABLE_REACTORS" = "y" ; then
|
|
KERNEL=$KERNEL' 'reactor
|
|
NEED_CVODE=1
|
|
NEED_ZEROD=1
|
|
WITH_REACTORS=1
|
|
fi
|
|
AC_SUBST(WITH_REACTORS)
|
|
|
|
NEED_ONED=
|
|
if test "$ENABLE_FLOW1D" = "y" ; then
|
|
KERNEL=$KERNEL' 'flow1D
|
|
NEED_LAPACK=1
|
|
NEED_MATH=1
|
|
NEED_ONED=1
|
|
fi
|
|
|
|
if test "$ENABLE_TPX" = "y" ; then
|
|
KERNEL=$KERNEL' 'tpx
|
|
NEED_TPX=1
|
|
AC_DEFINE(INCL_PURE_FLUIDS)
|
|
fi
|
|
|
|
AC_SUBST(KERNEL)
|
|
AC_SUBST(KERNEL_OBJ)
|
|
AC_SUBST(BUILD_CK)
|
|
AC_SUBST(LIB_DIR)
|
|
|
|
if test "$WITH_HTML_LOG_FILES" = "y"; then
|
|
AC_DEFINE(WITH_HTML_LOGS)
|
|
fi
|
|
|
|
BOOST_INCLUDE=
|
|
BOOST_LIB=
|
|
if test "$BUILD_THREAD_SAFE" = "y" ; then
|
|
AC_DEFINE(THREAD_SAFE_CANTERA)
|
|
BOOST_INCLUDE=-I$BOOST_INC_DIR
|
|
BOOST_LIB=$BOOST_THREAD_LIB
|
|
fi
|
|
AC_SUBST(BOOST_INCLUDE)
|
|
AC_SUBST(BOOST_LIB)
|
|
|
|
|
|
#
|
|
# Report to the user what has been included/excluded from the compilation
|
|
#
|
|
echo " "
|
|
echo "Config SUMMARY OF INCLUDED/EXCLUDED CAPABILITIES:"
|
|
|
|
if test "$CANTERA_DEBUG_MODE" = "1" ; then
|
|
echo " Cantera Debug Mode = ON"
|
|
else
|
|
echo " Cantera Debug Mode = OFF"
|
|
fi
|
|
if test "$BUILD_THREAD_SAFE" = "y" ; then
|
|
echo " Thread Safe = YES"
|
|
else
|
|
echo " Thread Safe = NO"
|
|
fi
|
|
if test "$NEED_TRANSPORT" = "1" ; then
|
|
echo " Calculation of Transport Props = ON"
|
|
else
|
|
echo " Calculation of Transport Props = OFF"
|
|
fi
|
|
if test "$NEED_ZEROD" = "1" ; then
|
|
echo " Zero-Dimensional Flow Reactors Models = ON"
|
|
else
|
|
echo " Zero-Dimensional Flow Reactors Models = OFF"
|
|
fi
|
|
if test "$NEED_ONED" = "1" ; then
|
|
echo " One Dimensional Flow Reactors Models = ON"
|
|
else
|
|
echo " One Dimensional Flow Reactors Models = OFF"
|
|
fi
|
|
if test "$NEED_TPX" = "1" ; then
|
|
echo " TPX Pure Fluid Capability = ON"
|
|
else
|
|
echo " TPX Pure Fluid Capability = OFF"
|
|
fi
|
|
if test "$NEED_CKREADER" = "1" ; then
|
|
echo " Chemkin File Reader Capability = ON"
|
|
else
|
|
echo " Chemkin File Reader Capability = OFF"
|
|
fi
|
|
if test "$NEED_EQUIL" = "1" ; then
|
|
echo " MultiPhase Equilibrium Solver = ON"
|
|
else
|
|
echo " MultiPhase Equilibrium Solver = OFF"
|
|
fi
|
|
if test "$COMPILE_IDEAL_SOLUTIONS" = "1" ; then
|
|
echo " Ideal Solution Thermodynamics = ON"
|
|
else
|
|
echo " Ideal Solution Thermodynamics = OFF"
|
|
fi
|
|
if test "$COMPILE_ELECTROLYTES" = "1" ; then
|
|
echo " Electrolyte Thermodynamics = ON"
|
|
else
|
|
echo " Electrolyte Thermodynamics = OFF"
|
|
fi
|
|
if test "$COMPILE_KINETICS" = "1" ; then
|
|
echo " Homogeneous Kinetics = ON"
|
|
else
|
|
echo " Homogeneous Kinetics = OFF"
|
|
fi
|
|
if test "$COMPILE_HETEROKIN" = "1" ; then
|
|
echo " Heterogeneous Kinetics = ON"
|
|
else
|
|
echo " Heterogeneous Kinetics = OFF"
|
|
fi
|
|
if test "$COMPILE_RXNPATH" = "1" ; then
|
|
echo " Reaction Path Analysis = ON"
|
|
else
|
|
echo " Reaction Path Analysis = OFF"
|
|
fi
|
|
echo " "
|
|
|
|
########################################################
|
|
# BLAS and LAPACK
|
|
########################################################
|
|
#
|
|
# if lapack and blas libraries have been specified, then skip building the
|
|
# supplied libraries
|
|
|
|
|
|
build_lapack=0
|
|
build_blas=0
|
|
if test -z "$BLAS_LAPACK_LIBS"; then
|
|
if test "x$OS_IS_DARWIN" = "x0"; then
|
|
BLAS_LAPACK_LIBS="-lctlapack -lctblas"
|
|
BLAS_LAPACK_DIR="$buildlib"
|
|
build_blas=1
|
|
build_lapack=1
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(build_lapack)
|
|
|
|
AC_SUBST(build_blas)
|
|
|
|
AC_SUBST(BLAS_LAPACK_LIBS)
|
|
AC_SUBST(BLAS_LAPACK_DIR)
|
|
|
|
#
|
|
# Stubout section for f2c versions of lapack:
|
|
# Define these variables, but turn them off in main version of code
|
|
#
|
|
build_with_f2c=0
|
|
if test -n "$BUILD_WITH_F2C" ; then
|
|
if test "$BUILD_WITH_F2C" = "y" -o "$BUILD_WITH_F2C" = "Y" ; then
|
|
build_with_f2c=1
|
|
elif test "$BUILD_WITH_F2C" = "n" -o "$BUILD_WITH_F2C" = "N" ; then
|
|
build_with_f2c=0
|
|
elif test "$BUILD_WITH_F2C" = "default" ; then
|
|
if test "x$OS_IS_WIN" = "x1" ; then
|
|
build_with_f2c=1
|
|
else
|
|
build_with_f2c=0
|
|
fi
|
|
fi
|
|
fi
|
|
AC_SUBST(build_with_f2c)
|
|
|
|
#
|
|
# Build a string of Canne if you need the f2c library at link time
|
|
# -> Note, Linux systems already have the g2c library
|
|
# added in, which is the same thing as our
|
|
# f2c library. However, the f2c library seems
|
|
# more reliable at resolving names
|
|
if test x"$build_with_f2c" = "x1" ; then
|
|
NEED_F2C=1
|
|
case $ac_sys_system in
|
|
Linux) NEED_F2C= ;;
|
|
esac
|
|
fi
|
|
case $ac_sys_system in
|
|
Linux) NEED_F2C=1 ;;
|
|
esac
|
|
|
|
#
|
|
# Create a variable build_f2c_lib that determines whether
|
|
# the f2c_lib will be built on a given platform
|
|
#
|
|
build_f2c_lib=0
|
|
if test -n "$NEED_F2C" ; then
|
|
build_f2c_lib=1
|
|
fi
|
|
AC_SUBST(build_f2c_lib)
|
|
|
|
#
|
|
# LOCAL_LIBS:
|
|
# Build a string of Cantera libraries necessary to link
|
|
# Cantera applications
|
|
#
|
|
LOCAL_LIBS=
|
|
|
|
if test -n "$INCL_USER_CODE"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-luser
|
|
fi
|
|
|
|
if test -n "$NEED_ONED"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-loneD
|
|
fi
|
|
|
|
if test -n "$NEED_ZEROD"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-lzeroD
|
|
fi
|
|
|
|
LOCAL_LIBS=$LOCAL_LIBS' '-lequil
|
|
|
|
if test -n "$COMPILE_KINETICS"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-lkinetics
|
|
fi
|
|
|
|
if test -n "$NEED_TRANSPORT"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-ltransport
|
|
fi
|
|
|
|
if test -n "$NEED_CATHERMO"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-lthermo
|
|
fi
|
|
|
|
LOCAL_LIBS=$LOCAL_LIBS' '-lctnumerics
|
|
|
|
if test -n "$NEED_CVODE"; then
|
|
LOCAL_LIBS=$LOCAL_LIBS' '$CVODE_LIBS
|
|
fi
|
|
|
|
LOCAL_LIBS=$LOCAL_LIBS' '-lctbase
|
|
|
|
if test -n "$NEED_LAPACK"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '$BLAS_LAPACK_LIBS
|
|
fi
|
|
|
|
if test -n "$NEED_MATH"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-lctmath
|
|
fi
|
|
|
|
if test -n "$NEED_TPX"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-ltpx
|
|
fi
|
|
|
|
if test -n "$NEED_F2C"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-lctf2c
|
|
else
|
|
case $ac_sys_system in
|
|
Linux) LOCAL_LIBS=$LOCAL_LIBS' '-lg2c;;
|
|
esac
|
|
fi
|
|
# Darwin*) LOCAL_LIBS=$LOCAL_LIBS' '-lg2c;;
|
|
|
|
if test -n "$NEED_CKREADER"
|
|
then LOCAL_LIBS=$LOCAL_LIBS' '-lconverters
|
|
fi
|
|
|
|
LOCAL_LIB_DIRS=
|
|
if test -n "$BLAS_LAPACK_DIR"
|
|
then LOCAL_LIB_DIRS=$LOCAL_LIB_DIRS' -L'$BLAS_LAPACK_DIR
|
|
fi
|
|
|
|
if test ${use_sundials} = 1; then
|
|
LOCAL_LIB_DIRS=$LOCAL_LIB_DIRS' -L'$SUNDIALS_LIB_DIR
|
|
fi
|
|
|
|
if test ${BUILD_THREAD_SAFE} = "y"; then
|
|
LOCAL_LIBS=$LOCAL_LIBS' '-l$BOOST_LIB
|
|
LOCAL_LIB_DIRS=$LOCAL_LIB_DIRS' -L'$BOOST_LIB_DIR
|
|
fi
|
|
|
|
|
|
AC_SUBST(LOCAL_LIB_DIRS)
|
|
AC_SUBST(LOCAL_LIBS)
|
|
|
|
#-------------------------------------------------
|
|
# Language Interfaces
|
|
#-------------------------------------------------
|
|
|
|
AC_SUBST(CT_SHARED_LIB)
|
|
|
|
|
|
BUILD_F90=1
|
|
if test "x$BUILD_F90_INTERFACE" = "xn"; then
|
|
BUILD_F90=0
|
|
fi
|
|
|
|
BUILD_CLIB=1
|
|
|
|
#----------------------------------------------------------------
|
|
# Python Interface
|
|
#----------------------------------------------------------------
|
|
|
|
BUILD_PYTHON=0
|
|
if test "x$PYTHON_PACKAGE" = "xfull"; then
|
|
BUILD_PYTHON=2
|
|
elif test "x$PYTHON_PACKAGE" = "xdefault"; then
|
|
BUILD_PYTHON=2
|
|
elif test "x$PYTHON_PACKAGE" = "xminimal"; then
|
|
BUILD_PYTHON=1
|
|
elif test "x$PYTHON_PACKAGE" = "xnone"; then
|
|
BUILD_PYTHON=0
|
|
else
|
|
echo "ERROR: PYTHON_PACKAGE variable, " $PYTHON_PACKAGE ", is not understood. Use:"
|
|
echo " full, default, minimal, or none"
|
|
exit 1
|
|
fi
|
|
if test $BUILD_PYTHON = 0 ; then
|
|
AC_DEFINE(HAS_NO_PYTHON)
|
|
fi
|
|
|
|
if test "$PYTHON_CMD" = "default" -o \
|
|
"$PYTHON_CMD"x = "x"; then
|
|
AC_PATH_PROGS(PYTHON_CMD, python2 python, "none")
|
|
if test "$PYTHON_CMD" = "none"; then
|
|
BUILD_PYTHON=0
|
|
echo "Python not found. Only those portions of Cantera that"
|
|
echo "can be installed without Python will be installed."
|
|
else
|
|
echo "Python command set by configure to " $PYTHON_CMD
|
|
fi
|
|
else
|
|
echo "Python command preset to $PYTHON_CMD"
|
|
fi
|
|
|
|
|
|
AC_SUBST(BUILD_PYTHON)
|
|
AC_DEFINE_UNQUOTED(PYTHON_EXE,"$PYTHON_CMD")
|
|
|
|
if test "$USE_NUMERIC" = "y"; then
|
|
AC_DEFINE(HAS_NUMERIC)
|
|
fi
|
|
|
|
if test -n "$NUMARRAY_INC_DIR" ; then
|
|
echo "setting NUMARRAY_INC_DIR to $NUMARRAY_INC_DIR"
|
|
else
|
|
NUMARRAY_INC_DIR=""
|
|
if test -n "$NUMARRAY_HOME"; then
|
|
dir4="$NUMARRAY_HOME/include/python2.4"
|
|
if test -d $dir4 ; then
|
|
NUMARRAY_INC_DIR=$dir4
|
|
else
|
|
dir3="$NUMARRAY_HOME/include/python2.3"
|
|
if test -d $dir3 ; then
|
|
NUMARRAY_INC_DIR=$dir3
|
|
else
|
|
dir1="$NUMARRAY_HOME/include/python"
|
|
if test -d $dir1 ; then
|
|
NUMARRAY_INC_DIR=$dir1
|
|
else
|
|
echo "WARNING: NUMARRAY include dir $dir1 does not exist."
|
|
NUMARRAY_INC_DIR=$dir1
|
|
fi
|
|
fi
|
|
fi
|
|
echo "setting NUMARRAY_INC_DIR to $NUMARRAY_INC_DIR"
|
|
fi
|
|
fi
|
|
|
|
if test $BUILD_PYTHON = 2 ; then
|
|
if test x"$NUMARRAY_INC_DIR" = "x" ; then
|
|
if test ! "$USE_NUMERIC" = "y"; then
|
|
echo 'NUMARRAY is being used but we can find it'
|
|
if test "x$PYTHON_PACKAGE" = "xdefault"; then
|
|
echo 'setting python package build back to minimal'
|
|
BUILD_PYTHON=1
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(NUMARRAY_INC_DIR)
|
|
AC_SUBST(NUMARRAY_HOME)
|
|
AC_SUBST(CANTERA_PYTHON_HOME)
|
|
|
|
#--------------------------
|
|
# CVS Tag
|
|
#--------------------------
|
|
CVSTAG=`${PYTHON_CMD} tools/src/findtag.py ..`
|
|
if test "x$CVSTAG" = "x"; then
|
|
CVSTAG="HEAD"
|
|
fi
|
|
AC_SUBST(CVSTAG)
|
|
|
|
|
|
#
|
|
# Matlab Interface
|
|
#
|
|
|
|
BUILD_MATLAB=0
|
|
|
|
if test "$BUILD_MATLAB_TOOLBOX" != "n"; then
|
|
if test "$MATLAB_CMD" = "default" -o \
|
|
"$MATLAB_CMD"x = "x"; then
|
|
AC_PATH_PROG(MATLAB_CMD, matlab, "none")
|
|
if test "$MATLAB_CMD" = "none"; then
|
|
MATLAB_CMD=`find /*/MATLAB*/bin/m* -name matlab`
|
|
fi
|
|
if test "$MATLAB_CMD" != "none" -a "x$MATLAB_CMD" != "x"; then
|
|
BUILD_MATLAB=1
|
|
BUILD_CLIB=1
|
|
fi
|
|
else
|
|
echo "Matlab command preset to $MATLAB_CMD"
|
|
BUILD_MATLAB=1
|
|
BUILD_CLIB=1
|
|
fi
|
|
if test "x$OS_IS_WIN" = "x1"; then
|
|
MATLAB_CMD=`cygpath -a -m "$MATLAB_CMD" `
|
|
echo "Windows MATLAB command: ${MATLAB_CMD}"
|
|
fi
|
|
|
|
AC_MSG_CHECKING(MATLAB ($MATLAB_CMD))
|
|
rm -f diary
|
|
cat >> testmat.m << EOF
|
|
diary;
|
|
try, mexext, catch, disp 'mex_unknown', end;
|
|
diary off;
|
|
exit;
|
|
EOF
|
|
${MATLAB_CMD} -nojvm -nosplash -r testmat &> /dev/null
|
|
# &> /dev/null`
|
|
if test -f diary; then
|
|
BUILD_MATLAB=1
|
|
mex_ext=`grep mex* diary`
|
|
rm -f diary
|
|
else
|
|
BUILD_MATLAB=0
|
|
fi
|
|
rm -f testmat.m
|
|
else
|
|
echo "MATLAB interface will not be installed"
|
|
if test -z "$MATLAB_CMD"; then
|
|
MATLAB_CMD="matlab"
|
|
fi
|
|
fi
|
|
|
|
if test "$mex_ext" = "mex_unknown"; then
|
|
case $ac_sys_system in
|
|
Darwin*) hardware=`uname -m`;
|
|
mex_ext=mexmac;
|
|
if test "$hardware" = "i386" ; then
|
|
mex_ext=mexmaci
|
|
fi;;
|
|
CYGWIN*) mex_ext=dll;;
|
|
Linux* ) mex_ext=mexglx;;
|
|
esac
|
|
fi
|
|
|
|
if test "$BUILD_MATLAB" = "1"; then
|
|
echo " "
|
|
echo "---------------------------- MATLAB -------------------------------"
|
|
echo "MEX file extension: " $mex_ext
|
|
echo "MATLAB command: " $MATLAB_CMD
|
|
ECHO "--------------------------------------------------------------------"
|
|
echo " "
|
|
fi
|
|
|
|
AC_SUBST(BUILD_MATLAB)
|
|
AC_SUBST(MATLAB_CMD)
|
|
AC_SUBST(BUILD_CLIB)
|
|
|
|
#-------------------------------------------------
|
|
|
|
#-----------------------------------------------------------------------
|
|
# C++ Compilation
|
|
#-----------------------------------------------------------------------
|
|
|
|
|
|
export_name=$target
|
|
AC_SUBST(export_name)
|
|
|
|
#
|
|
# PIC
|
|
# Compiler flag for specifying position independent code.
|
|
# This flag is needed sometimes in the compilation step
|
|
# for code that will go into a shared library.
|
|
# If Cantera is used in the Full python installation
|
|
# mode, this means just about all of Cantera's code
|
|
# should be position independent.
|
|
#
|
|
if test -z "$PIC"; then PIC='-fPIC'; fi
|
|
AC_SUBST(PIC)
|
|
|
|
|
|
dnl Checks for programs.
|
|
#
|
|
# This script will find and set the $INSTALL
|
|
# environmental variable, and set a substitution
|
|
# rule for that variable
|
|
AC_PROG_INSTALL
|
|
#
|
|
# HKM -
|
|
# However, recently, I've had problems with
|
|
# the default LINUX /usr/bin/install program wrt
|
|
# files/directories which are group writeable, but
|
|
# which are not owned by the current user (this happens
|
|
# in a group environment). The default config/install-sh
|
|
# doesn't have this problem. So, I changed the default
|
|
# install program to config/install-sh, which should work
|
|
# on all platforms since its a bourne shell script
|
|
INSTALL=${INSTALL_BIN:=config/install-sh}
|
|
echo 'INSTALL program has been set to ' $INSTALL
|
|
#
|
|
# precompile_headers still relevant?
|
|
#
|
|
precompile_headers=no
|
|
#
|
|
# CFLAGS: flags that get attached to the C compiler
|
|
# statement. AFLAGS are base flags that
|
|
# get added to compilers and loaders.
|
|
# FFLAGS: flags that get attached to the C compiler
|
|
# statement. AFLAGS are base flags that
|
|
# get added to compilers and loaders.
|
|
#
|
|
# CXXFLAGS: Flags that get attached to the CXX compiler
|
|
# statement. AFLAGS are base flags that
|
|
# get added to compilers and loaders.
|
|
#
|
|
if test -z "$AFLAGS" ; then
|
|
AFLAGS="$PIC"
|
|
fi
|
|
if test ! -z "$AFLAGS" ; then
|
|
if test -z "$CXXFLAGS" ; then
|
|
CXXFLAGS="$AFLAGS"
|
|
else
|
|
CXXFLAGS="$CXXFLAGS"" ""$AFLAGS"
|
|
fi
|
|
if test -z "$CFLAGS" ; then
|
|
CFLAGS="$AFLAGS"
|
|
else
|
|
CFLAGS="$CFLAGS"" ""$AFLAGS"
|
|
fi
|
|
if test -z "$FFLAGS" ; then
|
|
FFLAGS="$AFLAGS"
|
|
else
|
|
FFLAGS="$FFLAGS"" ""$AFLAGS"
|
|
fi
|
|
fi
|
|
|
|
if test "x$OS_IS_WIN" = "x1"; then
|
|
CXX=cl.exe
|
|
CC=cl.exe
|
|
else
|
|
|
|
#
|
|
# Determines the CXX compiler to use
|
|
#
|
|
export CXX
|
|
AC_PROG_CXX()
|
|
AC_PROG_CC()
|
|
|
|
|
|
AC_MSG_CHECKING(for ability to precompile headers)
|
|
|
|
if test -n "$GCC"; then
|
|
msg=`rm -f *h.gch; $CXX testpch.h &> /dev/null`
|
|
if test -f testpch.h.gch; then
|
|
precompile_headers=yes
|
|
AC_DEFINE(USE_PCH)
|
|
fi
|
|
fi
|
|
AC_MSG_RESULT(${precompile_headers})
|
|
# End of the OS_IS_WIN section
|
|
fi
|
|
|
|
# Sizes of various common basic types
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
AC_CHECK_SIZEOF(long, 4)
|
|
AC_CHECK_SIZEOF(void *, 4)
|
|
AC_CHECK_SIZEOF(char, 1)
|
|
AC_CHECK_SIZEOF(short, 2)
|
|
AC_CHECK_SIZEOF(float, 4)
|
|
AC_CHECK_SIZEOF(double, 8)
|
|
AC_CHECK_SIZEOF(fpos_t, 4)
|
|
|
|
AC_SUBST(SOEXT)
|
|
|
|
if test -z "$SHARED"; then SHARED='-shared'; fi
|
|
AC_SUBST(SHARED)
|
|
|
|
CXX_INCLUDES=$BOOST_INCLUDE
|
|
AC_SUBST(CXX_INCLUDES)
|
|
#
|
|
# LCXX_FLAGS: Flags that get attached to the CXX loader
|
|
# statement AFLAGS are base flags that
|
|
# get added to compilers and loaders.
|
|
#
|
|
if test ! -z "$AFLAGS" ; then
|
|
if test -z "$LCXX_FLAGS" ; then
|
|
LCXX_FLAGS="$AFLAGS"
|
|
else
|
|
LCXX_FLAGS="$LCXXFLAGS"" ""$AFLAGS"
|
|
fi
|
|
fi
|
|
if test "$BUILD_WITH_F2C"="n"; then
|
|
if test ! -z "$LFORT_FLAGS"; then
|
|
LCXX_FLAGS="$LCXX_FLAGS"" ""$LFORT_FLAGS"
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(LCXX_FLAGS)
|
|
#
|
|
# Ending Libs for compiling static applications and
|
|
# dynamically loaded libraries
|
|
# (sunpro solaris needs a few for dynamic linking)
|
|
#
|
|
case $ac_sys_system in
|
|
SunOS* )
|
|
case $CXX in
|
|
CC* )
|
|
LCXX_END_LIBS="$LCXX_END_LIBS"" -lCrun -lCstd" ;;
|
|
esac ;;
|
|
Linux)
|
|
LCXX_END_LIBS=" -lctf2c ""$LCXX_END_LIBS" ;;
|
|
esac
|
|
AC_SUBST(LCXX_END_LIBS)
|
|
|
|
|
|
has_sstream=no
|
|
AC_MSG_CHECKING(for sstream)
|
|
cat >> testsstream.cpp << EOF
|
|
#include <sstream>
|
|
main() {}
|
|
EOF
|
|
msg=`${CXX} -c testsstream.cpp &> /dev/null`
|
|
if test -f testsstream.o; then
|
|
has_sstream=yes
|
|
rm testsstream.o
|
|
AC_DEFINE(HAS_SSTREAM)
|
|
fi
|
|
rm -f testsstream.cpp
|
|
AC_MSG_RESULT(${has_sstream})
|
|
|
|
#
|
|
# Determine if we have a command to strip symbols from an object file
|
|
#
|
|
HAVE_STRIPSYMBOLS='yes'
|
|
case $ac_sys_system in
|
|
SunOS* )
|
|
HAVE_STRIPSYMBOLS='no';;
|
|
Darwin* )
|
|
HAVE_STRIPSYMBOLS='no';;
|
|
esac
|
|
echo 'checking for a strip symbol command ... ' $HAVE_STRIPSYMBOLS
|
|
AC_SUBST(HAVE_STRIPSYMBOLS)
|
|
|
|
#---------------------------------------------------------------------------
|
|
# Fortran
|
|
#---------------------------------------------------------------------------
|
|
|
|
#if test x"$build_with_f2c" = "x0"; then
|
|
AC_PROG_F77()
|
|
|
|
# if G77 is defined, then add a flag to turn off adding a second underscore
|
|
# to procedures that have an underscore in the name
|
|
if test -n "$G77"; then
|
|
FFLAGS=$FFLAGS' -fno-second-underscore'
|
|
fi
|
|
|
|
dnl Checks for libraries.
|
|
# AC_F77_LIBRARY_LDFLAGS()
|
|
|
|
override_f77_libs=0;
|
|
#case $ac_sys_system in
|
|
# Darwin*) FLIBS='-lSystem'; override_f77_libs=1; SHARED_CTLIB=0;;
|
|
#esac
|
|
#
|
|
#if test $override_f77_libs -gt 0; then
|
|
# echo The Fortran 77 libraries on this platform are not correctly determined by
|
|
# echo the configuration process. They are being manually set to
|
|
# echo FLIBS = $FLIBS
|
|
#fi
|
|
|
|
#fi
|
|
|
|
#--------------------------------------------
|
|
|
|
|
|
if test "x${BUILD_F90}" != "x0"; then
|
|
if test "$F90" = "default" -o \
|
|
"$F90"x = "x"; then
|
|
AC_PATH_PROGS(F90, f95 gfortran g95, "none")
|
|
if test "$F90" = "none" ; then
|
|
echo "ERROR: Fortran 90 requested, but no Fortran 90/95 compiler found!"
|
|
else
|
|
echo "Fortran compiler set to " $F90
|
|
fi
|
|
else
|
|
echo "Fortran 90/95 compiler preset to $F90"
|
|
fi
|
|
fi
|
|
|
|
has_f90=no
|
|
f90type=none
|
|
f90_module_dir='-I'
|
|
f90_opts=''
|
|
|
|
if test "x${BUILD_F90}" != "x0"; then
|
|
AC_MSG_CHECKING(Fortran 90 compiler ($F90) type)
|
|
cat >> testf90.f90 << EOF
|
|
module mt
|
|
double precision, parameter :: x = 2.3
|
|
end module mt
|
|
program testf90
|
|
use mt
|
|
integer :: i
|
|
end program testf90
|
|
EOF
|
|
msg=`${F90} -c testf90.f90 &> /dev/null`
|
|
if test -f testf90.o; then
|
|
has_f90=yes
|
|
rm testf90.o
|
|
f90type=unknown
|
|
fi
|
|
#
|
|
F90LIBS=
|
|
|
|
msg=`${F90} --version &> f90out`
|
|
isgfortran=`grep -c 'GNU Fortran 95' f90out`
|
|
if test "x${isgfortran}" != "x0"; then
|
|
f90type="gfortran"
|
|
f90opts="-fno-second-underscore -I. -I${ct_incdir}"
|
|
f90buildopts="-fno-second-underscore -I."
|
|
F90LIBS="-lgfortran"
|
|
fi
|
|
|
|
isg95=`grep -c 'G95' f90out`
|
|
if test "x${isg95}" != "x0"; then
|
|
f90type="g95"
|
|
f90opts="-fno-second-underscore -I. -I${ct_incdir}"
|
|
f90buildopts="-fno-second-underscore -I."
|
|
#case $ac_sys_system in
|
|
# Darwin*) FLIBS='-lg2c -lcc_dynamic';;
|
|
#esac
|
|
fi
|
|
|
|
msg=`${F90} -V &> f90out`
|
|
isnag=`grep -c NAGWare f90out`
|
|
if test "x${isnag}" != "x0"; then
|
|
f90type="NAG"
|
|
f90opts="-I. -I${ct_incdir}"
|
|
f90buildopts="-I."
|
|
fi
|
|
#
|
|
msg=`${F90} -V -c testf90.f90 &> f90out`
|
|
isabsoft=`grep -c Absoft f90out`
|
|
if test "x${isabsoft}" != "x0"; then
|
|
f90type="Absoft"
|
|
f90opts="-p. -p${ct_incdir} -s -YEXT_NAMES=LCS -YEXT_SFX=_ -YCFRL=1"
|
|
f90buildopts="-p. -s -YEXT_NAMES=LCS -YEXT_SFX=_ -YCFRL=1"
|
|
fi
|
|
rm -f testf90.f90
|
|
AC_MSG_RESULT(${f90type})
|
|
if test "x${BUILD_F90}" != "x0"; then
|
|
if test "x${has_f90}" = "xno"; then
|
|
echo " -> cannot build the Fortran 90 interface"
|
|
BUILD_F90=0
|
|
fi
|
|
fi
|
|
fi
|
|
if test -e f90out ; then
|
|
rm -f f90out
|
|
fi
|
|
savef90flags=${F90FLAGS}
|
|
F90FLAGS=${f90opts}' '${F90FLAGS}
|
|
F90BUILDFLAGS=${f90buildopts}' '${savef90flags}
|
|
AC_SUBST(BUILD_F90)
|
|
AC_SUBST(F90)
|
|
AC_SUBST(F90FLAGS)
|
|
AC_SUBST(F90BUILDFLAGS)
|
|
AC_SUBST(F90LIBS)
|
|
|
|
AC_OBJEXT
|
|
AC_EXEEXT
|
|
|
|
AC_SUBST(precompile_headers)
|
|
AC_SUBST(CXX_DEPENDS)
|
|
AC_SUBST(FLIBS)
|
|
AC_SUBST(OS_IS_DARWIN)
|
|
AC_SUBST(OS_IS_WIN)
|
|
AC_SUBST(OS_IS_CYGWIN)
|
|
AC_SUBST(SHARED_CTLIB)
|
|
AC_SUBST(mex_ext)
|
|
|
|
# filename extensions for Fortran 77
|
|
if test -z "$F77_EXT"; then F77_EXT=f; fi
|
|
AC_SUBST(F77_EXT)
|
|
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
if test -z "$CXX_EXT"; then CXX_EXT=cpp; fi
|
|
AC_SUBST(CXX_EXT)
|
|
|
|
if test -z "$OBJ_EXT"; then OBJ_EXT='o'; fi
|
|
AC_SUBST(OBJ_EXT)
|
|
|
|
if test -z "$EXE_EXT"; then EXE_EXT=$EXEEXT; fi
|
|
AC_SUBST(EXE_EXT)
|
|
|
|
dnl AC_LANG_FORTRAN77
|
|
#local_math_libs='-lcvode'
|
|
#AC_SUBST(local_math_libs)
|
|
|
|
|
|
math_libs='-lcvode -lctmath'
|
|
AC_SUBST(math_libs)
|
|
|
|
if test "$LAPACK_FTN_TRAILING_UNDERSCORE" = "y"
|
|
then AC_DEFINE(LAPACK_FTN_TRAILING_UNDERSCORE)
|
|
fi
|
|
|
|
if test "$LAPACK_FTN_STRING_LEN_AT_END" = "y"
|
|
then AC_DEFINE(LAPACK_FTN_STRING_LEN_AT_END)
|
|
fi
|
|
|
|
if test "$LAPACK_NAMES" = "lower"
|
|
then AC_DEFINE(LAPACK_NAMES_LOWERCASE)
|
|
fi
|
|
|
|
# from the Python configure.in file...
|
|
|
|
# Set info about shared libraries.
|
|
AC_SUBST(SO)
|
|
AC_SUBST(LDSHARED)
|
|
|
|
AC_SUBST(EXTRA_LINK)
|
|
|
|
# SO is the extension of shared libraries `(including the dot!)
|
|
# -- usually .so, .sl on HP-UX, .dll on Cygwin
|
|
AC_MSG_CHECKING(SO)
|
|
if test -z "$SO"
|
|
then
|
|
case $ac_sys_system in
|
|
hp*|HP*) SO=.sl;;
|
|
CYGWIN*) SO=.dll;;
|
|
Darwin*) SO=.dylib;;
|
|
*) SO=.so;;
|
|
esac
|
|
fi
|
|
AC_MSG_RESULT($SO)
|
|
|
|
dnl Checks for header files.
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
|
|
AC_LANG_CPLUSPLUS
|
|
|
|
dnl AC_MSG_CHECKING(for the Standard Template Library)
|
|
|
|
#
|
|
# Section to handle tscompare
|
|
#
|
|
cd bin
|
|
touch s1
|
|
sleep 1
|
|
touch s2
|
|
tsc=tscompare_alwaystrue
|
|
./tscompare_sh s2 s1 2> /dev/null
|
|
res=$?
|
|
if test "$res" = "0" ; then
|
|
tsc=tscompare_sh
|
|
else
|
|
./tscompare_csh s2 s1 2> /dev/null
|
|
res=$?
|
|
if test "$res" = "0" ; then
|
|
tsc=tscompare_csh
|
|
else
|
|
./tscompare_ksh s2 s1 2> /dev/null
|
|
res=$?
|
|
if test "$res" = "0" ; then
|
|
tsc=tsccompare_ksh
|
|
fi
|
|
fi
|
|
fi
|
|
/bin/rm s2 s1
|
|
echo "checking for a time step comparison checker ... " $tsc
|
|
cp $tsc tscompare
|
|
currPath=`pwd`
|
|
TSCOMPARE_abs="$currPath"'/'tscompare
|
|
cd ..
|
|
AC_SUBST(TSCOMPARE_abs)
|
|
|
|
#
|
|
# Create an absolute path for the $INSTALL function
|
|
# named INSTALL_abs
|
|
# (note m4 expansions @<:@ = left bracket, @:>@ = right bracket)
|
|
#echo "HKM - INSTALL = " $INSTALL
|
|
case "$INSTALL" in
|
|
@<:@\\/$@:>@* | ?:@<:@\\/@:>@* )
|
|
INSTALL_abs="$INSTALL" ;;
|
|
*)
|
|
currPath=`pwd`
|
|
INSTALL_abs="$currPath"'/'"$INSTALL" ;;
|
|
esac
|
|
#echo 'INSTALL_abs = ' $INSTALL_abs
|
|
AC_SUBST(INSTALL_abs)
|
|
|
|
#
|
|
# See if the install rule accepts the -v flag
|
|
#
|
|
$INSTALL -v License.txt config > config/e.out 2>&1
|
|
dd=$?
|
|
INSTALL_VERBOSE=
|
|
if test "$dd" = "0" ; then
|
|
INSTALL_VERBOSE="-v"
|
|
fi
|
|
if test -e "config/License.txt" ; then
|
|
rm -f config/License.txt
|
|
fi
|
|
if test -e config/e.out ; then
|
|
rm -f e.out
|
|
fi
|
|
AC_SUBST(INSTALL_VERBOSE)
|
|
|
|
|
|
dnl Checks for library functions.
|
|
|
|
AC_OUTPUT(Makefile \
|
|
Cantera/Makefile \
|
|
Cantera/src/Makefile \
|
|
Cantera/src/base/Makefile \
|
|
Cantera/src/zeroD/Makefile \
|
|
Cantera/src/oneD/Makefile \
|
|
Cantera/src/converters/Makefile \
|
|
Cantera/src/transport/Makefile \
|
|
Cantera/src/thermo/Makefile \
|
|
Cantera/src/kinetics/Makefile \
|
|
Cantera/src/numerics/Makefile \
|
|
Cantera/src/equil/Makefile \
|
|
Cantera/clib/src/Makefile \
|
|
Cantera/fortran/src/Makefile \
|
|
Cantera/fortran/f77demos/f77demos.mak \
|
|
Cantera/fortran/f77demos/isentropic.dsp \
|
|
Cantera/matlab/Makefile \
|
|
Cantera/matlab/setup_matlab.py \
|
|
Cantera/matlab/setup_winmatlab.py \
|
|
Cantera/python/Makefile \
|
|
Cantera/python/setup.py \
|
|
Cantera/cxx/Makefile \
|
|
Cantera/cxx/src/Makefile \
|
|
Cantera/cxx/demos/Makefile \
|
|
Cantera/user/Makefile \
|
|
Cantera/python/src/Makefile \
|
|
ext/lapack/Makefile \
|
|
ext/blas/Makefile \
|
|
ext/cvode/Makefile \
|
|
ext/math/Makefile \
|
|
ext/recipes/Makefile \
|
|
ext/tpx/Makefile \
|
|
ext/Makefile \
|
|
ext/f2c_libs/Makefile \
|
|
ext/f2c_blas/Makefile \
|
|
ext/f2c_lapack/Makefile \
|
|
ext/f2c_math/Makefile \
|
|
examples/Makefile \
|
|
examples/cxx/Makefile \
|
|
tools/Makefile \
|
|
tools/doc/Cantera.cfg \
|
|
tools/doc/Makefile \
|
|
tools/src/Makefile \
|
|
tools/src/sample.mak \
|
|
tools/src/finish_install.py \
|
|
tools/src/package4mac \
|
|
tools/templates/f77/demo.mak \
|
|
tools/templates/f90/demo.mak \
|
|
tools/templates/cxx/demo.mak \
|
|
tools/testtools/Makefile \
|
|
data/inputs/Makefile \
|
|
test_problems/Makefile \
|
|
test_problems/cxx_ex/Makefile \
|
|
test_problems/silane_equil/Makefile \
|
|
test_problems/surfkin/Makefile \
|
|
test_problems/diamondSurf/Makefile \
|
|
test_problems/diamondSurf_dupl/Makefile \
|
|
test_problems/ChemEquil_gri_matrix/Makefile \
|
|
test_problems/ChemEquil_gri_pairs/Makefile \
|
|
test_problems/ChemEquil_ionizedGas/Makefile \
|
|
test_problems/ChemEquil_red1/Makefile \
|
|
test_problems/fracCoeff/Makefile \
|
|
test_problems/negATest/Makefile \
|
|
test_problems/ck2cti_test/Makefile \
|
|
test_problems/ck2cti_test/runtest \
|
|
test_problems/min_python/Makefile \
|
|
test_problems/min_python/minDiamond/Makefile \
|
|
test_problems/min_python/negATest/Makefile \
|
|
test_problems/pureFluidTest/Makefile \
|
|
test_problems/python/Makefile \
|
|
test_problems/cathermo/Makefile \
|
|
test_problems/cathermo/issp/Makefile \
|
|
test_problems/cathermo/ims/Makefile \
|
|
test_problems/cathermo/stoichSubSSTP/Makefile \
|
|
test_problems/cathermo/testIAPWS/Makefile \
|
|
test_problems/cathermo/testIAPWSPres/Makefile \
|
|
test_problems/cathermo/testIAPWSTripP/Makefile \
|
|
test_problems/cathermo/testWaterPDSS/Makefile \
|
|
test_problems/cathermo/testWaterTP/Makefile \
|
|
test_problems/cathermo/HMW_test_1/Makefile \
|
|
test_problems/cathermo/HMW_test_3/Makefile \
|
|
test_problems/cathermo/HMW_graph_GvT/Makefile \
|
|
test_problems/cathermo/HMW_graph_GvI/Makefile \
|
|
test_problems/cathermo/HMW_graph_HvT/Makefile \
|
|
test_problems/cathermo/HMW_graph_CpvT/Makefile \
|
|
test_problems/cathermo/HMW_graph_VvT/Makefile \
|
|
test_problems/cathermo/DH_graph_1/Makefile \
|
|
test_problems/cathermo/DH_graph_acommon/Makefile \
|
|
test_problems/cathermo/DH_graph_NM/Makefile \
|
|
test_problems/cathermo/DH_graph_Pitzer/Makefile \
|
|
test_problems/cathermo/DH_graph_bdotak/Makefile \
|
|
test_problems/cathermo/HMW_dupl_test/Makefile \
|
|
bin/install_tsc \
|
|
)
|
|
# )
|
|
if test "x${OS_IS_WIN}" = "x1"; then
|
|
cp -f config.h ../Cantera/src
|
|
cd ext/f2c_libs
|
|
cp arith.hwin32 arith.h
|
|
cd ../..
|
|
fi
|
|
if test -f "test_problems/ck2cti_test/runtest"; then
|
|
chmod +x test_problems/ck2cti_test/runtest
|
|
fi
|
|
if test -f "bin/install_tsc"; then
|
|
chmod +x bin/install_tsc
|
|
fi
|
|
|
|
|
|
echo
|
|
if test "x${OS_IS_WIN}" = "x0"; then
|
|
echo "Now type '${MAKE}' to build Cantera"
|
|
# else
|
|
# echo "Now start Visual Studio, open workspace 'win32/cantera.dsw',"
|
|
# echo "and build project 'all'. When this finishes, come back here and "
|
|
# echo "type 'make win' to make the Python and/or MATLAB interfaces."
|
|
fi
|
|
echo
|
|
|