cantera/configure.in
2006-07-05 21:25:55 +00:00

1266 lines
30 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.README)
AC_CONFIG_HEADER(config.h)
# AC_CONFIG_AUX_DIR(.)
# AC_CONFIG_SRCDIR(./License.txt)
AC_CONFIG_AUX_DIR(config)
echo " "
echo "--------------------------------------------------------------"
echo " "
echo " Cantera 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
# echo 'BITHARDWARE= ' $BITHARDWARE
# echo 'BITCOMPILE= ' $BITCOMPILE
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:=""}
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
#echo "ldemulationarg = " $ldemulationarg
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)
use_sundials=0
sundials_inc=
CVODE_LIBS='-lcvode'
if test "$USE_SUNDIALS" = "default"; then
ldsave=$LDFLAGS
LDFLAGS='-L'$SUNDIALS_HOME/lib' '$ldsave
fi
AC_CHECK_LIB(sundials_cvodes, CVodeCreate, [use_sundials=1], [use_sundials=0],\
[-lsundials_shared -lsundials_nvecserial -lm])
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_shared -lsundials_nvecserial'
sundials_include='-I'${SUNDIALS_HOME}'/include -I'${SUNDIALS_HOME}'/include/sundials -I'${SUNDIALS_HOME}'/include/cvodes'
echo "sundials include directory: " ${sundials_include}
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(sundials_include)
#########################################################
# The Cantera Kernel
#########################################################
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 "$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 -n $BUILD_F90; then
if test "x${has_f90}" = "xno"; then
echo " -> cannot build the Fortran 90 interface"
BUILD_F90=0
fi
fi
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)
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/tpx/Makefile \
ext/Makefile \
ext/f2c_libs/Makefile \
ext/f2c_blas/Makefile \
ext/f2c_lapack/Makefile \
ext/f2c_math/Makefile \
ext/recipes/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/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 \
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