Files
cantera/configure.in
2006-11-07 23:35:59 +00:00

1355 lines
32 KiB
Plaintext
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.README)
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;
EXTRA_LINK="-framework Accelerate $EXTRA_LINK";
# CXX_INCLUDES="$CXX_INCLUDES -I/System/Library/Frameworks/Accelerate.framework/Headers"
mex_ext=mexmac;;
CYGWIN*) OS_IS_CYGWIN=1; mex_ext=dll;;
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
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)
#----------------------------------------
#########################################################
# 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/sundials/lib
SUNDIALS_INC_DIR=/usr/local/include/sundials
else
SUNDIALS_LIB_DIR=$SUNDIALS_HOME/lib
SUNDIALS_INC_DIR=$SUNDIALS_HOME/include
fi
if test "$USE_SUNDIALS" = "default"; then
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])
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'
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='base'
KERNEL_OBJ='$(BASE_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
if test "$WITH_PURE_FLUIDS" = "y"; then
AC_DEFINE(WITH_PURE_FLUIDS)
hdrs=$hdrs' PureFluidPhase.h'
objs=$objs' PureFluidPhase.o'
fi
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 "$ENABLE_KINETICS" = "y"; then
KERNEL=$KERNEL' 'kinetics;
KERNEL_OBJ=$KERNEL_OBJ' $(KINETICS_OBJ) $(HETEROKIN_OBJ)'
fi
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)
if test "$ENABLE_SOLVERS" = "y" ; then
KERNEL=$KERNEL' 'solvers
KERNEL_OBJ=$KERNEL_OBJ' $(SOLVERS_OBJ)'
NEED_CVODE=1
NEED_MATH=1
fi
NEED_ONED=
if test "$ENABLE_FLOW1D" = "y" ; then
KERNEL=$KERNEL' 'flow1D
NEED_LAPACK=1
NEED_MATH=1
NEED_ONED=1
fi
NEED_RXNPATH=
if test "$ENABLE_RXNPATH" = "y" ; then
KERNEL=$KERNEL' 'rpath
KERNEL_OBJ=$KERNEL_OBJ' $(RPATH_OBJ)'
NEED_RXNPATH=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)
#
# 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 "$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_RXNPATH" = "1" ; then
echo " Reaction Path Analysis = ON"
else
echo " Reaction Path Analysis = 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
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
if test -n "$NEED_CATHERMO"
then LOCAL_LIBS=$LOCAL_LIBS' '-lcaThermo
fi
if test -n "$NEED_TRANSPORT"
then LOCAL_LIBS=$LOCAL_LIBS' '-ltransport
fi
LOCAL_LIBS=$LOCAL_LIBS' '-lcantera
if test -n "$NEED_CVODE"; then
LOCAL_LIBS=$LOCAL_LIBS' '$CVODE_LIBS
fi
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 -n "$SUNDIALS_HOME"
then LOCAL_LIB_DIRS=$LOCAL_LIB_DIRS' -L'$SUNDIALS_HOME/lib
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
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 -z "$MATLAB_CMD"; then
AC_PATH_PROG(MATLAB_CMD, matlab, "none")
if test "$MATLAB_CMD" != "none"; then BUILD_MATLAB=1; BUILD_CLIB=1; fi
else
echo "Matlab command preset to $(MATLAB_CMD)$"
fi
if test "x$OS_IS_WIN" = "x1"; then
MATLAB_CMD=`cygpath -a -m "$MATLAB_CMD" `
echo "Windows MATLAB command: ${MATLAB_CMD}"
fi
else
echo "MATLAB interface will not be installed"
if test -z "$MATLAB_CMD"; then
MATLAB_CMD="matlab"
fi
fi
AC_SUBST(BUILD_MATLAB)
AC_SUBST(MATLAB_CMD)
AC_SUBST(BUILD_CLIB)
#-------------------------------------------------
#-----------------------------------------------------------------------
# C++ Compilation
#-----------------------------------------------------------------------
export_name=$target
AC_SUBST(export_name)
dnl Checks for programs.
AC_PROG_INSTALL
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
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)
if test -z "$PIC"; then PIC='-fPIC'; fi
AC_SUBST(PIC)
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
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
#
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."
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_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/zeroD/Makefile \
Cantera/src/oneD/Makefile \
Cantera/src/converters/Makefile \
Cantera/src/transport/Makefile \
Cantera/src/thermo/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/ChemEquil_gri_matrix/Makefile \
test_problems/ChemEquil_gri_pairs/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/python/Makefile \
test_problems/cathermo/Makefile \
test_problems/cathermo/issp/Makefile \
test_problems/cathermo/ims/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 \
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