dnl Process this file with autoconf to produce a configure script. define([AC_CACHE_LOAD], )dnl define([AC_CACHE_SAVE], )dnl AC_INIT(Cantera,1.7.0) AC_CONFIG_HEADER(config.h) # AC_CONFIG_AUX_DIR(.) # AC_CONFIG_SRCDIR(./License.txt) AC_CONFIG_AUX_DIR(config) if test -z $CANTERA_VERSION ; then echo echo ">>>>> Error <<<<<" echo echo "Run script 'preconfig', instead of running 'configure'" echo "directly. The 'preconfig' script sets various variable values" echo "needed by 'configure' and then runs 'configure.' You may want to" echo "edit 'preconfig' first, to set various installation options." echo exit 1 fi echo " " echo "--------------------------------------------------------------" echo " " echo " Cantera "$CANTERA_VERSION echo " Configuration Script " echo " " echo "--------------------------------------------------------------" echo " " AC_DEFINE(NDEBUG) ac_sys_system=`uname -s` ac_sys_release=`uname -r` # moved since MacOS deosn't support -i option #sys_hardware=`uname -i` # # Determine the number of hardware bits in the system # # # BITHARDWARE is the default number of compilation bits in pointers # case $ac_sys_system in Linux* ) sys_hardware=`uname -i` echo 'linux ' $sys_hardware case $sys_hardware in x86_64 ) BITHARDWARE=64 ;; * ) BITHARDWARE=${BITHARDWARE:="32"} ;; esac ;; SunOS* ) sys_hardware=`uname -i` echo 'SunOS ' $sys_hardware case $sys_hardware in "SUNW,Sun-Fire" ) BITHARDWARE=64 ;; * ) BITHARDWARE=${BITHARDWARE:="32"} ;; esac ;; * ) BITHARDWARE=${BITHARDWARE:="32"} ;; esac # # BITCOMPILE is the desired number of compilation bits in pointers # Note, it can be different than the number of hardware bits. # Many times you will want to compile 32 bits on a 64 bit # machine if test -z $BITCOMPILE ; then BITCOMPILE=$BITHARDWARE fi BITCHANGE= if test $BITCOMPILE != $BITHARDWARE ; then BITCHANGE='y' fi AC_SUBST(BITCOMPILE) AC_SUBST(BITHARDWARE) AC_SUBST(BITCHANGE) SHARED_CTLIB=0 OS_IS_DARWIN=0 OS_IS_WIN=0 OS_IS_CYGWIN=0 EXTRA_LINK=${EXTRA_LINK:=""} # default Matlab MEX file extension mex_ext=mexglx case $ac_sys_system in Darwin*) OS_IS_DARWIN=1; hardware=`uname -m`; EXTRA_LINK="-framework Accelerate $EXTRA_LINK"; #mex_ext=mexmac; #if test "$hardware" = "i386" ; then # mex_ext=mexmaci ;;#fi;; CYGWIN*) OS_IS_CYGWIN=1; mex_ext=mexw32;; Linux* ) case $BITHARDWARE in 64 ) if test "$BITCHANGE" = "y" ; then ldemulationarg='-melf_i386' fi ;; esac esac AC_SUBST(ldemulationarg) CVF_LIBDIR="" if test "x${OS_IS_CYGWIN}" = "x1"; then if test "${USE_VISUAL_STUDIO}" = "y"; then OS_IS_WIN=1; OS_IS_CYGWIN=0; CVF_LIBDIR=$FORTRAN_LIB_DIR fi fi AC_SUBST(CVF_LIBDIR) # # Determine if clib is to be a static or dynamic library # -> will test to see if USE_DLL is defined in the cygwmin environment # USE_CLIB_DLL=0 if test "x${OS_IS_WIN}" = "x1"; then if test -n ${USE_CLIB_DLL} ; then USE_CLIB_DLL=1 fi fi AC_SUBST(USE_CLIB_DLL) prdef="/usr/local/cantera" if test "x$OS_IS_DARWIN" = "x1"; then prdef="/Applications/Cantera"; fi local_inst=1 if test "x${prefix}" = "xNONE"; then prefix=${prdef} local_inst=0 fi exec_prefix=${prefix} if test "x${OS_IS_WIN}" = "x1"; then prefix=`cygpath -a -m "${prefix}" ` fi echo "Cantera will be installed in ${prefix}" AC_SUBST(prefix) AC_SUBST(local_inst) # # Determination of Python site-package directory location # local_python_inst=${local_inst} if test "x${SET_PYTHON_SITE_PACKAGE_TOPDIR}" = "xy"; then python_prefix=${PYTHON_SITE_PACKAGE_TOPDIR} python_win_prefix=$python_prefix if test "x${OS_IS_WIN}" = "x1" ; then python_prefix=`cygpath -a -m "${python_prefix}"` python_win_prefix=`cygpath -a -w "${python_prefix}"` elif test "x${OS_IS_CYGWIN}" = "x1" ; then python_prefix=`cygpath -a -u "${python_prefix}"` python_win_prefix=`cygpath -a -w "${python_prefix}"` fi local_python_inst=1 echo "Cantera's Python packages will be installed in ${python_prefix}" else python_prefix=$prefix python_win_prefix=$python_prefix if test "x${OS_IS_WIN}" = "x1"; then python_win_prefix=`cygpath -a -w "${python_prefix}" ` fi fi AC_SUBST(local_python_inst) AC_SUBST(python_prefix) AC_SUBST(python_win_prefix) ctversion=${CANTERA_VERSION} AC_SUBST(ctversion) AC_DEFINE_UNQUOTED(CANTERA_VERSION,"$ctversion") homedir=${HOME} AC_SUBST(homedir) # A compact installation is one in which the $prefix directory # contains only Cantera files. It is different than a local # installation, in that the Python package is installed with other # Python packages and modules in site-packages, rather than with the # rest of the Cantera files, as in a local installation. Therefore, # with a compact installation, there is no need to set PYTHONPATH. A # compact installation is done on all machines now by default. # This simplifies the installation issues, because now all Cantera # installations look the same, except perhaps for the locations # of the python packages. # An option called, "distributed installations", is no longer # supported. ct_libdir=${prefix}/lib ct_bindir=${prefix}/bin ct_incdir=${prefix}/include/cantera ct_incroot=${prefix}/include ct_datadir=${prefix}/data ct_demodir=${prefix}/demos ct_templdir=${prefix}/templates ct_tutdir=${prefix}/tutorials ct_docdir=${prefix}/doc ct_dir=${prefix} ct_mandir=${prefix} AC_SUBST(ct_libdir) AC_SUBST(ct_bindir) AC_SUBST(ct_incdir) AC_SUBST(ct_incroot) AC_SUBST(ct_datadir) AC_SUBST(ct_demodir) AC_SUBST(ct_templdir) AC_SUBST(ct_tutdir) AC_SUBST(ct_docdir) AC_SUBST(ct_dir) AC_SUBST(ct_mandir) COMPACT_INSTALL=1 AC_SUBST(COMPACT_INSTALL) AC_CANONICAL_SYSTEM() # the root of the source tree ctroot=`(pwd)` builddir=$target if test "x${OS_IS_WIN}" = "x1"; then ctroot=`cygpath -a -m "${ctroot}" | sed 's/\\\/\\//g'` builddir="i686-pc-win32" fi if test -z "$username"; then username=$USER; fi if test -z "$username"; then username=$USERNAME; fi if test -z "$username"; then username=`whoami`; fi AC_SUBST(username) AC_SUBST(ctroot) # The include directory in the 'build' subdirectory. # This is required to build the test problems # before Cantera has been installed. buildinc=$ctroot/build/include AC_SUBST(buildinc) buildlib=$ctroot/build/lib/$builddir AC_SUBST(buildlib) buildbin=$ctroot/build/bin/$builddir AC_SUBST(buildbin) # add definitions to config.h if test "x${OS_IS_DARWIN}" = "x1"; then AC_DEFINE_UNQUOTED(DARWIN,$OS_IS_DARWIN) fi if test "x${OS_IS_CYGWIN}" = "x1"; then AC_DEFINE_UNQUOTED(CYGWIN,$OS_IS_CYGWIN) fi if test "x${OS_IS_WIN}" = "x1"; then AC_DEFINE_UNQUOTED(WINMSVC,$OS_IS_WIN) fi AC_DEFINE_UNQUOTED(RXNPATH_FONT,"$RPFONT") #AC_DEFINE_UNQUOTED(CANTERA_ROOT,"$prefix/cantera") AC_DEFINE_UNQUOTED(CANTERA_DATA,"$ct_datadir") if test -z "$MAKE"; then MAKE='make'; fi AC_SUBST(MAKE) if test -z "$GRAPHVIZDIR" ; then GRAPHVIZDIR=" " fi AC_SUBST(GRAPHVIZDIR) #----------- ARCHIVE -------------------- if test "x${OS_IS_DARWIN}" = "x1"; then ARCHIVE='libtool -static -o' fi AC_SUBST(ARCHIVE) DO_RANLIB=1 if test "x${RANLIB}" = "x"; then DO_RANLIB=0 fi AC_SUBST(DO_RANLIB) AC_SUBST(RANLIB) #----------- DEPENDS -------------------- if test "x${CXX_DEPENDS}" = "x"; then CXX_DEPENDS='g++ -MM' fi AC_SUBST(CXX_DEPENDS) #---------------------------------------- #---------------------------------------- ######################################################### # User Code ######################################################### USERDIR="" INCL_USER_CODE=0 if test -n "$USER_SRC_DIR"; then USERDIR=$USER_SRC_DIR; INCL_USER_CODE=1; fi AC_SUBST(USERDIR) AC_SUBST(INCL_USER_CODE) AC_LANG_CPLUSPLUS use_sundials=0 sundials_inc= CVODE_LIBS='-lcvode' IDA_LIBS='' if test "x$SUNDIALS_HOME" = "x"; then SUNDIALS_LIB_DIR=/usr/local/lib SUNDIALS_INC_DIR=/usr/local/include else SUNDIALS_LIB_DIR=$SUNDIALS_HOME/lib SUNDIALS_INC_DIR=$SUNDIALS_HOME/include fi if test "$USE_SUNDIALS" = "default"; then 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' echo "sundials include directory: " ${sundials_include} echo "sundials library directory: " $SUNDIALS_LIB_DIR else AC_DEFINE(SUNDIALS_VERSION_23) sundials_include='-I'${SUNDIALS_INC_DIR} echo "sundials include directory: " ${sundials_include} echo "sundials library directory: " $SUNDIALS_LIB_DIR # python tools/src/sundials_version.py $SUNDIALS_HOME fi fi if test ${use_sundials} = 0; then echo "using CVODE... Sensitivity analysis disabled." echo "-> To enable sensitivity analysis, install the SUNDIALS package with CVODES." fi AC_SUBST(use_sundials) AC_SUBST(CVODE_LIBS) AC_SUBST(IDA_LIBS) AC_SUBST(sundials_include) ######################################################### # The Cantera Kernel ######################################################### # # DEBUG_MODE: Specify that additional code be compiled in # that allows more debug printing where available. # default = "y" # DEBUG_MODE=${DEBUG_MODE:="y"} CANTERA_DEBUG_MODE=1 if test "$DEBUG_MODE" = "y" -o "$DEBUG_MODE" = "Y" ; then AC_DEFINE(DEBUG_MODE) CANTERA_DEBUG_MODE="1" else CANTERA_DEBUG_MODE="0" fi AC_SUBST(CANTERA_DEBUG_MODE) KERNEL='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 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 "$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 ${use_sundials} = 1; then LOCAL_LIB_DIRS=$LOCAL_LIB_DIRS' -L'$SUNDIALS_LIB_DIR fi AC_SUBST(LOCAL_LIB_DIRS) AC_SUBST(LOCAL_LIBS) #------------------------------------------------- # Language Interfaces #------------------------------------------------- AC_SUBST(CT_SHARED_LIB) BUILD_F90=1 if test "x$BUILD_F90_INTERFACE" = "xn"; then BUILD_F90=0 fi BUILD_CLIB=1 #---------------------------------------------------------------- # Python Interface #---------------------------------------------------------------- BUILD_PYTHON=0 if test "x$PYTHON_PACKAGE" = "xfull"; then BUILD_PYTHON=2 elif test "x$PYTHON_PACKAGE" = "xdefault"; then BUILD_PYTHON=2 elif test "x$PYTHON_PACKAGE" = "xminimal"; then BUILD_PYTHON=1 elif test "x$PYTHON_PACKAGE" = "xnone"; then BUILD_PYTHON=0 else echo "ERROR: PYTHON_PACKAGE variable, " $PYTHON_PACKAGE ", is not understood. Use:" echo " full, default, minimal, or none" exit 1 fi if test $BUILD_PYTHON = 0 ; then AC_DEFINE(HAS_NO_PYTHON) fi if test "$PYTHON_CMD" = "default" -o \ "$PYTHON_CMD"x = "x"; then AC_PATH_PROGS(PYTHON_CMD, python2 python, "none") if test "$PYTHON_CMD" = "none"; then BUILD_PYTHON=0 echo "Python not found. Only those portions of Cantera that" echo "can be installed without Python will be installed." else echo "Python command set by configure to " $PYTHON_CMD fi else echo "Python command preset to $PYTHON_CMD" fi AC_SUBST(BUILD_PYTHON) AC_DEFINE_UNQUOTED(PYTHON_EXE,"$PYTHON_CMD") if test "$USE_NUMERIC" = "y"; then AC_DEFINE(HAS_NUMERIC) fi if test -n "$NUMARRAY_INC_DIR" ; then echo "setting NUMARRAY_INC_DIR to $NUMARRAY_INC_DIR" else NUMARRAY_INC_DIR="" if test -n "$NUMARRAY_HOME"; then dir4="$NUMARRAY_HOME/include/python2.4" if test -d $dir4 ; then NUMARRAY_INC_DIR=$dir4 else dir3="$NUMARRAY_HOME/include/python2.3" if test -d $dir3 ; then NUMARRAY_INC_DIR=$dir3 else dir1="$NUMARRAY_HOME/include/python" if test -d $dir1 ; then NUMARRAY_INC_DIR=$dir1 else echo "WARNING: NUMARRAY include dir $dir1 does not exist." NUMARRAY_INC_DIR=$dir1 fi fi fi echo "setting NUMARRAY_INC_DIR to $NUMARRAY_INC_DIR" fi fi AC_SUBST(NUMARRAY_INC_DIR) AC_SUBST(NUMARRAY_HOME) AC_SUBST(CANTERA_PYTHON_HOME) #-------------------------- # CVS Tag #-------------------------- CVSTAG=`${PYTHON_CMD} tools/src/findtag.py ..` if test "x$CVSTAG" = "x"; then CVSTAG="HEAD" fi AC_SUBST(CVSTAG) # # Matlab Interface # BUILD_MATLAB=0 if test "$BUILD_MATLAB_TOOLBOX" != "n"; then if test "$MATLAB_CMD" = "default" -o \ "$MATLAB_CMD"x = "x"; then AC_PATH_PROG(MATLAB_CMD, matlab, "none") if test "$MATLAB_CMD" = "none"; then MATLAB_CMD=`find /*/MATLAB*/bin/m* -name matlab` fi if test "$MATLAB_CMD" != "none" -a "x$MATLAB_CMD" != "x"; then BUILD_MATLAB=1 BUILD_CLIB=1 fi else echo "Matlab command preset to $MATLAB_CMD" BUILD_MATLAB=1 BUILD_CLIB=1 fi if test "x$OS_IS_WIN" = "x1"; then MATLAB_CMD=`cygpath -a -m "$MATLAB_CMD" ` echo "Windows MATLAB command: ${MATLAB_CMD}" fi AC_MSG_CHECKING(MATLAB ($MATLAB_CMD)) rm -f diary cat >> testmat.m << EOF diary; try, mexext, catch, disp 'mex_unknown', end; diary off; exit; EOF ${MATLAB_CMD} -nojvm -nosplash -r testmat &> /dev/null # &> /dev/null` if test -f diary; then BUILD_MATLAB=1 mex_ext=`grep mex* diary` rm -f diary else BUILD_MATLAB=0 fi rm -f testmat.m else echo "MATLAB interface will not be installed" if test -z "$MATLAB_CMD"; then MATLAB_CMD="matlab" fi fi if test "$mex_ext" = "mex_unknown"; then case $ac_sys_system in Darwin*) hardware=`uname -m`; mex_ext=mexmac; if test "$hardware" = "i386" ; then mex_ext=mexmaci fi;; CYGWIN*) mex_ext=dll;; Linux* ) mex_ext=mexglx;; esac fi if test "$BUILD_MATLAB" = "1"; then echo " " echo "---------------------------- MATLAB -------------------------------" echo "MEX file extension: " $mex_ext echo "MATLAB command: " $MATLAB_CMD ECHO "--------------------------------------------------------------------" echo " " fi AC_SUBST(BUILD_MATLAB) AC_SUBST(MATLAB_CMD) AC_SUBST(BUILD_CLIB) #------------------------------------------------- #----------------------------------------------------------------------- # C++ Compilation #----------------------------------------------------------------------- export_name=$target AC_SUBST(export_name) 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 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/ChemEquil_ionizedGas/Makefile \ test_problems/ChemEquil_red1/Makefile \ test_problems/fracCoeff/Makefile \ test_problems/negATest/Makefile \ test_problems/ck2cti_test/Makefile \ test_problems/ck2cti_test/runtest \ test_problems/min_python/Makefile \ test_problems/min_python/minDiamond/Makefile \ test_problems/min_python/negATest/Makefile \ test_problems/pureFluidTest/Makefile \ test_problems/python/Makefile \ test_problems/cathermo/Makefile \ test_problems/cathermo/issp/Makefile \ test_problems/cathermo/ims/Makefile \ test_problems/cathermo/stoichSubSSTP/Makefile \ test_problems/cathermo/testIAPWS/Makefile \ test_problems/cathermo/testIAPWSPres/Makefile \ test_problems/cathermo/testIAPWSTripP/Makefile \ test_problems/cathermo/testWaterPDSS/Makefile \ test_problems/cathermo/testWaterTP/Makefile \ test_problems/cathermo/HMW_test_1/Makefile \ test_problems/cathermo/HMW_test_3/Makefile \ test_problems/cathermo/HMW_graph_GvT/Makefile \ test_problems/cathermo/HMW_graph_GvI/Makefile \ test_problems/cathermo/HMW_graph_HvT/Makefile \ test_problems/cathermo/HMW_graph_CpvT/Makefile \ test_problems/cathermo/HMW_graph_VvT/Makefile \ test_problems/cathermo/DH_graph_1/Makefile \ test_problems/cathermo/DH_graph_acommon/Makefile \ test_problems/cathermo/DH_graph_NM/Makefile \ test_problems/cathermo/DH_graph_Pitzer/Makefile \ test_problems/cathermo/DH_graph_bdotak/Makefile \ 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