#!/bin/sh # ####################################################################### # # 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. # # The default configuration uses GNU compilers (gcc/g++/g77) and # builds as much of Cantera and its language interfaces as it can # (e.g. if MATLAB is installed on your system, the MATLAB toolbox # will be built automatically, otherwise it will be skipped. On linux # or Mac OS X, this default configuration should work, and most # likely you don't need to edit this file at all - just run it. # # NOTE: if you DO 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 ./preconfig --prefix= you can just run it as # ./preconfig CANTERA_CONFIG_PREFIX=${CANTERA_CONFIG_PREFIX:=""} #---------------------------------------------------------------------- # Language Interfaces #---------------------------------------------------------------------- # # Cantera has several programming language interfaces. Select the ones # you want to build. The default is to try to build all language # interfaces. # # #----------------- Python -------------------------------------------- # # In addition to being one of the supported language interfaces, # Python is used internally by Cantera, both in the build process and # at run time (to process .cti input files). Therefore, you generally # need to have Python on your system; if you don't, first install it # from http://www.python.org before proceeding with the installation # of Cantera. # # If you plan to work in Python, or you want to use the graphical # MixMaster application, then you need the full Cantera Python # Package. If, on the other hand, you will only use Cantera from some # other language (e.g. MATLAB or Fortran 90/95) and only need Python # to process .cti files, then you only need a minimal subset of the # package (actually, only one file). # Set PYTHON_PACKAGE to one of these four strings: # full install everything needed to use Cantera from Python # minimal install only enough to process .cti files # none Don't install or run any Python scripts during the # build process # default try to do a full installation, but fall back to a minimal # one in case of errors PYTHON_PACKAGE=${PYTHON_PACKAGE:="default"} # Cantera needs to know where to find the Python interpreter. If # PYTHON_CMD is set to "default", then the configuration process will # look for the Python Interpreter somewhere on your PATH, either as # 'python2' or as 'python'. If it is not on the PATH, or has a # different name, set this to the full path to the Python interpreter. PYTHON_CMD=${PYTHON_CMD:="default"} # The Cantera Python interface can be built with either the numarray # or Numeric packages. Set this to "y" to use Numeric, or anything # else to use numarray. Using numarray is preferred. USE_NUMERIC=${USE_NUMERIC:="default"} # If numarray was installed using the --home option, set this to the # home directory for numarray. NUMARRAY_HOME=${NUMARRAY_HOME:=""} # If you want to install the Cantera Python package somewhere other # than the default 'site-packages' directory within the Python library # directory, then set this to the desired directory. This is useful when # you do not have write access to the Python library directory. CANTERA_PYTHON_HOME=${CANTERA_PYTHON_HOME:="$HOME/python_modules"} # Set this to 'y' when site packages must be put in system directories # but Cantera tutorials must be put in user space. An alternative to # doing this is to put everything in user space by running this script # with the 'prefix' option, and defining 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 -------------------------------------------------- # This variable controls whether the MATLAB toolbox will be built. It # should be set to one of these strings: # # "default" the 'configure' script will try to build a simple # MATLAB MEX file. If this succeeds, BUILD_MATLAB_TOOLBOX # will be set to "y", otherwise it will be set to "n". # # "y" build the MATLAB toolbox. # "n" do not build the MATLAB toolbox, even if MATLAB is # installed. # # Note that you may need to run 'mex -setup' within MATLAB to # configure it for your C++ compiler before running this script. BUILD_MATLAB_TOOLBOX=${BUILD_MATLAB_TOOLBOX:="default"} #----------- Fortran 90/95 -------------------------------------------------- # This variable controls whether the Fortran 90/95 interface will be # built. It should be set to one of these strings: # # "default" The 'configure' script will attempt to compile a small # Fortran 90/05 program; if this succeeds, # BUILD_F90_INTERFACE will be set to "y", and otherwise to "n". # "y" Build the Fortran 90/95 interface. # "n" Do not build the Fortran 90/95 interface, even if a # Fortran 90/95 compiler is installed. BUILD_F90_INTERFACE=${BUILD_F90_INTERFACE:="default"} # The Fortran 90/95 compiler. If set to "default", the script will # look for a Fortran 90/95 compiler on your system by the name of # "f95", "gfortran", or "g95". F90=${F90:="default"} # Compiler option flags for the Fortran 90/95 compiler. If you are # using the Absoft or the NAG compiler, additional options specific to # these compilers will be added automatically, and you do not need to # specify them here. Otherwise, add any required compiler-specific # flags here. F90FLAGS=${F90FLAGS:='-O3'} #---------------------------------------------------------------------- # 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 # In some cases, extra printing has been put into the code to aid # in debugging and verification. In order for the printing to occur # an additional switch must be turned on. However, compilation # of the printing is affected by the following DEBUG_MODE option. # This is turned on here by default. However, for a speedier executable # compilation of these statements may be turned off by setting # the parameter to "n". DEBUG_MODE="y" #---------------------------------------------------------------------- # 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. # Note: if you are building the full Python interface or the MATLAB # interface, it is necessary to build the full kernel. # thermodynamic properties ENABLE_THERMO='y' ###################################################################### # optional phase types. These may not be needed by all users. Set them # to 'n' to omit them from the kernel. WITH_LATTICE_SOLID=${WITH_LATTICE_SOLID:="y"} WITH_METAL=${WITH_METAL:="y"} WITH_STOICH_SUBSTANCE='y' # This flag enables the inclusion of accurate liquid/vapor equations # of state for several fluids, including water, nitrogen, hydrogen, # oxygen, methane, andd HFC-134a. WITH_PURE_FLUIDS='y' # This flag enables the inclusion of ideal solution capabilities WITH_IDEAL_SOLUTIONS=${WITH_IDEAL_SOLUTIONS:="n"} # Enable expanded electrochemistry capabilities, include thermo # models for electrolyte solutions WITH_ELECTROLYTES=${WITH_ELECTROLYTES:="n"} ###################################################################### # if set to 'y', the ck2cti program that converts Chemkin input files # to Cantera format will be built. If you don't use Chemkin format # files, or if you run ck2cti on some other machine, you can set this to 'n'. ENABLE_CK=${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' # two phase pure fluids ENABLE_TPX='y' #----------------------------------------------------------------- # CVODE / CVODES #----------------------------------------------------------------- # # Cantera uses the CVODE ODE integrator to time-integrate reactor # network ODE's and for various other purposes. An older version of # CVODE comes with Cantera, but it is possible to use the latest # version as well, which now supports sensitivity analysis (CVODES). # CVODES is a part of the 'sundials' package from Lawrence Livermore # National Laboratory. Sundials is not distributed with Cantera, but # it is free software that may be downloaded and installed # separately. If you have sundials, set SUNDIALS_HOME to the directory # where it is installed, or else put the sundials libraries on the # library path. If you leave USE_SUNDIALS = 'default', then it will # be used if you have it, and if not the older CVODE will be used. Or # set USE_SUNDIALS to 'y' or 'n' to force using it or not. Note that # sensitivity analysis with Cantera requires use of sundials. # # See: http://www.llnl.gov/CASC/sundials # USE_SUNDIALS=${USE_SUNDIALS:='default'} SUNDIALS_HOME=${SUNDIALS_HOME:=/usr/local/sundials} #----------------------------------------------------------------- # 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 -lblas' #'-llapack -lf77blas -lcblas -latlas' #BLAS_LAPACK_DIR='/usr/lib' # # Note that on Mac OSX, BLAS and LAPACK from the built-in 'Accelerate' # framework are used by default, and nothing needs to be specified # here. # # 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 number of bits to compile with, if different than the # default on the computer BITCOMPILE=${BITCOMPILE:=""} # 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:="-O3 -Wall"} # the C++ flags required for linking. Uncomment if additional flags # need to be passed to the linker. #LCXX_FLAGS="-framework Accelerate" # 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"} #------------------------------------------------------------------- # External procedures #------------------------------------------------------------------- # Cantera uses several external software packages, which are all in # the 'ext' directory.. These options control how these packages are # built. # For external procedures written in Fortran 77, both the original F77 # source code and C souce code generated by the 'f2c' program are # included. Set this to "y" if you want to build Cantera using the # f2c-generated C sources instead of using the F77 sources in the ext # directory. # The default is to use the f2c code. Set this to "n" to never do # this on any platform. Note, if set to "y", Cantera does not need a # fortran compiler, and all fortran compiler parameters below are # irrelevant. # BUILD_WITH_F2C=${BUILD_WITH_F2C:="y"} # if you are building the external Fortran 77 procedures from the Fortran # source code, enter the compiler here. F77=${F77:=g77} # Fortran 77 compiler flags. Note that the Fortran compiler flags must be set # to produce object code compatible with the C/C++ compiler you are using. FFLAGS=${FFLAGS:='-O3'} # the additional Fortran flags required for linking, if any. Leave commented # out if no additional flags are required. #LFORT_FLAGS="-lcc_dynamic" #------------------------------------------------------ # other programs #------------------------------------------------------ # the command to create a static library. ARCHIVE=${ARCHIVE:="ar ruv"} # linux # ARCHIVE=${ARCHIVE:="libtool -static -o"} # Mac OSX (this is set automatically) # ARCHIVE=${ARCHIVE:="CC -xar -o"} # Solaris using SUNspro compilers # 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} # The directory location of the graphviz program, dot. # dot is used for creating of the documentation. # if "dot" is in your path, you can leave this unspecified. GRAPHVIZDIR=${GRAPHVIZDIR:=" "} # file extensions CXX_EXT=${CXX_EXT:=cpp} F77_EXT=${F77_EXT:=f} F90_EXT=${F90_EXT:=f90} 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"} # Don't change this. CANTERA_VERSION=${CANTERA_VERSION:="1.7.0"} #----------------------------------------------------------------------- #------------------- don't change anything below!! --------------------- #----------------------------------------------------------------------- export CANTERA_VERSION export USER_SRC_DIR export DEBUG_MODE export ARCHIVE export RANLIB export BITCOMPILE export BLAS_LAPACK_LIBS export BLAS_LAPACK_DIR export BUILD_WITH_F2C export BUILD_F90_INTERFACE export PYTHON_PACKAGE export BUILD_MATLAB_TOOLBOX #export MATLAB_CMD export CT_SHARED_LIB export CXX export CXX_EXT export CXXFLAGS export CC 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 F90FLAGS 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 GRAPHVIZDIR export RPFONT export FORTRAN_LIB_DIR export CANTERA_INSTALL_DIR export USE_NUMERIC export NUMARRAY_HOME export CANTERA_PYTHON_HOME export USE_SUNDIALS export SUNDIALS_HOME export WITH_LATTICE_SOLID export WITH_METAL export WITH_STOICH_SUBSTANCE export WITH_PURE_FLUIDS export WITH_IDEAL_SOLUTIONS export WITH_ELECTROLYTES #cd config chmod +x ./configure chmod +x config/config.guess chmod +x config/config.sub #chmod +x config/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