#!/bin/sh # # $Source$ # $Author$ # $Revision$ # $Date$ # ####################################################################### # # Cantera Configuration File # # Edit this file to control how Cantera is built. Parameters can be set # here, or alternatively environment variables may be set before calling # this script. # # NOTE: if you make changes to this file, save it with another name # so that it will not be overwritten if you update the source # distribution. ####################################################################### # If you define this to be , then instead of running this # script as ./configure --prefix= you can just run it as # ./configure CANTERA_CONFIG_PREFIX=${CANTERA_CONFIG_PREFIX:=""} #---------------------------------------------------------------------- # MS-Windows Options #---------------------------------------------------------------------- # # These options only need to be set if you are building Cantera on # a Windows PC. # # Cantera will be installed by default in c:\cantera. Change this to # install it somewhere else. Use forward slashes in the path name. CANTERA_INSTALL_DIR=${CANTERA_INSTALL_DIR:="c:/cantera"} # On a PC running MS-Windows, Cantera can be built either using # Microsoft Visual Studio, with the Visual C++ and Visual Fortran # compilers, or using the linux-like cygwin environment with the # g++ and g77 compilers. USE_VISUAL_STUDIO=${USE_VISUAL_STUDIO:="y"} # If you are using Visual Studio, set this to the location of the # directory containing the Fortran libraries. This is only needed to # build the Matlab interface. FORTRAN_LIB_DIR="D:\Program Files\Microsoft Visual Studio\DF98\LIB" #---------------------------------------------------------------------- # Language Interfaces #---------------------------------------------------------------------- # # Cantera provides interfaces for several languages. Set to 'y' to # build the specified interface. #------------ Python ------------------------------------------------- # Cantera uses Python to process .cti input files, so if you plan to # use these, you need to have Python on your system. (If you will only # use CTML input files, then you don't need Python at all.) # You only need to build the full Cantera Python interface if you plan # to use Cantera from Python. If so, Python 2.0 or greater is # required, and the Numeric extensions for Python are needed too. See # file INSTALLING for more details. # # The configure process will attempt to find the Python interpreter on # your system. However, if there is more than one and you want a # specific interpreter to be used, then define PYTHON_CMD to be the # full path to the desired Python interpreter. This allows you, for # example, to build your own private Python interpreter and use it # instead of the system Python interpreter. #PYTHON_CMD=${PYTHON_CMD:="python"} # Set to one of the following: # full everything needed to use Cantera from Python # minimal only enough to process .cti files # none don't use Python at all; only CTML input files can be used. PYTHON_PACKAGE=${PYTHON_PACKAGE:="full"} # Use when site packages must be put in system directories but Cantera # tutorials must be put in user space. Note: an alternative to doing # this is to put everything in user space, and define environment # variable PYTHONPATH to tell Python where to find the Cantera package # SET_PYTHON_SITE_PACKAGE_TOPDIR=${SET_PYTHON_SITE_PACKAGE_TOPDIR:="n"} PYTHON_SITE_PACKAGE_TOPDIR=${PYTHON_SITE_PACKAGE_TOPDIR:="/usr/local"} #----------- Matlab -------------------------------------------------- # Set this to "y" if you want to build the Matlab toolbox. Matlab must # be installed on your system first, since the build process runs a # Matlab script. If this is set to "y" but Matlab is not found, the # Matlab toolbox will not be built. BUILD_MATLAB_TOOLBOX=${BUILD_MATLAB_TOOLBOX:="y"} #----------- Fortran 90/95 -------------------------------------------------- # Set this to "y" if you want to build the Fortran 90/95 interface. # A Fortran 90/95 compiler is required. # UNDER DEVELOPMENT - UNSTABLE!! BUILD_F90_INTERFACE=${BUILD_F90_INTERFACE:="n"} #---------------------------------------------------------------------- # Customizations / Extensions # # You can build your own libraries as part of the Cantera build process. # This allows you to derive your own classes from those provided by # Cantera and build them automatically along with the rest of Cantera. # All you need to do is specify the directory where your source code is # located. This capability is not yet fully functional, but should work # for C++ applications. USER_SRC_DIR="Cantera/user" # don't change this #---------------------------------------------------------------------- # Kernel Configuration #---------------------------------------------------------------------- # If you are only planning to use a portion of Cantera, you may only # need a stripped-down kernel. Set those features you want enabled to # 'y', and set those you want to skip to 'n' (actually anything but # 'y') or comment them out. Some features are dependent on others; for # example, enabling 'CK' automatically enables KINETICS and THERMO. # If you only need to use Cantera to evaluate thermodynamic, kinetic, # and transport properties, it is sufficient to enable only KINETICS # and TRANSPORT. # thermodynamic properties ENABLE_THERMO='y' # if set to 'y', the ck2cti program that converts Chemkin input files # to Cantera format will be built ENABLE_CK='y' # homogeneous and heterogeneous kinetics ENABLE_KINETICS='y' # transport properties ENABLE_TRANSPORT='y' # chemical equilibrium ENABLE_EQUIL='y' # stirred reactor models ENABLE_REACTORS='y' # One-dimensional flows ENABLE_FLOW1D='y' # ODE integrators and DAE solvers ENABLE_SOLVERS='y' # reaction path analysis ENABLE_RXNPATH='y' # non-ideal pure substance models for a few fluids imported from the # 'TPX' package (http://adam.caltech.edu/software/tpx) ENABLE_TPX='y' #----------------------------------------------------------------- # BLAS and LAPACK #----------------------------------------------------------------- # # Cantera comes with Fortran versions of those parts of BLAS and # LAPACK it requires. But performance *may* be better if you use a # version of these libraries optimized for your machine hardware. If # you want to use your own libraries, set BLAS_LAPACK_LIBS to the # string that should be passed to the linker to link to these # libraries, and set BLAS_LAPACK_DIR to the directory where these # libraries are located. Otherwise, leave these lines commented out. #BLAS_LAPACK_LIBS='-llapack -lf77blas -lcblas -latlas' #BLAS_LAPACK_DIR='/usr/lib/atlas' # # The options below do not need to be set if you are using the default # libraries. # # Set to 'lower' or 'upper', depending on whether the procedure names # in the libraries are lowercase or uppercase. If you don't know, run # 'nm' on the library file (e.g. 'nm libblas.a') Note that the these options # apply to both the BLAS and LAPACK libraries. LAPACK_NAMES='lower' LAPACK_FTN_TRAILING_UNDERSCORE='y' # Currently this must be set to 'y'. LAPACK_FTN_STRING_LEN_AT_END='y' #------------------------------------------------------------------ # C++ compiler options #------------------------------------------------------------------ # the C++ compiler to use. # CXX=${CXX:=g++} # the C compiler to use. This is only used to compile CVODE and # the Python extension module. CC=${CC:=gcc} # C++ compiler flags CXXFLAGS=${CXXFLAGS:="-O2 -Wall"} # the C++ flags required for linking #LCXX_FLAGS="-L/usr/lib/atlas" # Ending libraries to tack onto the linking of all C++ programs LCXX_END_LIBS=${LCXX_END_LIBS:="-lm"} # the compiler flag to use to compile code that will be inserted into shared # libraries. PIC=${PIC:=-fPIC} # the compiler option to create a shared library from object files SHARED=${SHARED:="-shared"} #------------------------------------------------------------------- # Fortran compiler options #------------------------------------------------------------------- # Note: the Fortran 90 interface is currently not available. Hopefully # it will be back at a future date... # Cantera uses some external procedures written in Fortran 77. # In addition, Cantera implements an interface for Fortran 90 # application programs. The parameters in this section apply # to both. # the Fortran 77 and Fortran 90 compilers. You only need a Fortran 90 # compiler if you are building the Fortran 90 interface. F77=${F77:=g77} F90=${F90:=f95} # Fortran compiler flags FFLAGS=${FFLAGS:='-O2'} # additional flags required to compile fixed-format F77 procedures # in the 'ext' directory #F77FLAGS=${F77FLAGS:='-w -dusty -fixed -save'} # the additional Fortran flags required for linking, if any #LFORT_FLAGS="-lF77 -lFI77" # Fortran 90 module directory ## FORT_MODULE_DIRECTORY=${FORT_MODULE_DIRECTORY:=$CANTERA_ROOT/include/fortran} # Fortran 90 module search path command ## FORT_MODULE_PATH_CMD=${FORT_MODULE_PATH_CMD:="-I$FORT_MODULE_DIRECTORY"} #------------------------------------------------------ # other programs #------------------------------------------------------ # the command to create a static library ARCHIVE=${ARCHIVE:="ar ruv"} # the command to run 'ranlib' if it is needed. RANLIB=${RANLIB:="ranlib"} # the command to run the 'make' utility. The Cantera Makefiles are # compatible with the GNU make utility, so if your make utility # doesn't work, try GNU make. MAKE=${MAKE:=make} # # file extensions CXX_EXT=${CXX_EXT:=cpp} F77_EXT=${F77_EXT:=f} F90_EXT=${F90_EXT:=f90} #OBJ_EXT= #EXE_EXT= CT_SHARED_LIB=${CT_SHARED_LIB:=clib} # The font to use in reaction path diagrams. This must be a font name # recognized by the 'dot' program. On linux systems, this should be # lowercase 'helvetica'. RPFONT=${RPFONT:="Helvetica"} CANTERA_VERSION=${CANTERA_VERSION:="1.5.4"} #----------------------------------------------------------------------- #------------------- don't change anything below!! --------------------- #----------------------------------------------------------------------- export CANTERA_VERSION export USER_SRC_DIR export ARCHIVE export RANLIB export BLAS_LAPACK_LIBS export BLAS_LAPACK_DIR export BUILD_F90 export BUILD_FORTRAN_90_INTERFACE export PYTHON_PACKAGE export BUILD_MATLAB_TOOLBOX #export MATLAB_CMD export CANTERA_ROOT export CT_SHARED_LIB export CXX export CXX_EXT export CXXFLAGS export CXX_INCLUDES export ENABLE_THERMO export ENABLE_KINETICS export ENABLE_TRANSPORT export ENABLE_CK export ENABLE_EQUIL export ENABLE_REACTORS export ENABLE_SOLVERS export ENABLE_RXNPATH export ENABLE_TPX export ENABLE_FLOW1D export EXE_EXT export F77 export F77_EXT export F90 export F90_EXT export FFLAGS export F77FLAGS export LAPACK_NAMES export LCXX_FLAGS export LCXX_END_LIBS export LFORT_FLAGS export LAPACK_FTN_STRING_LEN_AT_END export LAPACK_FTN_TRAILING_UNDERSCORE export LIB_DIR export FORT_MODULE_DIRECTORY export FORT_MODULE_PATH_COMMAND export OBJ_EXT #export PYTHON_CMD export SET_PYTHON_SITE_PACKAGE_DIR export PYTHON_SITE_PACKAGE_TOPDIR export PIC export SHARED export SOEXT export MAKE export RPFONT export USE_VISUAL_STUDIO export FORTRAN_LIB_DIR export CANTERA_INSTALL_DIR cd config chmod +x ./configure chmod +x ./config.guess chmod +x ./config.sub chmod +x ./install-sh # # Decide whether to add a prefix variable to the configure line # if (test "x$CANTERA_CONFIG_PREFIX" = "x") then CCPREFIX="" else CCPREFIX="--prefix="$CANTERA_CONFIG_PREFIX fi # # run the configure command in the config directory # ./configure $CCPREFIX $1 $2 $3 $4