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 OS_IS_SOLARIS=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;; SunOS*) OS_IS_SOLARIS=1;; 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) 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_SOLARIS}" = "x1"; then AC_DEFINE_UNQUOTED(SOLARIS,$OS_IS_SOLARIS) 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 sundials_lib_dir= sundials_lib= sundials_lib_dep= if test ${use_sundials} = 1; then 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(HAS_SUNDIALS) 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 sundials_lib_dir=$SUNDIALS_LIB_DIR sundials_lib="-L$SUNDIALS_LIB_DIR -lsundials_cvodes -lsundials_ida -lsundials_nvecserial" sundials_lib_dep="$SUNDIALS_LIB_DIR/libsundials_cvodes.a $SUNDIALS_LIB_DIR/libsundials_ida.a $SUNDIALS_LIB_DIR/libsundials_nvecserial.a" elif test "$SUNDIALS_VERSION" = "2.3"; then AC_DEFINE(HAS_SUNDIALS) AC_DEFINE(SUNDIALS_VERSION_23) sundials_include='-I'${SUNDIALS_INC_DIR} echo "sundials include directory: " ${sundials_include} echo "sundials library directory: " $SUNDIALS_LIB_DIR sundials_lib_dir=$SUNDIALS_LIB_DIR sundials_lib="-L$SUNDIALS_LIB_DIR -lsundials_cvodes -lsundials_ida -lsundials_nvecserial" sundials_lib_dep="$SUNDIALS_LIB_DIR/libsundials_cvodes.a $SUNDIALS_LIB_DIR/libsundials_ida.a $SUNDIALS_LIB_DIR/libsundials_nvecserial.a" # python tools/src/sundials_version.py $SUNDIALS_HOME elif test "$SUNDIALS_VERSION" = "2.4"; then AC_DEFINE(HAS_SUNDIALS) AC_DEFINE(SUNDIALS_VERSION_24) sundials_include='-I'${SUNDIALS_INC_DIR} echo "sundials include directory: " ${sundials_include} echo "sundials library directory: " $SUNDIALS_LIB_DIR sundials_lib_dir=$SUNDIALS_LIB_DIR sundials_lib="-L$SUNDIALS_LIB_DIR -lsundials_cvodes -lsundials_ida -lsundials_nvecserial" sundials_lib_dep="$SUNDIALS_LIB_DIR/libsundials_cvodes.a $SUNDIALS_LIB_DIR/libsundials_ida.a $SUNDIALS_LIB_DIR/libsundials_nvecserial.a" # python tools/src/sundials_version.py $SUNDIALS_HOME else echo "ERROR: unknown or unsupported sundials version #: $SUNDIALS_VERSION" echo " Supported versions are 2.2, 2.3, and 2.4" echo " Please fix or turn off the sundials option by setting USE_SUNDIALS to no" use_sundials=0 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) AC_SUBST(sundials_lib_dir) AC_SUBST(sundials_lib) AC_SUBST(sundials_lib_dep) ######################################################### # The Cantera Kernel ######################################################### # # DEBUG_MODE: Specify that additional code be compiled in # that allows more debug printing where available. # default = "n" # DEBUG_MODE=${DEBUG_MODE:="n"} CANTERA_DEBUG_MODE=0 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_SEMICONDUCTOR" = "y"; then AC_DEFINE(WITH_SEMICONDUCTOR) hdrs=$hdrs' SemiconductorPhase.h' objs=$objs' SemiconductorPhase.o' fi if test "$WITH_ADSORBATE" = "y"; then AC_DEFINE(WITH_ADSORBATE) hdrs=$hdrs' AdsorbateThermo.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 NEED_SPECTRA=0 if test "$WITH_SPECTRA" = "y"; then AC_DEFINE(WITH_SPECTRA) KERNEL=$KERNEL' 'spectra NEED_SPECTRA=1 fi AC_SUBST(KERNEL) AC_SUBST(KERNEL_OBJ) AC_SUBST(BUILD_CK) AC_SUBST(LIB_DIR) COMPILE_VCSNONIDEAL=0 if test "$WITH_VCSNONIDEAL" = "y"; then AC_DEFINE(WITH_VCSNONIDEAL) COMPILE_VCSNONIDEAL=1 fi AC_SUBST(COMPILE_VCSNONIDEAL) COMPILE_H298MODIFY_CAPABILITY=0 if test "$WITH_H298MODIFY_CAPABILITY" = "y"; then AC_DEFINE(H298MODIFY_CAPABILITY) COMPILE_H298MODIFY_CAPABILITY=1 fi AC_SUBST(COMPILE_H298MODIFY_CAPABILITY) 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_SPECTRA" = "1" ; then echo " Spectroscopy Capability = ON" else echo " Spectroscopy 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 if test "$COMPILE_VCSNONIDEAL" = "1" ; then echo " VCS NonIdeal equilibrium solver = ON" else echo " VCS NonIdeal equilibrium solver = OFF" fi if test "$COMPILE_H298MODIFY_CAPABILITY" = "1" ; then echo " H298 Modify Capability = ON" else echo " H298 Modify Capability = OFF" fi echo " " echo " " echo "Config SUMMARY OF INCLUDED/EXCLUDED THERMO MODELS:" if test "$WITH_IDEAL_SOLUTIONS" = "y" ; then echo " Ideal Solution Phase Model = INCLUDED" else echo " Ideal Solution Phase Model = EXCLUDED" fi if test "$WITH_METAL" = "y" ; then echo " Metal Phase Model = INCLUDED" else echo " Metal Phase Model = EXCLUDED" fi if test "$WITH_SEMICONDUCTOR" = "y" ; then echo " Semiconductor Model = INCLUDED" else echo " Semiconductor Model = EXCLUDED" fi if test "$WITH_ADSORBATE" = "y" ; then echo " Adsorbate Model = INCLUDED" else echo " Adsorbate Model = EXCLUDED" fi if test "$WITH_ELECTROLYTES" = "y" ; then echo " Molality-based Electrolyte Models = INCLUDED" else echo " Molality-based Electrolyte Models = EXCLUDED" fi if test "$WITH_LATTICE_SOLID" = "y" ; then echo " Lattice Solid based Models = INCLUDED" else echo " Lattice Solid based Models = EXCLUDED" fi echo " " ########################################################## # PURIFY ########################################################## AC_SUBST(PURIFY) if test "x$PURIFY" != "x"; then AC_DEFINE(PURIFY_MODE) fi ######################################################## # 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 BLAS_LAPACK_LIBS="-lctlapack -lctblas" BLAS_LAPACK_DIR="$buildlib" BLAS_LAPACK_LINK="-L$BLAS_LAPACK_DIR $BLAS_LAPACK_LIBS" build_blas=1 build_lapack=1 else BLAS_LAPACK_LINK="-L$BLAS_LAPACK_DIR $BLAS_LAPACK_LIBS" fi AC_SUBST(build_lapack) AC_SUBST(build_blas) AC_SUBST(BLAS_LAPACK_LIBS) AC_SUBST(BLAS_LAPACK_LINK) 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 # our f2c_lib will be built on a given platform # build_f2c_lib=0 F2C_SYSTEMLIB= if test -n "$NEED_F2C" ; then build_f2c_lib=1 else case $ac_sys_system in Linux) F2C_SYSTEMLIB="-lg2c" esac fi AC_SUBST(build_f2c_lib) AC_SUBST(F2C_SYSTEMLIB) # # LOCAL_LIBS: # Build a string of Cantera libraries necessary to link # Cantera applications # LOCAL_LIBS= LOCAL_LIBS_DEP= RAW_LIBS_DEP= INSTALL_LIBS_DEP= if test -n "$INCL_USER_CODE" then LOCAL_LIBS=$LOCAL_LIBS' '-luser LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libuser.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libuser.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libuser.a fi if test -n "$NEED_ONED" then LOCAL_LIBS=$LOCAL_LIBS' '-loneD LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/liboneD.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/liboneD.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'liboneD.a fi if test -n "$NEED_ZEROD" then LOCAL_LIBS=$LOCAL_LIBS' '-lzeroD LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libzeroD.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libzeroD.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libzeroD.a fi LOCAL_LIBS=$LOCAL_LIBS' '-lequil LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libequil.a INSTALL_LIBS_DEP=$INTALL_LIBS_DEP' '$ct_libdir/libequil.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libequil.a if test "$WITH_VCSNONIDEAL" = "y" ; then LOCAL_LIBS=$LOCAL_LIBS' '-lVCSnonideal LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libVCSnonideal.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libVCSnonideal.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libVCSnonideal.a fi if test -n "$COMPILE_KINETICS" then LOCAL_LIBS=$LOCAL_LIBS' '-lkinetics LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libkinetics.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libkinetics.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libkinetics.a fi if test -n "$NEED_TRANSPORT" then LOCAL_LIBS=$LOCAL_LIBS' '-ltransport LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libtransport.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libtransport.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libtransport.a fi if test -n "$NEED_CATHERMO" then LOCAL_LIBS=$LOCAL_LIBS' '-lthermo LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libthermo.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libthermo.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libthermo.a fi LOCAL_LIBS=$LOCAL_LIBS' '-lctnumerics LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libctnumerics.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libctnumerics.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libctnumerics.a if test -n "$NEED_MATH" then LOCAL_LIBS=$LOCAL_LIBS' '-lctmath LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libctmath.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libctmath.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libctmath.a fi if test -n "$NEED_TPX" then LOCAL_LIBS=$LOCAL_LIBS' '-ltpx LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libtpx.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libtpx.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libtpx.a fi if test -n "$NEED_SPECTRA" then LOCAL_LIBS=$LOCAL_LIBS' '-lctspectra LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libctspectra.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libctspectra.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libctspectra.a fi if test -n "$NEED_CKREADER" then LOCAL_LIBS=$LOCAL_LIBS' '-lconverters LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libconverters.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libconverters.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libconverters.a fi LOCAL_LIBS=$LOCAL_LIBS' '-lctbase LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libctbase.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libctbase.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libctbase.a CANTERA_CORE_LIBS=$LOCAL_LIBS CANTERA_CORE_LIBS_DEP=$INSTALL_LIBS_DEP CANTERA_CORE_LIBS_BT_DEP=$LOCAL_LIBS_DEP CANTERA_CORE_LIBS_NAMES=$RAW_LIBS_DEP 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_F2C" then LOCAL_LIBS=$LOCAL_LIBS' '-lctf2c LOCAL_LIBS_DEP=$LOCAL_LIBS_DEP' '$buildlib/libctf2c.a INSTALL_LIBS_DEP=$INSTALL_LIBS_DEP' '$ct_libdir/libctf2c.a RAW_LIBS_DEP=$RAW_LIBS_DEP' 'libctf2c.a else case $ac_sys_system in Linux) LOCAL_LIBS=$LOCAL_LIBS' '-lg2c;; esac fi # Darwin*) LOCAL_LIBS=$LOCAL_LIBS' '-lg2c;; 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 else BOOST_LIB_DIR="" fi AC_SUBST(BOOST_LIB_DIR) AC_SUBST(LOCAL_LIB_DIRS) AC_SUBST(LOCAL_LIBS) AC_SUBST(LOCAL_LIBS_DEP) AC_SUBST(INSTALL_LIBS_DEP) AC_SUBST(RAW_LIBS_DEP) AC_SUBST(CANTERA_CORE_LIBS) AC_SUBST(CANTERA_CORE_LIBS_DEP) #------------------------------------------------- # Language Interfaces #------------------------------------------------- # This define is needed to account for the variability for how # static variables in templated classes are defined. Right now # this is only turned on for the SunPro compiler on solaris. # in that system , you need to declare the static storage variable. # with the following line in the include file # # template Cabinet* Cabinet::__storage; # # Note, on other systems that declaration is treated as a definition # and this leads to multiple defines at link time. This config.h addition # is needed because there were irreconcilable issues between # the Solaris SunPro compiler and the cygwin gcc compiler. # case $ac_sys_system in SunOS* ) AC_DEFINE(NEEDS_GENERIC_TEMPL_STATIC_DECL) echo 'Turned on special handing of static definitions in templated classes' ;; * ) ;; esac 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") USE_NUMARRAY='y' if test "$USE_NUMERIC" = "y"; then USE_NUMARRAY='n' USE_NUMPY='n' AC_DEFINE(HAS_NUMERIC) fi if test "$USE_NUMPY" = "y"; then USE_NUMARRAY='n' AC_DEFINE(HAS_NUMPY) fi if test "$USE_NUMARRAY" = "y"; then AC_DEFINE(HAS_NUMARRAY) fi if test "$USE_NUMARRAY" = "y"; then 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 dir5="$NUMARRAY_HOME/include/python2.5" if test -d $dir5 ; then NUMARRAY_INC_DIR=$dir5 else 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 fi echo "setting NUMARRAY_INC_DIR to $NUMARRAY_INC_DIR" fi fi else NUMARRAY_INC_DIR="" NUMARRAY_HOME="" fi if test "$USE_NUMPY" = "y"; then if test -n "$NUMPY_INC_DIR" ; then echo "setting NUMPY_INC_DIR to $NUMPY_INC_DIR" else NUMPY_INC_DIR="" if test -n "$NUMPY_HOME"; then dir6="$NUMPY_HOME/include/python2.6" if test -d $dir6 ; then NUMPY_INC_DIR=$dir6 else dir5="$NUMPY_HOME/include/python2.5" if test -d $dir5 ; then NUMPY_INC_DIR=$dir5 else dir4="$NUMPY_HOME/include/python2.4" if test -d $dir4 ; then NUMPY_INC_DIR=$dir4 else dir3="$NUMPY_HOME/include/python2.3" if test -d $dir3 ; then NUMPY_INC_DIR=$dir3 else dir2="$NUMPY_HOME/include/python2.2" if test -d $dir2 ; then NUMPY_INC_DIR=$dir2 else dir1="$NUMPY_HOME/include/python" if test -d $dir1 ; then NUMPY_INC_DIR=$dir1 else echo "WARNING: NUMPY include dir $dir1 does not exist." NUMPY_INC_DIR=$dir1 fi fi fi fi fi fi echo "setting NUMPY_INC_DIR to $NUMPY_INC_DIR" fi fi else NUMPY_INC_DIR="" NUMPY_HOME="" fi AC_SUBST(NUMPY_INC_DIR) AC_SUBST(NUMPY_HOME) # this fails, at least on a Mac. By default, numarray include files # are installed in the include directory in the Python framework. This # does not require setting NUMARRAY_INC_DIR, so testing that it is # non-null is not a valid test of whether numarray is # installed. Commented out 7/26/07 by DGG. #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 #echo 'HKM -> BUILD turned on 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 echo $MATLAB_CMD mex_ext=`grep mex* diary` rm -f diary else BUILD_MATLAB=0 echo 'failed!' 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 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 that all of Cantera's code # compiled into static libraries and all code linked into # those routines, such as cvode and lapack, should be position independent # and should be compiled with this flag. # if test -z "$PIC"; then case $ac_sys_system in SunOS* ) PIC=' ';; CYGWIN* ) PIC=' ';; * ) PIC='-fPIC';; esac fi echo 'checking for Position independent code command ... ' $PIC 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 # HKM 12/24/2009 - Ran into another problem with the new cygwin 1.7.1. # THe install (and even cp -f in some cases) program will fail # when an existing different file is in place. This occurs sometimes # and I can not quite nail down when. However replacing # the install command for cygwin. Note, install no longer # needs to have a wildcard capability within Cantera. case $ac_sys_system in CYGWIN* ) INSTALL=${INSTALL_BIN:=config/install-sh} echo 'INSTALL program has been set to ' $INSTALL;; esac # # 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 Fortran 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=" " fi 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 if test "x$OS_IS_WIN" = "x1"; then #CXX=cl.exe #CC=cl.exe #export CXX AC_PROG_CXX() AC_PROG_CC() 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) # # # Check to see if we have a -lm line # AC_CHECK_LIB(m, printf, [add_stm=1], [add_stm=0], [ ]) # # Check to see if we have a -lstdc++ line # AC_CHECK_LIB(stdc++, printf, [add_stdc=1], [add_stdc=0], []) if test -n "$NEED_F2C" ; then LCXX_END_LIBS="-lctf2c ""$LCXX_END_LIBS" fi case $ac_sys_system in SunOS* ) case $CXX in CC* ) LCXX_END_LIBS="$LCXX_END_LIBS"" -lCrun -lCstd -lfsu" ;; esac ;; esac if test $add_stm = 1 ; then echo 'Adding -lm to the end of the LCXX_END_LIBS variable' LCXX_END_LIBS="$LCXX_END_LIBS"" -lm" echo 'LCXX_END_LIBS = ' $LCXX_END_LIBS fi if test $add_stdc = 1 ; then echo 'Adding -lstdc++ to the end of the LCXX_END_LIBS variable' LCXX_END_LIBS="$LCXX_END_LIBS"" -lstdc++ " echo 'LCXX_END_LIBS = ' $LCXX_END_LIBS fi AC_SUBST(LCXX_END_LIBS) has_sstream=no AC_MSG_CHECKING(for sstream) cat >> testsstream.cpp << EOF #include 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' else if test $F77 = "g77" -o $F77 = "mpif77" -o $F77 = "gfortran" ; then FFLAGS=$FFLAGS' -fno-second-underscore' fi 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 # ---------------------------------------------------------------------- # LCXX_FLIBS are extra libraries the CXX linker needs # in order to link in fortran programs where fortran is the main program LCXX_FLIBS= case $ac_sys_system in SunOS*) LCXX_FLIBS="-lCrun -lCstd -lfsu" ;; esac #-------------------------------------------- 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' 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_SUBST(LCXX_FLIBS) AC_OBJEXT AC_EXEEXT AC_SUBST(precompile_headers) 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) AC_DEFINE(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/spectra/Makefile \ Cantera/src/equil/Makefile \ Cantera/clib/src/Makefile \ Cantera/fortran/src/Makefile \ Cantera/fortran/f77demos/f77demos.mak \ Cantera/fortran/f77demos/Makefile \ Cantera/matlab/Makefile \ Cantera/matlab/setup_matlab.py \ Cantera/python/Makefile \ Cantera/python/setup.py \ Cantera/cxx/Makefile \ Cantera/cxx/src/Makefile \ Cantera/cxx/demos/Makefile \ Cantera/cxx/demos/combustor/Makefile \ Cantera/cxx/demos/combustor/Makefile.install \ Cantera/cxx/demos/flamespeed/Makefile \ Cantera/cxx/demos/flamespeed/Makefile.install \ Cantera/cxx/demos/kinetics1/Makefile \ Cantera/cxx/demos/kinetics1/Makefile.install \ Cantera/cxx/demos/NASA_coeffs/Makefile \ Cantera/cxx/demos/NASA_coeffs/Makefile.install \ Cantera/cxx/demos/rankine/Makefile \ Cantera/cxx/demos/rankine/Makefile.install \ Cantera/cxx/include/Cantera.mak \ Cantera/cxx/include/Cantera_bt.mak \ Cantera/user/Makefile \ Cantera/python/src/Makefile \ Cantera/python/examples/Makefile \ Cantera/python/examples/equilibrium/Makefile \ Cantera/python/examples/equilibrium/adiabatic_flame/Makefile \ Cantera/python/examples/equilibrium/multiphase_plasma/Makefile \ Cantera/python/examples/equilibrium/simple_test/Makefile \ Cantera/python/examples/equilibrium/stoich_flame/Makefile \ Cantera/python/examples/gasdynamics/isentropic/Makefile \ Cantera/python/examples/gasdynamics/soundSpeed/Makefile \ Cantera/python/examples/flames/adiabatic_flame/Makefile \ Cantera/python/examples/flames/flame1/Makefile \ Cantera/python/examples/flames/flame2/Makefile \ Cantera/python/examples/flames/flame_fixed_T/Makefile \ Cantera/python/examples/flames/free_h2_air/Makefile \ Cantera/python/examples/flames/npflame1/Makefile \ Cantera/python/examples/flames/stflame1/Makefile \ Cantera/python/examples/fuel_cells/Makefile \ Cantera/python/examples/liquid_vapor/critProperties/Makefile \ Cantera/python/examples/liquid_vapor/rankine/Makefile \ Cantera/python/examples/kinetics/Makefile \ Cantera/python/examples/misc/Makefile \ Cantera/python/examples/reactors/combustor_sim/Makefile \ Cantera/python/examples/reactors/functors_sim/Makefile \ Cantera/python/examples/reactors/mix1_sim/Makefile \ Cantera/python/examples/reactors/mix2_sim/Makefile \ Cantera/python/examples/reactors/piston_sim/Makefile \ Cantera/python/examples/reactors/reactor1_sim/Makefile \ Cantera/python/examples/reactors/reactor2_sim/Makefile \ Cantera/python/examples/reactors/sensitivity_sim/Makefile \ Cantera/python/examples/reactors/surf_pfr_sim/Makefile \ Cantera/python/examples/surface_chemistry/diamond_cvd/Makefile \ Cantera/python/examples/surface_chemistry/catcomb_stagflow/Makefile \ Cantera/python/examples/transport/Makefile \ Cantera/python/examples/flames/Makefile \ Cantera/python/examples/gasdynamics/Makefile \ Cantera/python/examples/liquid_vapor/Makefile \ Cantera/python/examples/reactors/Makefile \ Cantera/python/examples/surface_chemistry/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 \ data/inputs/mkxml \ test_problems/Makefile \ test_problems/cxx_ex/Makefile \ test_problems/silane_equil/Makefile \ test_problems/surfkin/Makefile \ test_problems/spectroscopy/Makefile \ test_problems/surfSolverTest/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/CpJump/Makefile \ test_problems/mixGasTransport/Makefile \ test_problems/multiGasTransport/Makefile \ test_problems/printUtilUnitTest/Makefile \ test_problems/fracCoeff/Makefile \ test_problems/negATest/Makefile \ test_problems/NASA9poly_test/Makefile \ test_problems/ck2cti_test/Makefile \ test_problems/ck2cti_test/runtest \ test_problems/nasa9_reader/Makefile \ test_problems/nasa9_reader/runtest \ test_problems/min_python/Makefile \ test_problems/min_python/minDiamond/Makefile \ test_problems/min_python/negATest/Makefile \ test_problems/pureFluidTest/Makefile \ test_problems/rankine_democxx/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 \ test_problems/cathermo/VPissp/Makefile \ test_problems/cathermo/wtWater/Makefile \ test_problems/VCSnonideal/Makefile \ test_problems/VPsilane_test/Makefile \ test_problems/VPsilane_test/runtest \ test_problems/VCSnonideal/NaCl_equil/Makefile \ bin/install_tsc \ ) # ) if test "x${OS_IS_WIN}" = "x1"; then cp -f config.h winconfig.h echo 'copying config.h, which we just customized for the requested configuration, to winconfg.h' 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 "test_problems/nasa9_reader/runtest"; then chmod +x test_problems/nasa9_reader/runtest fi if test -f "test_problems/VPsilane_test/runtest"; then chmod +x test_problems/VPsilane_test/runtest fi if test -f "Cantera/python/examples/equilibrium/adiabatic_flame/runtest"; then chmod +x Cantera/python/examples/equilibrium/adiabatic_flame/runtest fi if test -f "Cantera/python/examples/equilibrium/multiphase_plasma/runtest"; then chmod +x Cantera/python/examples/equilibrium/multiphase_plasma/runtest fi if test -f "Cantera/python/examples/equilibrium/simple_test/runtest"; then chmod +x Cantera/python/examples/equilibrium/simple_test/runtest fi if test -f "Cantera/python/examples/equilibrium/stoich_flame/runtest"; then chmod +x Cantera/python/examples/equilibrium/stoich_flame/runtest fi if test -f "Cantera/python/examples/gasdynamics/isentropic/runtest"; then chmod +x Cantera/python/examples/gasdynamics/isentropic/runtest fi if test -f "Cantera/python/examples/gasdynamics/soundSpeed/runtest"; then chmod +x Cantera/python/examples/gasdynamics/soundSpeed/runtest fi if test -f "Cantera/python/examples/flames/adiabatic_flame/runtest"; then chmod +x Cantera/python/examples/flames/adiabatic_flame/runtest fi if test -f "Cantera/python/examples/flames/flame1/runtest"; then chmod +x Cantera/python/examples/flames/flame1/runtest fi if test -f "Cantera/python/examples/flames/flame2/runtest"; then chmod +x Cantera/python/examples/flames/flame2/runtest fi if test -f "Cantera/python/examples/flames/flame_fixed_T/runtest"; then chmod +x Cantera/python/examples/flames/flame_fixed_T/runtest fi if test -f "Cantera/python/examples/flames/free_h2_air/runtest"; then chmod +x Cantera/python/examples/flames/free_h2_air/runtest fi if test -f "Cantera/python/examples/flames/npflame1/runtest"; then chmod +x Cantera/python/examples/flames/npflame1/runtest fi if test -f "Cantera/python/examples/flames/stflame1/runtest"; then chmod +x Cantera/python/examples/flames/stflame1/runtest fi if test -f "Cantera/python/examples/fuel_cells/runtest"; then chmod +x Cantera/python/examples/fuel_cells/runtest fi if test -f "Cantera/python/examples/liquid_vapor/critProperties/runtest"; then chmod +x Cantera/python/examples/liquid_vapor/critProperties/runtest fi if test -f "Cantera/python/examples/liquid_vapor/rankine/runtest"; then chmod +x Cantera/python/examples/liquid_vapor/rankine/runtest fi if test -f "Cantera/python/examples/kinetics/runtest"; then chmod +x Cantera/python/examples/kinetics/runtest fi if test -f "Cantera/python/examples/misc/runtest"; then chmod +x Cantera/python/examples/misc/runtest fi if test -f "Cantera/python/examples/reactors/combustor_sim/runtest"; then chmod +x Cantera/python/examples/reactors/combustor_sim/runtest fi if test -f "Cantera/python/examples/reactors/mix1_sim/runtest"; then chmod +x Cantera/python/examples/reactors/mix1_sim/runtest fi if test -f "Cantera/python/examples/reactors/mix2_sim/runtest"; then chmod +x Cantera/python/examples/reactors/mix2_sim/runtest fi if test -f "Cantera/python/examples/reactors/piston_sim/runtest"; then chmod +x Cantera/python/examples/reactors/piston_sim/runtest fi if test -f "Cantera/python/examples/reactors/reactor1_sim/runtest"; then chmod +x Cantera/python/examples/reactors/reactor1_sim/runtest fi if test -f "Cantera/python/examples/reactors/reactor2_sim/runtest"; then chmod +x Cantera/python/examples/reactors/reactor2_sim/runtest fi if test -f "Cantera/python/examples/reactors/sensitivity_sim/runtest"; then chmod +x Cantera/python/examples/reactors/sensitivity_sim/runtest fi if test -f "Cantera/python/examples/reactors/surf_pfr_sim/runtest"; then chmod +x Cantera/python/examples/reactors/surf_pfr_sim/runtest fi if test -f "Cantera/python/examples/surface_chemistry/diamond_cvd/runtest"; then chmod +x Cantera/python/examples/surface_chemistry/diamond_cvd/runtest fi if test -f "Cantera/python/examples/surface_chemistry/catcomb_stagflow/runtest"; then chmod +x Cantera/python/examples/surface_chemistry/catcomb_stagflow/runtest fi if test -f "Cantera/python/examples/transport/runtest"; then chmod +x Cantera/python/examples/transport/runtest fi if test -f "bin/install_tsc"; then chmod +x bin/install_tsc fi if test -f "data/inputs/mkxml"; then chmod +x data/inputs/mkxml 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/vc9/cantera.sln'," echo "and build project 'all'. " # echo " When this finishes, come back here and " # echo "type 'make win' to make the Python and/or MATLAB interfaces." fi echo